UNPKG

node-datachannel

Version:

WebRTC For Node.js and Electron. libdatachannel node bindings.

1 lines 5.7 kB
{"version":3,"file":"RTCIceTransport.cjs","sources":["../../../src/polyfill/RTCIceTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCIceCandidate from './RTCIceCandidate';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCIceTransport extends EventTarget implements globalThis.RTCIceTransport {\n #pc: RTCPeerConnection = null;\n\n ongatheringstatechange: globalThis.RTCIceTransport['ongatheringstatechange'] = null;\n onselectedcandidatepairchange: globalThis.RTCIceTransport['onselectedcandidatepairchange'] = null;\n onstatechange: globalThis.RTCIceTransport['onstatechange'] = null;\n\n constructor(init: { pc: RTCPeerConnection }) {\n super();\n this.#pc = init.pc;\n\n this.#pc.addEventListener('icegatheringstatechange', () => {\n const e = new Event('gatheringstatechange');\n this.dispatchEvent(e);\n this.ongatheringstatechange?.(e);\n });\n this.#pc.addEventListener('iceconnectionstatechange', () => {\n const e = new Event('statechange');\n this.dispatchEvent(e);\n this.onstatechange?.(e);\n });\n }\n\n get component(): globalThis.RTCIceComponent {\n const cp = this.getSelectedCandidatePair();\n if (!cp?.local) return null;\n return cp.local.component;\n }\n\n get gatheringState(): globalThis.RTCIceGatheringState {\n return this.#pc ? this.#pc.iceGatheringState : 'new';\n }\n\n get role(): globalThis.RTCIceRole {\n return this.#pc.localDescription!.type == 'offer' ? 'controlling' : 'controlled';\n }\n\n get state(): globalThis.RTCIceTransportState {\n return this.#pc ? this.#pc.iceConnectionState : 'new';\n }\n\n getLocalCandidates(): globalThis.RTCIceCandidate[] {\n return this.#pc?.ext_localCandidates ?? [];\n }\n\n getLocalParameters(): RTCIceParameters | null {\n return new RTCIceParameters(\n new RTCIceCandidate({\n candidate: this.#pc.selectedCandidatePair()!.local.candidate,\n sdpMLineIndex: 0,\n }),\n );\n }\n\n getRemoteCandidates(): globalThis.RTCIceCandidate[] {\n return this.#pc?.ext_remoteCandidates ?? [];\n }\n\n getRemoteParameters(): any {\n /** */\n }\n\n getSelectedCandidatePair(): globalThis.RTCIceCandidatePair | null {\n const cp = this.#pc?.selectedCandidatePair();\n if (!cp) return null;\n return {\n local: new RTCIceCandidate({\n candidate: cp.local.candidate,\n sdpMid: cp.local.mid,\n }),\n remote: new RTCIceCandidate({\n candidate: cp.remote.candidate,\n sdpMid: cp.remote.mid,\n }),\n };\n }\n}\n\nexport class RTCIceParameters implements globalThis.RTCIceParameters {\n usernameFragment = '';\n password = '';\n constructor({ usernameFragment, password = '' }) {\n this.usernameFragment = usernameFragment;\n this.password = password;\n }\n}\n"],"names":["RTCIceCandidate"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA,GAAA,CAAA;AAIA,MAAqB,wBAAwB,WAAkD,CAAA;AAAA,EAO7F,YAAY,IAAiC,EAAA;AAC3C,IAAM,KAAA,EAAA,CAAA;AAPR,IAAyB,YAAA,CAAA,IAAA,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA;AAEzB,IAA+E,aAAA,CAAA,IAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAC/E,IAA6F,aAAA,CAAA,IAAA,EAAA,+BAAA,EAAA,IAAA,CAAA,CAAA;AAC7F,IAA6D,aAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAI3D,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,IAAK,CAAA,EAAA,CAAA,CAAA;AAEhB,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,yBAAA,EAA2B,MAAM;AACzD,MAAM,MAAA,CAAA,GAAI,IAAI,KAAA,CAAM,sBAAsB,CAAA,CAAA;AAC1C,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA,CAAA;AACpB,MAAA,IAAA,CAAK,yBAAyB,CAAC,CAAA,CAAA;AAAA,KAChC,CAAA,CAAA;AACD,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,0BAAA,EAA4B,MAAM;AAC1D,MAAM,MAAA,CAAA,GAAI,IAAI,KAAA,CAAM,aAAa,CAAA,CAAA;AACjC,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA,CAAA;AACpB,MAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,IAAI,SAAwC,GAAA;AAC1C,IAAM,MAAA,EAAA,GAAK,KAAK,wBAAyB,EAAA,CAAA;AACzC,IAAI,IAAA,CAAC,EAAI,EAAA,KAAA,EAAc,OAAA,IAAA,CAAA;AACvB,IAAA,OAAO,GAAG,KAAM,CAAA,SAAA,CAAA;AAAA,GAClB;AAAA,EAEA,IAAI,cAAkD,GAAA;AACpD,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,iBAAoB,GAAA,KAAA,CAAA;AAAA,GACjD;AAAA,EAEA,IAAI,IAA8B,GAAA;AAChC,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAkB,CAAA,IAAA,IAAQ,UAAU,aAAgB,GAAA,YAAA,CAAA;AAAA,GACtE;AAAA,EAEA,IAAI,KAAyC,GAAA;AAC3C,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,kBAAqB,GAAA,KAAA,CAAA;AAAA,GAClD;AAAA,EAEA,kBAAmD,GAAA;AACjD,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,GAAK,CAAA,EAAA,mBAAA,IAAuB,EAAC,CAAA;AAAA,GAC3C;AAAA,EAEA,kBAA8C,GAAA;AAC5C,IAAA,OAAO,IAAI,gBAAA;AAAA,MACT,IAAIA,uBAAgB,CAAA;AAAA,QAClB,SAAW,EAAA,YAAA,CAAA,IAAA,EAAK,GAAI,CAAA,CAAA,qBAAA,GAAyB,KAAM,CAAA,SAAA;AAAA,QACnD,aAAe,EAAA,CAAA;AAAA,OAChB,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AAAA,EAEA,mBAAoD,GAAA;AAClD,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,GAAK,CAAA,EAAA,oBAAA,IAAwB,EAAC,CAAA;AAAA,GAC5C;AAAA,EAEA,mBAA2B,GAAA;AAAA,GAE3B;AAAA,EAEA,wBAAkE,GAAA;AAChE,IAAM,MAAA,EAAA,GAAK,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,EAAK,qBAAsB,EAAA,CAAA;AAC3C,IAAI,IAAA,CAAC,IAAW,OAAA,IAAA,CAAA;AAChB,IAAO,OAAA;AAAA,MACL,KAAA,EAAO,IAAIA,uBAAgB,CAAA;AAAA,QACzB,SAAA,EAAW,GAAG,KAAM,CAAA,SAAA;AAAA,QACpB,MAAA,EAAQ,GAAG,KAAM,CAAA,GAAA;AAAA,OAClB,CAAA;AAAA,MACD,MAAA,EAAQ,IAAIA,uBAAgB,CAAA;AAAA,QAC1B,SAAA,EAAW,GAAG,MAAO,CAAA,SAAA;AAAA,QACrB,MAAA,EAAQ,GAAG,MAAO,CAAA,GAAA;AAAA,OACnB,CAAA;AAAA,KACH,CAAA;AAAA,GACF;AACF,CAAA;AA3EE,GAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AA6EK,MAAM,gBAAwD,CAAA;AAAA,EAGnE,WAAY,CAAA,EAAE,gBAAkB,EAAA,QAAA,GAAW,IAAM,EAAA;AAFjD,IAAmB,aAAA,CAAA,IAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;AACnB,IAAW,aAAA,CAAA,IAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;AAET,IAAA,IAAA,CAAK,gBAAmB,GAAA,gBAAA,CAAA;AACxB,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA,CAAA;AAAA,GAClB;AACF;;;;;"}