@nethesis/phone-island 1.0.8-dev.9 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"],"sourcesContent":["import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var iconArgs = props.icon,\n maskArgs = props.mask,\n symbol = props.symbol,\n className = props.className,\n title = props.title,\n titleId = props.titleId,\n maskId = props.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(props)), _toConsumableArray(className.split(' '))));\n var transform = objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(props).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!FontAwesomeIcon.defaultProps.hasOwnProperty(key)) {\n extraProps[key] = props[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nFontAwesomeIcon.defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_typeof","obj","Symbol","iterator","constructor","prototype","value","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","o","minLen","n","toString","slice","name","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","camelize","string","replace","match","chr","toUpperCase","substr","toLowerCase","_excluded","PRODUCTION","process","env","NODE_ENV","e","normalizeIconArgs","icon","prefix","iconName","parse","objectWithKey","FontAwesomeIcon","React","forwardRef","props","ref","iconArgs","maskArgs","mask","symbol","className","title","titleId","maskId","iconLookup","classes","concat","_classes","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","size","rotation","pull","swapOpacity","map","classList","split","transform","renderedIcon","_console","console","error","log","abstract","extraProps","defaultProps","hasOwnProperty","convertCurry","displayName","propTypes","PropTypes","exports","bool","oneOfType","array","oneOf","convert","createElement","element","undefined","children","child","mixins","attributes","reduce","acc","val","attrs","s","trim","pair","prop","startsWith","charAt","_extraProps$style","style","existingStyle","remaining","tag","bind"],"mappings":"kTAIA,SAASA,EAAQC,EAAQC,GACvB,IAAIC,EAAOC,OAAOD,KAAKF,GAEvB,GAAIG,OAAOC,sBAAuB,CAChC,IAAIC,EAAUF,OAAOC,sBAAsBJ,GAC3CC,IAAmBI,EAAUA,EAAQC,QAAO,SAAUC,GACpD,OAAOJ,OAAOK,yBAAyBR,EAAQO,GAAKE,UACtD,KAAKP,EAAKQ,KAAKC,MAAMT,EAAMG,EAC7B,CAEA,OAAOH,CACT,CAEA,SAASU,EAAeC,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAAS,MAAQF,UAAUD,GAAKC,UAAUD,GAAK,GACnDA,EAAI,EAAIf,EAAQI,OAAOc,IAAS,GAAIC,SAAQ,SAAUC,GACpDC,EAAgBP,EAAQM,EAAKF,EAAOE,GACtC,IAAKhB,OAAOkB,0BAA4BlB,OAAOmB,iBAAiBT,EAAQV,OAAOkB,0BAA0BJ,IAAWlB,EAAQI,OAAOc,IAASC,SAAQ,SAAUC,GAC5JhB,OAAOoB,eAAeV,EAAQM,EAAKhB,OAAOK,yBAAyBS,EAAQE,GAC7E,GACF,CAEA,OAAON,CACT,CAEA,SAASW,EAAQC,GAGf,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,EAAQC,EACb,CAEA,SAASL,EAAgBK,EAAKN,EAAKW,GAYjC,OAXIX,KAAOM,EACTtB,OAAOoB,eAAeE,EAAKN,EAAK,CAC9BW,MAAOA,EACPrB,YAAY,EACZsB,cAAc,EACdC,UAAU,IAGZP,EAAIN,GAAOW,EAGNL,CACT,CAiBA,SAASQ,EAAyBhB,EAAQiB,GACxC,GAAc,MAAVjB,EAAgB,MAAO,GAE3B,IAEIE,EAAKL,EAFLD,EAlBN,SAAuCI,EAAQiB,GAC7C,GAAc,MAAVjB,EAAgB,MAAO,GAC3B,IAEIE,EAAKL,EAFLD,EAAS,CAAA,EACTsB,EAAahC,OAAOD,KAAKe,GAG7B,IAAKH,EAAI,EAAGA,EAAIqB,EAAWnB,OAAQF,IACjCK,EAAMgB,EAAWrB,GACboB,EAASE,QAAQjB,IAAQ,IAC7BN,EAAOM,GAAOF,EAAOE,IAGvB,OAAON,CACT,CAKewB,CAA8BpB,EAAQiB,GAInD,GAAI/B,OAAOC,sBAAuB,CAChC,IAAIkC,EAAmBnC,OAAOC,sBAAsBa,GAEpD,IAAKH,EAAI,EAAGA,EAAIwB,EAAiBtB,OAAQF,IACvCK,EAAMmB,EAAiBxB,GACnBoB,EAASE,QAAQjB,IAAQ,GACxBhB,OAAO0B,UAAUU,qBAAqBC,KAAKvB,EAAQE,KACxDN,EAAOM,GAAOF,EAAOE,GAEzB,CAEA,OAAON,CACT,CAEA,SAAS4B,EAAmBC,GAC1B,OAGF,SAA4BA,GAC1B,GAAIC,MAAMC,QAAQF,GAAM,OAAOG,EAAkBH,EACnD,CALSI,CAAmBJ,IAO5B,SAA0BK,GACxB,GAAsB,oBAAXrB,QAAmD,MAAzBqB,EAAKrB,OAAOC,WAA2C,MAAtBoB,EAAK,cAAuB,OAAOJ,MAAMK,KAAKD,EACtH,CAToCE,CAAiBP,IAWrD,SAAqCQ,EAAGC,GACtC,IAAKD,EAAG,OACR,GAAiB,iBAANA,EAAgB,OAAOL,EAAkBK,EAAGC,GACvD,IAAIC,EAAIjD,OAAO0B,UAAUwB,SAASb,KAAKU,GAAGI,MAAM,GAAI,GAC1C,WAANF,GAAkBF,EAAEtB,cAAawB,EAAIF,EAAEtB,YAAY2B,MACvD,GAAU,QAANH,GAAqB,QAANA,EAAa,OAAOT,MAAMK,KAAKE,GAClD,GAAU,cAANE,GAAqB,2CAA2CI,KAAKJ,GAAI,OAAOP,EAAkBK,EAAGC,EAC3G,CAlB6DM,CAA4Bf,IA4BzF,WACE,MAAM,IAAIgB,UAAU,uIACtB,CA9BiGC,EACjG,CAmBA,SAASd,EAAkBH,EAAKkB,IACnB,MAAPA,GAAeA,EAAMlB,EAAI1B,UAAQ4C,EAAMlB,EAAI1B,QAE/C,IAAK,IAAIF,EAAI,EAAG+C,EAAO,IAAIlB,MAAMiB,GAAM9C,EAAI8C,EAAK9C,IAAK+C,EAAK/C,GAAK4B,EAAI5B,GAEnE,OAAO+C,CACT,CAmEA,SAASC,EAASC,GAChB,OAPoBtC,EAOHsC,GANjBtC,GAAY,IAEGA,EAKNsC,GAITA,EAASA,EAAOC,QAAQ,iBAAiB,SAAUC,EAAOC,GACxD,OAAOA,EAAMA,EAAIC,cAAgB,OAGrBC,OAAO,EAAG,GAAGC,cAAgBN,EAAOK,OAAO,GAhB3D,IAAsB3C,CAiBtB,CAEA,IAAI6C,EAAY,CAAC,SAqEjB,IAAIC,GAAa,EAEjB,IACEA,EAAsC,eAAzBC,QAAQC,IAAIC,QAC3B,CAAE,MAAOC,GAAI,CAUb,SAASC,EAAkBC,GAGzB,OAAIA,GAA0B,WAAlBrD,EAAQqD,IAAsBA,EAAKC,QAAUD,EAAKE,UAAYF,EAAKA,KACtEA,EAGLG,EAAAA,MAAMH,KACDG,EAAKA,MAACH,KAAKA,GAIP,OAATA,EACK,KAILA,GAA0B,WAAlBrD,EAAQqD,IAAsBA,EAAKC,QAAUD,EAAKE,SACrDF,EAILlC,MAAMC,QAAQiC,IAAyB,IAAhBA,EAAK7D,OAEvB,CACL8D,OAAQD,EAAK,GACbE,SAAUF,EAAK,IAKC,iBAATA,EACF,CACLC,OAAQ,MACRC,SAAUF,QAHd,CAMF,CAKA,SAASI,EAAc9D,EAAKW,GAK1B,OAAOa,MAAMC,QAAQd,IAAUA,EAAMd,OAAS,IAAM2B,MAAMC,QAAQd,IAAUA,EAAQV,EAAgB,CAAE,EAAED,EAAKW,GAAS,EACxH,CAEIoD,IAAAA,EAA+BC,EAAAA,QAAMC,YAAW,SAAUC,EAAOC,GACnE,IAAIC,EAAWF,EAAMR,KACjBW,EAAWH,EAAMI,KACjBC,EAASL,EAAMK,OACfC,EAAYN,EAAMM,UAClBC,EAAQP,EAAMO,MACdC,EAAUR,EAAMQ,QAChBC,EAAST,EAAMS,OACfC,EAAanB,EAAkBW,GAC/BS,EAAUf,EAAc,UAAW,GAAGgB,OAAOxD,EAvNnD,SAAmB4C,GACjB,IAAIa,EAEAC,EAAOd,EAAMc,KACbC,EAAOf,EAAMe,KACbC,EAAWhB,EAAMgB,SACjBC,EAASjB,EAAMiB,OACfC,EAAQlB,EAAMkB,MACdC,EAAQnB,EAAMmB,MACdC,EAAOpB,EAAMoB,KACbC,EAAYrB,EAAMqB,UAClBC,EAActB,EAAMsB,YACpBC,EAAQvB,EAAMuB,MACdC,EAAaxB,EAAMwB,WACnBC,EAAUzB,EAAMyB,QAChBC,EAAS1B,EAAM0B,OACfC,EAAW3B,EAAM2B,SACjBC,EAAO5B,EAAM4B,KACbC,EAAO7B,EAAM6B,KACbC,EAAW9B,EAAM8B,SACjBC,EAAO/B,EAAM+B,KAEbpB,GAkBD5E,EAlBY8E,EAAW,CACxB,UAAWC,EACX,UAAWC,EACX,eAAgBC,EAChB,YAAaC,EACb,WAAYC,EACZ,WAAYC,EACZ,UAAWC,EACX,kBAAmBE,EACnB,gBAAiBD,EACjB,WAAYE,EACZ,QAASC,EACT,aAAcC,EACd,YAAaC,EACb,QAASC,EACT,WAAoB,IAATC,EACX,qBAA+B,eAATA,GAAkC,SAATA,EAC/C,mBAA6B,aAATA,GAAgC,SAATA,GAChB,MAAMhB,OAAOiB,GAAO,MAAOA,GAAwC9F,EAAgB8E,EAAU,aAAaD,OAAOkB,GAAW,MAAOA,GAA8D,IAAbA,GAAiB/F,EAAgB8E,EAAU,WAAWD,OAAOmB,GAAO,MAAOA,GAAwChG,EAAgB8E,EAAU,kBAAmBb,EAAMgC,aAAcnB,GAGrY,OAAO/F,OAAOD,KAAK8F,GAASsB,KAAI,SAAUnG,GACxC,OAAO6E,EAAQ7E,GAAOA,EAAM,IAC9B,IAAGb,QAAO,SAAUa,GAClB,OAAOA,CACT,GACF,CAuKsEoG,CAAUlC,IAAS5C,EAAmBkD,EAAU6B,MAAM,QACtHC,EAAYxC,EAAc,YAAwC,iBAApBI,EAAMoC,UAAyBzC,EAAAA,MAAMyC,UAAUpC,EAAMoC,WAAapC,EAAMoC,WACtHhC,EAAOR,EAAc,OAAQL,EAAkBY,IAC/CkC,EAAe7C,EAAIA,KAACkB,EAAYnF,EAAeA,EAAeA,EAAeA,EAAe,CAAE,EAAEoF,GAAUyB,GAAYhC,GAAO,CAAA,EAAI,CACnIC,OAAQA,EACRE,MAAOA,EACPC,QAASA,EACTC,OAAQA,KAGV,IAAK4B,EAEH,OA/EJ,WAEI,IAAIC,GADDpD,GAAcqD,SAAoC,mBAAlBA,QAAQC,QAG1CF,EAAWC,SAASC,MAAMlH,MAAMgH,EAAU5G,UAE/C,CAwEI+G,CAAI,sBAAuB/B,GACpB,KAGT,IAAIgC,EAAWL,EAAaK,SACxBC,EAAa,CACf1C,IAAKA,GAQP,OANAnF,OAAOD,KAAKmF,GAAOnE,SAAQ,SAAUC,GAE9B+D,EAAgB+C,aAAaC,eAAe/G,KAC/C6G,EAAW7G,GAAOkE,EAAMlE,GAE5B,IACOgH,EAAaJ,EAAS,GAAIC,EACnC,IACA9C,EAAgBkD,YAAc,kBAC9BlD,EAAgBmD,UAAY,CAC1BlC,KAAMmC,EAASC,QAACC,KAChBzB,OAAQuB,EAASC,QAACC,KAClBnC,SAAUiC,EAASC,QAACC,KACpBlC,OAAQgC,EAASC,QAACC,KAClB7C,UAAW2C,EAASC,QAACxE,OACrBqC,KAAMkC,EAASC,QAACC,KAChBhC,MAAO8B,EAASC,QAACC,KACjB/C,KAAM6C,EAAAA,QAAUG,UAAU,CAACH,EAASC,QAACvI,OAAQsI,EAAAA,QAAUI,MAAOJ,UAAUvE,SACxE+B,OAAQwC,EAASC,QAACxE,OAClB8C,WAAYyB,EAASC,QAACC,KACtB1B,QAASwB,EAASC,QAACC,KACnBvB,KAAMqB,EAAAA,QAAUK,MAAM,EAAC,GAAM,EAAO,aAAc,WAAY,SAC9D9D,KAAMyD,EAAAA,QAAUG,UAAU,CAACH,EAASC,QAACvI,OAAQsI,EAAAA,QAAUI,MAAOJ,UAAUvE,SACxEiD,SAAUsB,EAASC,QAACC,KACpBpB,KAAMkB,EAAAA,QAAUK,MAAM,CAAC,QAAS,SAChC/B,MAAO0B,EAASC,QAACC,KACjBrB,SAAUmB,EAASC,QAACI,MAAM,CAAC,EAAG,GAAI,IAAK,MACvCpC,MAAO+B,EAASC,QAACC,KACjBtB,KAAMoB,EAAAA,QAAUK,MAAM,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,QACnHlC,KAAM6B,EAASC,QAACC,KAChB9B,UAAW4B,EAASC,QAACC,KACrB7B,YAAa2B,EAASC,QAACC,KACvB9C,OAAQ4C,EAASC,QAACE,UAAU,CAACH,EAASC,QAACC,KAAMF,EAAAA,QAAUvE,SACvD6B,MAAO0C,EAASC,QAACxE,OACjB8B,QAASyC,EAASC,QAACxE,OACnB0D,UAAWa,EAASC,QAACE,UAAU,CAACH,EAASC,QAACxE,OAAQuE,EAAAA,QAAUtI,SAC5DqH,YAAaiB,EAASC,QAACC,MAEzBtD,EAAgB+C,aAAe,CAC7BlB,QAAQ,EACRpB,UAAW,GACXF,KAAM,KACNK,OAAQ,KACRe,YAAY,EACZC,SAAS,EACTG,MAAM,EACNpC,KAAM,KACNmC,UAAU,EACVI,KAAM,KACNR,OAAO,EACPO,SAAU,KACVD,KAAM,KACNT,MAAM,EACNC,WAAW,EACXC,aAAa,EACbR,MAAM,EACNC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPb,QAAQ,EACRE,MAAO,GACPC,QAAS,KACT4B,UAAW,KACXJ,aAAa,GAEf,IAAIc,EA/MJ,SAASS,EAAQC,EAAeC,GAC9B,IAAId,EAAajH,UAAUC,OAAS,QAAsB+H,IAAjBhI,UAAU,GAAmBA,UAAU,GAAK,CAAA,EAErF,GAAuB,iBAAZ+H,EACT,OAAOA,EAGT,IAAIE,GAAYF,EAAQE,UAAY,IAAI1B,KAAI,SAAU2B,GACpD,OAAOL,EAAQC,EAAeI,EAChC,IAGIC,EAAS/I,OAAOD,KAAK4I,EAAQK,YAAc,CAAE,GAAEC,QAAO,SAAUC,EAAKlI,GACvE,IAAImI,EAAMR,EAAQK,WAAWhI,GAE7B,OAAQA,GACN,IAAK,QACHkI,EAAIE,MAAiB,UAAID,SAClBR,EAAQK,WAAkB,MACjC,MAEF,IAAK,QACHE,EAAIE,MAAa,MAAkBD,EAnC5B9B,MAAM,KAAKF,KAAI,SAAUkC,GACpC,OAAOA,EAAEC,MACX,IAAGnJ,QAAO,SAAUkJ,GAClB,OAAOA,CACR,IAAEJ,QAAO,SAAUC,EAAKK,GACvB,IAVgBJ,EAUZxI,EAAI4I,EAAKtH,QAAQ,KACjBuH,EAAO7F,EAAS4F,EAAKpG,MAAM,EAAGxC,IAC9BgB,EAAQ4H,EAAKpG,MAAMxC,EAAI,GAAG2I,OAE9B,OADAE,EAAKC,WAAW,UAAYP,GAbZC,EAa2BK,EAZtCL,EAAIO,OAAO,GAAG1F,cAAgBmF,EAAIhG,MAAM,KAYOxB,EAAQuH,EAAIM,GAAQ7H,EACjEuH,CACR,GAAE,CAAE,GA0BC,MAEF,QAC+B,IAAzBlI,EAAIiB,QAAQ,UAA2C,IAAzBjB,EAAIiB,QAAQ,SAC5CiH,EAAIE,MAAMpI,EAAIkD,eAAiBiF,EAE/BD,EAAIE,MAAMzF,EAAS3C,IAAQmI,EAKjC,OAAOD,CACT,GAAG,CACDE,MAAO,CAAC,IAGNO,EAAoB9B,EAAW+B,MAC/BC,OAAsC,IAAtBF,EAA+B,CAAE,EAAGA,EACpDG,EAAYhI,EAAyB+F,EAAY1D,GAKrD,OAHA4E,EAAOK,MAAa,MAAI3I,EAAeA,EAAe,GAAIsI,EAAOK,MAAa,OAAIS,GAG3EnB,EAAclI,WAAM,EAAQ,CAACmI,EAAQoB,IAAKtJ,EAAeA,EAAe,CAAA,EAAIsI,EAAOK,OAAQU,IAAYhE,OAAOxD,EAAmBuG,IAC1I,EAgK2BmB,KAAK,KAAMhF,EAAAA,QAAM0D"}
1
+ {"version":3,"file":"index.es.js","sources":["../../../../node_modules/@fortawesome/react-fontawesome/index.es.js"],"sourcesContent":["import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar ICON_PACKS_STARTING_VERSION = '7.0.0';\n\n// Try to get version from installed package first, fallback to env var, then default\nvar SVG_CORE_VERSION;\ntry {\n var svgCorePackageJson = require('@fortawesome/fontawesome-svg-core/package.json');\n SVG_CORE_VERSION = svgCorePackageJson.version;\n} catch (e) {\n // If package.json can't be loaded, try environment variable\n SVG_CORE_VERSION = typeof process !== 'undefined' && process.env.FA_VERSION || '7.0.0';\n}\n\n// Get CSS class list from a props object\nfunction classList(props) {\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull,\n swapOpacity = props.swapOpacity,\n rotateBy = props.rotateBy,\n widthAuto = props.widthAuto;\n\n // Check if we're using version 7 or later\n var isVersion7OrLater = versionCheckGte(SVG_CORE_VERSION, ICON_PACKS_STARTING_VERSION);\n\n // map of CSS class names to properties\n var classes = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), 'fa-swap-opacity', swapOpacity), 'fa-rotate-by', isVersion7OrLater && rotateBy), 'fa-width-auto', isVersion7OrLater && widthAuto);\n\n // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// check if verion1 is greater than or equal to version2\nfunction versionCheckGte(version1, version2) {\n var _version1$split = version1.split('-'),\n _version1$split2 = _slicedToArray(_version1$split, 2),\n v1Base = _version1$split2[0],\n v1PreRelease = _version1$split2[1];\n var _version2$split = version2.split('-'),\n _version2$split2 = _slicedToArray(_version2$split, 2),\n v2Base = _version2$split2[0],\n v2PreRelease = _version2$split2[1];\n var v1Parts = v1Base.split('.');\n var v2Parts = v2Base.split('.');\n\n // Compare version numbers first\n for (var i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {\n var v1Part = v1Parts[i] || '0';\n var v2Part = v2Parts[i] || '0';\n\n // Compare numeric values\n var v1Num = parseInt(v1Part, 10);\n var v2Num = parseInt(v2Part, 10);\n if (v1Num !== v2Num) {\n return v1Num > v2Num;\n }\n }\n\n // If numeric values are equal, look for any remaining parts\n // that would make one version greater than the other\n for (var _i = 0; _i < Math.max(v1Parts.length, v2Parts.length); _i++) {\n var _v1Part = v1Parts[_i] || '0';\n var _v2Part = v2Parts[_i] || '0';\n if (_v1Part !== _v2Part) {\n // When numeric values are equal but strings differ,\n // the one without leading zeros is greater\n if (_v1Part.length !== _v2Part.length) {\n return _v1Part.length < _v2Part.length;\n }\n }\n }\n\n // If version numbers are equal, compare pre-release identifiers\n // A version with a pre-release identifier is less than one without\n if (v1PreRelease && !v2PreRelease) return false;\n if (!v1PreRelease && v2PreRelease) return true;\n return true;\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0;\n\n // eslint-disable-next-line no-self-compare\n return obj === obj;\n}\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n }\n\n // eslint-disable-next-line no-useless-escape\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n\n // Ensure 1st char is always lowercase\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (typeof element === 'string') {\n return element;\n }\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n\n /* eslint-disable dot-notation */\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n }\n return acc;\n }, {\n attrs: {}\n });\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n (_console = console).error.apply(_console, arguments);\n }\n}\n\n// Normalize icon arguments\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n if (parse.icon) {\n return parse.icon(icon);\n }\n\n // if the icon is null, there's nothing to do\n if (icon === null) {\n return null;\n }\n\n // if the icon is an object and has a prefix and an icon name, return it\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n\n // if it's an array with length of two\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n\n // if it's a string, use it as the icon name\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n // the fixedWidth property has been deprecated as of version 7\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n rotateBy: false,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false,\n widthAuto: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n // the fixedWidth property has been deprecated as of version 7\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n rotateBy: PropTypes.bool,\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool,\n widthAuto: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n"],"names":["_arrayLikeToArray","r","a","length","e","n","Array","_defineProperty","t","i","Symbol","toPrimitive","call","TypeError","String","Number","_toPrimitive","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","ownKeys","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","_slicedToArray","isArray","_arrayWithHoles","l","iterator","u","f","next","done","return","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","from","_iterableToArray","_nonIterableSpread","_typeof","constructor","prototype","toString","slice","name","test","SVG_CORE_VERSION","svgCorePackageJson","require","version","process","env","FA_VERSION","classList","props","beat","fade","beatFade","bounce","shake","flash","spin","spinPulse","spinReverse","pulse","fixedWidth","inverse","border","listItem","flip","size","rotation","pull","swapOpacity","rotateBy","widthAuto","isVersion7OrLater","version1","version2","_version1$split2","split","v1Base","v1PreRelease","_version2$split2","v2Base","v2PreRelease","v1Parts","v2Parts","Math","max","v1Part","v2Part","v1Num","parseInt","v2Num","_i","_v1Part","_v2Part","versionCheckGte","classes","concat","map","key","camelize","string","obj","replace","match","chr","toUpperCase","substr","toLowerCase","_excluded","PRODUCTION","NODE_ENV","normalizeIconArgs","icon","prefix","iconName","parse","objectWithKey","defaultProps","className","mask","maskId","symbol","title","titleId","transform","FontAwesomeIcon","React","forwardRef","ref","allProps","iconArgs","maskArgs","iconLookup","renderedIcon","_console","console","error","log","abstract","extraProps","hasOwnProperty","convertCurry","displayName","propTypes","PropTypes","exports","bool","oneOfType","object","array","oneOf","convert","createElement","element","undefined","children","child","mixins","attributes","reduce","acc","val","attrs","s","trim","pair","indexOf","prop","startsWith","charAt","_extraProps$style","style","existingStyle","remaining","_objectWithoutPropertiesLoose","propertyIsEnumerable","_objectWithoutProperties","tag","bind"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../_virtual/index6.js");require("./requestMediaPermissions.js");var r=require("../../../_virtual/requestMediaPermissions.js");!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.requestMediaPermissions=e.MediaPermissionsErrorType=void 0;var i=r.__exports;Object.defineProperty(e,"MediaPermissionsErrorType",{enumerable:!0,get:function(){return i.MediaPermissionsErrorType}}),Object.defineProperty(e,"requestMediaPermissions",{enumerable:!0,get:function(){return i.requestMediaPermissions}})}(e.__exports);
1
+ "use strict";var e=require("../../../_virtual/index8.js");require("./requestMediaPermissions.js");var r=require("../../../_virtual/requestMediaPermissions.js");!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.requestMediaPermissions=e.MediaPermissionsErrorType=void 0;var i=r.__exports;Object.defineProperty(e,"MediaPermissionsErrorType",{enumerable:!0,get:function(){return i.MediaPermissionsErrorType}}),Object.defineProperty(e,"requestMediaPermissions",{enumerable:!0,get:function(){return i.requestMediaPermissions}})}(e.__exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/index7.js"),r=require("./node_modules/react-is/index.js"),t=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var s=r.__require();e.__module.exports=t.__require()(s.isElement,!0)}else e.__module.exports=i.__require()();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e.exports}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/index6.js"),r=require("./node_modules/react-is/index.js"),t=require("./factoryWithTypeCheckers.js"),i=require("./factoryWithThrowingShims.js");if("production"!==process.env.NODE_ENV){var s=r.__require();e.__module.exports=t.__require()(s.isElement,!0)}else e.__module.exports=i.__require()();Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e.exports}});
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("../../../../_virtual/index8.js"),s=require("./cjs/react-is.production.min.js"),t=require("./cjs/react-is.development.js");exports.__require=function(){return e||(e=1,i=r.__module,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.exports;var i};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("../../../../_virtual/index7.js"),s=require("./cjs/react-is.production.min.js"),t=require("./cjs/react-is.development.js");exports.__require=function(){return e||(e=1,i=r.__module,"production"===process.env.NODE_ENV?i.exports=s.__require():i.exports=t.__require()),r.exports;var i};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./utils.js"),i=require("./chrome/chrome_shim.js"),r=require("./firefox/firefox_shim.js"),s=require("./safari/safari_shim.js"),a=require("./common_shim.js"),t=require("../../../sdp/sdp.js"),m=require("./firefox/getusermedia.js"),o=require("./chrome/getusermedia.js");exports.adapterFactory=function(){let{window:h}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const d=e.log,c=e.detectBrowser(h),l={browserDetails:c,commonShim:a,extractVersion:e.extractVersion,disableLog:e.disableLog,disableWarnings:e.disableWarnings,sdp:t};switch(c.browser){case"chrome":if(!i||!i.shimPeerConnection||!n.shimChrome)return d("Chrome shim is not included in this adapter release."),l;if(null===c.version)return d("Chrome shim can not determine version, not shimming."),l;d("adapter.js shimming chrome."),l.browserShim=i,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),o.shimGetUserMedia(h,c),i.shimMediaStream(h),i.shimPeerConnection(h,c),i.shimOnTrack(h),i.shimAddTrackRemoveTrack(h,c),i.shimGetSendersWithDtmf(h),i.shimSenderReceiverGetStats(h),i.fixNegotiationNeeded(h,c),a.shimRTCIceCandidate(h),a.shimRTCIceCandidateRelayProtocol(h),a.shimConnectionState(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h),a.removeExtmapAllowMixed(h,c);break;case"firefox":if(!r||!r.shimPeerConnection||!n.shimFirefox)return d("Firefox shim is not included in this adapter release."),l;d("adapter.js shimming firefox."),l.browserShim=r,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),m.shimGetUserMedia(h,c),r.shimPeerConnection(h,c),r.shimOnTrack(h),r.shimRemoveStream(h),r.shimSenderGetStats(h),r.shimReceiverGetStats(h),r.shimRTCDataChannel(h),r.shimAddTransceiver(h),r.shimGetParameters(h),r.shimCreateOffer(h),r.shimCreateAnswer(h),a.shimRTCIceCandidate(h),a.shimConnectionState(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h);break;case"safari":if(!s||!n.shimSafari)return d("Safari shim is not included in this adapter release."),l;d("adapter.js shimming safari."),l.browserShim=s,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),s.shimRTCIceServerUrls(h),s.shimCreateOfferLegacy(h),s.shimCallbacksAPI(h),s.shimLocalStreamsAPI(h),s.shimRemoteStreamsAPI(h),s.shimTrackEventTransceiver(h),s.shimGetUserMedia(h),s.shimAudioContext(h),a.shimRTCIceCandidate(h),a.shimRTCIceCandidateRelayProtocol(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h),a.removeExtmapAllowMixed(h,c);break;default:d("Unsupported browser!")}return l};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./utils.js"),i=require("./chrome/chrome_shim.js"),r=require("./firefox/firefox_shim.js"),s=require("./safari/safari_shim.js"),a=require("./common_shim.js"),t=require("../../../sdp/sdp.js"),m=require("./firefox/getusermedia.js"),o=require("./chrome/getusermedia.js");exports.adapterFactory=function(){let{window:h}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const d=e.log,c=e.detectBrowser(h),l={browserDetails:c,commonShim:a,extractVersion:e.extractVersion,disableLog:e.disableLog,disableWarnings:e.disableWarnings,sdp:t};switch(c.browser){case"chrome":if(!i||!i.shimPeerConnection||!n.shimChrome)return d("Chrome shim is not included in this adapter release."),l;if(null===c.version)return d("Chrome shim can not determine version, not shimming."),l;d("adapter.js shimming chrome."),l.browserShim=i,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),o.shimGetUserMedia(h,c),i.shimMediaStream(h),i.shimPeerConnection(h,c),i.shimOnTrack(h,c),i.shimAddTrackRemoveTrack(h,c),i.shimGetSendersWithDtmf(h),i.shimSenderReceiverGetStats(h,c),i.fixNegotiationNeeded(h,c),a.shimRTCIceCandidate(h),a.shimRTCIceCandidateRelayProtocol(h),a.shimConnectionState(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h,c),a.removeExtmapAllowMixed(h,c);break;case"firefox":if(!r||!r.shimPeerConnection||!n.shimFirefox)return d("Firefox shim is not included in this adapter release."),l;d("adapter.js shimming firefox."),l.browserShim=r,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),m.shimGetUserMedia(h,c),r.shimPeerConnection(h,c),r.shimGetStats(h,c),r.shimOnTrack(h),r.shimRemoveStream(h),r.shimSenderGetStats(h),r.shimReceiverGetStats(h),r.shimRTCDataChannel(h),r.shimAddTransceiver(h),r.shimGetParameters(h),r.shimCreateOffer(h),r.shimCreateAnswer(h),a.shimRTCIceCandidate(h),a.shimConnectionState(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h,c);break;case"safari":if(!s||!n.shimSafari)return d("Safari shim is not included in this adapter release."),l;d("adapter.js shimming safari."),l.browserShim=s,a.shimAddIceCandidateNullOrEmpty(h,c),a.shimParameterlessSetLocalDescription(h),s.shimRTCIceServerUrls(h),s.shimCreateOfferLegacy(h),s.shimCallbacksAPI(h),s.shimLocalStreamsAPI(h),s.shimRemoteStreamsAPI(h),s.shimTrackEventTransceiver(h),s.shimGetUserMedia(h),s.shimAudioContext(h),a.shimRTCIceCandidate(h),a.shimRTCIceCandidateRelayProtocol(h),a.shimMaxMessageSize(h,c),a.shimSendThrowTypeError(h,c),a.removeExtmapAllowMixed(h,c);break;default:d("Unsupported browser!")}return l};
2
2
  //# sourceMappingURL=adapter_factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter_factory.js","sources":["../../../../../node_modules/webrtc-adapter/src/js/adapter_factory.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n// Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n"],"names":["window","arguments","length","undefined","options","shimChrome","shimFirefox","shimSafari","logging","utils","browserDetails","adapter","commonShim","extractVersion","disableLog","disableWarnings","sdp","browser","chromeShim","shimPeerConnection","version","browserShim","shimParameterlessSetLocalDescription","shimMediaStream","shimOnTrack","shimGetSendersWithDtmf","shimSenderReceiverGetStats","shimRTCIceCandidate","shimRTCIceCandidateRelayProtocol","shimConnectionState","shimSendThrowTypeError","firefoxShim","shimRemoveStream","shimSenderGetStats","shimReceiverGetStats","shimRTCDataChannel","shimAddTransceiver","shimGetParameters","shimCreateOffer","shimCreateAnswer","safariShim","shimRTCIceServerUrls","shimCreateOfferLegacy","shimCallbacksAPI","shimLocalStreamsAPI","shimRemoteStreamsAPI","shimTrackEventTransceiver","shimGetUserMedia","shimAudioContext"],"mappings":"oXAiBO,WAIJ,IAJ4BA,OAACA,GAAOC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAG,GAAA,GAAIG,EAAOH,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAG,GAAA,CACtDI,YAAY,EACZC,aAAa,EACbC,YAAY,GAGZ,MAAMC,EAAUC,EAAAA,IACVC,EAAiBD,gBAAoBT,GAErCW,EAAU,CACdD,4BACAE,EACAC,eAAgBJ,EAAoBI,eACpCC,WAAYL,EAAgBK,WAC5BC,gBAAiBN,EAAqBM,gBAEtCC,OAIF,OAAQN,EAAeO,SACrB,IAAK,SACH,IAAKC,IAAeA,EAA6BC,qBAC5Cf,EAAQC,WAEX,OADAG,EAAQ,wDACDG,EAET,GAA+B,OAA3BD,EAAeU,QAEjB,OADAZ,EAAQ,wDACDG,EAETH,EAAQ,+BAERG,EAAQU,YAAcH,EAGtBN,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhDkB,mBAA4BlB,EAAQU,GACpCQ,EAA0BK,gBAACvB,GAC3BkB,qBAA8BlB,EAAQU,GACtCQ,EAAsBM,YAACxB,GACvBkB,0BAAmClB,EAAQU,GAC3CQ,EAAiCO,uBAACzB,GAClCkB,EAAqCQ,2BAAC1B,GACtCkB,uBAAgClB,EAAQU,GAExCE,EAA8Be,oBAAC3B,GAC/BY,EAA2CgB,iCAAC5B,GAC5CY,EAA8BiB,oBAAC7B,GAC/BY,qBAA8BZ,EAAQU,GACtCE,EAAiCkB,uBAAC9B,GAClCY,yBAAkCZ,EAAQU,GAC1C,MACF,IAAK,UACH,IAAKqB,IAAgBA,EAA8BZ,qBAC9Cf,EAAQE,YAEX,OADAE,EAAQ,yDACDG,EAETH,EAAQ,gCAERG,EAAQU,YAAcU,EAGtBnB,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhD+B,mBAA6B/B,EAAQU,GACrCqB,qBAA+B/B,EAAQU,GACvCqB,EAAuBP,YAACxB,GACxB+B,EAA4BC,iBAAChC,GAC7B+B,EAA8BE,mBAACjC,GAC/B+B,EAAgCG,qBAAClC,GACjC+B,EAA8BI,mBAACnC,GAC/B+B,EAA8BK,mBAACpC,GAC/B+B,EAA6BM,kBAACrC,GAC9B+B,EAA2BO,gBAACtC,GAC5B+B,EAA4BQ,iBAACvC,GAE7BY,EAA8Be,oBAAC3B,GAC/BY,EAA8BiB,oBAAC7B,GAC/BY,qBAA8BZ,EAAQU,GACtCE,EAAiCkB,uBAAC9B,GAClC,MACF,IAAK,SACH,IAAKwC,IAAepC,EAAQG,WAE1B,OADAC,EAAQ,wDACDG,EAETH,EAAQ,+BAERG,EAAQU,YAAcmB,EAGtB5B,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhDwC,EAA+BC,qBAACzC,GAChCwC,EAAgCE,sBAAC1C,GACjCwC,EAA2BG,iBAAC3C,GAC5BwC,EAA8BI,oBAAC5C,GAC/BwC,EAA+BK,qBAAC7C,GAChCwC,EAAoCM,0BAAC9C,GACrCwC,EAA2BO,iBAAC/C,GAC5BwC,EAA2BQ,iBAAChD,GAE5BY,EAA8Be,oBAAC3B,GAC/BY,EAA2CgB,iCAAC5B,GAC5CY,qBAA8BZ,EAAQU,GACtCE,EAAiCkB,uBAAC9B,GAClCY,yBAAkCZ,EAAQU,GAC1C,MACF,QACEF,EAAQ,wBAIZ,OAAOG,CACT"}
