@livekit/rtc-node 0.11.1 → 0.12.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 (135) hide show
  1. package/dist/audio_frame.cjs +94 -0
  2. package/dist/audio_frame.cjs.map +1 -0
  3. package/dist/audio_frame.js +64 -67
  4. package/dist/audio_frame.js.map +1 -1
  5. package/dist/audio_resampler.cjs +153 -0
  6. package/dist/audio_resampler.cjs.map +1 -0
  7. package/dist/audio_resampler.js +129 -134
  8. package/dist/audio_resampler.js.map +1 -1
  9. package/dist/audio_source.cjs +116 -0
  10. package/dist/audio_source.cjs.map +1 -0
  11. package/dist/audio_source.js +92 -85
  12. package/dist/audio_source.js.map +1 -1
  13. package/dist/audio_stream.cjs +104 -0
  14. package/dist/audio_stream.cjs.map +1 -0
  15. package/dist/audio_stream.js +77 -78
  16. package/dist/audio_stream.js.map +1 -1
  17. package/dist/e2ee.cjs +268 -0
  18. package/dist/e2ee.cjs.map +1 -0
  19. package/dist/e2ee.d.ts.map +1 -1
  20. package/dist/e2ee.js +244 -221
  21. package/dist/e2ee.js.map +1 -1
  22. package/dist/ffi_client.cjs +95 -0
  23. package/dist/ffi_client.cjs.map +1 -0
  24. package/dist/ffi_client.d.ts +2 -2
  25. package/dist/ffi_client.d.ts.map +1 -1
  26. package/dist/ffi_client.js +67 -48
  27. package/dist/ffi_client.js.map +1 -1
  28. package/dist/index.cjs +166 -0
  29. package/dist/index.cjs.map +1 -0
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +119 -48
  33. package/dist/index.js.map +1 -1
  34. package/dist/napi/native.d.cjs +17 -0
  35. package/dist/napi/native.d.cjs.map +1 -0
  36. package/dist/napi/native.d.js +1 -0
  37. package/dist/napi/native.d.js.map +1 -0
  38. package/dist/native.cjs +301 -0
  39. package/dist/native.d.ts +19 -0
  40. package/dist/native.js +15 -0
  41. package/dist/participant.cjs +388 -0
  42. package/dist/participant.cjs.map +1 -0
  43. package/dist/participant.js +363 -339
  44. package/dist/participant.js.map +1 -1
  45. package/dist/proto/audio_frame_pb.cjs +193 -0
  46. package/dist/proto/audio_frame_pb.cjs.map +1 -0
  47. package/dist/proto/audio_frame_pb.js +120 -320
  48. package/dist/proto/audio_frame_pb.js.map +1 -1
  49. package/dist/proto/e2ee_pb.cjs +131 -0
  50. package/dist/proto/e2ee_pb.cjs.map +1 -0
  51. package/dist/proto/e2ee_pb.js +76 -202
  52. package/dist/proto/e2ee_pb.js.map +1 -1
  53. package/dist/proto/ffi_pb.cjs +76 -0
  54. package/dist/proto/ffi_pb.cjs.map +1 -0
  55. package/dist/proto/ffi_pb.js +33 -92
  56. package/dist/proto/ffi_pb.js.map +1 -1
  57. package/dist/proto/handle_pb.cjs +33 -0
  58. package/dist/proto/handle_pb.cjs.map +1 -0
  59. package/dist/proto/handle_pb.js +6 -22
  60. package/dist/proto/handle_pb.js.map +1 -1
  61. package/dist/proto/participant_pb.cjs +50 -0
  62. package/dist/proto/participant_pb.cjs.map +1 -0
  63. package/dist/proto/participant_pb.js +19 -57
  64. package/dist/proto/participant_pb.js.map +1 -1
  65. package/dist/proto/room_pb.cjs +370 -0
  66. package/dist/proto/room_pb.cjs.map +1 -0
  67. package/dist/proto/room_pb.js +239 -632
  68. package/dist/proto/room_pb.js.map +1 -1
  69. package/dist/proto/rpc_pb.cjs +63 -0
  70. package/dist/proto/rpc_pb.cjs.map +1 -0
  71. package/dist/proto/rpc_pb.js +26 -72
  72. package/dist/proto/rpc_pb.js.map +1 -1
  73. package/dist/proto/stats_pb.cjs +256 -0
  74. package/dist/proto/stats_pb.cjs.map +1 -0
  75. package/dist/proto/stats_pb.js +175 -456
  76. package/dist/proto/stats_pb.js.map +1 -1
  77. package/dist/proto/track_pb.cjs +116 -0
  78. package/dist/proto/track_pb.cjs.map +1 -0
  79. package/dist/proto/track_pb.js +65 -171
  80. package/dist/proto/track_pb.js.map +1 -1
  81. package/dist/proto/video_frame_pb.cjs +161 -0
  82. package/dist/proto/video_frame_pb.cjs.map +1 -0
  83. package/dist/proto/video_frame_pb.js +101 -269
  84. package/dist/proto/video_frame_pb.js.map +1 -1
  85. package/dist/room.cjs +440 -0
  86. package/dist/room.cjs.map +1 -0
  87. package/dist/room.js +384 -373
  88. package/dist/room.js.map +1 -1
  89. package/dist/rpc.cjs +89 -0
  90. package/dist/rpc.cjs.map +1 -0
  91. package/dist/rpc.js +59 -63
  92. package/dist/rpc.js.map +1 -1
  93. package/dist/track.cjs +100 -0
  94. package/dist/track.cjs.map +1 -0
  95. package/dist/track.js +66 -62
  96. package/dist/track.js.map +1 -1
  97. package/dist/track_publication.cjs +106 -0
  98. package/dist/track_publication.cjs.map +1 -0
  99. package/dist/track_publication.js +76 -74
  100. package/dist/track_publication.js.map +1 -1
  101. package/dist/transcription.cjs +17 -0
  102. package/dist/transcription.cjs.map +1 -0
  103. package/dist/transcription.js +0 -1
  104. package/dist/transcription.js.map +1 -1
  105. package/dist/types.cjs +17 -0
  106. package/dist/types.cjs.map +1 -0
  107. package/dist/types.js +0 -1
  108. package/dist/types.js.map +1 -1
  109. package/dist/version.cjs +29 -0
  110. package/dist/version.cjs.map +1 -0
  111. package/dist/version.d.ts +1 -1
  112. package/dist/version.js +4 -1
  113. package/dist/version.js.map +1 -1
  114. package/dist/video_frame.cjs +242 -0
  115. package/dist/video_frame.cjs.map +1 -0
  116. package/dist/video_frame.js +212 -201
  117. package/dist/video_frame.js.map +1 -1
  118. package/dist/video_source.cjs +63 -0
  119. package/dist/video_source.cjs.map +1 -0
  120. package/dist/video_source.d.ts.map +1 -1
  121. package/dist/video_source.js +42 -37
  122. package/dist/video_source.js.map +1 -1
  123. package/dist/video_stream.cjs +103 -0
  124. package/dist/video_stream.cjs.map +1 -0
  125. package/dist/video_stream.js +76 -77
  126. package/dist/video_stream.js.map +1 -1
  127. package/package.json +18 -9
  128. package/src/audio_frame.ts +2 -2
  129. package/src/audio_source.ts +2 -2
  130. package/src/e2ee.ts +2 -2
  131. package/src/ffi_client.ts +4 -4
  132. package/src/index.ts +14 -8
  133. package/src/version.ts +1 -1
  134. package/src/video_frame.ts +1 -1
  135. package/src/video_source.ts +5 -1
