com.hikky.heliodorlib
Version:
This is the library for Vket Cloud SDK.
1,257 lines (1,256 loc) • 1.84 MB
JavaScript
(() => {
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __copyProps = (to2, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to2, key) && key !== except)
__defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to2;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
// node_modules/skyway-js/dist/skyway.js
var require_skyway = __commonJS({
"node_modules/skyway-js/dist/skyway.js"(exports, module2) {
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === "object" && typeof module2 === "object")
module2.exports = factory();
else if (typeof define === "function" && define.amd)
define([], factory);
else if (typeof exports === "object")
exports["Peer"] = factory();
else
root["Peer"] = factory();
})(globalThis, function() {
return function(modules) {
var installedModules = {};
function __webpack_require__(moduleId) {
if (installedModules[moduleId]) {
return installedModules[moduleId].exports;
}
var module1 = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {}
};
modules[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);
module1.l = true;
return module1.exports;
}
__webpack_require__.m = modules;
__webpack_require__.c = installedModules;
__webpack_require__.d = function(exports1, name, getter) {
if (!__webpack_require__.o(exports1, name)) {
Object.defineProperty(exports1, name, {
enumerable: true,
get: getter
});
}
};
__webpack_require__.r = function(exports1) {
if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
Object.defineProperty(exports1, Symbol.toStringTag, {
value: "Module"
});
}
Object.defineProperty(exports1, "__esModule", {
value: true
});
};
__webpack_require__.t = function(value, mode) {
if (mode & 1)
value = __webpack_require__(value);
if (mode & 8)
return value;
if (mode & 4 && typeof value === "object" && value && value.__esModule)
return value;
var ns2 = /* @__PURE__ */ Object.create(null);
__webpack_require__.r(ns2);
Object.defineProperty(ns2, "default", {
enumerable: true,
value
});
if (mode & 2 && typeof value != "string")
for (var key in value)
__webpack_require__.d(ns2, key, function(key2) {
return value[key2];
}.bind(null, key));
return ns2;
};
__webpack_require__.n = function(module1) {
var getter = module1 && module1.__esModule ? function getDefault() {
return module1["default"];
} : function getModuleExports() {
return module1;
};
__webpack_require__.d(getter, "a", getter);
return getter;
};
__webpack_require__.o = function(object, property) {
return Object.prototype.hasOwnProperty.call(object, property);
};
__webpack_require__.p = "";
return __webpack_require__(__webpack_require__.s = "./src/peer.js");
}({
"./node_modules/@jitsi/sdp-interop/lib/array-equals.js": function(module1, exports1) {
module1.exports = function arrayEquals(array) {
if (!array)
return false;
if (this.length != array.length)
return false;
for (var i3 = 0, l2 = this.length; i3 < l2; i3++) {
if (this[i3] instanceof Array && array[i3] instanceof Array) {
if (!arrayEquals.apply(this[i3], [
array[i3]
]))
return false;
} else if (this[i3] != array[i3]) {
return false;
}
}
return true;
};
},
"./node_modules/@jitsi/sdp-interop/lib/index.js": function(module1, exports1, __webpack_require__) {
exports1.Interop = __webpack_require__("./node_modules/@jitsi/sdp-interop/lib/interop.js");
},
"./node_modules/@jitsi/sdp-interop/lib/interop.js": function(module1, exports1, __webpack_require__) {
"use strict";
var transform = __webpack_require__("./node_modules/@jitsi/sdp-interop/lib/transform.js");
var arrayEquals = __webpack_require__("./node_modules/@jitsi/sdp-interop/lib/array-equals.js");
function midToString(line) {
if (typeof line.mid === "number") {
line.mid = line.mid.toString();
}
}
function Interop() {
this.cache = {
mlB2UMap: {},
mlU2BMap: {}
};
}
module1.exports = Interop;
Interop.prototype.candidateToUnifiedPlan = function(candidate) {
var cand = new RTCIceCandidate(candidate);
cand.sdpMLineIndex = this.cache.mlB2UMap[cand.sdpMLineIndex];
return cand;
};
Interop.prototype.candidateToPlanB = function(candidate) {
var cand = new RTCIceCandidate(candidate);
if (cand.sdpMid.indexOf("audio") === 0) {
cand.sdpMid = "audio";
} else if (cand.sdpMid.indexOf("video") === 0) {
cand.sdpMid = "video";
} else {
throw new Error("candidate with " + cand.sdpMid + " not allowed");
}
cand.sdpMLineIndex = this.cache.mlU2BMap[cand.sdpMLineIndex];
return cand;
};
Interop.prototype.getFirstSendingIndexFromAnswer = function(type) {
if (!this.cache.answer) {
return null;
}
var session = transform.parse(this.cache.answer);
if (session && session.media && Array.isArray(session.media)) {
for (var i3 = 0; i3 < session.media.length; i3++) {
if (session.media[i3].type == type && (!session.media[i3].direction || session.media[i3].direction === "sendrecv" || session.media[i3].direction === "sendonly")) {
return i3;
}
}
}
return null;
};
Interop.prototype.toPlanB = function(desc) {
var self1 = this;
if (typeof desc !== "object" || desc === null || typeof desc.sdp !== "string") {
console.warn("An empty description was passed as an argument.");
return desc;
}
var session = transform.parse(desc.sdp);
if (typeof session.media === "undefined" || !Array.isArray(session.media) || session.media.length === 0) {
console.warn("The description has no media.");
return desc;
}
if (session.media.length <= 3 && session.media.every(function(m3) {
return [
"video",
"audio",
"data"
].indexOf(m3.mid) !== -1;
})) {
console.warn("This description does not look like Unified Plan.");
return desc;
}
var sdp = desc.sdp;
var rewrite = false;
for (var i3 = 0; i3 < session.media.length; i3++) {
var uLine = session.media[i3];
uLine.rtp.forEach(function(rtp) {
if (rtp.codec === "NULL") {
rewrite = true;
var offer = transform.parse(self1.cache.offer);
rtp.codec = offer.media[i3].rtp[0].codec;
}
});
}
if (rewrite) {
sdp = transform.write(session);
}
this.cache[desc.type] = sdp;
var media = session.media;
session.media = [];
var type2bl = {};
var types = [];
var directionResult = {};
media.forEach(function(uLine2) {
midToString(uLine2);
if ((typeof uLine2.rtcpMux !== "string" || uLine2.rtcpMux !== "rtcp-mux") && uLine2.direction !== "inactive" && uLine2.type !== "application") {
throw new Error("Cannot convert to Plan B because m-lines without the rtcp-mux attribute were found.");
}
if (typeof type2bl[uLine2.type] === "undefined" || type2bl[uLine2.type].direction === "inactive") {
type2bl[uLine2.type] = uLine2;
}
});
media.forEach(function(uLine2) {
var type = uLine2.type;
if (type === "application") {
uLine2.mid = "data";
session.media.push(uLine2);
types.push(uLine2.mid);
return;
}
if (typeof uLine2.sources === "object") {
Object.keys(uLine2.sources).forEach(function(ssrc) {
if (typeof type2bl[type].sources !== "object")
type2bl[type].sources = {};
type2bl[type].sources[ssrc] = uLine2.sources[ssrc];
if (typeof uLine2.msid !== "undefined") {
type2bl[type].sources[ssrc].msid = uLine2.msid;
}
});
}
if (typeof uLine2.ssrcGroups !== "undefined" && Array.isArray(uLine2.ssrcGroups)) {
if (typeof type2bl[type].ssrcGroups === "undefined" || !Array.isArray(type2bl[type].ssrcGroups)) {
type2bl[type].ssrcGroups = [];
}
if (!arrayEquals.apply(type2bl[type].ssrcGroups, [
uLine2.ssrcGroups
])) {
type2bl[type].ssrcGroups = type2bl[type].ssrcGroups.concat(uLine2.ssrcGroups);
}
}
var direction = uLine2.direction;
directionResult[type] = (directionResult[type] || 0) | directionMasks[direction || "inactive"];
if (type2bl[type] === uLine2) {
uLine2.mid = type;
delete uLine2.bundleOnly;
delete uLine2.msid;
if (direction !== "inactive") {
types.push(type);
}
session.media.push(uLine2);
}
});
session.groups.some(function(group) {
if (group.type === "BUNDLE") {
group.mids = types.join(" ");
return true;
}
});
session.msidSemantic = {
semantic: "WMS",
token: "*"
};
var resStr = transform.write(session);
return new RTCSessionDescription({
type: desc.type,
sdp: resStr
});
};
Interop.prototype.toUnifiedPlan = function(desc) {
var self1 = this;
if (typeof desc !== "object" || desc === null || typeof desc.sdp !== "string") {
console.warn("An empty description was passed as an argument.");
return desc;
}
var session = transform.parse(desc.sdp);
if (typeof session.media === "undefined" || !Array.isArray(session.media) || session.media.length === 0) {
console.warn("The description has no media.");
return desc;
}
if (session.media.length > 3 || !session.media.every(function(m3) {
return [
"video",
"audio",
"data"
].indexOf(m3.mid) !== -1;
})) {
console.warn("This description does not look like Plan B.");
return desc;
}
var mids = [];
session.media.forEach(function(m3) {
mids.push(m3.mid);
});
var hasBundle = false;
if (typeof session.groups !== "undefined" && Array.isArray(session.groups)) {
hasBundle = session.groups.every(function(g3) {
return g3.type !== "BUNDLE" || arrayEquals.apply(g3.mids.sort(), [
mids.sort()
]);
});
}
if (!hasBundle) {
throw new Error("Cannot convert to Unified Plan because m-lines that are not bundled were found.");
}
var cached;
if (typeof this.cache[desc.type] !== "undefined") {
cached = transform.parse(this.cache[desc.type]);
}
var recvonlySsrcs = {
audio: {},
video: {}
};
var mid2ul = {};
var bIdx = 0;
var uIdx = 0;
session.media.forEach(function(bLine) {
if ((typeof bLine.rtcpMux !== "string" || bLine.rtcpMux !== "rtcp-mux") && bLine.direction !== "inactive" && bLine.type !== "application") {
throw new Error("Cannot convert to Unified Plan because m-lines without the rtcp-mux attribute were found.");
}
if (bLine.type === "application") {
var uLineData = null;
if (cached && cached.media) {
uLineData = cached.media.find(function(uLine2) {
return uLine2.type === "application";
});
}
if (uLineData) {
mid2ul[uLineData.mid] = uLineData;
} else {
mid2ul[bLine.mid] = bLine;
}
return;
}
var sources = bLine.sources;
var ssrcGroups = bLine.ssrcGroups;
var candidates = bLine.candidates;
var iceUfrag = bLine.iceUfrag;
var icePwd = bLine.icePwd;
var fingerprint = bLine.fingerprint;
var port = bLine.port;
delete bLine.sources;
delete bLine.ssrcGroups;
delete bLine.candidates;
delete bLine.iceUfrag;
delete bLine.icePwd;
delete bLine.fingerprint;
delete bLine.port;
delete bLine.mid;
var ssrc2group = {};
if (typeof ssrcGroups !== "undefined" && Array.isArray(ssrcGroups)) {
ssrcGroups.forEach(function(ssrcGroup) {
if (ssrcGroup.semantics === "SIM") {
return;
}
if (typeof ssrcGroup.ssrcs !== "undefined" && Array.isArray(ssrcGroup.ssrcs)) {
ssrcGroup.ssrcs.forEach(function(ssrc) {
if (typeof ssrc2group[ssrc] === "undefined") {
ssrc2group[ssrc] = [];
}
ssrc2group[ssrc].push(ssrcGroup);
});
}
});
}
var ssrc2ml = {};
if (typeof sources === "object") {
Object.keys(sources).forEach(function(ssrc) {
var uLine2;
if (desc.type === "offer") {
if (!sources[ssrc].msid) {
recvonlySsrcs[bLine.type][ssrc] = sources[ssrc];
return;
}
}
if (typeof ssrc2group[ssrc] !== "undefined" && Array.isArray(ssrc2group[ssrc])) {
ssrc2group[ssrc].some(function(ssrcGroup) {
return ssrcGroup.ssrcs.some(function(related) {
if (typeof ssrc2ml[related] === "object") {
uLine2 = ssrc2ml[related];
return true;
}
});
});
}
if (typeof uLine2 === "object") {
uLine2.sources[ssrc] = sources[ssrc];
delete sources[ssrc].msid;
} else {
uLine2 = Object.create(bLine);
ssrc2ml[ssrc] = uLine2;
if (typeof sources[ssrc].msid !== "undefined") {
uLine2.msid = sources[ssrc].msid;
delete sources[ssrc].msid;
}
uLine2.sources = {};
uLine2.sources[ssrc] = sources[ssrc];
uLine2.ssrcGroups = ssrc2group[ssrc];
if (typeof cached !== "undefined" && typeof cached.media !== "undefined" && Array.isArray(cached.media)) {
cached.media.forEach(function(m3) {
if (typeof m3.sources === "object") {
Object.keys(m3.sources).forEach(function(s3) {
if (s3 === ssrc) {
uLine2.mid = m3.mid;
}
});
}
});
}
midToString(uLine2);
if (typeof uLine2.mid === "undefined") {
if (desc.type === "answer") {
throw new Error("An unmapped SSRC was found.");
}
uLine2.mid = [
bLine.type,
"-",
ssrc
].join("");
}
uLine2.candidates = candidates;
uLine2.iceUfrag = iceUfrag;
uLine2.icePwd = icePwd;
uLine2.fingerprint = fingerprint;
uLine2.port = port;
mid2ul[uLine2.mid] = uLine2;
self1.cache.mlU2BMap[uIdx] = bIdx;
if (typeof self1.cache.mlB2UMap[bIdx] === "undefined") {
self1.cache.mlB2UMap[bIdx] = uIdx;
}
uIdx++;
}
});
}
bIdx++;
});
session.media = [];
mids = [];
if (desc.type === "answer") {
for (var i3 = 0; i3 < cached.media.length; i3++) {
var uLine = cached.media[i3];
midToString(uLine);
if (typeof mid2ul[uLine.mid] === "undefined") {
delete uLine.msid;
delete uLine.sources;
delete uLine.ssrcGroups;
if (!uLine.direction || uLine.direction === "sendrecv")
uLine.direction = "recvonly";
else if (uLine.direction === "sendonly")
uLine.direction = "inactive";
} else {
}
session.media.push(uLine);
if (typeof uLine.mid === "string") {
mids.push(uLine.mid);
}
}
} else {
if (typeof cached !== "undefined" && typeof cached.media !== "undefined" && Array.isArray(cached.media)) {
cached.media.forEach(function(uLine2) {
midToString(uLine2);
mids.push(uLine2.mid);
if (typeof mid2ul[uLine2.mid] !== "undefined") {
session.media.push(mid2ul[uLine2.mid]);
} else {
delete uLine2.msid;
delete uLine2.sources;
delete uLine2.ssrcGroups;
if (!uLine2.direction || uLine2.direction === "sendrecv")
uLine2.direction = "recvonly";
if (!uLine2.direction || uLine2.direction === "sendonly")
uLine2.direction = "inactive";
session.media.push(uLine2);
}
});
}
Object.keys(mid2ul).forEach(function(mid) {
if (mids.indexOf(mid) === -1) {
mids.push(mid);
if (mid2ul[mid].direction === "recvonly") {
session.media.some(function(uLine2) {
if ((uLine2.direction === "sendrecv" || uLine2.direction === "sendonly") && uLine2.type === mid2ul[mid].type) {
Object.keys(mid2ul[mid].sources).forEach(function(ssrc) {
uLine2.sources[ssrc] = mid2ul[mid].sources[ssrc];
});
return true;
}
});
} else {
session.media.push(mid2ul[mid]);
}
}
});
}
[
"audio",
"video"
].forEach(function(type) {
if (!session || !session.media || !Array.isArray(session.media))
return;
var idx = null;
if (Object.keys(recvonlySsrcs[type]).length > 0) {
idx = self1.getFirstSendingIndexFromAnswer(type);
if (idx === null) {
for (var i4 = 0; i4 < session.media.length; i4++) {
if (session.media[i4].type === type) {
idx = i4;
break;
}
}
}
}
if (idx && session.media.length > idx) {
var mLine = session.media[idx];
Object.keys(recvonlySsrcs[type]).forEach(function(ssrc) {
if (mLine.sources && mLine.sources[ssrc]) {
console.warn("Replacing an existing SSRC.");
}
if (!mLine.sources) {
mLine.sources = {};
}
mLine.sources[ssrc] = recvonlySsrcs[type][ssrc];
});
}
});
session.groups.some(function(group) {
if (group.type === "BUNDLE") {
group.mids = mids.join(" ");
return true;
}
});
session.msidSemantic = {
semantic: "WMS",
token: "*"
};
var resStr = transform.write(session);
this.cache[desc.type] = resStr;
return new RTCSessionDescription({
type: desc.type,
sdp: resStr
});
};
var directionMasks = {
"inactive": 0,
"recvonly": 1,
"sendonly": 2,
"sendrecv": 3
};
function parseDirection(direction) {
var directionMask = direction & 3;
switch (directionMask) {
case 0:
return "inactive";
case 1:
return "recvonly";
case 2:
return "sendonly";
case 3:
return "sendrecv";
}
}
},
"./node_modules/@jitsi/sdp-interop/lib/transform.js": function(module1, exports1, __webpack_require__) {
var transform = __webpack_require__("./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/index.js");
exports1.write = function(session, opts) {
if (typeof session !== "undefined" && typeof session.media !== "undefined" && Array.isArray(session.media)) {
session.media.forEach(function(mLine) {
if (typeof mLine.sources !== "undefined" && Object.keys(mLine.sources).length !== 0) {
mLine.ssrcs = [];
Object.keys(mLine.sources).forEach(function(ssrc) {
var source = mLine.sources[ssrc];
Object.keys(source).forEach(function(attribute) {
mLine.ssrcs.push({
id: ssrc,
attribute,
value: source[attribute]
});
});
});
delete mLine.sources;
}
if (typeof mLine.ssrcGroups !== "undefined" && Array.isArray(mLine.ssrcGroups)) {
mLine.ssrcGroups.forEach(function(ssrcGroup) {
if (typeof ssrcGroup.ssrcs !== "undefined" && Array.isArray(ssrcGroup.ssrcs)) {
ssrcGroup.ssrcs = ssrcGroup.ssrcs.join(" ");
}
});
}
});
}
if (typeof session !== "undefined" && typeof session.groups !== "undefined" && Array.isArray(session.groups)) {
session.groups.forEach(function(g3) {
if (typeof g3.mids !== "undefined" && Array.isArray(g3.mids)) {
g3.mids = g3.mids.join(" ");
}
});
}
return transform.write(session, opts);
};
exports1.parse = function(sdp) {
var session = transform.parse(sdp);
if (typeof session !== "undefined" && typeof session.media !== "undefined" && Array.isArray(session.media)) {
session.media.forEach(function(mLine) {
if (typeof mLine.ssrcs !== "undefined" && Array.isArray(mLine.ssrcs)) {
mLine.sources = {};
mLine.ssrcs.forEach(function(ssrc) {
if (!mLine.sources[ssrc.id])
mLine.sources[ssrc.id] = {};
mLine.sources[ssrc.id][ssrc.attribute] = ssrc.value;
});
delete mLine.ssrcs;
}
if (typeof mLine.ssrcGroups !== "undefined" && Array.isArray(mLine.ssrcGroups)) {
mLine.ssrcGroups.forEach(function(ssrcGroup) {
if (typeof ssrcGroup.ssrcs === "string") {
ssrcGroup.ssrcs = ssrcGroup.ssrcs.split(" ");
}
});
}
});
}
if (typeof session !== "undefined" && typeof session.groups !== "undefined" && Array.isArray(session.groups)) {
session.groups.forEach(function(g3) {
if (typeof g3.mids === "string") {
g3.mids = g3.mids.split(" ");
}
});
}
return session;
};
},
"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js": function(module1, exports1) {
var grammar = module1.exports = {
v: [
{
name: "version",
reg: /^(\d*)$/
}
],
o: [
{
name: "origin",
reg: /^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,
names: [
"username",
"sessionId",
"sessionVersion",
"netType",
"ipVer",
"address"
],
format: "%s %s %d %s IP%d %s"
}
],
s: [
{
name: "name"
}
],
i: [
{
name: "description"
}
],
u: [
{
name: "uri"
}
],
e: [
{
name: "email"
}
],
p: [
{
name: "phone"
}
],
z: [
{
name: "timezones"
}
],
r: [
{
name: "repeats"
}
],
t: [
{
name: "timing",
reg: /^(\d*) (\d*)/,
names: [
"start",
"stop"
],
format: "%d %d"
}
],
c: [
{
name: "connection",
reg: /^IN IP(\d) (\S*)/,
names: [
"version",
"ip"
],
format: "IN IP%d %s"
}
],
b: [
{
push: "bandwidth",
reg: /^(TIAS|AS|CT|RR|RS):(\d*)/,
names: [
"type",
"limit"
],
format: "%s:%s"
}
],
m: [
{
reg: /^(\w*) (\d*) ([\w\/]*)(?: (.*))?/,
names: [
"type",
"port",
"protocol",
"payloads"
],
format: "%s %d %s %s"
}
],
a: [
{
push: "rtp",
reg: /^rtpmap:(\d*) ([\w\-\.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,
names: [
"payload",
"codec",
"rate",
"encoding"
],
format: function(o3) {
return o3.encoding ? "rtpmap:%d %s/%s/%s" : o3.rate ? "rtpmap:%d %s/%s" : "rtpmap:%d %s";
}
},
{
push: "fmtp",
reg: /^fmtp:(\d*) ([\S| ]*)/,
names: [
"payload",
"config"
],
format: "fmtp:%d %s"
},
{
name: "control",
reg: /^control:(.*)/,
format: "control:%s"
},
{
name: "rtcp",
reg: /^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,
names: [
"port",
"netType",
"ipVer",
"address"
],
format: function(o3) {
return o3.address != null ? "rtcp:%d %s IP%d %s" : "rtcp:%d";
}
},
{
push: "rtcpFbTrrInt",
reg: /^rtcp-fb:(\*|\d*) trr-int (\d*)/,
names: [
"payload",
"value"
],
format: "rtcp-fb:%d trr-int %d"
},
{
push: "rtcpFb",
reg: /^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,
names: [
"payload",
"type",
"subtype"
],
format: function(o3) {
return o3.subtype != null ? "rtcp-fb:%s %s %s" : "rtcp-fb:%s %s";
}
},
{
push: "ext",
reg: /^extmap:(\d+)(?:\/(\w+))? (\S*)(?: (\S*))?/,
names: [
"value",
"direction",
"uri",
"config"
],
format: function(o3) {
return "extmap:%d" + (o3.direction ? "/%s" : "%v") + " %s" + (o3.config ? " %s" : "");
}
},
{
push: "crypto",
reg: /^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,
names: [
"id",
"suite",
"config",
"sessionConfig"
],
format: function(o3) {
return o3.sessionConfig != null ? "crypto:%d %s %s %s" : "crypto:%d %s %s";
}
},
{
name: "setup",
reg: /^setup:(\w*)/,
format: "setup:%s"
},
{
name: "mid",
reg: /^mid:([^\s]*)/,
format: "mid:%s"
},
{
name: "msid",
reg: /^msid:(.*)/,
format: "msid:%s"
},
{
name: "ptime",
reg: /^ptime:(\d*)/,
format: "ptime:%d"
},
{
name: "maxptime",
reg: /^maxptime:(\d*)/,
format: "maxptime:%d"
},
{
name: "direction",
reg: /^(sendrecv|recvonly|sendonly|inactive)/
},
{
name: "icelite",
reg: /^(ice-lite)/
},
{
name: "iceUfrag",
reg: /^ice-ufrag:(\S*)/,
format: "ice-ufrag:%s"
},
{
name: "icePwd",
reg: /^ice-pwd:(\S*)/,
format: "ice-pwd:%s"
},
{
name: "fingerprint",
reg: /^fingerprint:(\S*) (\S*)/,
names: [
"type",
"hash"
],
format: "fingerprint:%s %s"
},
{
push: "candidates",
reg: /^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,
names: [
"foundation",
"component",
"transport",
"priority",
"ip",
"port",
"type",
"raddr",
"rport",
"tcptype",
"generation",
"network-id",
"network-cost"
],
format: function(o3) {
var str = "candidate:%s %d %s %d %s %d typ %s";
str += o3.raddr != null ? " raddr %s rport %d" : "%v%v";
str += o3.tcptype != null ? " tcptype %s" : "%v";
if (o3.generation != null) {
str += " generation %d";
}
str += o3["network-id"] != null ? " network-id %d" : "%v";
str += o3["network-cost"] != null ? " network-cost %d" : "%v";
return str;
}
},
{
name: "endOfCandidates",
reg: /^(end-of-candidates)/
},
{
name: "remoteCandidates",
reg: /^remote-candidates:(.*)/,
format: "remote-candidates:%s"
},
{
name: "iceOptions",
reg: /^ice-options:(\S*)/,
format: "ice-options:%s"
},
{
push: "ssrcs",
reg: /^ssrc:(\d*) ([\w_]*)(?::(.*))?/,
names: [
"id",
"attribute",
"value"
],
format: function(o3) {
var str = "ssrc:%d";
if (o3.attribute != null) {
str += " %s";
if (o3.value != null) {
str += ":%s";
}
}
return str;
}
},
{
push: "ssrcGroups",
reg: /^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,
names: [
"semantics",
"ssrcs"
],
format: "ssrc-group:%s %s"
},
{
name: "msidSemantic",
reg: /^msid-semantic:\s?(\w*) (\S*)/,
names: [
"semantic",
"token"
],
format: "msid-semantic: %s %s"
},
{
push: "groups",
reg: /^group:(\w*) (.*)/,
names: [
"type",
"mids"
],
format: "group:%s %s"
},
{
name: "rtcpMux",
reg: /^(rtcp-mux)/
},
{
name: "rtcpRsize",
reg: /^(rtcp-rsize)/
},
{
name: "sctpmap",
reg: /^sctpmap:([\w_\/]*) (\S*)(?: (\S*))?/,
names: [
"sctpmapNumber",
"app",
"maxMessageSize"
],
format: function(o3) {
return o3.maxMessageSize != null ? "sctpmap:%s %s %s" : "sctpmap:%s %s";
}
},
{
name: "xGoogleFlag",
reg: /^x-google-flag:([^\s]*)/,
format: "x-google-flag:%s"
},
{
push: "rids",
reg: /^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,
names: [
"id",
"direction",
"params"
],
format: function(o3) {
return o3.params ? "rid:%s %s %s" : "rid:%s %s";
}
},
{
push: "imageattrs",
reg: new RegExp(
"^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"
),
names: [
"pt",
"dir1",
"attrs1",
"dir2",
"attrs2"
],
format: function(o3) {
return "imageattr:%s %s %s" + (o3.dir2 ? " %s %s" : "");
}
},
{
name: "simulcast",
reg: new RegExp(
"^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"
),
names: [
"dir1",
"list1",
"dir2",
"list2"
],
format: function(o3) {
return "simulcast:%s %s" + (o3.dir2 ? " %s %s" : "");
}
},
{
name: "simulcast_03",
reg: /^simulcast:[\s\t]+([\S+\s\t]+)$/,
names: [
"value"
],
format: "simulcast: %s"
},
{
name: "framerate",
reg: /^framerate:(\d+(?:$|\.\d+))/,
format: "framerate:%s"
},
{
push: "invalid",
names: [
"value"
]
}
]
};
Object.keys(grammar).forEach(function(key) {
var objs = grammar[key];
objs.forEach(function(obj) {
if (!obj.reg) {
obj.reg = /(.*)/;
}
if (!obj.format) {
obj.format = "%s";
}
});
});
},
"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/index.js": function(module1, exports1, __webpack_require__) {
var parser = __webpack_require__("./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/parser.js");
var writer = __webpack_require__("./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/writer.js");
exports1.write = writer;
exports1.parse = parser.parse;
exports1.parseFmtpConfig = parser.parseFmtpConfig;
exports1.parseParams = parser.parseParams;
exports1.parsePayloads = parser.parsePayloads;
exports1.parseRemoteCandidates = parser.parseRemoteCandidates;
exports1.parseImageAttributes = parser.parseImageAttributes;
exports1.parseSimulcastStreamList = parser.parseSimulcastStreamList;
},
"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/parser.js": function(module1, exports1, __webpack_require__) {
var toIntIfInt = function(v3) {
return String(Number(v3)) === v3 ? Number(v3) : v3;
};
var attachProperties = function(match, location1, names, rawName) {
if (rawName && !names) {
location1[rawName] = toIntIfInt(match[1]);
} else {
for (var i3 = 0; i3 < names.length; i3 += 1) {
if (match[i3 + 1] != null) {
location1[names[i3]] = toIntIfInt(match[i3 + 1]);
}
}
}
};
var parseReg = function(obj, location1, content) {
var needsBlank = obj.name && obj.names;
if (obj.push && !location1[obj.push]) {
location1[obj.push] = [];
} else if (needsBlank && !location1[obj.name]) {
location1[obj.name] = {};
}
var keyLocation = obj.push ? {} : needsBlank ? location1[obj.name] : location1;
attachProperties(content.match(obj.reg), keyLocation, obj.names, obj.name);
if (obj.push) {
location1[obj.push].push(keyLocation);
}
};
var grammar = __webpack_require__("./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js");
var validLine = RegExp.prototype.test.bind(/^([a-z])=(.*)/);
exports1.parse = function(sdp) {
var session = {}, media = [], location1 = session;
sdp.split(/(\r\n|\r|\n)/).filter(validLine).forEach(function(l2) {
var type = l2[0];
var content = l2.slice(2);
if (type === "m") {
media.push({
rtp: [],
fmtp: []
});
location1 = media[media.length - 1];
}
for (var j3 = 0; j3 < (grammar[type] || []).length; j3 += 1) {
var obj = grammar[type][j3];
if (obj.reg.test(content)) {
return parseReg(obj, location1, content);
}
}
});
session.media = media;
return session;
};
var paramReducer = function(acc, expr) {
var s3 = expr.split(/=(.+)/, 2);
if (s3.length === 2) {
acc[s3[0]] = toIntIfInt(s3[1]);
}
return acc;
};
exports1.parseParams = function(str) {
return str.split(/\;\s?/).reduce(paramReducer, {});
};
exports1.parseFmtpConfig = exports1.parseParams;
exports1.parsePayloads = function(str) {
return str.split(" ").map(Number);
};
exports1.parseRemoteCandidates = function(str) {
var candidates = [];
var parts = str.split(" ").map(toIntIfInt);
for (var i3 = 0; i3 < parts.length; i3 += 3) {
candidates.push({
component: parts[i3],
ip: parts[i3 + 1],
port: parts[i3 + 2]
});
}
return candidates;
};
exports1.parseImageAttributes = function(str) {
return str.split(" ").map(function(item) {
return item.substring(1, item.length - 1).split(",").reduce(paramReducer, {});
});
};
exports1.parseSimulcastStreamList = function(str) {
return str.split(";").map(function(stream) {
return stream.split(",").map(function(format) {
var scid, paused = false;
if (format[0] !== "~") {
scid = toIntIfInt(format);
} else {
scid = toIntIfInt(format.substring(1, format.length));
paused = true;
}
return {
scid,
paused
};
});
});
};
},
"./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/writer.js": function(module1, exports1, __webpack_require__) {
var grammar = __webpack_require__("./node_modules/@jitsi/sdp-interop/node_modules/sdp-transform/lib/grammar.js");
var formatRegExp = /%[sdv%]/g;
var format = function(formatStr) {
var i3 = 1;
var args = arguments;
var len = args.length;
return formatStr.replace(formatRegExp, function(x3) {
if (i3 >= len) {
return x3;
}
var arg = args[i3];
i3 += 1;
switch (x3) {
case "%%":
return "%";
case "%s":
return String(arg);
case "%d":
return Number(arg);
case "%v":
return "";
}
});
};
var makeLine = function(type, obj, location1) {
var str = obj.format instanceof Function ? obj.format(obj.push ? location1 : location1[obj.name]) : obj.format;
var args = [
type + "=" + str
];
if (obj.names) {
for (var i3 = 0; i3 < obj.names.length; i3 += 1) {
var n3 = obj.names[i3];
if (obj.name) {
args.push(location1[obj.name][n3]);
} else {
args.push(location1[obj.names[i3]]);
}
}
} else {
args.push(location1[obj.name]);
}
return format.apply(null, args);
};
var defaultOuterOrder = [
"v",
"o",
"s",
"i",
"u",
"e",
"p",
"c",
"b",
"t",
"r",
"z",
"a"
];
var defaultInnerOrder = [
"i",
"c",
"b",
"a"
];
module1.exports = function(session,