1
+ {"version":3,"file":"adapter_factory.js","sources":["../../../../../node_modules/webrtc-adapter/src/js/adapter_factory.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n// Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimGetStats(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n"],"names":["window","arguments","length","undefined","options","shimChrome","shimFirefox","shimSafari","logging","utils","browserDetails","adapter","commonShim","extractVersion","disableLog","disableWarnings","sdp","browser","chromeShim","shimPeerConnection","version","browserShim","shimParameterlessSetLocalDescription","shimMediaStream","shimGetSendersWithDtmf","shimRTCIceCandidate","shimRTCIceCandidateRelayProtocol","shimConnectionState","firefoxShim","shimOnTrack","shimRemoveStream","shimSenderGetStats","shimReceiverGetStats","shimRTCDataChannel","shimAddTransceiver","shimGetParameters","shimCreateOffer","shimCreateAnswer","safariShim","shimRTCIceServerUrls","shimCreateOfferLegacy","shimCallbacksAPI","shimLocalStreamsAPI","shimRemoteStreamsAPI","shimTrackEventTransceiver","shimGetUserMedia","shimAudioContext"],"mappings":"oXAiBO,WAIJ,IAJ4BA,OAACA,GAAOC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAG,GAAA,GAAIG,EAAOH,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAG,GAAA,CACtDI,YAAY,EACZC,aAAa,EACbC,YAAY,GAGZ,MAAMC,EAAUC,EAAAA,IACVC,EAAiBD,gBAAoBT,GAErCW,EAAU,CACdD,4BACAE,EACAC,eAAgBJ,EAAoBI,eACpCC,WAAYL,EAAgBK,WAC5BC,gBAAiBN,EAAqBM,gBAEtCC,OAIF,OAAQN,EAAeO,SACrB,IAAK,SACH,IAAKC,IAAeA,EAA6BC,qBAC5Cf,EAAQC,WAEX,OADAG,EAAQ,wDACDG,EAET,GAA+B,OAA3BD,EAAeU,QAEjB,OADAZ,EAAQ,wDACDG,EAETH,EAAQ,+BAERG,EAAQU,YAAcH,EAGtBN,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhDkB,mBAA4BlB,EAAQU,GACpCQ,EAA0BK,gBAACvB,GAC3BkB,qBAA8BlB,EAAQU,GACtCQ,cAAuBlB,EAAQU,GAC/BQ,0BAAmClB,EAAQU,GAC3CQ,EAAiCM,uBAACxB,GAClCkB,6BAAsClB,EAAQU,GAC9CQ,uBAAgClB,EAAQU,GAExCE,EAA8Ba,oBAACzB,GAC/BY,EAA2Cc,iCAAC1B,GAC5CY,EAA8Be,oBAAC3B,GAC/BY,qBAA8BZ,EAAQU,GACtCE,yBAAkCZ,EAAQU,GAC1CE,yBAAkCZ,EAAQU,GAC1C,MACF,IAAK,UACH,IAAKkB,IAAgBA,EAA8BT,qBAC9Cf,EAAQE,YAEX,OADAE,EAAQ,yDACDG,EAETH,EAAQ,gCAERG,EAAQU,YAAcO,EAGtBhB,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhD4B,mBAA6B5B,EAAQU,GACrCkB,qBAA+B5B,EAAQU,GACvCkB,eAAyB5B,EAAQU,GACjCkB,EAAuBC,YAAC7B,GACxB4B,EAA4BE,iBAAC9B,GAC7B4B,EAA8BG,mBAAC/B,GAC/B4B,EAAgCI,qBAAChC,GACjC4B,EAA8BK,mBAACjC,GAC/B4B,EAA8BM,mBAAClC,GAC/B4B,EAA6BO,kBAACnC,GAC9B4B,EAA2BQ,gBAACpC,GAC5B4B,EAA4BS,iBAACrC,GAE7BY,EAA8Ba,oBAACzB,GAC/BY,EAA8Be,oBAAC3B,GAC/BY,qBAA8BZ,EAAQU,GACtCE,yBAAkCZ,EAAQU,GAC1C,MACF,IAAK,SACH,IAAK4B,IAAelC,EAAQG,WAE1B,OADAC,EAAQ,wDACDG,EAETH,EAAQ,+BAERG,EAAQU,YAAciB,EAGtB1B,iCAA0CZ,EAAQU,GAClDE,EAA+CU,qCAACtB,GAEhDsC,EAA+BC,qBAACvC,GAChCsC,EAAgCE,sBAACxC,GACjCsC,EAA2BG,iBAACzC,GAC5BsC,EAA8BI,oBAAC1C,GAC/BsC,EAA+BK,qBAAC3C,GAChCsC,EAAoCM,0BAAC5C,GACrCsC,EAA2BO,iBAAC7C,GAC5BsC,EAA2BQ,iBAAC9C,GAE5BY,EAA8Ba,oBAACzB,GAC/BY,EAA2Cc,iCAAC1B,GAC5CY,qBAA8BZ,EAAQU,GACtCE,yBAAkCZ,EAAQU,GAC1CE,yBAAkCZ,EAAQU,GAC1C,MACF,QACEF,EAAQ,wBAIZ,OAAOG,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js"),t=require("./getusermedia.js");function r(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){if(!r)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=t.apply(this,arguments);return this._shimmedLocalStreams[r.id]?-1===this._shimmedLocalStreams[r.id].indexOf(n)&&this._shimmedLocalStreams[r.id].push(n):this._shimmedLocalStreams[r.id]=[r,n],n};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();r.apply(this,arguments);const n=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(n)};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],n.apply(this,arguments)};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const r=this._shimmedLocalStreams[t].indexOf(e);-1!==r&&this._shimmedLocalStreams[t].splice(r,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),o.apply(this,arguments)}}exports.shimGetUserMedia=t.shimGetUserMedia,exports.fixNegotiationNeeded=function(t,r){e.wrapPeerConnectionEvent(t,"negotiationneeded",(e=>{const t=e.target;if(!(r.version<72||t.getConfiguration&&"plan-b"===t.getConfiguration().sdpSemantics)||"stable"===t.signalingState)return e}))},exports.shimAddTrackRemoveTrack=function(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return r(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const r=new e.MediaStream(t.getTracks());this._streams[t.id]=r,this._reverseStreams[r.id]=t,t=r}o.apply(this,[t])};const s=e.RTCPeerConnection.prototype.removeStream;function i(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(o.id,"g"),n.id)})),new RTCSessionDescription({type:t.type,sdp:r})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const o=this._streams[r.id];if(o)o.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const n=new e.MediaStream([t]);this._streams[r.id]=n,this._reverseStreams[n.id]=r,this.addStream(n)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?r.apply(this,[t=>{const r=i(this,t);e[0].apply(null,[r])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):r.apply(this,arguments).then((e=>i(this,e)))}};e.RTCPeerConnection.prototype[t]=n[t]}));const c=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(n.id,"g"),o.id)})),new RTCSessionDescription({type:t.type,sdp:r})}(this,arguments[0]),c.apply(this,arguments)):c.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:i(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((r=>{this._streams[r].getTracks().find((t=>e.track===t))&&(t=this._streams[r])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}},exports.shimAddTrackRemoveTrackWithNative=r,exports.shimGetSendersWithDtmf=function(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=r.apply(this,arguments);return o||(o=t(this,e),this._senders.push(o)),o};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},exports.shimMediaStream=function(e){e.MediaStream=e.MediaStream||e.webkitMediaStream},exports.shimOnTrack=function(t){if("object"==typeof t&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=e=>{e.stream.addEventListener("addtrack",(r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.track.id)):{track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)})),e.stream.getTracks().forEach((r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.id)):{track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)}))},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else e.wrapPeerConnectionEvent(t,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))},exports.shimPeerConnection=function(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]}))},exports.shimSenderReceiverGetStats=function(t){if(!("object"==typeof t&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const r=t.RTCPeerConnection.prototype.getSenders;r&&(t.RTCPeerConnection.prototype.getSenders=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=t.RTCPeerConnection.prototype.addTrack;n&&(t.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),t.RTCRtpSender.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!0)))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const r=t.RTCPeerConnection.prototype.getReceivers;r&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),e.wrapPeerConnectionEvent(t,"track",(e=>(e.receiver._pc=e.srcElement,e))),t.RTCRtpReceiver.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!1)))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const r=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const e=arguments[0];let t,r,n;return this.getSenders().forEach((r=>{r.track===e&&(t?n=!0:t=r)})),this.getReceivers().forEach((t=>(t.track===e&&(r?n=!0:r=t),t.track===e))),n||t&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return r.apply(this,arguments)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js"),t=require("./getusermedia.js");function r(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){if(!r)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=t.apply(this,arguments);return this._shimmedLocalStreams[r.id]?-1===this._shimmedLocalStreams[r.id].indexOf(n)&&this._shimmedLocalStreams[r.id].push(n):this._shimmedLocalStreams[r.id]=[r,n],n};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();r.apply(this,arguments);const n=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(n)};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],n.apply(this,arguments)};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const r=this._shimmedLocalStreams[t].indexOf(e);-1!==r&&this._shimmedLocalStreams[t].splice(r,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),o.apply(this,arguments)}}exports.shimGetUserMedia=t.shimGetUserMedia,exports.fixNegotiationNeeded=function(t,r){r.version>102||e.wrapPeerConnectionEvent(t,"negotiationneeded",(e=>{const t=e.target;if(!(r.version<72||t.getConfiguration&&"plan-b"===t.getConfiguration().sdpSemantics)||"stable"===t.signalingState)return e}))},exports.shimAddTrackRemoveTrack=function(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return r(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const r=new e.MediaStream(t.getTracks());this._streams[t.id]=r,this._reverseStreams[r.id]=t,t=r}o.apply(this,[t])};const s=e.RTCPeerConnection.prototype.removeStream;function i(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(o.id,"g"),n.id)})),new RTCSessionDescription({type:t.type,sdp:r})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const o=this._streams[r.id];if(o)o.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const n=new e.MediaStream([t]);this._streams[r.id]=n,this._reverseStreams[n.id]=r,this.addStream(n)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?r.apply(this,[t=>{const r=i(this,t);e[0].apply(null,[r])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):r.apply(this,arguments).then((e=>i(this,e)))}};e.RTCPeerConnection.prototype[t]=n[t]}));const c=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(n.id,"g"),o.id)})),new RTCSessionDescription({type:t.type,sdp:r})}(this,arguments[0]),c.apply(this,arguments)):c.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:i(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((r=>{this._streams[r].getTracks().find((t=>e.track===t))&&(t=this._streams[r])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}},exports.shimAddTrackRemoveTrackWithNative=r,exports.shimGetSendersWithDtmf=function(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=r.apply(this,arguments);return o||(o=t(this,e),this._senders.push(o)),o};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},exports.shimMediaStream=function(e){e.MediaStream=e.MediaStream||e.webkitMediaStream},exports.shimOnTrack=function(t,r){if(!(r.version>102))if("object"==typeof t&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=e=>{e.stream.addEventListener("addtrack",(r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.track.id)):{track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)})),e.stream.getTracks().forEach((r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.id)):{track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)}))},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else e.wrapPeerConnectionEvent(t,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))},exports.shimPeerConnection=function(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]}))},exports.shimSenderReceiverGetStats=function(t,r){if(r.version>=67)return;if(!("object"==typeof t&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const r=t.RTCPeerConnection.prototype.getSenders;r&&(t.RTCPeerConnection.prototype.getSenders=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=t.RTCPeerConnection.prototype.addTrack;n&&(t.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),t.RTCRtpSender.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!0)))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const r=t.RTCPeerConnection.prototype.getReceivers;r&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),e.wrapPeerConnectionEvent(t,"track",(e=>(e.receiver._pc=e.srcElement,e))),t.RTCRtpReceiver.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!1)))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const n=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const e=arguments[0];let t,r,n;return this.getSenders().forEach((r=>{r.track===e&&(t?n=!0:t=r)})),this.getReceivers().forEach((t=>(t.track===e&&(r?n=!0:r=t),t.track===e))),n||t&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return n.apply(this,arguments)}};
2
2
  //# sourceMappingURL=chrome_shim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n"],"names":["shimAddTrackRemoveTrackWithNative","window","RTCPeerConnection","prototype","getLocalStreams","this","_shimmedLocalStreams","Object","keys","map","streamId","origAddTrack","addTrack","track","stream","apply","arguments","sender","id","indexOf","push","origAddStream","addStream","getTracks","forEach","getSenders","find","s","DOMException","existingSenders","newSenders","filter","newSender","concat","origRemoveStream","removeStream","origRemoveTrack","removeTrack","idx","splice","length","browserDetails","utils","e","pc","target","version","getConfiguration","sdpSemantics","signalingState","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","MediaStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","type","streams","slice","call","t","oldStream","Promise","resolve","then","dispatchEvent","Event","method","nativeMethod","methodObj","args","desc","err","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","getOwnPropertyDescriptor","defineProperty","get","_pc","streamid","shimSenderWithDtmf","dtmf","undefined","_dtmf","kind","createDTMFSender","_senders","RTCRtpSender","origGetSenders","senders","webkitMediaStream","_ontrack","set","f","removeEventListener","addEventListener","enumerable","configurable","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","r","event","transceiver","value","webkitRTCPeerConnection","RTCIceCandidate","RTCRtpReceiver","getStats","result","origGetReceivers","receivers","srcElement","filterStats","origGetStats","MediaStreamTrack","reject"],"mappings":"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"}
