@skyway-sdk/sfu-bot
Version:
The official Next Generation JavaScript SDK for SkyWay
931 lines (928 loc) • 1.85 MB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
var __typeError = (msg) => {
throw TypeError(msg);
};
var __pow = Math.pow;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __esm = (fn, res) => function __init() {
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
};
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all3) => {
for (var name in all3)
__defProp(target, name, { get: all3[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e2) {
reject(e2);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e2) {
reject(e2);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
var __await = function(promise, isYieldStar) {
this[0] = promise;
this[1] = isYieldStar;
};
var __asyncGenerator = (__this, __arguments, generator) => {
var resume = (k, v, yes, no) => {
try {
var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done;
Promise.resolve(isAwait ? v[0] : v).then((y) => isAwait ? resume(k === "return" ? k : "next", v[1] ? { done: y.done, value: y.value } : y, yes, no) : yes({ value: y, done })).catch((e2) => resume("throw", e2, yes, no));
} catch (e2) {
no(e2);
}
}, method = (k) => it[k] = (x) => new Promise((yes, no) => resume(k, x, yes, no)), it = {};
return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = () => it, method("next"), method("throw"), method("return"), it;
};
var __yieldStar = (value) => {
var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
if (obj == null) {
obj = value[__knownSymbol("iterator")]();
method = (k) => it[k] = (x) => obj[k](x);
} else {
obj = obj.call(value);
method = (k) => it[k] = (v) => {
if (isAwait) {
isAwait = false;
if (k === "throw") throw v;
return v;
}
isAwait = true;
return {
done: false,
value: new __await(new Promise((resolve) => {
var x = obj[k](v);
if (!(x instanceof Object)) __typeError("Object expected");
resolve(x);
}), 1)
};
};
}
return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
throw x;
}, "return" in obj && method("return"), it;
};
var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
// shims/process.js
var process;
var init_process = __esm({
"shims/process.js"() {
"use strict";
process = void 0;
}
});
// ../../node_modules/.pnpm/bowser@2.11.0/node_modules/bowser/es5.js
var require_es5 = __commonJS({
"../../node_modules/.pnpm/bowser@2.11.0/node_modules/bowser/es5.js"(exports, module) {
init_process();
!(function(e2, t2) {
"object" == typeof exports && "object" == typeof module ? module.exports = t2() : "function" == typeof define && define.amd ? define([], t2) : "object" == typeof exports ? exports.bowser = t2() : e2.bowser = t2();
})(exports, (function() {
return (function(e2) {
var t2 = {};
function r2(n2) {
if (t2[n2]) return t2[n2].exports;
var i = t2[n2] = { i: n2, l: false, exports: {} };
return e2[n2].call(i.exports, i, i.exports, r2), i.l = true, i.exports;
}
return r2.m = e2, r2.c = t2, r2.d = function(e3, t3, n2) {
r2.o(e3, t3) || Object.defineProperty(e3, t3, { enumerable: true, get: n2 });
}, r2.r = function(e3) {
"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e3, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e3, "__esModule", { value: true });
}, r2.t = function(e3, t3) {
if (1 & t3 && (e3 = r2(e3)), 8 & t3) return e3;
if (4 & t3 && "object" == typeof e3 && e3 && e3.__esModule) return e3;
var n2 = /* @__PURE__ */ Object.create(null);
if (r2.r(n2), Object.defineProperty(n2, "default", { enumerable: true, value: e3 }), 2 & t3 && "string" != typeof e3) for (var i in e3) r2.d(n2, i, function(t4) {
return e3[t4];
}.bind(null, i));
return n2;
}, r2.n = function(e3) {
var t3 = e3 && e3.__esModule ? function() {
return e3.default;
} : function() {
return e3;
};
return r2.d(t3, "a", t3), t3;
}, r2.o = function(e3, t3) {
return Object.prototype.hasOwnProperty.call(e3, t3);
}, r2.p = "", r2(r2.s = 90);
})({ 17: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2 = r2(18), i = (function() {
function e3() {
}
return e3.getFirstMatch = function(e4, t3) {
var r3 = t3.match(e4);
return r3 && r3.length > 0 && r3[1] || "";
}, e3.getSecondMatch = function(e4, t3) {
var r3 = t3.match(e4);
return r3 && r3.length > 1 && r3[2] || "";
}, e3.matchAndReturnConst = function(e4, t3, r3) {
if (e4.test(t3)) return r3;
}, e3.getWindowsVersionName = function(e4) {
switch (e4) {
case "NT":
return "NT";
case "XP":
return "XP";
case "NT 5.0":
return "2000";
case "NT 5.1":
return "XP";
case "NT 5.2":
return "2003";
case "NT 6.0":
return "Vista";
case "NT 6.1":
return "7";
case "NT 6.2":
return "8";
case "NT 6.3":
return "8.1";
case "NT 10.0":
return "10";
default:
return;
}
}, e3.getMacOSVersionName = function(e4) {
var t3 = e4.split(".").splice(0, 2).map((function(e5) {
return parseInt(e5, 10) || 0;
}));
if (t3.push(0), 10 === t3[0]) switch (t3[1]) {
case 5:
return "Leopard";
case 6:
return "Snow Leopard";
case 7:
return "Lion";
case 8:
return "Mountain Lion";
case 9:
return "Mavericks";
case 10:
return "Yosemite";
case 11:
return "El Capitan";
case 12:
return "Sierra";
case 13:
return "High Sierra";
case 14:
return "Mojave";
case 15:
return "Catalina";
default:
return;
}
}, e3.getAndroidVersionName = function(e4) {
var t3 = e4.split(".").splice(0, 2).map((function(e5) {
return parseInt(e5, 10) || 0;
}));
if (t3.push(0), !(1 === t3[0] && t3[1] < 5)) return 1 === t3[0] && t3[1] < 6 ? "Cupcake" : 1 === t3[0] && t3[1] >= 6 ? "Donut" : 2 === t3[0] && t3[1] < 2 ? "Eclair" : 2 === t3[0] && 2 === t3[1] ? "Froyo" : 2 === t3[0] && t3[1] > 2 ? "Gingerbread" : 3 === t3[0] ? "Honeycomb" : 4 === t3[0] && t3[1] < 1 ? "Ice Cream Sandwich" : 4 === t3[0] && t3[1] < 4 ? "Jelly Bean" : 4 === t3[0] && t3[1] >= 4 ? "KitKat" : 5 === t3[0] ? "Lollipop" : 6 === t3[0] ? "Marshmallow" : 7 === t3[0] ? "Nougat" : 8 === t3[0] ? "Oreo" : 9 === t3[0] ? "Pie" : void 0;
}, e3.getVersionPrecision = function(e4) {
return e4.split(".").length;
}, e3.compareVersions = function(t3, r3, n3) {
void 0 === n3 && (n3 = false);
var i2 = e3.getVersionPrecision(t3), s = e3.getVersionPrecision(r3), a = Math.max(i2, s), o2 = 0, u = e3.map([t3, r3], (function(t4) {
var r4 = a - e3.getVersionPrecision(t4), n4 = t4 + new Array(r4 + 1).join(".0");
return e3.map(n4.split("."), (function(e4) {
return new Array(20 - e4.length).join("0") + e4;
})).reverse();
}));
for (n3 && (o2 = a - Math.min(i2, s)), a -= 1; a >= o2; ) {
if (u[0][a] > u[1][a]) return 1;
if (u[0][a] === u[1][a]) {
if (a === o2) return 0;
a -= 1;
} else if (u[0][a] < u[1][a]) return -1;
}
}, e3.map = function(e4, t3) {
var r3, n3 = [];
if (Array.prototype.map) return Array.prototype.map.call(e4, t3);
for (r3 = 0; r3 < e4.length; r3 += 1) n3.push(t3(e4[r3]));
return n3;
}, e3.find = function(e4, t3) {
var r3, n3;
if (Array.prototype.find) return Array.prototype.find.call(e4, t3);
for (r3 = 0, n3 = e4.length; r3 < n3; r3 += 1) {
var i2 = e4[r3];
if (t3(i2, r3)) return i2;
}
}, e3.assign = function(e4) {
for (var t3, r3, n3 = e4, i2 = arguments.length, s = new Array(i2 > 1 ? i2 - 1 : 0), a = 1; a < i2; a++) s[a - 1] = arguments[a];
if (Object.assign) return Object.assign.apply(Object, [e4].concat(s));
var o2 = function() {
var e5 = s[t3];
"object" == typeof e5 && null !== e5 && Object.keys(e5).forEach((function(t4) {
n3[t4] = e5[t4];
}));
};
for (t3 = 0, r3 = s.length; t3 < r3; t3 += 1) o2();
return e4;
}, e3.getBrowserAlias = function(e4) {
return n2.BROWSER_ALIASES_MAP[e4];
}, e3.getBrowserTypeByAlias = function(e4) {
return n2.BROWSER_MAP[e4] || "";
}, e3;
})();
t2.default = i, e2.exports = t2.default;
}, 18: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.ENGINE_MAP = t2.OS_MAP = t2.PLATFORMS_MAP = t2.BROWSER_MAP = t2.BROWSER_ALIASES_MAP = void 0;
t2.BROWSER_ALIASES_MAP = { "Amazon Silk": "amazon_silk", "Android Browser": "android", Bada: "bada", BlackBerry: "blackberry", Chrome: "chrome", Chromium: "chromium", Electron: "electron", Epiphany: "epiphany", Firefox: "firefox", Focus: "focus", Generic: "generic", "Google Search": "google_search", Googlebot: "googlebot", "Internet Explorer": "ie", "K-Meleon": "k_meleon", Maxthon: "maxthon", "Microsoft Edge": "edge", "MZ Browser": "mz", "NAVER Whale Browser": "naver", Opera: "opera", "Opera Coast": "opera_coast", PhantomJS: "phantomjs", Puffin: "puffin", QupZilla: "qupzilla", QQ: "qq", QQLite: "qqlite", Safari: "safari", Sailfish: "sailfish", "Samsung Internet for Android": "samsung_internet", SeaMonkey: "seamonkey", Sleipnir: "sleipnir", Swing: "swing", Tizen: "tizen", "UC Browser": "uc", Vivaldi: "vivaldi", "WebOS Browser": "webos", WeChat: "wechat", "Yandex Browser": "yandex", Roku: "roku" };
t2.BROWSER_MAP = { amazon_silk: "Amazon Silk", android: "Android Browser", bada: "Bada", blackberry: "BlackBerry", chrome: "Chrome", chromium: "Chromium", electron: "Electron", epiphany: "Epiphany", firefox: "Firefox", focus: "Focus", generic: "Generic", googlebot: "Googlebot", google_search: "Google Search", ie: "Internet Explorer", k_meleon: "K-Meleon", maxthon: "Maxthon", edge: "Microsoft Edge", mz: "MZ Browser", naver: "NAVER Whale Browser", opera: "Opera", opera_coast: "Opera Coast", phantomjs: "PhantomJS", puffin: "Puffin", qupzilla: "QupZilla", qq: "QQ Browser", qqlite: "QQ Browser Lite", safari: "Safari", sailfish: "Sailfish", samsung_internet: "Samsung Internet for Android", seamonkey: "SeaMonkey", sleipnir: "Sleipnir", swing: "Swing", tizen: "Tizen", uc: "UC Browser", vivaldi: "Vivaldi", webos: "WebOS Browser", wechat: "WeChat", yandex: "Yandex Browser" };
t2.PLATFORMS_MAP = { tablet: "tablet", mobile: "mobile", desktop: "desktop", tv: "tv" };
t2.OS_MAP = { WindowsPhone: "Windows Phone", Windows: "Windows", MacOS: "macOS", iOS: "iOS", Android: "Android", WebOS: "WebOS", BlackBerry: "BlackBerry", Bada: "Bada", Tizen: "Tizen", Linux: "Linux", ChromeOS: "Chrome OS", PlayStation4: "PlayStation 4", Roku: "Roku" };
t2.ENGINE_MAP = { EdgeHTML: "EdgeHTML", Blink: "Blink", Trident: "Trident", Presto: "Presto", Gecko: "Gecko", WebKit: "WebKit" };
}, 90: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2, i = (n2 = r2(91)) && n2.__esModule ? n2 : { default: n2 }, s = r2(18);
function a(e3, t3) {
for (var r3 = 0; r3 < t3.length; r3++) {
var n3 = t3[r3];
n3.enumerable = n3.enumerable || false, n3.configurable = true, "value" in n3 && (n3.writable = true), Object.defineProperty(e3, n3.key, n3);
}
}
var o2 = (function() {
function e3() {
}
var t3, r3, n3;
return e3.getParser = function(e4, t4) {
if (void 0 === t4 && (t4 = false), "string" != typeof e4) throw new Error("UserAgent should be a string");
return new i.default(e4, t4);
}, e3.parse = function(e4) {
return new i.default(e4).getResult();
}, t3 = e3, n3 = [{ key: "BROWSER_MAP", get: function() {
return s.BROWSER_MAP;
} }, { key: "ENGINE_MAP", get: function() {
return s.ENGINE_MAP;
} }, { key: "OS_MAP", get: function() {
return s.OS_MAP;
} }, { key: "PLATFORMS_MAP", get: function() {
return s.PLATFORMS_MAP;
} }], (r3 = null) && a(t3.prototype, r3), n3 && a(t3, n3), e3;
})();
t2.default = o2, e2.exports = t2.default;
}, 91: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2 = u(r2(92)), i = u(r2(93)), s = u(r2(94)), a = u(r2(95)), o2 = u(r2(17));
function u(e3) {
return e3 && e3.__esModule ? e3 : { default: e3 };
}
var d = (function() {
function e3(e4, t4) {
if (void 0 === t4 && (t4 = false), null == e4 || "" === e4) throw new Error("UserAgent parameter can't be empty");
this._ua = e4, this.parsedResult = {}, true !== t4 && this.parse();
}
var t3 = e3.prototype;
return t3.getUA = function() {
return this._ua;
}, t3.test = function(e4) {
return e4.test(this._ua);
}, t3.parseBrowser = function() {
var e4 = this;
this.parsedResult.browser = {};
var t4 = o2.default.find(n2.default, (function(t5) {
if ("function" == typeof t5.test) return t5.test(e4);
if (t5.test instanceof Array) return t5.test.some((function(t6) {
return e4.test(t6);
}));
throw new Error("Browser's test function is not valid");
}));
return t4 && (this.parsedResult.browser = t4.describe(this.getUA())), this.parsedResult.browser;
}, t3.getBrowser = function() {
return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();
}, t3.getBrowserName = function(e4) {
return e4 ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || "";
}, t3.getBrowserVersion = function() {
return this.getBrowser().version;
}, t3.getOS = function() {
return this.parsedResult.os ? this.parsedResult.os : this.parseOS();
}, t3.parseOS = function() {
var e4 = this;
this.parsedResult.os = {};
var t4 = o2.default.find(i.default, (function(t5) {
if ("function" == typeof t5.test) return t5.test(e4);
if (t5.test instanceof Array) return t5.test.some((function(t6) {
return e4.test(t6);
}));
throw new Error("Browser's test function is not valid");
}));
return t4 && (this.parsedResult.os = t4.describe(this.getUA())), this.parsedResult.os;
}, t3.getOSName = function(e4) {
var t4 = this.getOS().name;
return e4 ? String(t4).toLowerCase() || "" : t4 || "";
}, t3.getOSVersion = function() {
return this.getOS().version;
}, t3.getPlatform = function() {
return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();
}, t3.getPlatformType = function(e4) {
void 0 === e4 && (e4 = false);
var t4 = this.getPlatform().type;
return e4 ? String(t4).toLowerCase() || "" : t4 || "";
}, t3.parsePlatform = function() {
var e4 = this;
this.parsedResult.platform = {};
var t4 = o2.default.find(s.default, (function(t5) {
if ("function" == typeof t5.test) return t5.test(e4);
if (t5.test instanceof Array) return t5.test.some((function(t6) {
return e4.test(t6);
}));
throw new Error("Browser's test function is not valid");
}));
return t4 && (this.parsedResult.platform = t4.describe(this.getUA())), this.parsedResult.platform;
}, t3.getEngine = function() {
return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();
}, t3.getEngineName = function(e4) {
return e4 ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || "";
}, t3.parseEngine = function() {
var e4 = this;
this.parsedResult.engine = {};
var t4 = o2.default.find(a.default, (function(t5) {
if ("function" == typeof t5.test) return t5.test(e4);
if (t5.test instanceof Array) return t5.test.some((function(t6) {
return e4.test(t6);
}));
throw new Error("Browser's test function is not valid");
}));
return t4 && (this.parsedResult.engine = t4.describe(this.getUA())), this.parsedResult.engine;
}, t3.parse = function() {
return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;
}, t3.getResult = function() {
return o2.default.assign({}, this.parsedResult);
}, t3.satisfies = function(e4) {
var t4 = this, r3 = {}, n3 = 0, i2 = {}, s2 = 0;
if (Object.keys(e4).forEach((function(t5) {
var a3 = e4[t5];
"string" == typeof a3 ? (i2[t5] = a3, s2 += 1) : "object" == typeof a3 && (r3[t5] = a3, n3 += 1);
})), n3 > 0) {
var a2 = Object.keys(r3), u2 = o2.default.find(a2, (function(e5) {
return t4.isOS(e5);
}));
if (u2) {
var d2 = this.satisfies(r3[u2]);
if (void 0 !== d2) return d2;
}
var c = o2.default.find(a2, (function(e5) {
return t4.isPlatform(e5);
}));
if (c) {
var f = this.satisfies(r3[c]);
if (void 0 !== f) return f;
}
}
if (s2 > 0) {
var l = Object.keys(i2), h = o2.default.find(l, (function(e5) {
return t4.isBrowser(e5, true);
}));
if (void 0 !== h) return this.compareVersion(i2[h]);
}
}, t3.isBrowser = function(e4, t4) {
void 0 === t4 && (t4 = false);
var r3 = this.getBrowserName().toLowerCase(), n3 = e4.toLowerCase(), i2 = o2.default.getBrowserTypeByAlias(n3);
return t4 && i2 && (n3 = i2.toLowerCase()), n3 === r3;
}, t3.compareVersion = function(e4) {
var t4 = [0], r3 = e4, n3 = false, i2 = this.getBrowserVersion();
if ("string" == typeof i2) return ">" === e4[0] || "<" === e4[0] ? (r3 = e4.substr(1), "=" === e4[1] ? (n3 = true, r3 = e4.substr(2)) : t4 = [], ">" === e4[0] ? t4.push(1) : t4.push(-1)) : "=" === e4[0] ? r3 = e4.substr(1) : "~" === e4[0] && (n3 = true, r3 = e4.substr(1)), t4.indexOf(o2.default.compareVersions(i2, r3, n3)) > -1;
}, t3.isOS = function(e4) {
return this.getOSName(true) === String(e4).toLowerCase();
}, t3.isPlatform = function(e4) {
return this.getPlatformType(true) === String(e4).toLowerCase();
}, t3.isEngine = function(e4) {
return this.getEngineName(true) === String(e4).toLowerCase();
}, t3.is = function(e4, t4) {
return void 0 === t4 && (t4 = false), this.isBrowser(e4, t4) || this.isOS(e4) || this.isPlatform(e4);
}, t3.some = function(e4) {
var t4 = this;
return void 0 === e4 && (e4 = []), e4.some((function(e5) {
return t4.is(e5);
}));
}, e3;
})();
t2.default = d, e2.exports = t2.default;
}, 92: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2, i = (n2 = r2(17)) && n2.__esModule ? n2 : { default: n2 };
var s = /version\/(\d+(\.?_?\d+)+)/i, a = [{ test: [/googlebot/i], describe: function(e3) {
var t3 = { name: "Googlebot" }, r3 = i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/opera/i], describe: function(e3) {
var t3 = { name: "Opera" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/opr\/|opios/i], describe: function(e3) {
var t3 = { name: "Opera" }, r3 = i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/SamsungBrowser/i], describe: function(e3) {
var t3 = { name: "Samsung Internet for Android" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/Whale/i], describe: function(e3) {
var t3 = { name: "NAVER Whale Browser" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/MZBrowser/i], describe: function(e3) {
var t3 = { name: "MZ Browser" }, r3 = i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/focus/i], describe: function(e3) {
var t3 = { name: "Focus" }, r3 = i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/swing/i], describe: function(e3) {
var t3 = { name: "Swing" }, r3 = i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/coast/i], describe: function(e3) {
var t3 = { name: "Opera Coast" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/opt\/\d+(?:.?_?\d+)+/i], describe: function(e3) {
var t3 = { name: "Opera Touch" }, r3 = i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/yabrowser/i], describe: function(e3) {
var t3 = { name: "Yandex Browser" }, r3 = i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/ucbrowser/i], describe: function(e3) {
var t3 = { name: "UC Browser" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/Maxthon|mxios/i], describe: function(e3) {
var t3 = { name: "Maxthon" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/epiphany/i], describe: function(e3) {
var t3 = { name: "Epiphany" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/puffin/i], describe: function(e3) {
var t3 = { name: "Puffin" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/sleipnir/i], describe: function(e3) {
var t3 = { name: "Sleipnir" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/k-meleon/i], describe: function(e3) {
var t3 = { name: "K-Meleon" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/micromessenger/i], describe: function(e3) {
var t3 = { name: "WeChat" }, r3 = i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/qqbrowser/i], describe: function(e3) {
var t3 = { name: /qqbrowserlite/i.test(e3) ? "QQ Browser Lite" : "QQ Browser" }, r3 = i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/msie|trident/i], describe: function(e3) {
var t3 = { name: "Internet Explorer" }, r3 = i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/\sedg\//i], describe: function(e3) {
var t3 = { name: "Microsoft Edge" }, r3 = i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/edg([ea]|ios)/i], describe: function(e3) {
var t3 = { name: "Microsoft Edge" }, r3 = i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/vivaldi/i], describe: function(e3) {
var t3 = { name: "Vivaldi" }, r3 = i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/seamonkey/i], describe: function(e3) {
var t3 = { name: "SeaMonkey" }, r3 = i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/sailfish/i], describe: function(e3) {
var t3 = { name: "Sailfish" }, r3 = i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/silk/i], describe: function(e3) {
var t3 = { name: "Amazon Silk" }, r3 = i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/phantom/i], describe: function(e3) {
var t3 = { name: "PhantomJS" }, r3 = i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/slimerjs/i], describe: function(e3) {
var t3 = { name: "SlimerJS" }, r3 = i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe: function(e3) {
var t3 = { name: "BlackBerry" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/(web|hpw)[o0]s/i], describe: function(e3) {
var t3 = { name: "WebOS Browser" }, r3 = i.default.getFirstMatch(s, e3) || i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/bada/i], describe: function(e3) {
var t3 = { name: "Bada" }, r3 = i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/tizen/i], describe: function(e3) {
var t3 = { name: "Tizen" }, r3 = i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/qupzilla/i], describe: function(e3) {
var t3 = { name: "QupZilla" }, r3 = i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/firefox|iceweasel|fxios/i], describe: function(e3) {
var t3 = { name: "Firefox" }, r3 = i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/electron/i], describe: function(e3) {
var t3 = { name: "Electron" }, r3 = i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/MiuiBrowser/i], describe: function(e3) {
var t3 = { name: "Miui" }, r3 = i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/chromium/i], describe: function(e3) {
var t3 = { name: "Chromium" }, r3 = i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e3) || i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/chrome|crios|crmo/i], describe: function(e3) {
var t3 = { name: "Chrome" }, r3 = i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/GSA/i], describe: function(e3) {
var t3 = { name: "Google Search" }, r3 = i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: function(e3) {
var t3 = !e3.test(/like android/i), r3 = e3.test(/android/i);
return t3 && r3;
}, describe: function(e3) {
var t3 = { name: "Android Browser" }, r3 = i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/playstation 4/i], describe: function(e3) {
var t3 = { name: "PlayStation 4" }, r3 = i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/safari|applewebkit/i], describe: function(e3) {
var t3 = { name: "Safari" }, r3 = i.default.getFirstMatch(s, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/.*/i], describe: function(e3) {
var t3 = -1 !== e3.search("\\(") ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /;
return { name: i.default.getFirstMatch(t3, e3), version: i.default.getSecondMatch(t3, e3) };
} }];
t2.default = a, e2.exports = t2.default;
}, 93: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2, i = (n2 = r2(17)) && n2.__esModule ? n2 : { default: n2 }, s = r2(18);
var a = [{ test: [/Roku\/DVP/], describe: function(e3) {
var t3 = i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e3);
return { name: s.OS_MAP.Roku, version: t3 };
} }, { test: [/windows phone/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e3);
return { name: s.OS_MAP.WindowsPhone, version: t3 };
} }, { test: [/windows /i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e3), r3 = i.default.getWindowsVersionName(t3);
return { name: s.OS_MAP.Windows, version: t3, versionName: r3 };
} }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe: function(e3) {
var t3 = { name: s.OS_MAP.iOS }, r3 = i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/macintosh/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e3).replace(/[_\s]/g, "."), r3 = i.default.getMacOSVersionName(t3), n3 = { name: s.OS_MAP.MacOS, version: t3 };
return r3 && (n3.versionName = r3), n3;
} }, { test: [/(ipod|iphone|ipad)/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e3).replace(/[_\s]/g, ".");
return { name: s.OS_MAP.iOS, version: t3 };
} }, { test: function(e3) {
var t3 = !e3.test(/like android/i), r3 = e3.test(/android/i);
return t3 && r3;
}, describe: function(e3) {
var t3 = i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e3), r3 = i.default.getAndroidVersionName(t3), n3 = { name: s.OS_MAP.Android, version: t3 };
return r3 && (n3.versionName = r3), n3;
} }, { test: [/(web|hpw)[o0]s/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e3), r3 = { name: s.OS_MAP.WebOS };
return t3 && t3.length && (r3.version = t3), r3;
} }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e3) || i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e3) || i.default.getFirstMatch(/\bbb(\d+)/i, e3);
return { name: s.OS_MAP.BlackBerry, version: t3 };
} }, { test: [/bada/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e3);
return { name: s.OS_MAP.Bada, version: t3 };
} }, { test: [/tizen/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e3);
return { name: s.OS_MAP.Tizen, version: t3 };
} }, { test: [/linux/i], describe: function() {
return { name: s.OS_MAP.Linux };
} }, { test: [/CrOS/], describe: function() {
return { name: s.OS_MAP.ChromeOS };
} }, { test: [/PlayStation 4/], describe: function(e3) {
var t3 = i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e3);
return { name: s.OS_MAP.PlayStation4, version: t3 };
} }];
t2.default = a, e2.exports = t2.default;
}, 94: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2, i = (n2 = r2(17)) && n2.__esModule ? n2 : { default: n2 }, s = r2(18);
var a = [{ test: [/googlebot/i], describe: function() {
return { type: "bot", vendor: "Google" };
} }, { test: [/huawei/i], describe: function(e3) {
var t3 = i.default.getFirstMatch(/(can-l01)/i, e3) && "Nova", r3 = { type: s.PLATFORMS_MAP.mobile, vendor: "Huawei" };
return t3 && (r3.model = t3), r3;
} }, { test: [/nexus\s*(?:7|8|9|10).*/i], describe: function() {
return { type: s.PLATFORMS_MAP.tablet, vendor: "Nexus" };
} }, { test: [/ipad/i], describe: function() {
return { type: s.PLATFORMS_MAP.tablet, vendor: "Apple", model: "iPad" };
} }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe: function() {
return { type: s.PLATFORMS_MAP.tablet, vendor: "Apple", model: "iPad" };
} }, { test: [/kftt build/i], describe: function() {
return { type: s.PLATFORMS_MAP.tablet, vendor: "Amazon", model: "Kindle Fire HD 7" };
} }, { test: [/silk/i], describe: function() {
return { type: s.PLATFORMS_MAP.tablet, vendor: "Amazon" };
} }, { test: [/tablet(?! pc)/i], describe: function() {
return { type: s.PLATFORMS_MAP.tablet };
} }, { test: function(e3) {
var t3 = e3.test(/ipod|iphone/i), r3 = e3.test(/like (ipod|iphone)/i);
return t3 && !r3;
}, describe: function(e3) {
var t3 = i.default.getFirstMatch(/(ipod|iphone)/i, e3);
return { type: s.PLATFORMS_MAP.mobile, vendor: "Apple", model: t3 };
} }, { test: [/nexus\s*[0-6].*/i, /galaxy nexus/i], describe: function() {
return { type: s.PLATFORMS_MAP.mobile, vendor: "Nexus" };
} }, { test: [/[^-]mobi/i], describe: function() {
return { type: s.PLATFORMS_MAP.mobile };
} }, { test: function(e3) {
return "blackberry" === e3.getBrowserName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.mobile, vendor: "BlackBerry" };
} }, { test: function(e3) {
return "bada" === e3.getBrowserName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.mobile };
} }, { test: function(e3) {
return "windows phone" === e3.getBrowserName();
}, describe: function() {
return { type: s.PLATFORMS_MAP.mobile, vendor: "Microsoft" };
} }, { test: function(e3) {
var t3 = Number(String(e3.getOSVersion()).split(".")[0]);
return "android" === e3.getOSName(true) && t3 >= 3;
}, describe: function() {
return { type: s.PLATFORMS_MAP.tablet };
} }, { test: function(e3) {
return "android" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.mobile };
} }, { test: function(e3) {
return "macos" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.desktop, vendor: "Apple" };
} }, { test: function(e3) {
return "windows" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.desktop };
} }, { test: function(e3) {
return "linux" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.desktop };
} }, { test: function(e3) {
return "playstation 4" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.tv };
} }, { test: function(e3) {
return "roku" === e3.getOSName(true);
}, describe: function() {
return { type: s.PLATFORMS_MAP.tv };
} }];
t2.default = a, e2.exports = t2.default;
}, 95: function(e2, t2, r2) {
"use strict";
t2.__esModule = true, t2.default = void 0;
var n2, i = (n2 = r2(17)) && n2.__esModule ? n2 : { default: n2 }, s = r2(18);
var a = [{ test: function(e3) {
return "microsoft edge" === e3.getBrowserName(true);
}, describe: function(e3) {
if (/\sedg\//i.test(e3)) return { name: s.ENGINE_MAP.Blink };
var t3 = i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e3);
return { name: s.ENGINE_MAP.EdgeHTML, version: t3 };
} }, { test: [/trident/i], describe: function(e3) {
var t3 = { name: s.ENGINE_MAP.Trident }, r3 = i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: function(e3) {
return e3.test(/presto/i);
}, describe: function(e3) {
var t3 = { name: s.ENGINE_MAP.Presto }, r3 = i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: function(e3) {
var t3 = e3.test(/gecko/i), r3 = e3.test(/like gecko/i);
return t3 && !r3;
}, describe: function(e3) {
var t3 = { name: s.ENGINE_MAP.Gecko }, r3 = i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }, { test: [/(apple)?webkit\/537\.36/i], describe: function() {
return { name: s.ENGINE_MAP.Blink };
} }, { test: [/(apple)?webkit/i], describe: function(e3) {
var t3 = { name: s.ENGINE_MAP.WebKit }, r3 = i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e3);
return r3 && (t3.version = r3), t3;
} }];
t2.default = a, e2.exports = t2.default;
} });
}));
}
});
// ../../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/grammar.js
var require_grammar = __commonJS({
"../../node_modules/.pnpm/sdp-transform@2.15.0/node_modules/sdp-transform/lib/grammar.js"(exports, module) {
init_process();
var grammar = module.exports = {
v: [{
name: "version",
reg: /^(\d*)$/
}],
o: [{
// o=- 20518 0 IN IP4 203.0.113.1
// NB: sessionId will be a String in most cases because it is huge
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"
}],
// default parsing of these only (though some of these feel outdated)
s: [{ name: "name" }],
i: [{ name: "description" }],
u: [{ name: "uri" }],
e: [{ name: "email" }],
p: [{ name: "phone" }],
z: [{ name: "timezones" }],
// TODO: this one can actually be parsed properly...
r: [{ name: "repeats" }],
// TODO: this one can also be parsed properly
// k: [{}], // outdated thing ignored
t: [{
// t=0 0
name: "timing",
reg: /^(\d*) (\d*)/,
names: ["start", "stop"],
format: "%d %d"
}],
c: [{
// c=IN IP4 10.47.197.26
name: "connection",
reg: /^IN IP(\d) (\S*)/,
names: ["version", "ip"],
format: "IN IP%d %s"
}],
b: [{
// b=AS:4000
push: "bandwidth",
reg: /^(TIAS|AS|CT|RR|RS):(\d*)/,
names: ["type", "limit"],
format: "%s:%s"
}],
m: [{
// m=video 51744 RTP/AVP 126 97 98 34 31
// NB: special - pushes to session
// TODO: rtp/fmtp should be filtered by the payloads found here?
reg: /^(\w*) (\d*) ([\w/]*)(?: (.*))?/,
names: ["type", "port", "protocol", "payloads"],
format: "%s %d %s %s"
}],
a: [
{
// a=rtpmap:110 opus/48000/2
push: "rtp",
reg: /^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,
names: ["payload", "codec", "rate", "encoding"],
format: function(o2) {
return o2.encoding ? "rtpmap:%d %s/%s/%s" : o2.rate ? "rtpmap:%d %s/%s" : "rtpmap:%d %s";
}
},
{
// a=fmtp:108 profile-level-id=24;object=23;bitrate=64000
// a=fmtp:111 minptime=10; useinbandfec=1
push: "fmtp",
reg: /^fmtp:(\d*) ([\S| ]*)/,
names: ["payload", "config"],
format: "fmtp:%d %s"
},
{
// a=control:streamid=0
name: "control",
reg: /^control:(.*)/,
format: "control:%s"
},
{
// a=rtcp:65179 IN IP4 193.84.77.194
name: "rtcp",
reg: /^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,
names: ["port", "netType", "ipVer", "address"],
format: function(o2) {
return o2.address != null ? "rtcp:%d %s IP%d %s" : "rtcp:%d";
}
},
{
// a=rtcp-fb:98 trr-int 100
push: "rtcpFbTrrInt",
reg: /^rtcp-fb:(\*|\d*) trr-int (\d*)/,
names: ["payload", "value"],
format: "rtcp-fb:%s trr-int %d"
},
{
// a=rtcp-fb:98 nack rpsi
push: "rtcpFb",
reg: /^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,
names: ["payload", "type", "subtype"],
format: function(o2) {
return o2.subtype != null ? "rtcp-fb:%s %s %s" : "rtcp-fb:%s %s";
}
},
{
// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
// a=extmap:1/recvonly URI-gps-string
// a=extmap:3 urn:ietf:params:rtp-hdrext:encrypt urn:ietf:params:rtp-hdrext:smpte-tc 25@600/24
push: "ext",
reg: /^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,
names: ["value", "direction", "encrypt-uri", "uri", "config"],
format: function(o2) {
return "extmap:%d" + (o2.direction ? "/%s" : "%v") + (o2["encrypt-uri"] ? " %s" : "%v") + " %s" + (o2.config ? " %s" : "");
}
},
{
// a=extmap-allow-mixed
name: "extmapAllowMixed",
reg: /^(extmap-allow-mixed)/
},
{
// a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:PS1uQCVeeCFCanVmcjkpPywjNWhcYD0mXXtxaVBR|2^20|1:32
push: "crypto",
reg: /^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,
names: ["id", "suite", "config", "sessionConfig"],
format: function(o2) {
return o2.sessionConfig != null ? "crypto:%d %s %s %s" : "crypto:%d %s %s";
}
},
{
// a=setup:actpass
name: "setup",
reg: /^setup:(\w*)/,
format: "setup:%s"
},
{
// a=connection:new
name: "connectionType",
reg: /^connection:(new|existing)/,
format: "connection:%s"
},
{
// a=mid:1
name: "mid",
reg: /^mid:([^\s]*)/,
format: "mid:%s"
},
{
// a=msid:0c8b064d-d807-43b4-b434-f92a889d8587 98178685-d409-46e0-8e16-7ef0db0db64a
name: "msid",
reg: /^msid:(.*)/,
format: "msid:%s"
},
{
// a=ptime:20
name: "ptime",
reg: /^ptime:(\d*(?:\.\d*)*)/,
format: "ptime:%d"
},
{
// a=maxptime:60
name: "maxptime",
reg: /^maxptime:(\d*(?:\.\d*)*)/,
format: "maxptime:%d"
},
{