{"version":3,"file":"RTCSctpTransport.mjs","sources":["../../../src/polyfill/RTCSctpTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCSctpTransport extends EventTarget implements globalThis.RTCSctpTransport {\n  #pc: RTCPeerConnection = null;\n  #transport: globalThis.RTCDtlsTransport = null;\n\n  onstatechange: globalThis.RTCSctpTransport['onstatechange'] = null;\n\n  constructor(initial: { pc: RTCPeerConnection }) {\n    super();\n    this.#pc = initial.pc;\n\n    this.#transport = new RTCDtlsTransport({\n      pc: initial.pc,\n    });\n\n    this.#pc.addEventListener('connectionstatechange', () => {\n      const e = new Event('statechange');\n      this.dispatchEvent(e);\n      this.onstatechange?.(e);\n    });\n  }\n\n  get maxChannels(): number | null {\n    if (this.state !== 'connected') return null;\n    return this.#pc.ext_maxDataChannelId;\n  }\n\n  get maxMessageSize(): number {\n    if (this.state !== 'connected') return null;\n    return this.#pc?.ext_maxMessageSize ?? 65536;\n  }\n\n  get state(): globalThis.RTCSctpTransportState {\n    // reduce state from new, connecting, connected, disconnected, failed, closed, unknown\n    // to RTCSctpTransport states connecting, connected, closed\n    let state = this.#pc.connectionState;\n    if (state === 'new' || state === 'connecting') {\n      state = 'connecting';\n    } else if (state === 'disconnected' || state === 'failed' || state === 'closed') {\n      state = 'closed';\n    }\n    return state;\n  }\n\n  get transport(): globalThis.RTCDtlsTransport {\n    return this.#transport;\n  }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,UAAA;AAIA,MAAqB,yBAAyB,WAAA,CAAmD;AAAA,EAM/F,YAAY,OAAA,EAAoC;AAC9C,IAAA,KAAA,EAAM;AANR,IAAA,YAAA,CAAA,IAAA,EAAA,GAAA,EAAyB,IAAA,CAAA;AACzB,IAAA,YAAA,CAAA,IAAA,EAAA,UAAA,EAA0C,IAAA,CAAA;AAE1C,IAAA,aAAA,CAAA,IAAA,EAAA,eAAA,EAA8D,IAAA,CAAA;AAI5D,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,OAAA,CAAQ,EAAA,CAAA;AAEnB,IAAA,YAAA,CAAA,IAAA,EAAK,UAAA,EAAa,IAAI,gBAAA,CAAiB;AAAA,MACrC,IAAI,OAAA,CAAQ;AAAA,KACb,CAAA,CAAA;AAED,IAAA,YAAA,CAAA,IAAA,EAAK,GAAA,CAAA,CAAI,gBAAA,CAAiB,uBAAA,EAAyB,MAAM;AACvD,MAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,aAAa,CAAA;AACjC,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA;AACpB,MAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAAA,KACvB,CAAA;AAAA;AACH,EAEA,IAAI,WAAA,GAA6B;AAC/B,IAAA,IAAI,IAAA,CAAK,KAAA,KAAU,WAAA,EAAa,OAAO,IAAA;AACvC,IAAA,OAAO,mBAAK,GAAA,CAAA,CAAI,oBAAA;AAAA;AAClB,EAEA,IAAI,cAAA,GAAyB;AAC3B,IAAA,IAAI,IAAA,CAAK,KAAA,KAAU,WAAA,EAAa,OAAO,IAAA;AACvC,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,MAAK,kBAAA,IAAsB,KAAA;AAAA;AACzC,EAEA,IAAI,KAAA,GAA0C;AAG5C,IAAA,IAAI,KAAA,GAAQ,mBAAK,GAAA,CAAA,CAAI,eAAA;AACrB,IAAA,IAAI,KAAA,KAAU,KAAA,IAAS,KAAA,KAAU,YAAA,EAAc;AAC7C,MAAA,KAAA,GAAQ,YAAA;AAAA,eACC,KAAA,KAAU,cAAA,IAAkB,KAAA,KAAU,QAAA,IAAY,UAAU,QAAA,EAAU;AAC/E,MAAA,KAAA,GAAQ,QAAA;AAAA;AAEV,IAAA,OAAO,KAAA;AAAA;AACT,EAEA,IAAI,SAAA,GAAyC;AAC3C,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,UAAA,CAAA;AAAA;AAEhB;AA7CE,GAAA,GAAA,IAAA,OAAA,EAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}