{"version":3,"file":"index.cjs","sources":["../../../src/lib/index.ts"],"sourcesContent":["import nodeDataChannel from './node-datachannel';\nimport _DataChannelStream from './datachannel-stream';\nimport {\n  Channel,\n  DataChannelInitConfig,\n  DescriptionType,\n  Direction,\n  LogLevel,\n  RtcConfig,\n  RTCIceConnectionState,\n  RTCIceGatheringState,\n  RTCPeerConnectionState,\n  RTCSignalingState,\n  SctpSettings,\n  SelectedCandidateInfo,\n} from './types';\nimport type { CertificateFingerprint, IceUdpMuxRequest, LocalDescriptionInit } from './types';\n\nexport function preload(): void {\n  nodeDataChannel.preload();\n}\nexport function initLogger(level: LogLevel): void {\n  nodeDataChannel.initLogger(level);\n}\nexport function cleanup(): void {\n  nodeDataChannel.cleanup();\n}\nexport function setSctpSettings(settings: SctpSettings): void {\n  nodeDataChannel.setSctpSettings(settings);\n}\nexport function getLibraryVersion(): string {\n  return nodeDataChannel.getLibraryVersion();\n}\n\nexport interface Audio {\n  addAudioCodec(payloadType: number, codec: string, profile?: string): void;\n  addOpusCodec(payloadType: number, profile?: string): string;\n  direction(): Direction;\n  generateSdp(eol: string, addr: string, port: number): string;\n  mid(): string;\n  setDirection(dir: Direction): void;\n  description(): string;\n  removeFormat(fmt: string): void;\n  addSSRC(ssrc: number, name?: string, msid?: string, trackID?: string): void;\n  removeSSRC(ssrc: number): void;\n  replaceSSRC(oldSsrc: number, ssrc: number, name?: string, msid?: string, trackID?: string): void;\n  hasSSRC(ssrc: number): boolean;\n  getSSRCs(): number[];\n  getCNameForSsrc(ssrc: number): string;\n  setBitrate(bitRate: number): void;\n  getBitrate(): number;\n  hasPayloadType(payloadType: number): boolean;\n  addRTXCodec(payloadType: number, originalPayloadType: number, clockRate: number): void;\n  addRTPMap(): void;\n  parseSdpLine(line: string): void;\n}\nexport const Audio: {\n  new (mid: string, dir: Direction): Audio;\n} = nodeDataChannel.Audio;\n\nexport interface Video {\n  addVideoCodec(payloadType: number, codec: string, profile?: string): void;\n  addH264Codec(payloadType: number, profile?: string): void;\n  addVP8Codec(payloadType: number): void;\n  addVP9Codec(payloadType: number): void;\n  direction(): Direction;\n  generateSdp(eol: string, addr: string, port: number): string;\n  mid(): string;\n  setDirection(dir: Direction): void;\n  description(): string;\n  removeFormat(fmt: string): void;\n  addSSRC(ssrc: number, name?: string, msid?: string, trackID?: string): void;\n  removeSSRC(ssrc: number): void;\n  replaceSSRC(oldSsrc: number, ssrc: number, name?: string, msid?: string, trackID?: string): void;\n  hasSSRC(ssrc: number): boolean;\n  getSSRCs(): number[];\n  getCNameForSsrc(ssrc: number): string;\n  setBitrate(bitRate: number): void;\n  getBitrate(): number;\n  hasPayloadType(payloadType: number): boolean;\n  addRTXCodec(payloadType: number, originalPayloadType: number, clockRate: number): void;\n  addRTPMap(): void;\n  parseSdpLine(line: string): void;\n}\nexport const Video: {\n  new (mid: string, dir: Direction): Video;\n} = nodeDataChannel.Video;\n\nexport interface Track {\n  direction(): Direction;\n  mid(): string;\n  type(): string;\n  close(): void;\n  sendMessage(msg: string): boolean;\n  sendMessageBinary(buffer: Buffer): boolean;\n  isOpen(): boolean;\n  isClosed(): boolean;\n  bufferedAmount(): number;\n  maxMessageSize(): number;\n  requestBitrate(bitRate: number): boolean;\n  setBufferedAmountLowThreshold(newSize: number): void;\n  requestKeyframe(): boolean;\n  setMediaHandler(handler: RtcpReceivingSession): void;\n  onOpen(cb: () => void): void;\n  onClosed(cb: () => void): void;\n  onError(cb: (err: string) => void): void;\n  onMessage(cb: (msg: Buffer) => void): void;\n}\nexport const Track: {\n  new (): Track;\n} = nodeDataChannel.Track;\n\nexport interface DataChannel extends Channel {\n  getLabel(): string;\n  getId(): number;\n  getProtocol(): string;\n\n  // Channel implementation\n  close(): void;\n  sendMessage(msg: string): boolean;\n  sendMessageBinary(buffer: Buffer | Uint8Array): boolean;\n  isOpen(): boolean;\n  bufferedAmount(): number;\n  maxMessageSize(): number;\n  setBufferedAmountLowThreshold(newSize: number): void;\n  onOpen(cb: () => void): void;\n  onClosed(cb: () => void): void;\n  onError(cb: (err: string) => void): void;\n  onBufferedAmountLow(cb: () => void): void;\n  onMessage(cb: (msg: string | Buffer | ArrayBuffer) => void): void;\n}\nexport const DataChannel: {\n  // DataChannel implementation\n} = nodeDataChannel.DataChannel;\n\nexport interface PeerConnection {\n  close(): void;\n  setLocalDescription(type?: DescriptionType, init?: LocalDescriptionInit): void;\n  setRemoteDescription(sdp: string, type: DescriptionType): void;\n  localDescription(): { type: DescriptionType; sdp: string } | null;\n  remoteDescription(): { type: DescriptionType; sdp: string } | null;\n  remoteFingerprint(): CertificateFingerprint;\n  addRemoteCandidate(candidate: string, mid: string): void;\n  createDataChannel(label: string, config?: DataChannelInitConfig): DataChannel;\n  addTrack(media: Video | Audio): Track;\n  hasMedia(): boolean;\n  state(): RTCPeerConnectionState;\n  iceState(): RTCIceConnectionState;\n  signalingState(): RTCSignalingState;\n  gatheringState(): RTCIceGatheringState;\n  onLocalDescription(cb: (sdp: string, type: DescriptionType) => void): void;\n  onLocalCandidate(cb: (candidate: string, mid: string) => void): void;\n  onStateChange(cb: (state: string) => void): void;\n  onIceStateChange(cb: (state: string) => void): void;\n  onSignalingStateChange(cb: (state: string) => void): void;\n  onGatheringStateChange(cb: (state: string) => void): void;\n  onDataChannel(cb: (dc: DataChannel) => void): void;\n  onTrack(cb: (track: Track) => void): void;\n  bytesSent(): number;\n  bytesReceived(): number;\n  rtt(): number;\n  getSelectedCandidatePair(): {\n    local: SelectedCandidateInfo;\n    remote: SelectedCandidateInfo;\n  } | null;\n  maxDataChannelId(): number;\n  maxMessageSize(): number;\n}\nexport const PeerConnection: {\n  new (peerName: string, config: RtcConfig): PeerConnection;\n} = nodeDataChannel.PeerConnection;\n\nexport interface IceUdpMuxListener {\n  address?: string;\n  port: number;\n  stop(): void;\n  onUnhandledStunRequest(cb: (req: IceUdpMuxRequest) => void): void;\n}\nexport const IceUdpMuxListener: {\n  new (port: number, address?: string): IceUdpMuxListener;\n} = nodeDataChannel.IceUdpMuxListener;\n\nexport interface RtcpReceivingSession {}\n\nexport const RtcpReceivingSession: {\n  new (): RtcpReceivingSession;\n} = nodeDataChannel.RtcpReceivingSession;\n\nexport const DataChannelStream = _DataChannelStream;\n\nexport default {\n  initLogger,\n  cleanup,\n  preload,\n  setSctpSettings,\n  getLibraryVersion,\n  RtcpReceivingSession,\n  Track,\n  Video,\n  Audio,\n  DataChannel,\n  PeerConnection,\n  DataChannelStream,\n  IceUdpMuxListener,\n};\n\n// Types\n// https://github.com/murat-dogan/node-datachannel/issues/300\nexport * from './types';\n"],"names":["nodeDataChannel","_DataChannelStream"],"mappings":";;;;;;;AAkBO,SAAS,OAAA,GAAgB;AAC9B,EAAAA,uBAAA,CAAgB,OAAA,EAAQ;AAC1B;AACO,SAAS,WAAW,KAAA,EAAuB;AAChD,EAAAA,uBAAA,CAAgB,WAAW,KAAK,CAAA;AAClC;AACO,SAAS,OAAA,GAAgB;AAC9B,EAAAA,uBAAA,CAAgB,OAAA,EAAQ;AAC1B;AACO,SAAS,gBAAgB,QAAA,EAA8B;AAC5D,EAAAA,uBAAA,CAAgB,gBAAgB,QAAQ,CAAA;AAC1C;AACO,SAAS,iBAAA,GAA4B;AAC1C,EAAA,OAAOA,wBAAgB,iBAAA,EAAkB;AAC3C;AAwBO,MAAM,QAETA,uBAAA,CAAgB;AA0Bb,MAAM,QAETA,uBAAA,CAAgB;AAsBb,MAAM,QAETA,uBAAA,CAAgB;AAqBb,MAAM,cAETA,uBAAA,CAAgB;AAmCb,MAAM,iBAETA,uBAAA,CAAgB;AAQb,MAAM,oBAETA,uBAAA,CAAgB;AAIb,MAAM,uBAETA,uBAAA,CAAgB;AAEb,MAAM,iBAAA,GAAoBC;AAEjC,QAAe;AAAA,EACb,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,oBAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA;;;;;;;;;;;;;;;;;"}