1
+ {"version":3,"file":"chrome_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimSenderReceiverGetStats(window, browserDetails) {\n if (browserDetails.version >= 67) {\n return;\n }\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Plan-B is no longer supported.\n return;\n }\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n"],"names":["shimAddTrackRemoveTrackWithNative","window","RTCPeerConnection","prototype","getLocalStreams","this","_shimmedLocalStreams","Object","keys","map","streamId","origAddTrack","addTrack","track","stream","apply","arguments","sender","id","indexOf","push","origAddStream","addStream","getTracks","forEach","getSenders","find","s","DOMException","existingSenders","newSenders","filter","newSender","concat","origRemoveStream","removeStream","origRemoveTrack","removeTrack","idx","splice","length","browserDetails","version","utils","e","pc","target","getConfiguration","sdpSemantics","signalingState","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","MediaStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","type","streams","slice","call","t","oldStream","Promise","resolve","then","dispatchEvent","Event","method","nativeMethod","methodObj","args","desc","err","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","getOwnPropertyDescriptor","defineProperty","get","_pc","streamid","shimSenderWithDtmf","dtmf","undefined","_dtmf","kind","createDTMFSender","_senders","RTCRtpSender","origGetSenders","senders","webkitMediaStream","_ontrack","set","f","removeEventListener","addEventListener","enumerable","configurable","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","r","event","transceiver","value","webkitRTCPeerConnection","RTCIceCandidate","RTCRtpReceiver","getStats","result","origGetReceivers","receivers","srcElement","filterStats","origGetStats","MediaStreamTrack","reject"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../sdp/sdp.js"),t=require("./utils.js");exports.removeExtmapAllowMixed=function(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}},exports.shimAddIceCandidateNullOrEmpty=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})},exports.shimConnectionState=function(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}}))},exports.shimMaxMessageSize=function(t,n){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const o=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===n.browser&&n.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(t){if(!t||!t.sdp)return!1;const n=e.default.splitSections(t.sdp);return n.shift(),n.some((t=>{const n=e.default.parseMLine(t);return n&&"application"===n.kind&&-1!==n.protocol.indexOf("SCTP")}))}(arguments[0])){const t=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),o=function(e){let t=65536;return"firefox"===n.browser&&(t=n.version<57?-1===e?16384:2147483637:n.version<60?57===n.version?65535:65536:2147483637),t}(t),i=function(t,o){let i=65536;"firefox"===n.browser&&57===n.version&&(i=65535);const r=e.default.matchPrefix(t.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===n.browser&&-1!==o&&(i=2147483637),i}(arguments[0],t);let r;r=0===o&&0===i?Number.POSITIVE_INFINITY:0===o||0===i?Math.max(o,i):Math.min(o,i);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>r}),this._sctp=a}return o.apply(this,arguments)}},exports.shimParameterlessSetLocalDescription=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return n.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then((e=>n.apply(this,[e])))})},exports.shimRTCIceCandidate=function(n){if(!n.RTCIceCandidate||n.RTCIceCandidate&&"foundation"in n.RTCIceCandidate.prototype)return;const o=n.RTCIceCandidate;n.RTCIceCandidate=function(t){if("object"==typeof t&&t.candidate&&0===t.candidate.indexOf("a=")&&((t=JSON.parse(JSON.stringify(t))).candidate=t.candidate.substring(2)),t.candidate&&t.candidate.length){const n=new o(t),i=e.default.parseCandidate(t.candidate);for(const e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new o(t)},n.RTCIceCandidate.prototype=o.prototype,t.wrapPeerConnectionEvent(n,"icecandidate",(e=>(e.candidate&&Object.defineProperty(e,"candidate",{value:new n.RTCIceCandidate(e.candidate),writable:"false"}),e)))},exports.shimRTCIceCandidateRelayProtocol=function(n){!n.RTCIceCandidate||n.RTCIceCandidate&&"relayProtocol"in n.RTCIceCandidate.prototype||t.wrapPeerConnectionEvent(n,"icecandidate",(t=>{if(t.candidate){const n=e.default.parseCandidate(t.candidate.candidate);"relay"===n.type&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return t}))},exports.shimSendThrowTypeError=function(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function n(e,t){const n=e.send;e.send=function(){const o=arguments[0],i=o.length||o.size||o.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const o=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=o.apply(this,arguments);return n(e,this),e},t.wrapPeerConnectionEvent(e,"datachannel",(e=>(n(e.channel,e.target),e)))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../sdp/sdp.js"),t=require("./utils.js");exports.removeExtmapAllowMixed=function(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}},exports.shimAddIceCandidateNullOrEmpty=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})},exports.shimConnectionState=function(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}}))},exports.shimMaxMessageSize=function(t,n){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const o=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===n.browser&&n.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(t){if(!t||!t.sdp)return!1;const n=e.default.splitSections(t.sdp);return n.shift(),n.some((t=>{const n=e.default.parseMLine(t);return n&&"application"===n.kind&&-1!==n.protocol.indexOf("SCTP")}))}(arguments[0])){const t=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),o=function(e){let t=65536;return"firefox"===n.browser&&(t=n.version<57?-1===e?16384:2147483637:n.version<60?57===n.version?65535:65536:2147483637),t}(t),i=function(t,o){let i=65536;"firefox"===n.browser&&57===n.version&&(i=65535);const r=e.default.matchPrefix(t.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===n.browser&&-1!==o&&(i=2147483637),i}(arguments[0],t);let r;r=0===o&&0===i?Number.POSITIVE_INFINITY:0===o||0===i?Math.max(o,i):Math.min(o,i);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>r}),this._sctp=a}return o.apply(this,arguments)}},exports.shimParameterlessSetLocalDescription=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return n.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then((e=>n.apply(this,[e])))})},exports.shimRTCIceCandidate=function(n){if(!n.RTCIceCandidate||n.RTCIceCandidate&&"foundation"in n.RTCIceCandidate.prototype)return;const o=n.RTCIceCandidate;n.RTCIceCandidate=function(t){if("object"==typeof t&&t.candidate&&0===t.candidate.indexOf("a=")&&((t=JSON.parse(JSON.stringify(t))).candidate=t.candidate.substring(2)),t.candidate&&t.candidate.length){const n=new o(t),i=e.default.parseCandidate(t.candidate);for(const e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new o(t)},n.RTCIceCandidate.prototype=o.prototype,t.wrapPeerConnectionEvent(n,"icecandidate",(e=>(e.candidate&&Object.defineProperty(e,"candidate",{value:new n.RTCIceCandidate(e.candidate),writable:"false"}),e)))},exports.shimRTCIceCandidateRelayProtocol=function(n){!n.RTCIceCandidate||n.RTCIceCandidate&&"relayProtocol"in n.RTCIceCandidate.prototype||t.wrapPeerConnectionEvent(n,"icecandidate",(t=>{if(t.candidate){const n=e.default.parseCandidate(t.candidate.candidate);"relay"===n.type&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return t}))},exports.shimSendThrowTypeError=function(e,n){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;if("chrome"===n.browser&&n.version>149)return;if("firefox"===n.browser&&n.version>60)return;function o(e,t){const n=e.send;e.send=function(){const o=arguments[0],i=o.length||o.size||o.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return o(e,this),e},t.wrapPeerConnectionEvent(e,"datachannel",(e=>(o(e.channel,e.target),e)))};
2
2
  //# sourceMappingURL=common_shim.js.map