package/dist/room.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../src/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/room.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { create } from '@bufbuild/protobuf';\nimport type { TypedEventEmitter as TypedEmitter } from '@livekit/typed-emitter';\nimport EventEmitter from 'events';\nimport type { E2EEOptions } from './e2ee.js';\nimport { E2EEManager } from './e2ee.js';\nimport { FfiClient, FfiClientEvent, FfiHandle } from './ffi_client.js';\nimport type { Participant } from './participant.js';\nimport { LocalParticipant, RemoteParticipant } from './participant.js';\nimport { EncryptionState } from './proto/e2ee_pb.js';\nimport type { FfiEvent } from './proto/ffi_pb.js';\nimport type { OwnedParticipant } from './proto/participant_pb.js';\nimport type {\n ConnectCallback,\n ConnectResponse,\n ConnectionQuality,\n DataPacketKind,\n DisconnectReason,\n DisconnectResponse,\n RoomOptions as FfiRoomOptions,\n IceServer,\n RoomInfo,\n} from './proto/room_pb.js';\nimport {\n ConnectRequestSchema,\n ConnectionState,\n ContinualGatheringPolicy,\n IceTransportType,\n} from './proto/room_pb.js';\nimport { TrackKind } from './proto/track_pb.js';\nimport type { LocalTrack, RemoteTrack } from './track.js';\nimport { RemoteAudioTrack, RemoteVideoTrack } from './track.js';\nimport type { LocalTrackPublication, TrackPublication } from './track_publication.js';\nimport { RemoteTrackPublication } from './track_publication.js';\nimport type { ChatMessage } from './types.js';\n\nexport interface RtcConfiguration {\n iceTransportType: IceTransportType;\n continualGatheringPolicy: ContinualGatheringPolicy;\n iceServers: IceServer[];\n}\n\nexport const defaultRtcConfiguration: RtcConfiguration = {\n iceTransportType: IceTransportType.TRANSPORT_ALL,\n continualGatheringPolicy: ContinualGatheringPolicy.GATHER_CONTINUALLY,\n iceServers: [],\n};\n\nexport interface RoomOptions {\n autoSubscribe: boolean;\n dynacast: boolean;\n e2ee?: E2EEOptions;\n rtcConfig?: RtcConfiguration;\n}\n\nexport const defaultRoomOptions = {\n autoSubscribe: true,\n dynacast: false,\n e2ee: undefined,\n rtcConfig: undefined,\n adaptiveStream: false,\n joinRetries: 1,\n} satisfies Omit<FfiRoomOptions, '$typeName'>;\n\nexport class Room extends (EventEmitter as new () => TypedEmitter<RoomCallbacks>) {\n private info?: RoomInfo;\n private ffiHandle?: FfiHandle;\n\n e2eeManager?: E2EEManager;\n connectionState: ConnectionState = ConnectionState.CONN_DISCONNECTED;\n\n remoteParticipants: Map<string, RemoteParticipant> = new Map();\n localParticipant?: LocalParticipant;\n\n constructor() {\n super();\n }\n\n get name(): string | undefined {\n return this.info?.name;\n }\n\n get metadata(): string | undefined {\n return this.info?.metadata;\n }\n\n get isConnected(): boolean {\n return this.ffiHandle != undefined && this.connectionState != ConnectionState.CONN_DISCONNECTED;\n }\n\n async getSid(): Promise<string> {\n if (!this.isConnected) {\n return '';\n }\n if (this.info && this.info.sid !== '') {\n return this.info.sid;\n }\n return new Promise((resolve, reject) => {\n const handleRoomUpdate = (sid: string) => {\n if (sid !== '') {\n this.off(RoomEvent.RoomSidChanged, handleRoomUpdate);\n resolve(sid);\n }\n };\n this.on(RoomEvent.RoomSidChanged, handleRoomUpdate);\n this.once(RoomEvent.Disconnected, () => {\n this.off(RoomEvent.RoomSidChanged, handleRoomUpdate);\n reject('Room disconnected before room server id was available');\n });\n });\n }\n\n async connect(url: string, token: string, opts?: RoomOptions) {\n const options = { ...defaultRoomOptions, ...opts };\n\n const req = create(ConnectRequestSchema, {\n url: url,\n token: token,\n options,\n });\n\n const res = FfiClient.instance.request<ConnectResponse>({\n message: {\n case: 'connect',\n value: req,\n },\n });\n\n const cb = await FfiClient.instance.waitFor<ConnectCallback>((ev: FfiEvent) => {\n return ev.message.case == 'connect' && ev.message.value.asyncId == res.asyncId;\n });\n\n if (cb.message.case !== 'result') {\n throw new ConnectError(cb.message.value ?? 'Unknown error');\n }\n\n const { room, localParticipant, participants } = cb.message.value;\n\n this.ffiHandle = new FfiHandle(room!.handle!.id);\n if (options.e2ee) {\n this.e2eeManager = new E2EEManager(this.ffiHandle.handle, options.e2ee);\n }\n\n this.info = room!.info;\n this.connectionState = ConnectionState.CONN_CONNECTED;\n this.localParticipant = new LocalParticipant(localParticipant!);\n\n for (const pt of participants) {\n const rp = this.createRemoteParticipant(pt.participant!);\n\n for (const pub of pt.publications) {\n const publication = new RemoteTrackPublication(pub);\n rp.trackPublications.set(publication.sid, publication);\n }\n }\n\n FfiClient.instance.on(FfiClientEvent.FfiEvent, this.onFfiEvent);\n }\n\n async disconnect() {\n if (!this.isConnected || !this.ffiHandle) {\n return;\n }\n\n FfiClient.instance.request<DisconnectResponse>({\n message: {\n case: 'disconnect',\n value: {\n roomHandle: this.ffiHandle.handle,\n },\n },\n });\n\n FfiClient.instance.removeListener(FfiClientEvent.FfiEvent, this.onFfiEvent);\n this.removeAllListeners();\n }\n\n private onFfiEvent = (ffiEvent: FfiEvent) => {\n if (!this.localParticipant || !this.ffiHandle || !this.info) {\n throw TypeError('cannot handle ffi events before connectCallback');\n }\n\n if (ffiEvent.message.case == 'rpcMethodInvocation') {\n if (\n ffiEvent.message.value.localParticipantHandle == this.localParticipant.ffi_handle.handle\n ) {\n this.localParticipant.handleRpcMethodInvocation(\n ffiEvent.message.value.invocationId,\n ffiEvent.message.value.method,\n ffiEvent.message.value.requestId,\n ffiEvent.message.value.callerIdentity,\n ffiEvent.message.value.payload,\n ffiEvent.message.value.responseTimeoutMs,\n );\n }\n return;\n } else if (\n ffiEvent.message.case != 'roomEvent' ||\n ffiEvent.message.value.roomHandle != this.ffiHandle.handle\n ) {\n return;\n }\n\n const ev = ffiEvent.message.value.message;\n if (ev.case == 'participantConnected') {\n const participant = this.createRemoteParticipant(ev.value.info!);\n this.remoteParticipants.set(participant.identity, participant);\n this.emit(RoomEvent.ParticipantConnected, participant);\n } else if (ev.case == 'participantDisconnected') {\n const participant = this.remoteParticipants.get(ev.value.participantIdentity);\n if (participant) {\n this.remoteParticipants.delete(participant.identity);\n this.emit(RoomEvent.ParticipantDisconnected, participant);\n }\n } else if (ev.case == 'localTrackPublished') {\n const publication = this.localParticipant.trackPublications.get(ev.value.trackSid);\n if (!publication) {\n throw new TypeError('local track publication not found');\n }\n this.emit(RoomEvent.LocalTrackPublished, publication, this.localParticipant);\n } else if (ev.case == 'localTrackUnpublished') {\n const publication = this.localParticipant.trackPublications.get(ev.value.publicationSid);\n this.localParticipant.trackPublications.delete(ev.value.publicationSid);\n if (publication) {\n this.emit(RoomEvent.LocalTrackUnpublished, publication, this.localParticipant);\n }\n } else if (ev.case == 'localTrackSubscribed') {\n const publication = this.localParticipant.trackPublications.get(ev.value.trackSid);\n if (!publication) {\n throw new TypeError('local track publication not found');\n }\n publication.resolveFirstSubscription();\n this.emit(RoomEvent.LocalTrackSubscribed, publication.track!);\n } else if (ev.case == 'trackPublished') {\n const participant = this.requireRemoteParticipant(ev.value.participantIdentity);\n const publication = new RemoteTrackPublication(ev.value.publication!);\n participant.trackPublications.set(publication.sid, publication);\n this.emit(RoomEvent.TrackPublished, publication, participant);\n } else if (ev.case == 'trackUnpublished') {\n const participant = this.requireRemoteParticipant(ev.value.participantIdentity);\n const publication = participant.trackPublications.get(ev.value.publicationSid);\n participant.trackPublications.delete(ev.value.publicationSid);\n if (publication) {\n this.emit(RoomEvent.TrackUnpublished, publication, participant);\n }\n } else if (ev.case == 'trackSubscribed') {\n const ownedTrack = ev.value.track!;\n const trackInfo = ownedTrack.info!;\n const { participant, publication } = this.requirePublicationOfRemoteParticipant(\n ev.value.participantIdentity,\n trackInfo.sid,\n );\n publication.subscribed = true;\n if (trackInfo.kind == TrackKind.KIND_VIDEO) {\n publication.track = new RemoteVideoTrack(ownedTrack);\n } else if (trackInfo.kind == TrackKind.KIND_AUDIO) {\n publication.track = new RemoteAudioTrack(ownedTrack);\n }\n\n this.emit(RoomEvent.TrackSubscribed, publication.track!, publication, participant);\n } else if (ev.case == 'trackUnsubscribed') {\n const { participant, publication } = this.requirePublicationOfRemoteParticipant(\n ev.value.participantIdentity,\n ev.value.trackSid,\n );\n const track = publication.track!;\n publication.track = undefined;\n publication.subscribed = false;\n this.emit(RoomEvent.TrackUnsubscribed, track, publication, participant);\n } else if (ev.case == 'trackSubscriptionFailed') {\n const participant = this.requireRemoteParticipant(ev.value.participantIdentity);\n this.emit(RoomEvent.TrackSubscriptionFailed, ev.value.trackSid, participant, ev.value.error);\n } else if (ev.case == 'trackMuted') {\n const { participant, publication } = this.requirePublicationOfParticipant(\n ev.value.participantIdentity,\n ev.value.trackSid,\n );\n publication.info.muted = true;\n if (publication.track) {\n publication.track.info.muted = true;\n }\n this.emit(RoomEvent.TrackMuted, publication, participant);\n } else if (ev.case == 'trackUnmuted') {\n const { participant, publication } = this.requirePublicationOfParticipant(\n ev.value.participantIdentity,\n ev.value.trackSid,\n );\n publication.info.muted = false;\n if (publication.track) {\n publication.track.info.muted = false;\n }\n this.emit(RoomEvent.TrackUnmuted, publication, participant);\n } else if (ev.case == 'activeSpeakersChanged') {\n const activeSpeakers = ev.value.participantIdentities.map((identity) =>\n this.requireParticipantByIdentity(identity),\n );\n this.emit(RoomEvent.ActiveSpeakersChanged, activeSpeakers);\n } else if (ev.case == 'roomMetadataChanged') {\n this.info.metadata = ev.value.metadata;\n this.emit(RoomEvent.RoomMetadataChanged, this.info.metadata);\n } else if (ev.case == 'participantMetadataChanged') {\n const participant = this.requireParticipantByIdentity(ev.value.participantIdentity);\n participant.info.metadata = ev.value.metadata;\n this.emit(RoomEvent.ParticipantMetadataChanged, participant.metadata, participant);\n } else if (ev.case == 'participantNameChanged') {\n const participant = this.requireParticipantByIdentity(ev.value.participantIdentity);\n participant.info.name = ev.value.name;\n this.emit(RoomEvent.ParticipantNameChanged, participant.name, participant);\n } else if (ev.case == 'participantAttributesChanged') {\n const participant = this.requireParticipantByIdentity(ev.value.participantIdentity);\n participant.info.attributes = ev.value.attributes.reduce(\n (acc, value) => {\n acc[value.key] = value.value;\n return acc;\n },\n {} as Record<string, string>,\n );\n if (Object.keys(ev.value.changedAttributes).length > 0) {\n const changedAttributes = ev.value.changedAttributes.reduce(\n (acc, value) => {\n acc[value.key] = value.value;\n return acc;\n },\n {} as Record<string, string>,\n );\n this.emit(RoomEvent.ParticipantAttributesChanged, changedAttributes, participant);\n }\n } else if (ev.case == 'connectionQualityChanged') {\n const participant = this.requireParticipantByIdentity(ev.value.participantIdentity);\n this.emit(RoomEvent.ConnectionQualityChanged, ev.value.quality, participant);\n } else if (ev.case == 'chatMessage') {\n const participant = this.retrieveParticipantByIdentity(ev.value.participantIdentity);\n const { id, message: messageText, timestamp, editTimestamp, generated } = ev.value.message!;\n const message: ChatMessage = {\n id,\n message: messageText,\n timestamp: Number(timestamp),\n editTimestamp: Number(editTimestamp),\n generated,\n };\n this.emit(RoomEvent.ChatMessage, message, participant);\n } else if (ev.case == 'dataPacketReceived') {\n // Can be undefined if the data is sent from a Server SDK\n const participant = this.remoteParticipants.get(ev.value.participantIdentity);\n const dataPacket = ev.value.value;\n switch (dataPacket.case) {\n case 'user':\n const data = dataPacket.value.data!.data!;\n const buffer = FfiClient.instance.copyBuffer(data.dataPtr, Number(data.dataLen));\n new FfiHandle(dataPacket.value.data!.handle!.id).dispose();\n this.emit(\n RoomEvent.DataReceived,\n buffer,\n participant,\n ev.value.kind,\n dataPacket.value.topic,\n );\n break;\n case 'sipDtmf':\n const { code, digit } = dataPacket.value;\n this.emit(RoomEvent.DtmfReceived, code, digit, participant);\n break;\n default:\n break;\n }\n } else if (ev.case == 'e2eeStateChanged') {\n if (ev.value.state == EncryptionState.INTERNAL_ERROR) {\n // throw generic error until Rust SDK is updated to supply the error alongside INTERNAL_ERROR\n this.emit(RoomEvent.EncryptionError, new Error('internal server error'));\n }\n } else if (ev.case == 'connectionStateChanged') {\n this.connectionState = ev.value.state;\n this.emit(RoomEvent.ConnectionStateChanged, this.connectionState);\n /*} else if (ev.case == 'connected') {\n this.emit(RoomEvent.Connected);*/\n } else if (ev.case == 'disconnected') {\n this.emit(RoomEvent.Disconnected, ev.value.reason);\n } else if (ev.case == 'reconnecting') {\n this.emit(RoomEvent.Reconnecting);\n } else if (ev.case == 'reconnected') {\n this.emit(RoomEvent.Reconnected);\n } else if (ev.case == 'roomSidChanged') {\n this.emit(RoomEvent.RoomSidChanged, ev.value.sid);\n }\n };\n\n private retrieveParticipantByIdentity(identity: string): Participant | undefined {\n if (this.localParticipant?.identity === identity) {\n return this.localParticipant;\n } else {\n return this.remoteParticipants.get(identity);\n }\n }\n\n private requireParticipantByIdentity(identity: string): Participant {\n if (this.localParticipant?.identity === identity) {\n return this.localParticipant;\n } else if (this.remoteParticipants.has(identity)) {\n return this.remoteParticipants.get(identity)!;\n } else {\n throw new TypeError(`participant ${identity} not found`);\n }\n }\n\n private requireRemoteParticipant(identity: string) {\n const participant = this.remoteParticipants.get(identity);\n if (!participant) {\n throw new TypeError(`participant ${identity} not found`);\n }\n return participant;\n }\n\n private requirePublicationOfParticipant(identity: string, trackSid: string) {\n const participant = this.requireParticipantByIdentity(identity);\n const publication = participant.trackPublications.get(trackSid);\n if (!publication) {\n throw new TypeError(`publication ${trackSid} not found`);\n }\n return { participant, publication };\n }\n\n private requirePublicationOfRemoteParticipant(identity: string, trackSid: string) {\n const participant = this.requireRemoteParticipant(identity);\n const publication = participant.trackPublications.get(trackSid);\n if (!publication) {\n throw new TypeError(`publication ${trackSid} not found`);\n }\n return { participant, publication };\n }\n\n private createRemoteParticipant(ownedInfo: OwnedParticipant) {\n if (this.remoteParticipants.has(ownedInfo.info!.identity)) {\n throw new Error('Participant already exists');\n }\n\n const participant = new RemoteParticipant(ownedInfo);\n this.remoteParticipants.set(ownedInfo.info!.identity, participant);\n return participant;\n }\n}\n\nexport class ConnectError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\n\nexport type RoomCallbacks = {\n participantConnected: (participant: RemoteParticipant) => void;\n participantDisconnected: (participant: RemoteParticipant) => void;\n localTrackPublished: (publication: LocalTrackPublication, participant: LocalParticipant) => void;\n localTrackUnpublished: (\n publication: LocalTrackPublication,\n participant: LocalParticipant,\n ) => void;\n localTrackSubscribed: (track: LocalTrack) => void;\n trackPublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;\n trackUnpublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;\n trackSubscribed: (\n track: RemoteTrack,\n publication: RemoteTrackPublication,\n participant: RemoteParticipant,\n ) => void;\n trackUnsubscribed: (\n track: RemoteTrack,\n publication: RemoteTrackPublication,\n participant: RemoteParticipant,\n ) => void;\n trackSubscriptionFailed: (\n trackSid: string,\n participant: RemoteParticipant,\n reason?: string,\n ) => void;\n trackMuted: (publication: TrackPublication, participant: Participant) => void;\n trackUnmuted: (publication: TrackPublication, participant: Participant) => void;\n activeSpeakersChanged: (speakers: Participant[]) => void;\n roomMetadataChanged: (metadata: string) => void;\n roomInfoUpdated: (info: RoomInfo) => void;\n participantMetadataChanged: (metadata: string | undefined, participant: Participant) => void;\n participantNameChanged: (name: string, participant: Participant) => void;\n participantAttributesChanged: (\n changedAttributes: Record<string, string>,\n participant: Participant,\n ) => void;\n connectionQualityChanged: (quality: ConnectionQuality, participant: Participant) => void;\n dataReceived: (\n payload: Uint8Array,\n participant?: RemoteParticipant,\n kind?: DataPacketKind,\n topic?: string,\n ) => void;\n chatMessage: (message: ChatMessage, participant?: Participant) => void;\n dtmfReceived: (code: number, digit: string, participant?: RemoteParticipant) => void;\n encryptionError: (error: Error) => void;\n connectionStateChanged: (state: ConnectionState) => void;\n connected: () => void;\n disconnected: (reason: DisconnectReason) => void;\n reconnecting: () => void;\n reconnected: () => void;\n roomSidChanged: (sid: string) => void;\n};\n\nexport enum RoomEvent {\n ParticipantConnected = 'participantConnected',\n ParticipantDisconnected = 'participantDisconnected',\n LocalTrackPublished = 'localTrackPublished',\n LocalTrackUnpublished = 'localTrackUnpublished',\n LocalTrackSubscribed = 'localTrackSubscribed',\n TrackPublished = 'trackPublished',\n TrackUnpublished = 'trackUnpublished',\n TrackSubscribed = 'trackSubscribed',\n TrackUnsubscribed = 'trackUnsubscribed',\n TrackSubscriptionFailed = 'trackSubscriptionFailed',\n TrackMuted = 'trackMuted',\n TrackUnmuted = 'trackUnmuted',\n ActiveSpeakersChanged = 'activeSpeakersChanged',\n RoomMetadataChanged = 'roomMetadataChanged',\n RoomSidChanged = 'roomSidChanged',\n ParticipantMetadataChanged = 'participantMetadataChanged',\n ParticipantNameChanged = 'participantNameChanged',\n ParticipantAttributesChanged = 'participantAttributesChanged',\n ConnectionQualityChanged = 'connectionQualityChanged',\n DataReceived = 'dataReceived',\n ChatMessage = 'chatMessage',\n DtmfReceived = 'dtmfReceived',\n EncryptionError = 'encryptionError',\n ConnectionStateChanged = 'connectionStateChanged',\n Connected = 'connected',\n Disconnected = 'disconnected',\n Reconnecting = 'reconnecting',\n Reconnected = 'reconnected',\n}\n"],"mappings":"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","names":["RoomEvent"]}
package/dist/rpc.cjs ADDED
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var rpc_exports = {};
20
+ __export(rpc_exports, {
21
+ RpcError: () => RpcError
22
+ });
23
+ module.exports = __toCommonJS(rpc_exports);
24
+ const _RpcError = class _RpcError extends Error {
25
+ /**
26
+ * Creates an error object with the given code and message, plus an optional data payload.
27
+ *
28
+ * If thrown in an RPC method handler, the error will be sent back to the caller.
29
+ *
30
+ * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).
31
+ */
32
+ constructor(code, message, data) {
33
+ super(message);
34
+ this.code = code;
35
+ this.message = message;
36
+ this.data = data;
37
+ }
38
+ static fromProto(proto) {
39
+ return new _RpcError(proto.code, proto.message, proto.data);
40
+ }
41
+ toProto() {
42
+ return {
43
+ code: this.code,
44
+ message: this.message,
45
+ data: this.data
46
+ };
47
+ }
48
+ /**
49
+ * Creates an error object from the code, with an auto-populated message.
50
+ *
51
+ * @internal
52
+ */
53
+ static builtIn(key, data) {
54
+ return new _RpcError(_RpcError.ErrorCode[key], _RpcError.ErrorMessage[key], data);
55
+ }
56
+ };
57
+ _RpcError.ErrorCode = {
58
+ APPLICATION_ERROR: 1500,
59
+ CONNECTION_TIMEOUT: 1501,
60
+ RESPONSE_TIMEOUT: 1502,
61
+ RECIPIENT_DISCONNECTED: 1503,
62
+ RESPONSE_PAYLOAD_TOO_LARGE: 1504,
63
+ SEND_FAILED: 1505,
64
+ UNSUPPORTED_METHOD: 1400,
65
+ RECIPIENT_NOT_FOUND: 1401,
66
+ REQUEST_PAYLOAD_TOO_LARGE: 1402,
67
+ UNSUPPORTED_SERVER: 1403
68
+ };
69
+ /**
70
+ * @internal
71
+ */
72
+ _RpcError.ErrorMessage = {
73
+ APPLICATION_ERROR: "Application error in method handler",
74
+ CONNECTION_TIMEOUT: "Connection timeout",
75
+ RESPONSE_TIMEOUT: "Response timeout",
76
+ RECIPIENT_DISCONNECTED: "Recipient disconnected",
77
+ RESPONSE_PAYLOAD_TOO_LARGE: "Response payload too large",
78
+ SEND_FAILED: "Failed to send",
79
+ UNSUPPORTED_METHOD: "Method not supported at destination",
80
+ RECIPIENT_NOT_FOUND: "Recipient not found",
81
+ REQUEST_PAYLOAD_TOO_LARGE: "Request payload too large",
82
+ UNSUPPORTED_SERVER: "RPC not supported by server"
83
+ };
84
+ let RpcError = _RpcError;
85
+ // Annotate the CommonJS export names for ESM import in node:
86
+ 0 && (module.exports = {
87
+ RpcError
88
+ });
89
+ //# sourceMappingURL=rpc.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rpc.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { RpcError as RpcError_Proto } from './proto/rpc_pb.js';\n\n/** Parameters for initiating an RPC call */\nexport interface PerformRpcParams {\n /** The `identity` of the destination participant */\n destinationIdentity: string;\n /** The method name to call */\n method: string;\n /** The method payload */\n payload: string;\n /** Timeout for receiving a response after initial connection (milliseconds). Default: 10000 */\n responseTimeout?: number;\n}\n\n/**\n * Data passed to method handler for incoming RPC invocations\n */\nexport interface RpcInvocationData {\n /**\n * The unique request ID. Will match at both sides of the call, useful for debugging or logging.\n */\n requestId: string;\n\n /**\n * The unique participant identity of the caller.\n */\n callerIdentity: string;\n\n /**\n * The payload of the request. User-definable format, typically JSON.\n */\n payload: string;\n\n /**\n * The maximum time the caller will wait for a response.\n */\n responseTimeout: number;\n}\n\n/**\n * Specialized error handling for RPC methods.\n *\n * Instances of this type, when thrown in a method handler, will have their `message`\n * serialized and sent across the wire. The caller will receive an equivalent error on the other side.\n *\n * Built-in types are included but developers may use any string, with a max length of 256 bytes.\n */\n\nexport class RpcError extends Error {\n code: typeof RpcError.ErrorCode | number;\n data?: string;\n\n /**\n * Creates an error object with the given code and message, plus an optional data payload.\n *\n * If thrown in an RPC method handler, the error will be sent back to the caller.\n *\n * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).\n */\n constructor(code: number, message: string, data?: string) {\n super(message);\n this.code = code;\n this.message = message;\n this.data = data;\n }\n\n static fromProto(proto: RpcError_Proto) {\n return new RpcError(proto.code, proto.message, proto.data);\n }\n\n toProto() {\n return {\n code: this.code as number,\n message: this.message,\n data: this.data,\n } as RpcError_Proto;\n }\n\n static ErrorCode = {\n APPLICATION_ERROR: 1500,\n CONNECTION_TIMEOUT: 1501,\n RESPONSE_TIMEOUT: 1502,\n RECIPIENT_DISCONNECTED: 1503,\n RESPONSE_PAYLOAD_TOO_LARGE: 1504,\n SEND_FAILED: 1505,\n\n UNSUPPORTED_METHOD: 1400,\n RECIPIENT_NOT_FOUND: 1401,\n REQUEST_PAYLOAD_TOO_LARGE: 1402,\n UNSUPPORTED_SERVER: 1403,\n } as const;\n\n /**\n * @internal\n */\n static ErrorMessage: Record<keyof typeof RpcError.ErrorCode, string> = {\n APPLICATION_ERROR: 'Application error in method handler',\n CONNECTION_TIMEOUT: 'Connection timeout',\n RESPONSE_TIMEOUT: 'Response timeout',\n RECIPIENT_DISCONNECTED: 'Recipient disconnected',\n RESPONSE_PAYLOAD_TOO_LARGE: 'Response payload too large',\n SEND_FAILED: 'Failed to send',\n\n UNSUPPORTED_METHOD: 'Method not supported at destination',\n RECIPIENT_NOT_FOUND: 'Recipient not found',\n REQUEST_PAYLOAD_TOO_LARGE: 'Request payload too large',\n UNSUPPORTED_SERVER: 'RPC not supported by server',\n } as const;\n\n /**\n * Creates an error object from the code, with an auto-populated message.\n *\n * @internal\n */\n static builtIn(key: keyof typeof RpcError.ErrorCode, data?: string): RpcError {\n return new RpcError(RpcError.ErrorCode[key], RpcError.ErrorMessage[key], data);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmDO,MAAM,YAAN,MAAM,kBAAiB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWlC,YAAY,MAAc,SAAiB,MAAe;AACxD,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,UAAU,OAAuB;AACtC,WAAO,IAAI,UAAS,MAAM,MAAM,MAAM,SAAS,MAAM,IAAI;AAAA,EAC3D;AAAA,EAEA,UAAU;AACR,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsCA,OAAO,QAAQ,KAAsC,MAAyB;AAC5E,WAAO,IAAI,UAAS,UAAS,UAAU,GAAG,GAAG,UAAS,aAAa,GAAG,GAAG,IAAI;AAAA,EAC/E;AACF;AArEa,UA8BJ,YAAY;AAAA,EACjB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,aAAa;AAAA,EAEb,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,oBAAoB;AACtB;AAAA;AAAA;AAAA;AA1CW,UA+CJ,eAAgE;AAAA,EACrE,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,aAAa;AAAA,EAEb,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,oBAAoB;AACtB;AA3DK,IAAM,WAAN;","names":[]}
package/dist/rpc.js CHANGED
@@ -1,69 +1,65 @@
1
- /**
2
- * Specialized error handling for RPC methods.
3
- *
4
- * Instances of this type, when thrown in a method handler, will have their `message`
5
- * serialized and sent across the wire. The caller will receive an equivalent error on the other side.
6
- *
7
- * Built-in types are included but developers may use any string, with a max length of 256 bytes.
8
- */
9
- export class RpcError extends Error {
10
- /**
11
- * Creates an error object with the given code and message, plus an optional data payload.
12
- *
13
- * If thrown in an RPC method handler, the error will be sent back to the caller.
14
- *
15
- * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).
16
- */
17
- constructor(code, message, data) {
18
- super(message);
19
- this.code = code;
20
- this.message = message;
21
- this.data = data;
22
- }
23
- static fromProto(proto) {
24
- return new RpcError(proto.code, proto.message, proto.data);
25
- }
26
- toProto() {
27
- return {
28
- code: this.code,
29
- message: this.message,
30
- data: this.data,
31
- };
32
- }
33
- /**
34
- * Creates an error object from the code, with an auto-populated message.
35
- *
36
- * @internal
37
- */
38
- static builtIn(key, data) {
39
- return new RpcError(RpcError.ErrorCode[key], RpcError.ErrorMessage[key], data);
40
- }
41
- }
42
- RpcError.ErrorCode = {
43
- APPLICATION_ERROR: 1500,
44
- CONNECTION_TIMEOUT: 1501,
45
- RESPONSE_TIMEOUT: 1502,
46
- RECIPIENT_DISCONNECTED: 1503,
47
- RESPONSE_PAYLOAD_TOO_LARGE: 1504,
48
- SEND_FAILED: 1505,
49
- UNSUPPORTED_METHOD: 1400,
50
- RECIPIENT_NOT_FOUND: 1401,
51
- REQUEST_PAYLOAD_TOO_LARGE: 1402,
52
- UNSUPPORTED_SERVER: 1403,
1
+ const _RpcError = class _RpcError extends Error {
2
+ /**
3
+ * Creates an error object with the given code and message, plus an optional data payload.
4
+ *
5
+ * If thrown in an RPC method handler, the error will be sent back to the caller.
6
+ *
7
+ * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).
8
+ */
9
+ constructor(code, message, data) {
10
+ super(message);
11
+ this.code = code;
12
+ this.message = message;
13
+ this.data = data;
14
+ }
15
+ static fromProto(proto) {
16
+ return new _RpcError(proto.code, proto.message, proto.data);
17
+ }
18
+ toProto() {
19
+ return {
20
+ code: this.code,
21
+ message: this.message,
22
+ data: this.data
23
+ };
24
+ }
25
+ /**
26
+ * Creates an error object from the code, with an auto-populated message.
27
+ *
28
+ * @internal
29
+ */
30
+ static builtIn(key, data) {
31
+ return new _RpcError(_RpcError.ErrorCode[key], _RpcError.ErrorMessage[key], data);
32
+ }
33
+ };
34
+ _RpcError.ErrorCode = {
35
+ APPLICATION_ERROR: 1500,
36
+ CONNECTION_TIMEOUT: 1501,
37
+ RESPONSE_TIMEOUT: 1502,
38
+ RECIPIENT_DISCONNECTED: 1503,
39
+ RESPONSE_PAYLOAD_TOO_LARGE: 1504,
40
+ SEND_FAILED: 1505,
41
+ UNSUPPORTED_METHOD: 1400,
42
+ RECIPIENT_NOT_FOUND: 1401,
43
+ REQUEST_PAYLOAD_TOO_LARGE: 1402,
44
+ UNSUPPORTED_SERVER: 1403
53
45
  };
54
46
  /**
55
47
  * @internal
56
48
  */
57
- RpcError.ErrorMessage = {
58
- APPLICATION_ERROR: 'Application error in method handler',
59
- CONNECTION_TIMEOUT: 'Connection timeout',
60
- RESPONSE_TIMEOUT: 'Response timeout',
61
- RECIPIENT_DISCONNECTED: 'Recipient disconnected',
62
- RESPONSE_PAYLOAD_TOO_LARGE: 'Response payload too large',
63
- SEND_FAILED: 'Failed to send',
64
- UNSUPPORTED_METHOD: 'Method not supported at destination',
65
- RECIPIENT_NOT_FOUND: 'Recipient not found',
66
- REQUEST_PAYLOAD_TOO_LARGE: 'Request payload too large',
67
- UNSUPPORTED_SERVER: 'RPC not supported by server',
49
+ _RpcError.ErrorMessage = {
50
+ APPLICATION_ERROR: "Application error in method handler",
51
+ CONNECTION_TIMEOUT: "Connection timeout",
52
+ RESPONSE_TIMEOUT: "Response timeout",
53
+ RECIPIENT_DISCONNECTED: "Recipient disconnected",
54
+ RESPONSE_PAYLOAD_TOO_LARGE: "Response payload too large",
55
+ SEND_FAILED: "Failed to send",
56
+ UNSUPPORTED_METHOD: "Method not supported at destination",
57
+ RECIPIENT_NOT_FOUND: "Recipient not found",
58
+ REQUEST_PAYLOAD_TOO_LARGE: "Request payload too large",
59
+ UNSUPPORTED_SERVER: "RPC not supported by server"
60
+ };
61
+ let RpcError = _RpcError;
62
+ export {
63
+ RpcError
68
64
  };
69
65
  //# sourceMappingURL=rpc.js.map
package/dist/rpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../src/rpc.ts"],"names":[],"mappings":"AA0CA;;;;;;;GAOG;AAEH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAIjC;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,OAAe,EAAE,IAAa;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAqB;QACpC,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAc;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;SACE,CAAC;IACtB,CAAC;IAiCD;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAoC,EAAE,IAAa;QAChE,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACjF,CAAC;;AAtCM,kBAAS,GAAG;IACjB,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,IAAI;IACtB,sBAAsB,EAAE,IAAI;IAC5B,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,IAAI;IAEjB,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,yBAAyB,EAAE,IAAI;IAC/B,kBAAkB,EAAE,IAAI;CAChB,CAAC;AAEX;;GAEG;AACI,qBAAY,GAAoD;IACrE,iBAAiB,EAAE,qCAAqC;IACxD,kBAAkB,EAAE,oBAAoB;IACxC,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,wBAAwB;IAChD,0BAA0B,EAAE,4BAA4B;IACxD,WAAW,EAAE,gBAAgB;IAE7B,kBAAkB,EAAE,qCAAqC;IACzD,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB,EAAE,2BAA2B;IACtD,kBAAkB,EAAE,6BAA6B;CACzC,CAAC"}
1
+ {"version":3,"sources":["../src/rpc.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport type { RpcError as RpcError_Proto } from './proto/rpc_pb.js';\n\n/** Parameters for initiating an RPC call */\nexport interface PerformRpcParams {\n /** The `identity` of the destination participant */\n destinationIdentity: string;\n /** The method name to call */\n method: string;\n /** The method payload */\n payload: string;\n /** Timeout for receiving a response after initial connection (milliseconds). Default: 10000 */\n responseTimeout?: number;\n}\n\n/**\n * Data passed to method handler for incoming RPC invocations\n */\nexport interface RpcInvocationData {\n /**\n * The unique request ID. Will match at both sides of the call, useful for debugging or logging.\n */\n requestId: string;\n\n /**\n * The unique participant identity of the caller.\n */\n callerIdentity: string;\n\n /**\n * The payload of the request. User-definable format, typically JSON.\n */\n payload: string;\n\n /**\n * The maximum time the caller will wait for a response.\n */\n responseTimeout: number;\n}\n\n/**\n * Specialized error handling for RPC methods.\n *\n * Instances of this type, when thrown in a method handler, will have their `message`\n * serialized and sent across the wire. The caller will receive an equivalent error on the other side.\n *\n * Built-in types are included but developers may use any string, with a max length of 256 bytes.\n */\n\nexport class RpcError extends Error {\n code: typeof RpcError.ErrorCode | number;\n data?: string;\n\n /**\n * Creates an error object with the given code and message, plus an optional data payload.\n *\n * If thrown in an RPC method handler, the error will be sent back to the caller.\n *\n * Error codes 1001-1999 are reserved for built-in errors (see RpcError.ErrorCode for their meanings).\n */\n constructor(code: number, message: string, data?: string) {\n super(message);\n this.code = code;\n this.message = message;\n this.data = data;\n }\n\n static fromProto(proto: RpcError_Proto) {\n return new RpcError(proto.code, proto.message, proto.data);\n }\n\n toProto() {\n return {\n code: this.code as number,\n message: this.message,\n data: this.data,\n } as RpcError_Proto;\n }\n\n static ErrorCode = {\n APPLICATION_ERROR: 1500,\n CONNECTION_TIMEOUT: 1501,\n RESPONSE_TIMEOUT: 1502,\n RECIPIENT_DISCONNECTED: 1503,\n RESPONSE_PAYLOAD_TOO_LARGE: 1504,\n SEND_FAILED: 1505,\n\n UNSUPPORTED_METHOD: 1400,\n RECIPIENT_NOT_FOUND: 1401,\n REQUEST_PAYLOAD_TOO_LARGE: 1402,\n UNSUPPORTED_SERVER: 1403,\n } as const;\n\n /**\n * @internal\n */\n static ErrorMessage: Record<keyof typeof RpcError.ErrorCode, string> = {\n APPLICATION_ERROR: 'Application error in method handler',\n CONNECTION_TIMEOUT: 'Connection timeout',\n RESPONSE_TIMEOUT: 'Response timeout',\n RECIPIENT_DISCONNECTED: 'Recipient disconnected',\n RESPONSE_PAYLOAD_TOO_LARGE: 'Response payload too large',\n SEND_FAILED: 'Failed to send',\n\n UNSUPPORTED_METHOD: 'Method not supported at destination',\n RECIPIENT_NOT_FOUND: 'Recipient not found',\n REQUEST_PAYLOAD_TOO_LARGE: 'Request payload too large',\n UNSUPPORTED_SERVER: 'RPC not supported by server',\n } as const;\n\n /**\n * Creates an error object from the code, with an auto-populated message.\n *\n * @internal\n */\n static builtIn(key: keyof typeof RpcError.ErrorCode, data?: string): RpcError {\n return new RpcError(RpcError.ErrorCode[key], RpcError.ErrorMessage[key], data);\n }\n}\n"],"mappings":"AAmDO,MAAM,YAAN,MAAM,kBAAiB,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWlC,YAAY,MAAc,SAAiB,MAAe;AACxD,UAAM,OAAO;AACb,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,UAAU,OAAuB;AACtC,WAAO,IAAI,UAAS,MAAM,MAAM,MAAM,SAAS,MAAM,IAAI;AAAA,EAC3D;AAAA,EAEA,UAAU;AACR,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsCA,OAAO,QAAQ,KAAsC,MAAyB;AAC5E,WAAO,IAAI,UAAS,UAAS,UAAU,GAAG,GAAG,UAAS,aAAa,GAAG,GAAG,IAAI;AAAA,EAC/E;AACF;AArEa,UA8BJ,YAAY;AAAA,EACjB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,aAAa;AAAA,EAEb,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,oBAAoB;AACtB;AAAA;AAAA;AAAA;AA1CW,UA+CJ,eAAgE;AAAA,EACrE,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,4BAA4B;AAAA,EAC5B,aAAa;AAAA,EAEb,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,2BAA2B;AAAA,EAC3B,oBAAoB;AACtB;AA3DK,IAAM,WAAN;","names":[]}
package/dist/track.cjs ADDED
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var track_exports = {};
20
+ __export(track_exports, {
21
+ LocalAudioTrack: () => LocalAudioTrack,
22
+ LocalVideoTrack: () => LocalVideoTrack,
23
+ RemoteAudioTrack: () => RemoteAudioTrack,
24
+ RemoteVideoTrack: () => RemoteVideoTrack,
25
+ Track: () => Track
26
+ });
27
+ module.exports = __toCommonJS(track_exports);
28
+ var import_protobuf = require("@bufbuild/protobuf");
29
+ var import_ffi_client = require("./ffi_client.cjs");
30
+ var import_track_pb = require("./proto/track_pb.cjs");
31
+ class Track {
32
+ constructor(owned) {
33
+ this.info = owned.info;
34
+ this.ffi_handle = new import_ffi_client.FfiHandle(owned.handle.id);
35
+ }
36
+ get sid() {
37
+ return this.info.sid;
38
+ }
39
+ get name() {
40
+ return this.info.name;
41
+ }
42
+ get kind() {
43
+ return this.info.kind;
44
+ }
45
+ get stream_state() {
46
+ return this.info.streamState;
47
+ }
48
+ get muted() {
49
+ return this.info.muted;
50
+ }
51
+ }
52
+ class LocalAudioTrack extends Track {
53
+ constructor(owned) {
54
+ super(owned);
55
+ }
56
+ static createAudioTrack(name, source) {
57
+ const req = (0, import_protobuf.create)(import_track_pb.CreateAudioTrackRequestSchema, {
58
+ name,
59
+ sourceHandle: source.ffiHandle.handle
60
+ });
61
+ const res = import_ffi_client.FfiClient.instance.request({
62
+ message: { case: "createAudioTrack", value: req }
63
+ });
64
+ return new LocalAudioTrack(res.track);
65
+ }
66
+ }
67
+ class LocalVideoTrack extends Track {
68
+ constructor(owned) {
69
+ super(owned);
70
+ }
71
+ static createVideoTrack(name, source) {
72
+ const req = (0, import_protobuf.create)(import_track_pb.CreateVideoTrackRequestSchema, {
73
+ name,
74
+ sourceHandle: source.ffiHandle.handle
75
+ });
76
+ const res = import_ffi_client.FfiClient.instance.request({
77
+ message: { case: "createVideoTrack", value: req }
78
+ });
79
+ return new LocalVideoTrack(res.track);
80
+ }
81
+ }
82
+ class RemoteVideoTrack extends Track {
83
+ constructor(owned) {
84
+ super(owned);
85
+ }
86
+ }
87
+ class RemoteAudioTrack extends Track {
88
+ constructor(owned) {
89
+ super(owned);
90
+ }
91
+ }
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ LocalAudioTrack,
95
+ LocalVideoTrack,
96
+ RemoteAudioTrack,
97
+ RemoteVideoTrack,
98
+ Track
99
+ });
100
+ //# sourceMappingURL=track.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/track.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { create } from '@bufbuild/protobuf';\nimport type { AudioSource } from './audio_source.js';\nimport { FfiClient, FfiHandle } from './ffi_client.js';\nimport type {\n CreateAudioTrackResponse,\n CreateVideoTrackResponse,\n OwnedTrack,\n StreamState,\n TrackInfo,\n TrackKind,\n} from './proto/track_pb.js';\nimport { CreateAudioTrackRequestSchema, CreateVideoTrackRequestSchema } from './proto/track_pb.js';\nimport type { VideoSource } from './video_source.js';\n\nexport abstract class Track {\n /** @internal */\n info: TrackInfo;\n\n /** @internal */\n ffi_handle: FfiHandle;\n\n constructor(owned: OwnedTrack) {\n this.info = owned.info!;\n this.ffi_handle = new FfiHandle(owned.handle!.id);\n }\n\n get sid(): string {\n return this.info.sid;\n }\n\n get name(): string {\n return this.info.name;\n }\n\n get kind(): TrackKind {\n return this.info.kind;\n }\n\n get stream_state(): StreamState {\n return this.info.streamState;\n }\n\n get muted(): boolean {\n return this.info.muted;\n }\n}\n\nexport class LocalAudioTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n\n static createAudioTrack(name: string, source: AudioSource): LocalAudioTrack {\n const req = create(CreateAudioTrackRequestSchema, {\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateAudioTrackResponse>({\n message: { case: 'createAudioTrack', value: req },\n });\n\n return new LocalAudioTrack(res.track!);\n }\n}\n\nexport class LocalVideoTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n\n static createVideoTrack(name: string, source: VideoSource): LocalVideoTrack {\n const req = create(CreateVideoTrackRequestSchema, {\n name: name,\n sourceHandle: source.ffiHandle.handle,\n });\n\n const res = FfiClient.instance.request<CreateVideoTrackResponse>({\n message: { case: 'createVideoTrack', value: req },\n });\n\n return new LocalVideoTrack(res.track!);\n }\n}\n\nexport class RemoteVideoTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport class RemoteAudioTrack extends Track {\n constructor(owned: OwnedTrack) {\n super(owned);\n }\n}\n\nexport type LocalTrack = LocalVideoTrack | LocalAudioTrack;\nexport type RemoteTrack = RemoteVideoTrack | RemoteAudioTrack;\nexport type AudioTrack = LocalAudioTrack | RemoteAudioTrack;\nexport type VideoTrack = LocalVideoTrack | RemoteVideoTrack;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,sBAAuB;AAEvB,wBAAqC;AASrC,sBAA6E;AAGtE,MAAe,MAAM;AAAA,EAO1B,YAAY,OAAmB;AAC7B,SAAK,OAAO,MAAM;AAClB,SAAK,aAAa,IAAI,4BAAU,MAAM,OAAQ,EAAE;AAAA,EAClD;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAkB;AACpB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,eAA4B;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAiB;AACnB,WAAO,KAAK,KAAK;AAAA,EACnB;AACF;AAEO,MAAM,wBAAwB,MAAM;AAAA,EACzC,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AAAA,EAEA,OAAO,iBAAiB,MAAc,QAAsC;AAC1E,UAAM,UAAM,wBAAO,+CAA+B;AAAA,MAChD;AAAA,MACA,cAAc,OAAO,UAAU;AAAA,IACjC,CAAC;AAED,UAAM,MAAM,4BAAU,SAAS,QAAkC;AAAA,MAC/D,SAAS,EAAE,MAAM,oBAAoB,OAAO,IAAI;AAAA,IAClD,CAAC;AAED,WAAO,IAAI,gBAAgB,IAAI,KAAM;AAAA,EACvC;AACF;AAEO,MAAM,wBAAwB,MAAM;AAAA,EACzC,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AAAA,EAEA,OAAO,iBAAiB,MAAc,QAAsC;AAC1E,UAAM,UAAM,wBAAO,+CAA+B;AAAA,MAChD;AAAA,MACA,cAAc,OAAO,UAAU;AAAA,IACjC,CAAC;AAED,UAAM,MAAM,4BAAU,SAAS,QAAkC;AAAA,MAC/D,SAAS,EAAE,MAAM,oBAAoB,OAAO,IAAI;AAAA,IAClD,CAAC;AAED,WAAO,IAAI,gBAAgB,IAAI,KAAM;AAAA,EACvC;AACF;AAEO,MAAM,yBAAyB,MAAM;AAAA,EAC1C,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AACF;AAEO,MAAM,yBAAyB,MAAM;AAAA,EAC1C,YAAY,OAAmB;AAC7B,UAAM,KAAK;AAAA,EACb;AACF;","names":[]}
package/dist/track.js CHANGED
@@ -1,68 +1,72 @@
1
- // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
- //
3
- // SPDX-License-Identifier: Apache-2.0
4
- import { create } from '@bufbuild/protobuf';
5
- import { FfiClient, FfiHandle } from './ffi_client.js';
6
- import { CreateAudioTrackRequestSchema, CreateVideoTrackRequestSchema } from './proto/track_pb.js';
7
- export class Track {
8
- constructor(owned) {
9
- this.info = owned.info;
10
- this.ffi_handle = new FfiHandle(owned.handle.id);
11
- }
12
- get sid() {
13
- return this.info.sid;
14
- }
15
- get name() {
16
- return this.info.name;
17
- }
18
- get kind() {
19
- return this.info.kind;
20
- }
21
- get stream_state() {
22
- return this.info.streamState;
23
- }
24
- get muted() {
25
- return this.info.muted;
26
- }
1
+ import { create } from "@bufbuild/protobuf";
2
+ import { FfiClient, FfiHandle } from "./ffi_client.js";
3
+ import { CreateAudioTrackRequestSchema, CreateVideoTrackRequestSchema } from "./proto/track_pb.js";
4
+ class Track {
5
+ constructor(owned) {
6
+ this.info = owned.info;
7
+ this.ffi_handle = new FfiHandle(owned.handle.id);
8
+ }
9
+ get sid() {
10
+ return this.info.sid;
11
+ }
12
+ get name() {
13
+ return this.info.name;
14
+ }
15
+ get kind() {
16
+ return this.info.kind;
17
+ }
18
+ get stream_state() {
19
+ return this.info.streamState;
20
+ }
21
+ get muted() {
22
+ return this.info.muted;
23
+ }
27
24
  }
28
- export class LocalAudioTrack extends Track {
29
- constructor(owned) {
30
- super(owned);
31
- }
32
- static createAudioTrack(name, source) {
33
- const req = create(CreateAudioTrackRequestSchema, {
34
- name: name,
35
- sourceHandle: source.ffiHandle.handle,
36
- });
37
- const res = FfiClient.instance.request({
38
- message: { case: 'createAudioTrack', value: req },
39
- });
40
- return new LocalAudioTrack(res.track);
41
- }
25
+ class LocalAudioTrack extends Track {
26
+ constructor(owned) {
27
+ super(owned);
28
+ }
29
+ static createAudioTrack(name, source) {
30
+ const req = create(CreateAudioTrackRequestSchema, {
31
+ name,
32
+ sourceHandle: source.ffiHandle.handle
33
+ });
34
+ const res = FfiClient.instance.request({
35
+ message: { case: "createAudioTrack", value: req }
36
+ });
37
+ return new LocalAudioTrack(res.track);
38
+ }
42
39
  }
43
- export class LocalVideoTrack extends Track {
44
- constructor(owned) {
45
- super(owned);
46
- }
47
- static createVideoTrack(name, source) {
48
- const req = create(CreateVideoTrackRequestSchema, {
49
- name: name,
50
- sourceHandle: source.ffiHandle.handle,
51
- });
52
- const res = FfiClient.instance.request({
53
- message: { case: 'createVideoTrack', value: req },
54
- });
55
- return new LocalVideoTrack(res.track);
56
- }
40
+ class LocalVideoTrack extends Track {
41
+ constructor(owned) {
42
+ super(owned);
43
+ }
44
+ static createVideoTrack(name, source) {
45
+ const req = create(CreateVideoTrackRequestSchema, {
46
+ name,
47
+ sourceHandle: source.ffiHandle.handle
48
+ });
49
+ const res = FfiClient.instance.request({
50
+ message: { case: "createVideoTrack", value: req }
51
+ });
52
+ return new LocalVideoTrack(res.track);
53
+ }
57
54
  }
58
- export class RemoteVideoTrack extends Track {
59
- constructor(owned) {
60
- super(owned);
61
- }
55
+ class RemoteVideoTrack extends Track {
56
+ constructor(owned) {
57
+ super(owned);
58
+ }
62
59
  }
63
- export class RemoteAudioTrack extends Track {
64
- constructor(owned) {
65
- super(owned);
66
- }
60
+ class RemoteAudioTrack extends Track {
61
+ constructor(owned) {
62
+ super(owned);
63
+ }
67
64
  }
65
+ export {
66
+ LocalAudioTrack,
67
+ LocalVideoTrack,
68
+ RemoteAudioTrack,
69
+ RemoteVideoTrack,
70
+ Track
71
+ };
68
72
  //# sourceMappingURL=track.js.map