{"version":3,"file":"index.cjs","sources":["../../../src/lib/index.ts"],"sourcesContent":["import nodeDataChannel from './node-datachannel';\nimport _DataChannelStream from './datachannel-stream';\nimport { WebSocketServer } from './websocket-server';\nimport {\n  Channel,\n  DataChannelInitConfig,\n  DescriptionType,\n  Direction,\n  LogLevel,\n  NalUnitSeparator,\n  ObuPacketization,\n  RtcConfig,\n  RTCIceConnectionState,\n  RTCIceGatheringState,\n  RTCPeerConnectionState,\n  RTCSignalingState,\n  SctpSettings,\n  SelectedCandidateInfo,\n} from './types';\nimport { WebSocket } from './websocket';\nimport type { CertificateFingerprint, IceUdpMuxRequest, LocalDescriptionInit } from './types';\n\nexport function preload(): void {\n  nodeDataChannel.preload();\n}\nexport function initLogger(level: LogLevel, cb?: (level: LogLevel, message: string) => void): void {\n  nodeDataChannel.initLogger(level, cb);\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  addH265Codec(payloadType: number): void;\n  addVP8Codec(payloadType: number): void;\n  addVP9Codec(payloadType: number): void;\n  addAV1Codec(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: MediaHandler): 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 RtpPacketizationConfig {\n  playoutDelayId: number,\n  playoutDelayMin: number,\n  playoutDelayMax: number,\n  timestamp: number,\n  get clockRate(): number\n}\n\nexport const RtpPacketizationConfig: {\n  new(ssrc: number, cname: string, payloadType: number, clockRate: number, videoOrientationId?: number): RtpPacketizationConfig\n} = nodeDataChannel.RtpPacketizationConfig\n\nexport interface MediaHandler {\n  addToChain(handler: MediaHandler): void\n}\n\nexport interface PacingHandler extends MediaHandler {}\n\nexport const PacingHandler: {\n  new (bitsPerSecond: number, sendInterval: number): PacingHandler;\n} = nodeDataChannel.PacingHandler;\n\nexport interface RtcpReceivingSession extends MediaHandler {}\n\nexport const RtcpReceivingSession: {\n  new (): RtcpReceivingSession;\n} = nodeDataChannel.RtcpReceivingSession;\n\nexport interface RtcpNackResponder extends MediaHandler {}\n\nexport const RtcpNackResponder: {\n  new (maxSize?: number): RtcpNackResponder\n} = nodeDataChannel.RtcpNackResponder;\n\nexport interface RtcpSrReporter extends MediaHandler {\n  get rtpConfig(): RtpPacketizationConfig\n}\n\nexport const RtcpSrReporter: {\n  new (rtpConfig: RtpPacketizationConfig): RtcpSrReporter\n} = nodeDataChannel.RtcpSrReporter;\n\nexport interface RtpPacketizer extends MediaHandler {\n  get rtpConfig(): RtpPacketizationConfig\n}\n\nexport const RtpPacketizer: {\n  new (rtpConfig: RtpPacketizationConfig): RtpPacketizer\n} = nodeDataChannel.RtpPacketizer;\n\nexport interface H264RtpPacketizer extends RtpPacketizer {}\n\nexport const H264RtpPacketizer: {\n  new (separator: NalUnitSeparator, rtpConfig: RtpPacketizationConfig, maxFragmentSize?: number): H264RtpPacketizer\n} = nodeDataChannel.H264RtpPacketizer\n\nexport interface H265RtpPacketizer extends RtpPacketizer {}\n\nexport const H265RtpPacketizer: {\n  new (separator: NalUnitSeparator, rtpConfig: RtpPacketizationConfig, maxFragmentSize?: number): H265RtpPacketizer\n} = nodeDataChannel.H265RtpPacketizer\n\nexport interface AV1RtpPacketizer extends RtpPacketizer {}\n\nexport const AV1RtpPacketizer: {\n  new (packetization: ObuPacketization, rtpConfig: RtpPacketizationConfig, maxFragmentSize?: number): AV1RtpPacketizer\n} = nodeDataChannel.AV1RtpPacketizer\n\nexport { WebSocketServer } from './websocket-server';\nexport { WebSocket } from './websocket';\n\nexport const DataChannelStream = _DataChannelStream;\n\nexport default {\n  initLogger,\n  cleanup,\n  preload,\n  setSctpSettings,\n  getLibraryVersion,\n  PacingHandler,\n  RtcpReceivingSession,\n  RtcpNackResponder,\n  RtcpSrReporter,\n  RtpPacketizationConfig,\n  RtpPacketizer,\n  H264RtpPacketizer,\n  H265RtpPacketizer,\n  AV1RtpPacketizer,\n  Track,\n  Video,\n  Audio,\n  DataChannel,\n  PeerConnection,\n  WebSocket,\n  WebSocketServer,\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","WebSocket","WebSocketServer"],"mappings":";;;;;;;;;AAsBO,SAAS,OAAgB,GAAA;AAC9B,EAAAA,uBAAA,CAAgB,OAAQ,EAAA,CAAA;AAC1B,CAAA;AACgB,SAAA,UAAA,CAAW,OAAiB,EAAuD,EAAA;AACjG,EAAgBA,uBAAA,CAAA,UAAA,CAAW,OAAO,EAAE,CAAA,CAAA;AACtC,CAAA;AACO,SAAS,OAAgB,GAAA;AAC9B,EAAAA,uBAAA,CAAgB,OAAQ,EAAA,CAAA;AAC1B,CAAA;AACO,SAAS,gBAAgB,QAA8B,EAAA;AAC5D,EAAAA,uBAAA,CAAgB,gBAAgB,QAAQ,CAAA,CAAA;AAC1C,CAAA;AACO,SAAS,iBAA4B,GAAA;AAC1C,EAAA,OAAOA,wBAAgB,iBAAkB,EAAA,CAAA;AAC3C,CAAA;AAwBO,MAAM,QAETA,uBAAgB,CAAA,MAAA;AA4Bb,MAAM,QAETA,uBAAgB,CAAA,MAAA;AAsBb,MAAM,QAETA,uBAAgB,CAAA,MAAA;AAqBb,MAAM,cAETA,uBAAgB,CAAA,YAAA;AAmCb,MAAM,iBAETA,uBAAgB,CAAA,eAAA;AAQb,MAAM,oBAETA,uBAAgB,CAAA,kBAAA;AAUb,MAAM,yBAETA,uBAAgB,CAAA,uBAAA;AAQb,MAAM,gBAETA,uBAAgB,CAAA,cAAA;AAIb,MAAM,uBAETA,uBAAgB,CAAA,qBAAA;AAIb,MAAM,oBAETA,uBAAgB,CAAA,kBAAA;AAMb,MAAM,iBAETA,uBAAgB,CAAA,eAAA;AAMb,MAAM,gBAETA,uBAAgB,CAAA,cAAA;AAIb,MAAM,oBAETA,uBAAgB,CAAA,kBAAA;AAIb,MAAM,oBAETA,uBAAgB,CAAA,kBAAA;AAIb,MAAM,mBAETA,uBAAgB,CAAA,iBAAA;AAKb,MAAM,iBAAoB,GAAAC,0BAAA;AAEjC,QAAe;AAAA,EACb,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,sBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,aACAC,mBAAA;AAAA,mBACAC,+BAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}