inl-ui 0.0.3 → 0.0.6
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.
- package/README.md +27 -0
- package/dist/index.js +12754 -61
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -2
- package/dist/theme/dark copy.less +448 -0
- package/dist/theme/dark.less +204 -0
- package/dist/theme/default copy.less +1094 -0
- package/dist/theme/default.less +109 -0
- package/package.json +6 -2
- package/conf/config.output.ts +0 -0
- package/conf/rollup.config.ts +0 -36
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/gl.d.ts +0 -8
- package/dist/types/src/index.d.ts +0 -7
- package/dist/types/src/pageComponent/api/auth/menuManager.d.ts +0 -23
- package/dist/types/src/pageComponent/api/auth/roleManager.d.ts +0 -27
- package/dist/types/src/pageComponent/api/auth/userManager.d.ts +0 -45
- package/dist/types/src/pageComponent/api/axios.d.ts +0 -4
- package/dist/types/src/pageComponent/api/index.d.ts +0 -30
- package/dist/types/src/pageComponent/api/logManager.d.ts +0 -11
- package/dist/types/src/pageComponent/api/org/depManager.d.ts +0 -55
- package/dist/types/src/pageComponent/api/org/postManager.d.ts +0 -30
- package/dist/types/src/pageComponent/api/org/teamManager.d.ts +0 -38
- package/dist/types/src/pageComponent/api/param.d.ts +0 -32
- package/dist/types/src/pageComponent/components/CommonTree.d.ts +0 -57
- package/dist/types/src/pageComponent/components/DynamicIcon.d.ts +0 -13
- package/dist/types/src/pageComponent/components/EditPasswordForm.d.ts +0 -19
- package/dist/types/src/pageComponent/components/IconSelect.d.ts +0 -12
- package/dist/types/src/pageComponent/components/Navbar.d.ts +0 -13
- package/dist/types/src/pageComponent/components/ProFormItem.d.ts +0 -18
- package/dist/types/src/pageComponent/components/SearchSelect.d.ts +0 -49
- package/dist/types/src/pageComponent/components/Sidebar.d.ts +0 -20
- package/dist/types/src/pageComponent/components/loginBox/index.d.ts +0 -43
- package/dist/types/src/pageComponent/config/global.d.ts +0 -7
- package/dist/types/src/pageComponent/config/install.d.ts +0 -2
- package/dist/types/src/pageComponent/hooks/global.d.ts +0 -6
- package/dist/types/src/pageComponent/hooks/manage-module/useModalForm.d.ts +0 -5
- package/dist/types/src/pageComponent/hooks/manage-module/useModalTitle.d.ts +0 -6
- package/dist/types/src/pageComponent/hooks/manage-module/useModalVisibleControl.d.ts +0 -5
- package/dist/types/src/pageComponent/hooks/useBus.d.ts +0 -6
- package/dist/types/src/pageComponent/hooks/useProxy.d.ts +0 -4
- package/dist/types/src/pageComponent/hooks/useTableList.d.ts +0 -13
- package/dist/types/src/pageComponent/hooks/useVModel.d.ts +0 -1
- package/dist/types/src/pageComponent/index.d.ts +0 -2
- package/dist/types/src/pageComponent/utils/base64.d.ts +0 -14
- package/dist/types/src/pageComponent/utils/index.d.ts +0 -3
- package/dist/types/src/pageComponent/utils/is.d.ts +0 -10
- package/dist/types/src/pageComponent/utils/transform.d.ts +0 -10
- package/dist/types/src/pageComponent/utils/tree.d.ts +0 -16
- package/dist/types/src/pageComponent/utils/validation.d.ts +0 -11
- package/dist/types/src/pageComponent/views/alarms/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/login.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/about.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/authManager/menuManager/index.d.ts +0 -5
- package/dist/types/src/pageComponent/views/systemManager/authManager/menuManager/menuDetail.d.ts +0 -10
- package/dist/types/src/pageComponent/views/systemManager/authManager/menuManager/menuSelectTree.d.ts +0 -18
- package/dist/types/src/pageComponent/views/systemManager/authManager/menuManager/updateMenuDialog.d.ts +0 -27
- package/dist/types/src/pageComponent/views/systemManager/authManager/roleManager/index.d.ts +0 -5
- package/dist/types/src/pageComponent/views/systemManager/authManager/roleManager/updateRoleDialog.d.ts +0 -34
- package/dist/types/src/pageComponent/views/systemManager/authManager/userManager/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.d.ts +0 -36
- package/dist/types/src/pageComponent/views/systemManager/authManager/userManager/userProfileDialog.d.ts +0 -21
- package/dist/types/src/pageComponent/views/systemManager/logManager.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/orgManager/depManager/depTree.d.ts +0 -10
- package/dist/types/src/pageComponent/views/systemManager/orgManager/depManager/employeeTable.d.ts +0 -19
- package/dist/types/src/pageComponent/views/systemManager/orgManager/depManager/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.d.ts +0 -42
- package/dist/types/src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.d.ts +0 -40
- package/dist/types/src/pageComponent/views/systemManager/orgManager/empManager.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/orgManager/postManager/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.d.ts +0 -35
- package/dist/types/src/pageComponent/views/systemManager/orgManager/teamManager/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.d.ts +0 -35
- package/dist/types/src/pageComponent/views/systemManager/paramManager/collapseContainer.d.ts +0 -20
- package/dist/types/src/pageComponent/views/systemManager/paramManager/dynamicForm.d.ts +0 -11
- package/dist/types/src/pageComponent/views/systemManager/paramManager/index.d.ts +0 -2
- package/dist/types/src/pageComponent/views/systemManager/paramManager/tabItem.d.ts +0 -11
- package/dist/types/src/pageComponent/views/systemManager/personalSetting.d.ts +0 -2
- package/dist/types/src/utll.d.ts +0 -2
- package/src/components/index.ts +0 -1
- package/src/gl.ts +0 -13
- package/src/index.ts +0 -17
- package/src/pageComponent/api/auth/menuManager.ts +0 -44
- package/src/pageComponent/api/auth/roleManager.ts +0 -50
- package/src/pageComponent/api/auth/userManager.ts +0 -76
- package/src/pageComponent/api/axios.ts +0 -79
- package/src/pageComponent/api/index.ts +0 -25
- package/src/pageComponent/api/logManager.ts +0 -18
- package/src/pageComponent/api/org/depManager.ts +0 -98
- package/src/pageComponent/api/org/postManager.ts +0 -53
- package/src/pageComponent/api/org/teamManager.ts +0 -67
- package/src/pageComponent/api/param.ts +0 -36
- package/src/pageComponent/assets/img/code.png +0 -0
- package/src/pageComponent/assets/img/loginBackground.png +0 -0
- package/src/pageComponent/assets/img/logo.png +0 -0
- package/src/pageComponent/assets/img/mtInfo.png +0 -0
- package/src/pageComponent/assets/img/mtLogoBig.png +0 -0
- package/src/pageComponent/assets/img.d.ts +0 -1
- package/src/pageComponent/assets/logo.png +0 -0
- package/src/pageComponent/assets/styles/const.less +0 -1
- package/src/pageComponent/assets/styles/constant/antd.less +0 -1
- package/src/pageComponent/assets/styles/index.less +0 -15
- package/src/pageComponent/assets/styles/login.less +0 -56
- package/src/pageComponent/assets/styles/loginBox.less +0 -51
- package/src/pageComponent/assets/styles/reset.less +0 -146
- package/src/pageComponent/assets/styles/systemManager/about.less +0 -56
- package/src/pageComponent/assets/styles/systemManager/index.less +0 -89
- package/src/pageComponent/assets/styles/systemManager/menu-manager.less +0 -52
- package/src/pageComponent/assets/styles/systemManager/param-manager.less +0 -44
- package/src/pageComponent/assets/zh-cn.js +0 -134
- package/src/pageComponent/components/CommonTree.tsx +0 -362
- package/src/pageComponent/components/DynamicIcon.tsx +0 -27
- package/src/pageComponent/components/EditPasswordForm.tsx +0 -89
- package/src/pageComponent/components/IconSelect.tsx +0 -51
- package/src/pageComponent/components/Navbar.tsx +0 -96
- package/src/pageComponent/components/ProFormItem.tsx +0 -185
- package/src/pageComponent/components/SearchSelect.tsx +0 -127
- package/src/pageComponent/components/Sidebar.tsx +0 -123
- package/src/pageComponent/components/loginBox/README.md +0 -21
- package/src/pageComponent/components/loginBox/index.tsx +0 -174
- package/src/pageComponent/config/global.ts +0 -20
- package/src/pageComponent/config/htconfig.ts +0 -32
- package/src/pageComponent/config/install.ts +0 -10
- package/src/pageComponent/hooks/global.ts +0 -12
- package/src/pageComponent/hooks/manage-module/useModalForm.ts +0 -37
- package/src/pageComponent/hooks/manage-module/useModalTitle.ts +0 -31
- package/src/pageComponent/hooks/manage-module/useModalVisibleControl.ts +0 -31
- package/src/pageComponent/hooks/useBus.ts +0 -26
- package/src/pageComponent/hooks/useProxy.ts +0 -8
- package/src/pageComponent/hooks/useTableList.ts +0 -57
- package/src/pageComponent/hooks/useVModel.ts +0 -16
- package/src/pageComponent/index.ts +0 -3
- package/src/pageComponent/utils/base64.ts +0 -27
- package/src/pageComponent/utils/index.ts +0 -19
- package/src/pageComponent/utils/is.ts +0 -30
- package/src/pageComponent/utils/transform.ts +0 -27
- package/src/pageComponent/utils/tree.ts +0 -59
- package/src/pageComponent/utils/validation.ts +0 -14
- package/src/pageComponent/views/alarms/index.tsx +0 -7
- package/src/pageComponent/views/index.tsx +0 -20
- package/src/pageComponent/views/login.tsx +0 -66
- package/src/pageComponent/views/systemManager/about.tsx +0 -127
- package/src/pageComponent/views/systemManager/authManager/menuManager/index.tsx +0 -42
- package/src/pageComponent/views/systemManager/authManager/menuManager/menuDetail.tsx +0 -174
- package/src/pageComponent/views/systemManager/authManager/menuManager/menuSelectTree.tsx +0 -111
- package/src/pageComponent/views/systemManager/authManager/menuManager/updateMenuDialog.tsx +0 -111
- package/src/pageComponent/views/systemManager/authManager/roleManager/index.tsx +0 -233
- package/src/pageComponent/views/systemManager/authManager/roleManager/updateRoleDialog.tsx +0 -207
- package/src/pageComponent/views/systemManager/authManager/userManager/index.tsx +0 -255
- package/src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.tsx +0 -294
- package/src/pageComponent/views/systemManager/authManager/userManager/userProfileDialog.tsx +0 -102
- package/src/pageComponent/views/systemManager/logManager.tsx +0 -356
- package/src/pageComponent/views/systemManager/orgManager/depManager/depTree.tsx +0 -101
- package/src/pageComponent/views/systemManager/orgManager/depManager/employeeTable.tsx +0 -204
- package/src/pageComponent/views/systemManager/orgManager/depManager/index.tsx +0 -112
- package/src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.tsx +0 -249
- package/src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.tsx +0 -312
- package/src/pageComponent/views/systemManager/orgManager/empManager.tsx +0 -7
- package/src/pageComponent/views/systemManager/orgManager/postManager/index.tsx +0 -192
- package/src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.tsx +0 -153
- package/src/pageComponent/views/systemManager/orgManager/teamManager/index.tsx +0 -191
- package/src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.tsx +0 -250
- package/src/pageComponent/views/systemManager/paramManager/collapseContainer.tsx +0 -54
- package/src/pageComponent/views/systemManager/paramManager/dynamicForm.tsx +0 -85
- package/src/pageComponent/views/systemManager/paramManager/index.tsx +0 -47
- package/src/pageComponent/views/systemManager/paramManager/tabItem.tsx +0 -163
- package/src/pageComponent/views/systemManager/personalSetting.tsx +0 -206
- package/src/styles/index.less +0 -1
- package/src/utils/className.ts +0 -16
- package/src/utils/config.ts +0 -5
- package/src/utils/getSlots.ts +0 -18
- package/src/utils/index.ts +0 -7
- package/src/utils/installComponent.ts +0 -12
- package/tsconfig.json +0 -27
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/index.ts","../../src/pageComponent/views/systemManager/about.tsx","../../src/pageComponent/index.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["About","defineComponent","setup","prop","context","ref","reactive","showContent","loading","confirm","e","console","log","cancel","utils","installComponent","comps","pageComponents","components","install","app","i","use","version"],"mappings":";;;;;;AAAA,iBAAe,EAAf;;ACMA,MAAMA,KAAK,GAAGC,eAAe,CAAC;AAC5BC,EAAAA,KAAK,CAACC,IAAD,EAAOC,OAAP;AACH,IAAgBC,GAAG,CAAC,KAAD;AAEnB,IAAcC,QAAQ,CAAC;AACrBC,MAAAA,WAAW,EAAE,KADQ;AAErBC,MAAAA,OAAO,EAAE;AAFY,KAAD;;AAKtB,UAAMC,OAAO,GAAIC,CAAD;AACdC,MAAAA,OAAO,CAACC,GAAR,CAAYF,CAAZ;AAED,KAHD;;AAKA,UAAMG,MAAM,GAAIH,CAAD;AACbC,MAAAA,OAAO,CAACC,GAAR,CAAYF,CAAZ;AAED,KAHD;;AAUA,WAAO;AAAA,eACM,OADN;AAAA,YACiB;AADjB;AAAA,eAEQ;AAFR;AAAA,eAMO,mBANP;AAAA,iBAOS,IAPT;AAAA,qBAQa,IARb;AAAA,mBASW,aATX;AAAA,mBAUYD,OAVZ;AAAA,kBAWWI;AAXX;AAAA;AAAA,gBAcQ,SAdR;AAAA,mBAeY;AAER;AAjBJ;AAAA;AAAA;AAAA;AAAA,eAuEQ;AAvER;AAAA,eAwEU;AAxEV;AAAA,eA0ES;AA1ET;AAAA;AAAA;AAAA,eA4EQ;AA5ER;AAAA,eA6EU;AA7EV;AAAA,eA+EQ;AA/ER;AAAA,eAgFS;AAhFT;AAAA;AAAA;AAAA,eAiFQ;AAjFR;AAAA,eAkFS;AAlFT;AAAA;AAAA;AAAA,eAmFQ;AAnFR;AAAA,eAoFS;AApFT;AAAA;AAAA;AAAA,eAsFQ;AAtFR;AAAA,eAuFU;AAvFV;AAAA,eAyFM;AAzFN,+FAyFyB,IAzFzB,IAAP;AA6FD;;AArH2B,CAAD,CAA7B;AAwHA,cAAeC,KAAK,CAACC,gBAAN,CAAuBf,KAAvB,EAA8B,OAA9B,CAAf;;AC5HA,qBAAe,CAACA,OAAD,CAAf;;ACKA,MAAMgB,KAAK,GAAG,CAAC,GAAGC,cAAJ,EAAoB,GAAGC,UAAvB,CAAd;AAEA,YAAe;AACbC,EAAAA,OAAO,CAACC,GAAD;AACL,SAAK,IAAIC,CAAT,IAAcL,KAAd,EAAqB;AACnBI,MAAAA,GAAG,CAACE,GAAJ,CAAQD,CAAR;AACD;AACF,GALY;;AAMbE,EAAAA;AANa,CAAf;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/config.ts","../../src/utils/className.ts","../../src/utils/installComponent.ts","../../src/utils/getSlots.ts","../../src/utils/index.ts","../../src/pageComponent/hooks/useVModel.ts","../../src/components/headerMenu/index.tsx","../../src/components/headerMenuItem/index.tsx","../../src/components/headerMenuTitle/index.tsx","../../src/components/videoPlayer/util/axios.ts","../../src/components/videoPlayer/util/byUuid.ts","../src/components/videoPlayer/util/ZLMRTCClient.js","../../src/components/videoPlayer/util/video.ts","../../src/components/videoPlayer/index.tsx","../../src/components/index.ts","../../src/pageComponent/views/systemManager/about.tsx","../../src/pageComponent/hooks/useTableList.ts","../../src/pageComponent/api/axios.ts","../../src/pageComponent/api/auth/userManager.ts","../../src/pageComponent/hooks/manage-module/useModalVisibleControl.ts","../../src/pageComponent/utils/base64.ts","../../src/pageComponent/utils/validation.ts","../../src/pageComponent/views/systemManager/authManager/userManager/userProfileDialog.tsx","../../src/pageComponent/utils/is.ts","../../src/pageComponent/components/SearchSelect.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/index.tsx","../../src/pageComponent/api/auth/roleManager.ts","../../src/pageComponent/utils/transform.ts","../../src/pageComponent/views/systemManager/authManager/RoleManager/updateRoleDialog.tsx","../../src/pageComponent/views/systemManager/authManager/RoleManager/index.tsx","../../src/pageComponent/hooks/useBus.ts","../../src/pageComponent/api/auth/menuManager.ts","../../src/pageComponent/hooks/useProxy.ts","../../src/pageComponent/utils/tree.ts","../../src/pageComponent/components/CommonTree.tsx","../../src/pageComponent/components/IconSelect.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/updateMenuDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/uploadJSONDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuSelectTree.tsx","../../src/pageComponent/components/DynamicIcon.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuDetail.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/index.tsx","../../src/pageComponent/api/org/postManager.ts","../../src/pageComponent/hooks/manage-module/useModalTitle.ts","../../src/pageComponent/hooks/manage-module/useModalForm.ts","../../src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/postManager/index.tsx","../../src/pageComponent/api/org/teamManager.ts","../../src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/teamManager/index.tsx","../../src/pageComponent/api/org/depManager.ts","../../src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/employeeTable.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/depTree.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/index.tsx","../../src/pageComponent/api/logManager.ts","../../src/pageComponent/views/systemManager/logManager.tsx","../../src/pageComponent/api/param.ts","../../src/pageComponent/components/ProFormItem.tsx","../../src/pageComponent/views/systemManager/paramManager/dynamicForm.tsx","../../src/pageComponent/views/systemManager/paramManager/collapseContainer.tsx","../../src/pageComponent/views/systemManager/paramManager/tabItem.tsx","../../src/pageComponent/views/systemManager/paramManager/index.tsx","../../src/pageComponent/components/EditPasswordForm.tsx","../../src/pageComponent/views/systemManager/personalSetting.tsx","../../src/pageComponent/index.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,"import axios from \"axios\";\r\n\r\nconst Events$1 = {\r\n WEBRTC_NOT_SUPPORT: \"WEBRTC_NOT_SUPPORT\",\r\n WEBRTC_ICE_CANDIDATE_ERROR: \"WEBRTC_ICE_CANDIDATE_ERROR\",\r\n WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED: \"WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED\",\r\n WEBRTC_ON_REMOTE_STREAMS: \"WEBRTC_ON_REMOTE_STREAMS\",\r\n WEBRTC_ON_LOCAL_STREAM: \"WEBRTC_ON_LOCAL_STREAM\",\r\n WEBRTC_ON_CONNECTION_STATE_CHANGE: \"WEBRTC_ON_CONNECTION_STATE_CHANGE\",\r\n CAPTURE_STREAM_FAILED: \"CAPTURE_STREAM_FAILED\",\r\n};\r\n\r\nconst VERSION = \"1.0.1\";\r\nconst BUILD_DATE = \"Tue Feb 08 2022 10:41:32 GMT+0800 (中国标准时间)\";\r\n\r\n// Copyright (C) <2018> Intel Corporation\r\n//\r\n// SPDX-License-Identifier: Apache-2.0\r\n// eslint-disable-next-line require-jsdoc\r\nfunction isFirefox() {\r\n return window.navigator.userAgent.match(\"Firefox\") !== null;\r\n} // eslint-disable-next-line require-jsdoc\r\n\r\nfunction isChrome() {\r\n return window.navigator.userAgent.match(\"Chrome\") !== null;\r\n} // eslint-disable-next-line require-jsdoc\r\n\r\nfunction isEdge() {\r\n return window.navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/) !== null;\r\n} // eslint-disable-next-line require-jsdoc\r\n\r\n// Copyright (C) <2018> Intel Corporation\r\n/**\r\n * @class AudioSourceInfo\r\n * @classDesc Source info about an audio track. Values: 'mic', 'screen-cast', 'file', 'mixed'.\r\n * @memberOf Owt.Base\r\n * @readonly\r\n * @enum {string}\r\n */\r\n\r\nconst AudioSourceInfo = {\r\n MIC: \"mic\",\r\n SCREENCAST: \"screen-cast\",\r\n FILE: \"file\",\r\n MIXED: \"mixed\",\r\n};\r\n/**\r\n * @class VideoSourceInfo\r\n * @classDesc Source info about a video track. Values: 'camera', 'screen-cast', 'file', 'mixed'.\r\n * @memberOf Owt.Base\r\n * @readonly\r\n * @enum {string}\r\n */\r\n\r\nconst VideoSourceInfo = {\r\n CAMERA: \"camera\",\r\n SCREENCAST: \"screen-cast\",\r\n FILE: \"file\",\r\n MIXED: \"mixed\",\r\n};\r\n/**\r\n * @class TrackKind\r\n * @classDesc Kind of a track. Values: 'audio' for audio track, 'video' for video track, 'av' for both audio and video tracks.\r\n * @memberOf Owt.Base\r\n * @readonly\r\n * @enum {string}\r\n */\r\n\r\nconst TrackKind = {\r\n /**\r\n * Audio tracks.\r\n * @type string\r\n */\r\n AUDIO: \"audio\",\r\n\r\n /**\r\n * Video tracks.\r\n * @type string\r\n */\r\n VIDEO: \"video\",\r\n\r\n /**\r\n * Both audio and video tracks.\r\n * @type string\r\n */\r\n AUDIO_AND_VIDEO: \"av\",\r\n};\r\n/**\r\n * @class Resolution\r\n * @memberOf Owt.Base\r\n * @classDesc The Resolution defines the size of a rectangle.\r\n * @constructor\r\n * @param {number} width\r\n * @param {number} height\r\n */\r\n\r\nclass Resolution {\r\n // eslint-disable-next-line require-jsdoc\r\n constructor(width, height) {\r\n /**\r\n * @member {number} width\r\n * @instance\r\n * @memberof Owt.Base.Resolution\r\n */\r\n this.width = width;\r\n /**\r\n * @member {number} height\r\n * @instance\r\n * @memberof Owt.Base.Resolution\r\n */\r\n\r\n this.height = height;\r\n }\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nlet logDisabled_ = true;\r\nlet deprecationWarnings_ = true;\r\n\r\n/**\r\n * Extract browser version out of the provided user agent string.\r\n *\r\n * @param {!string} uastring userAgent string.\r\n * @param {!string} expr Regular expression used as match criteria.\r\n * @param {!number} pos position in the version string to be returned.\r\n * @return {!number} browser version.\r\n */\r\nfunction extractVersion(uastring, expr, pos) {\r\n const match = uastring.match(expr);\r\n return match && match.length >= pos && parseInt(match[pos], 10);\r\n}\r\n\r\n// Wraps the peerconnection event eventNameToWrap in a function\r\n// which returns the modified event object (or false to prevent\r\n// the event).\r\nfunction wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n const proto = window.RTCPeerConnection.prototype;\r\n const nativeAddEventListener = proto.addEventListener;\r\n proto.addEventListener = function (nativeEventName, cb) {\r\n if (nativeEventName !== eventNameToWrap) {\r\n return nativeAddEventListener.apply(this, arguments);\r\n }\r\n const wrappedCallback = (e) => {\r\n const modifiedEvent = wrapper(e);\r\n if (modifiedEvent) {\r\n if (cb.handleEvent) {\r\n cb.handleEvent(modifiedEvent);\r\n } else {\r\n cb(modifiedEvent);\r\n }\r\n }\r\n };\r\n this._eventMap = this._eventMap || {};\r\n if (!this._eventMap[eventNameToWrap]) {\r\n this._eventMap[eventNameToWrap] = new Map();\r\n }\r\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\r\n return nativeAddEventListener.apply(this, [\r\n nativeEventName,\r\n wrappedCallback,\r\n ]);\r\n };\r\n\r\n const nativeRemoveEventListener = proto.removeEventListener;\r\n proto.removeEventListener = function (nativeEventName, cb) {\r\n if (\r\n nativeEventName !== eventNameToWrap ||\r\n !this._eventMap ||\r\n !this._eventMap[eventNameToWrap]\r\n ) {\r\n return nativeRemoveEventListener.apply(this, arguments);\r\n }\r\n if (!this._eventMap[eventNameToWrap].has(cb)) {\r\n return nativeRemoveEventListener.apply(this, arguments);\r\n }\r\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\r\n this._eventMap[eventNameToWrap].delete(cb);\r\n if (this._eventMap[eventNameToWrap].size === 0) {\r\n delete this._eventMap[eventNameToWrap];\r\n }\r\n if (Object.keys(this._eventMap).length === 0) {\r\n delete this._eventMap;\r\n }\r\n return nativeRemoveEventListener.apply(this, [\r\n nativeEventName,\r\n unwrappedCb,\r\n ]);\r\n };\r\n\r\n Object.defineProperty(proto, \"on\" + eventNameToWrap, {\r\n get() {\r\n return this[\"_on\" + eventNameToWrap];\r\n },\r\n set(cb) {\r\n if (this[\"_on\" + eventNameToWrap]) {\r\n this.removeEventListener(\r\n eventNameToWrap,\r\n this[\"_on\" + eventNameToWrap]\r\n );\r\n delete this[\"_on\" + eventNameToWrap];\r\n }\r\n if (cb) {\r\n this.addEventListener(\r\n eventNameToWrap,\r\n (this[\"_on\" + eventNameToWrap] = cb)\r\n );\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n}\r\n\r\nfunction disableLog(bool) {\r\n if (typeof bool !== \"boolean\") {\r\n return new Error(\r\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\r\n );\r\n }\r\n logDisabled_ = bool;\r\n return bool ? \"adapter.js logging disabled\" : \"adapter.js logging enabled\";\r\n}\r\n\r\n/**\r\n * Disable or enable deprecation warnings\r\n * @param {!boolean} bool set to true to disable warnings.\r\n */\r\nfunction disableWarnings(bool) {\r\n if (typeof bool !== \"boolean\") {\r\n return new Error(\r\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\r\n );\r\n }\r\n deprecationWarnings_ = !bool;\r\n return \"adapter.js deprecation warnings \" + (bool ? \"disabled\" : \"enabled\");\r\n}\r\n\r\nfunction log$1() {\r\n if (typeof window === \"object\") {\r\n if (logDisabled_) {\r\n return;\r\n }\r\n if (typeof console !== \"undefined\" && typeof console.log === \"function\") {\r\n console.log.apply(console, arguments);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\r\n */\r\nfunction deprecated(oldMethod, newMethod) {\r\n if (!deprecationWarnings_) {\r\n return;\r\n }\r\n console.warn(\r\n oldMethod + \" is deprecated, please use \" + newMethod + \" instead.\"\r\n );\r\n}\r\n\r\n/**\r\n * Browser detector.\r\n *\r\n * @return {object} result containing browser and version\r\n * properties.\r\n */\r\nfunction detectBrowser(window) {\r\n // Returned result object.\r\n const result = { browser: null, version: null };\r\n\r\n // Fail early if it's not a browser\r\n if (typeof window === \"undefined\" || !window.navigator) {\r\n result.browser = \"Not a browser.\";\r\n return result;\r\n }\r\n\r\n const { navigator } = window;\r\n\r\n if (navigator.mozGetUserMedia) {\r\n // Firefox.\r\n result.browser = \"firefox\";\r\n result.version = extractVersion(navigator.userAgent, /Firefox\\/(\\d+)\\./, 1);\r\n } else if (\r\n navigator.webkitGetUserMedia ||\r\n (window.isSecureContext === false &&\r\n window.webkitRTCPeerConnection &&\r\n !window.RTCIceGatherer)\r\n ) {\r\n // Chrome, Chromium, Webview, Opera.\r\n // Version matches Chrome/WebRTC version.\r\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\r\n // more complicated fallback to webkitRTCPeerConnection.\r\n result.browser = \"chrome\";\r\n result.version = extractVersion(\r\n navigator.userAgent,\r\n /Chrom(e|ium)\\/(\\d+)\\./,\r\n 2\r\n );\r\n } else if (\r\n navigator.mediaDevices &&\r\n navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/)\r\n ) {\r\n // Edge.\r\n result.browser = \"edge\";\r\n result.version = extractVersion(\r\n navigator.userAgent,\r\n /Edge\\/(\\d+).(\\d+)$/,\r\n 2\r\n );\r\n } else if (\r\n window.RTCPeerConnection &&\r\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)\r\n ) {\r\n // Safari.\r\n result.browser = \"safari\";\r\n result.version = extractVersion(\r\n navigator.userAgent,\r\n /AppleWebKit\\/(\\d+)\\./,\r\n 1\r\n );\r\n result.supportsUnifiedPlan =\r\n window.RTCRtpTransceiver &&\r\n \"currentDirection\" in window.RTCRtpTransceiver.prototype;\r\n } else {\r\n // Default fallthrough: not supported.\r\n result.browser = \"Not a supported browser.\";\r\n return result;\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Checks if something is an object.\r\n *\r\n * @param {*} val The something you want to check.\r\n * @return true if val is an object, false otherwise.\r\n */\r\nfunction isObject(val) {\r\n return Object.prototype.toString.call(val) === \"[object Object]\";\r\n}\r\n\r\n/**\r\n * Remove all empty objects and undefined values\r\n * from a nested object -- an enhanced and vanilla version\r\n * of Lodash's `compact`.\r\n */\r\nfunction compactObject(data) {\r\n if (!isObject(data)) {\r\n return data;\r\n }\r\n\r\n return Object.keys(data).reduce(function (accumulator, key) {\r\n const isObj = isObject(data[key]);\r\n const value = isObj ? compactObject(data[key]) : data[key];\r\n const isEmptyObject = isObj && !Object.keys(value).length;\r\n if (value === undefined || isEmptyObject) {\r\n return accumulator;\r\n }\r\n return Object.assign(accumulator, { [key]: value });\r\n }, {});\r\n}\r\n\r\n/* iterates the stats graph recursively. */\r\nfunction walkStats(stats, base, resultSet) {\r\n if (!base || resultSet.has(base.id)) {\r\n return;\r\n }\r\n resultSet.set(base.id, base);\r\n Object.keys(base).forEach((name) => {\r\n if (name.endsWith(\"Id\")) {\r\n walkStats(stats, stats.get(base[name]), resultSet);\r\n } else if (name.endsWith(\"Ids\")) {\r\n base[name].forEach((id) => {\r\n walkStats(stats, stats.get(id), resultSet);\r\n });\r\n }\r\n });\r\n}\r\n\r\n/* filter getStats for a sender/receiver track. */\r\nfunction filterStats(result, track, outbound) {\r\n const streamStatsType = outbound ? \"outbound-rtp\" : \"inbound-rtp\";\r\n const filteredResult = new Map();\r\n if (track === null) {\r\n return filteredResult;\r\n }\r\n const trackStats = [];\r\n result.forEach((value) => {\r\n if (value.type === \"track\" && value.trackIdentifier === track.id) {\r\n trackStats.push(value);\r\n }\r\n });\r\n trackStats.forEach((trackStat) => {\r\n result.forEach((stats) => {\r\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\r\n walkStats(result, stats, filteredResult);\r\n }\r\n });\r\n });\r\n return filteredResult;\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\nconst logging = log$1;\r\n\r\nfunction shimGetUserMedia$3(window, browserDetails) {\r\n const navigator = window && window.navigator;\r\n\r\n if (!navigator.mediaDevices) {\r\n return;\r\n }\r\n\r\n const constraintsToChrome_ = function (c) {\r\n if (typeof c !== \"object\" || c.mandatory || c.optional) {\r\n return c;\r\n }\r\n const cc = {};\r\n Object.keys(c).forEach((key) => {\r\n if (key === \"require\" || key === \"advanced\" || key === \"mediaSource\") {\r\n return;\r\n }\r\n const r = typeof c[key] === \"object\" ? c[key] : { ideal: c[key] };\r\n if (r.exact !== undefined && typeof r.exact === \"number\") {\r\n r.min = r.max = r.exact;\r\n }\r\n const oldname_ = function (prefix, name) {\r\n if (prefix) {\r\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\r\n }\r\n return name === \"deviceId\" ? \"sourceId\" : name;\r\n };\r\n if (r.ideal !== undefined) {\r\n cc.optional = cc.optional || [];\r\n let oc = {};\r\n if (typeof r.ideal === \"number\") {\r\n oc[oldname_(\"min\", key)] = r.ideal;\r\n cc.optional.push(oc);\r\n oc = {};\r\n oc[oldname_(\"max\", key)] = r.ideal;\r\n cc.optional.push(oc);\r\n } else {\r\n oc[oldname_(\"\", key)] = r.ideal;\r\n cc.optional.push(oc);\r\n }\r\n }\r\n if (r.exact !== undefined && typeof r.exact !== \"number\") {\r\n cc.mandatory = cc.mandatory || {};\r\n cc.mandatory[oldname_(\"\", key)] = r.exact;\r\n } else {\r\n [\"min\", \"max\"].forEach((mix) => {\r\n if (r[mix] !== undefined) {\r\n cc.mandatory = cc.mandatory || {};\r\n cc.mandatory[oldname_(mix, key)] = r[mix];\r\n }\r\n });\r\n }\r\n });\r\n if (c.advanced) {\r\n cc.optional = (cc.optional || []).concat(c.advanced);\r\n }\r\n return cc;\r\n };\r\n\r\n const shimConstraints_ = function (constraints, func) {\r\n if (browserDetails.version >= 61) {\r\n return func(constraints);\r\n }\r\n constraints = JSON.parse(JSON.stringify(constraints));\r\n if (constraints && typeof constraints.audio === \"object\") {\r\n const remap = function (obj, a, b) {\r\n if (a in obj && !(b in obj)) {\r\n obj[b] = obj[a];\r\n delete obj[a];\r\n }\r\n };\r\n constraints = JSON.parse(JSON.stringify(constraints));\r\n remap(constraints.audio, \"autoGainControl\", \"googAutoGainControl\");\r\n remap(constraints.audio, \"noiseSuppression\", \"googNoiseSuppression\");\r\n constraints.audio = constraintsToChrome_(constraints.audio);\r\n }\r\n if (constraints && typeof constraints.video === \"object\") {\r\n // Shim facingMode for mobile & surface pro.\r\n let face = constraints.video.facingMode;\r\n face = face && (typeof face === \"object\" ? face : { ideal: face });\r\n const getSupportedFacingModeLies = browserDetails.version < 66;\r\n\r\n if (\r\n face &&\r\n (face.exact === \"user\" ||\r\n face.exact === \"environment\" ||\r\n face.ideal === \"user\" ||\r\n face.ideal === \"environment\") &&\r\n !(\r\n navigator.mediaDevices.getSupportedConstraints &&\r\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\r\n !getSupportedFacingModeLies\r\n )\r\n ) {\r\n delete constraints.video.facingMode;\r\n let matches;\r\n if (face.exact === \"environment\" || face.ideal === \"environment\") {\r\n matches = [\"back\", \"rear\"];\r\n } else if (face.exact === \"user\" || face.ideal === \"user\") {\r\n matches = [\"front\"];\r\n }\r\n if (matches) {\r\n // Look for matches in label, or use last cam for back (typical).\r\n return navigator.mediaDevices.enumerateDevices().then((devices) => {\r\n devices = devices.filter((d) => d.kind === \"videoinput\");\r\n let dev = devices.find((d) =>\r\n matches.some((match) => d.label.toLowerCase().includes(match))\r\n );\r\n if (!dev && devices.length && matches.includes(\"back\")) {\r\n dev = devices[devices.length - 1]; // more likely the back cam\r\n }\r\n if (dev) {\r\n constraints.video.deviceId = face.exact\r\n ? { exact: dev.deviceId }\r\n : { ideal: dev.deviceId };\r\n }\r\n constraints.video = constraintsToChrome_(constraints.video);\r\n logging(\"chrome: \" + JSON.stringify(constraints));\r\n return func(constraints);\r\n });\r\n }\r\n }\r\n constraints.video = constraintsToChrome_(constraints.video);\r\n }\r\n logging(\"chrome: \" + JSON.stringify(constraints));\r\n return func(constraints);\r\n };\r\n\r\n const shimError_ = function (e) {\r\n if (browserDetails.version >= 64) {\r\n return e;\r\n }\r\n return {\r\n name:\r\n {\r\n PermissionDeniedError: \"NotAllowedError\",\r\n PermissionDismissedError: \"NotAllowedError\",\r\n InvalidStateError: \"NotAllowedError\",\r\n DevicesNotFoundError: \"NotFoundError\",\r\n ConstraintNotSatisfiedError: \"OverconstrainedError\",\r\n TrackStartError: \"NotReadableError\",\r\n MediaDeviceFailedDueToShutdown: \"NotAllowedError\",\r\n MediaDeviceKillSwitchOn: \"NotAllowedError\",\r\n TabCaptureError: \"AbortError\",\r\n ScreenCaptureError: \"AbortError\",\r\n DeviceCaptureError: \"AbortError\",\r\n }[e.name] || e.name,\r\n message: e.message,\r\n constraint: e.constraint || e.constraintName,\r\n toString() {\r\n return this.name + (this.message && \": \") + this.message;\r\n },\r\n };\r\n };\r\n\r\n const getUserMedia_ = function (constraints, onSuccess, onError) {\r\n shimConstraints_(constraints, (c) => {\r\n navigator.webkitGetUserMedia(c, onSuccess, (e) => {\r\n if (onError) {\r\n onError(shimError_(e));\r\n }\r\n });\r\n });\r\n };\r\n navigator.getUserMedia = getUserMedia_.bind(navigator);\r\n\r\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\r\n // function which returns a Promise, it does not accept spec-style\r\n // constraints.\r\n if (navigator.mediaDevices.getUserMedia) {\r\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\r\n navigator.mediaDevices\r\n );\r\n navigator.mediaDevices.getUserMedia = function (cs) {\r\n return shimConstraints_(cs, (c) =>\r\n origGetUserMedia(c).then(\r\n (stream) => {\r\n if (\r\n (c.audio && !stream.getAudioTracks().length) ||\r\n (c.video && !stream.getVideoTracks().length)\r\n ) {\r\n stream.getTracks().forEach((track) => {\r\n track.stop();\r\n });\r\n throw new DOMException(\"\", \"NotFoundError\");\r\n }\r\n return stream;\r\n },\r\n (e) => Promise.reject(shimError_(e))\r\n )\r\n );\r\n };\r\n }\r\n}\r\n\r\n/*\r\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\nfunction shimGetDisplayMedia$2(window, getSourceId) {\r\n if (\r\n window.navigator.mediaDevices &&\r\n \"getDisplayMedia\" in window.navigator.mediaDevices\r\n ) {\r\n return;\r\n }\r\n if (!window.navigator.mediaDevices) {\r\n return;\r\n }\r\n // getSourceId is a function that returns a promise resolving with\r\n // the sourceId of the screen/window/tab to be shared.\r\n if (typeof getSourceId !== \"function\") {\r\n console.error(\r\n \"shimGetDisplayMedia: getSourceId argument is not \" + \"a function\"\r\n );\r\n return;\r\n }\r\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\r\n constraints\r\n ) {\r\n return getSourceId(constraints).then((sourceId) => {\r\n const widthSpecified = constraints.video && constraints.video.width;\r\n const heightSpecified = constraints.video && constraints.video.height;\r\n const frameRateSpecified =\r\n constraints.video && constraints.video.frameRate;\r\n constraints.video = {\r\n mandatory: {\r\n chromeMediaSource: \"desktop\",\r\n chromeMediaSourceId: sourceId,\r\n maxFrameRate: frameRateSpecified || 3,\r\n },\r\n };\r\n if (widthSpecified) {\r\n constraints.video.mandatory.maxWidth = widthSpecified;\r\n }\r\n if (heightSpecified) {\r\n constraints.video.mandatory.maxHeight = heightSpecified;\r\n }\r\n return window.navigator.mediaDevices.getUserMedia(constraints);\r\n });\r\n };\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimMediaStream(window) {\r\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\r\n}\r\n\r\nfunction shimOnTrack$1(window) {\r\n if (\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n !(\"ontrack\" in window.RTCPeerConnection.prototype)\r\n ) {\r\n Object.defineProperty(window.RTCPeerConnection.prototype, \"ontrack\", {\r\n get() {\r\n return this._ontrack;\r\n },\r\n set(f) {\r\n if (this._ontrack) {\r\n this.removeEventListener(\"track\", this._ontrack);\r\n }\r\n this.addEventListener(\"track\", (this._ontrack = f));\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n const origSetRemoteDescription =\r\n window.RTCPeerConnection.prototype.setRemoteDescription;\r\n window.RTCPeerConnection.prototype.setRemoteDescription =\r\n function setRemoteDescription() {\r\n if (!this._ontrackpoly) {\r\n this._ontrackpoly = (e) => {\r\n // onaddstream does not fire when a track is added to an existing\r\n // stream. But stream.onaddtrack is implemented so we use that.\r\n e.stream.addEventListener(\"addtrack\", (te) => {\r\n let receiver;\r\n if (window.RTCPeerConnection.prototype.getReceivers) {\r\n receiver = this.getReceivers().find(\r\n (r) => r.track && r.track.id === te.track.id\r\n );\r\n } else {\r\n receiver = { track: te.track };\r\n }\r\n\r\n const event = new Event(\"track\");\r\n event.track = te.track;\r\n event.receiver = receiver;\r\n event.transceiver = { receiver };\r\n event.streams = [e.stream];\r\n this.dispatchEvent(event);\r\n });\r\n e.stream.getTracks().forEach((track) => {\r\n let receiver;\r\n if (window.RTCPeerConnection.prototype.getReceivers) {\r\n receiver = this.getReceivers().find(\r\n (r) => r.track && r.track.id === track.id\r\n );\r\n } else {\r\n receiver = { track };\r\n }\r\n const event = new Event(\"track\");\r\n event.track = track;\r\n event.receiver = receiver;\r\n event.transceiver = { receiver };\r\n event.streams = [e.stream];\r\n this.dispatchEvent(event);\r\n });\r\n };\r\n this.addEventListener(\"addstream\", this._ontrackpoly);\r\n }\r\n return origSetRemoteDescription.apply(this, arguments);\r\n };\r\n } else {\r\n // even if RTCRtpTransceiver is in window, it is only used and\r\n // emitted in unified-plan. Unfortunately this means we need\r\n // to unconditionally wrap the event.\r\n wrapPeerConnectionEvent(window, \"track\", (e) => {\r\n if (!e.transceiver) {\r\n Object.defineProperty(e, \"transceiver\", {\r\n value: { receiver: e.receiver },\r\n });\r\n }\r\n return e;\r\n });\r\n }\r\n}\r\n\r\nfunction shimGetSendersWithDtmf(window) {\r\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\r\n if (\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n !(\"getSenders\" in window.RTCPeerConnection.prototype) &&\r\n \"createDTMFSender\" in window.RTCPeerConnection.prototype\r\n ) {\r\n const shimSenderWithDtmf = function (pc, track) {\r\n return {\r\n track,\r\n get dtmf() {\r\n if (this._dtmf === undefined) {\r\n if (track.kind === \"audio\") {\r\n this._dtmf = pc.createDTMFSender(track);\r\n } else {\r\n this._dtmf = null;\r\n }\r\n }\r\n return this._dtmf;\r\n },\r\n _pc: pc,\r\n };\r\n };\r\n\r\n // augment addTrack when getSenders is not available.\r\n if (!window.RTCPeerConnection.prototype.getSenders) {\r\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\r\n this._senders = this._senders || [];\r\n return this._senders.slice(); // return a copy of the internal state.\r\n };\r\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\r\n track,\r\n stream\r\n ) {\r\n let sender = origAddTrack.apply(this, arguments);\r\n if (!sender) {\r\n sender = shimSenderWithDtmf(this, track);\r\n this._senders.push(sender);\r\n }\r\n return sender;\r\n };\r\n\r\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\r\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\r\n sender\r\n ) {\r\n origRemoveTrack.apply(this, arguments);\r\n const idx = this._senders.indexOf(sender);\r\n if (idx !== -1) {\r\n this._senders.splice(idx, 1);\r\n }\r\n };\r\n }\r\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\r\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\r\n this._senders = this._senders || [];\r\n origAddStream.apply(this, [stream]);\r\n stream.getTracks().forEach((track) => {\r\n this._senders.push(shimSenderWithDtmf(this, track));\r\n });\r\n };\r\n\r\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\r\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\r\n stream\r\n ) {\r\n this._senders = this._senders || [];\r\n origRemoveStream.apply(this, [stream]);\r\n\r\n stream.getTracks().forEach((track) => {\r\n const sender = this._senders.find((s) => s.track === track);\r\n if (sender) {\r\n // remove sender\r\n this._senders.splice(this._senders.indexOf(sender), 1);\r\n }\r\n });\r\n };\r\n } else if (\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n \"getSenders\" in window.RTCPeerConnection.prototype &&\r\n \"createDTMFSender\" in window.RTCPeerConnection.prototype &&\r\n window.RTCRtpSender &&\r\n !(\"dtmf\" in window.RTCRtpSender.prototype)\r\n ) {\r\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\r\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\r\n const senders = origGetSenders.apply(this, []);\r\n senders.forEach((sender) => (sender._pc = this));\r\n return senders;\r\n };\r\n\r\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\r\n get() {\r\n if (this._dtmf === undefined) {\r\n if (this.track.kind === \"audio\") {\r\n this._dtmf = this._pc.createDTMFSender(this.track);\r\n } else {\r\n this._dtmf = null;\r\n }\r\n }\r\n return this._dtmf;\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction shimGetStats(window) {\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n\r\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\r\n window.RTCPeerConnection.prototype.getStats = function getStats() {\r\n const [selector, onSucc, onErr] = arguments;\r\n\r\n // If selector is a function then we are in the old style stats so just\r\n // pass back the original getStats format to avoid breaking old users.\r\n if (arguments.length > 0 && typeof selector === \"function\") {\r\n return origGetStats.apply(this, arguments);\r\n }\r\n\r\n // When spec-style getStats is supported, return those when called with\r\n // either no arguments or the selector argument is null.\r\n if (\r\n origGetStats.length === 0 &&\r\n (arguments.length === 0 || typeof selector !== \"function\")\r\n ) {\r\n return origGetStats.apply(this, []);\r\n }\r\n\r\n const fixChromeStats_ = function (response) {\r\n const standardReport = {};\r\n const reports = response.result();\r\n reports.forEach((report) => {\r\n const standardStats = {\r\n id: report.id,\r\n timestamp: report.timestamp,\r\n type:\r\n {\r\n localcandidate: \"local-candidate\",\r\n remotecandidate: \"remote-candidate\",\r\n }[report.type] || report.type,\r\n };\r\n report.names().forEach((name) => {\r\n standardStats[name] = report.stat(name);\r\n });\r\n standardReport[standardStats.id] = standardStats;\r\n });\r\n\r\n return standardReport;\r\n };\r\n\r\n // shim getStats with maplike support\r\n const makeMapStats = function (stats) {\r\n return new Map(Object.keys(stats).map((key) => [key, stats[key]]));\r\n };\r\n\r\n if (arguments.length >= 2) {\r\n const successCallbackWrapper_ = function (response) {\r\n onSucc(makeMapStats(fixChromeStats_(response)));\r\n };\r\n\r\n return origGetStats.apply(this, [successCallbackWrapper_, selector]);\r\n }\r\n\r\n // promise-support\r\n return new Promise((resolve, reject) => {\r\n origGetStats.apply(this, [\r\n function (response) {\r\n resolve(makeMapStats(fixChromeStats_(response)));\r\n },\r\n reject,\r\n ]);\r\n }).then(onSucc, onErr);\r\n };\r\n}\r\n\r\nfunction shimSenderReceiverGetStats(window) {\r\n if (\r\n !(\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n window.RTCRtpSender &&\r\n window.RTCRtpReceiver\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // shim sender stats.\r\n if (!(\"getStats\" in window.RTCRtpSender.prototype)) {\r\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\r\n if (origGetSenders) {\r\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\r\n const senders = origGetSenders.apply(this, []);\r\n senders.forEach((sender) => (sender._pc = this));\r\n return senders;\r\n };\r\n }\r\n\r\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\r\n if (origAddTrack) {\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\r\n const sender = origAddTrack.apply(this, arguments);\r\n sender._pc = this;\r\n return sender;\r\n };\r\n }\r\n window.RTCRtpSender.prototype.getStats = function getStats() {\r\n const sender = this;\r\n return this._pc.getStats().then((result) =>\r\n /* Note: this will include stats of all senders that\r\n * send a track with the same id as sender.track as\r\n * it is not possible to identify the RTCRtpSender.\r\n */\r\n filterStats(result, sender.track, true)\r\n );\r\n };\r\n }\r\n\r\n // shim receiver stats.\r\n if (!(\"getStats\" in window.RTCRtpReceiver.prototype)) {\r\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\r\n if (origGetReceivers) {\r\n window.RTCPeerConnection.prototype.getReceivers =\r\n function getReceivers() {\r\n const receivers = origGetReceivers.apply(this, []);\r\n receivers.forEach((receiver) => (receiver._pc = this));\r\n return receivers;\r\n };\r\n }\r\n wrapPeerConnectionEvent(window, \"track\", (e) => {\r\n e.receiver._pc = e.srcElement;\r\n return e;\r\n });\r\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\r\n const receiver = this;\r\n return this._pc\r\n .getStats()\r\n .then((result) => filterStats(result, receiver.track, false));\r\n };\r\n }\r\n\r\n if (\r\n !(\r\n \"getStats\" in window.RTCRtpSender.prototype &&\r\n \"getStats\" in window.RTCRtpReceiver.prototype\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // shim RTCPeerConnection.getStats(track).\r\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\r\n window.RTCPeerConnection.prototype.getStats = function getStats() {\r\n if (\r\n arguments.length > 0 &&\r\n arguments[0] instanceof window.MediaStreamTrack\r\n ) {\r\n const track = arguments[0];\r\n let sender;\r\n let receiver;\r\n let err;\r\n this.getSenders().forEach((s) => {\r\n if (s.track === track) {\r\n if (sender) {\r\n err = true;\r\n } else {\r\n sender = s;\r\n }\r\n }\r\n });\r\n this.getReceivers().forEach((r) => {\r\n if (r.track === track) {\r\n if (receiver) {\r\n err = true;\r\n } else {\r\n receiver = r;\r\n }\r\n }\r\n return r.track === track;\r\n });\r\n if (err || (sender && receiver)) {\r\n return Promise.reject(\r\n new DOMException(\r\n \"There are more than one sender or receiver for the track.\",\r\n \"InvalidAccessError\"\r\n )\r\n );\r\n } else if (sender) {\r\n return sender.getStats();\r\n } else if (receiver) {\r\n return receiver.getStats();\r\n }\r\n return Promise.reject(\r\n new DOMException(\r\n \"There is no sender or receiver for the track.\",\r\n \"InvalidAccessError\"\r\n )\r\n );\r\n }\r\n return origGetStats.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimAddTrackRemoveTrackWithNative(window) {\r\n // shim addTrack/removeTrack with native variants in order to make\r\n // the interactions with legacy getLocalStreams behave as in other browsers.\r\n // Keeps a mapping stream.id => [stream, rtpsenders...]\r\n window.RTCPeerConnection.prototype.getLocalStreams =\r\n function getLocalStreams() {\r\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\r\n return Object.keys(this._shimmedLocalStreams).map(\r\n (streamId) => this._shimmedLocalStreams[streamId][0]\r\n );\r\n };\r\n\r\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\r\n track,\r\n stream\r\n ) {\r\n if (!stream) {\r\n return origAddTrack.apply(this, arguments);\r\n }\r\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\r\n\r\n const sender = origAddTrack.apply(this, arguments);\r\n if (!this._shimmedLocalStreams[stream.id]) {\r\n this._shimmedLocalStreams[stream.id] = [stream, sender];\r\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\r\n this._shimmedLocalStreams[stream.id].push(sender);\r\n }\r\n return sender;\r\n };\r\n\r\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\r\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\r\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\r\n\r\n stream.getTracks().forEach((track) => {\r\n const alreadyExists = this.getSenders().find((s) => s.track === track);\r\n if (alreadyExists) {\r\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\r\n }\r\n });\r\n const existingSenders = this.getSenders();\r\n origAddStream.apply(this, arguments);\r\n const newSenders = this.getSenders().filter(\r\n (newSender) => existingSenders.indexOf(newSender) === -1\r\n );\r\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\r\n };\r\n\r\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\r\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\r\n stream\r\n ) {\r\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\r\n delete this._shimmedLocalStreams[stream.id];\r\n return origRemoveStream.apply(this, arguments);\r\n };\r\n\r\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\r\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\r\n sender\r\n ) {\r\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\r\n if (sender) {\r\n Object.keys(this._shimmedLocalStreams).forEach((streamId) => {\r\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\r\n if (idx !== -1) {\r\n this._shimmedLocalStreams[streamId].splice(idx, 1);\r\n }\r\n if (this._shimmedLocalStreams[streamId].length === 1) {\r\n delete this._shimmedLocalStreams[streamId];\r\n }\r\n });\r\n }\r\n return origRemoveTrack.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimAddTrackRemoveTrack(window, browserDetails) {\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n // shim addTrack and removeTrack.\r\n if (\r\n window.RTCPeerConnection.prototype.addTrack &&\r\n browserDetails.version >= 65\r\n ) {\r\n return shimAddTrackRemoveTrackWithNative(window);\r\n }\r\n\r\n // also shim pc.getLocalStreams when addTrack is shimmed\r\n // to return the original streams.\r\n const origGetLocalStreams =\r\n window.RTCPeerConnection.prototype.getLocalStreams;\r\n window.RTCPeerConnection.prototype.getLocalStreams =\r\n function getLocalStreams() {\r\n const nativeStreams = origGetLocalStreams.apply(this);\r\n this._reverseStreams = this._reverseStreams || {};\r\n return nativeStreams.map((stream) => this._reverseStreams[stream.id]);\r\n };\r\n\r\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\r\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\r\n this._streams = this._streams || {};\r\n this._reverseStreams = this._reverseStreams || {};\r\n\r\n stream.getTracks().forEach((track) => {\r\n const alreadyExists = this.getSenders().find((s) => s.track === track);\r\n if (alreadyExists) {\r\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\r\n }\r\n });\r\n // Add identity mapping for consistency with addTrack.\r\n // Unless this is being used with a stream from addTrack.\r\n if (!this._reverseStreams[stream.id]) {\r\n const newStream = new window.MediaStream(stream.getTracks());\r\n this._streams[stream.id] = newStream;\r\n this._reverseStreams[newStream.id] = stream;\r\n stream = newStream;\r\n }\r\n origAddStream.apply(this, [stream]);\r\n };\r\n\r\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\r\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\r\n stream\r\n ) {\r\n this._streams = this._streams || {};\r\n this._reverseStreams = this._reverseStreams || {};\r\n\r\n origRemoveStream.apply(this, [this._streams[stream.id] || stream]);\r\n delete this._reverseStreams[\r\n this._streams[stream.id] ? this._streams[stream.id].id : stream.id\r\n ];\r\n delete this._streams[stream.id];\r\n };\r\n\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\r\n track,\r\n stream\r\n ) {\r\n if (this.signalingState === \"closed\") {\r\n throw new DOMException(\r\n \"The RTCPeerConnection's signalingState is 'closed'.\",\r\n \"InvalidStateError\"\r\n );\r\n }\r\n const streams = [].slice.call(arguments, 1);\r\n if (\r\n streams.length !== 1 ||\r\n !streams[0].getTracks().find((t) => t === track)\r\n ) {\r\n // this is not fully correct but all we can manage without\r\n // [[associated MediaStreams]] internal slot.\r\n throw new DOMException(\r\n \"The adapter.js addTrack polyfill only supports a single \" +\r\n \" stream which is associated with the specified track.\",\r\n \"NotSupportedError\"\r\n );\r\n }\r\n\r\n const alreadyExists = this.getSenders().find((s) => s.track === track);\r\n if (alreadyExists) {\r\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\r\n }\r\n\r\n this._streams = this._streams || {};\r\n this._reverseStreams = this._reverseStreams || {};\r\n const oldStream = this._streams[stream.id];\r\n if (oldStream) {\r\n // this is using odd Chrome behaviour, use with caution:\r\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\r\n // Note: we rely on the high-level addTrack/dtmf shim to\r\n // create the sender with a dtmf sender.\r\n oldStream.addTrack(track);\r\n\r\n // Trigger ONN async.\r\n Promise.resolve().then(() => {\r\n this.dispatchEvent(new Event(\"negotiationneeded\"));\r\n });\r\n } else {\r\n const newStream = new window.MediaStream([track]);\r\n this._streams[stream.id] = newStream;\r\n this._reverseStreams[newStream.id] = stream;\r\n this.addStream(newStream);\r\n }\r\n return this.getSenders().find((s) => s.track === track);\r\n };\r\n\r\n // replace the internal stream id with the external one and\r\n // vice versa.\r\n function replaceInternalStreamId(pc, description) {\r\n let sdp = description.sdp;\r\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\r\n const externalStream = pc._reverseStreams[internalId];\r\n const internalStream = pc._streams[externalStream.id];\r\n sdp = sdp.replace(new RegExp(internalStream.id, \"g\"), externalStream.id);\r\n });\r\n return new RTCSessionDescription({\r\n type: description.type,\r\n sdp,\r\n });\r\n }\r\n function replaceExternalStreamId(pc, description) {\r\n let sdp = description.sdp;\r\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\r\n const externalStream = pc._reverseStreams[internalId];\r\n const internalStream = pc._streams[externalStream.id];\r\n sdp = sdp.replace(new RegExp(externalStream.id, \"g\"), internalStream.id);\r\n });\r\n return new RTCSessionDescription({\r\n type: description.type,\r\n sdp,\r\n });\r\n }\r\n [\"createOffer\", \"createAnswer\"].forEach(function (method) {\r\n const nativeMethod = window.RTCPeerConnection.prototype[method];\r\n const methodObj = {\r\n [method]() {\r\n const args = arguments;\r\n const isLegacyCall =\r\n arguments.length && typeof arguments[0] === \"function\";\r\n if (isLegacyCall) {\r\n return nativeMethod.apply(this, [\r\n (description) => {\r\n const desc = replaceInternalStreamId(this, description);\r\n args[0].apply(null, [desc]);\r\n },\r\n (err) => {\r\n if (args[1]) {\r\n args[1].apply(null, err);\r\n }\r\n },\r\n arguments[2],\r\n ]);\r\n }\r\n return nativeMethod\r\n .apply(this, arguments)\r\n .then((description) => replaceInternalStreamId(this, description));\r\n },\r\n };\r\n window.RTCPeerConnection.prototype[method] = methodObj[method];\r\n });\r\n\r\n const origSetLocalDescription =\r\n window.RTCPeerConnection.prototype.setLocalDescription;\r\n window.RTCPeerConnection.prototype.setLocalDescription =\r\n function setLocalDescription() {\r\n if (!arguments.length || !arguments[0].type) {\r\n return origSetLocalDescription.apply(this, arguments);\r\n }\r\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\r\n return origSetLocalDescription.apply(this, arguments);\r\n };\r\n\r\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\r\n\r\n const origLocalDescription = Object.getOwnPropertyDescriptor(\r\n window.RTCPeerConnection.prototype,\r\n \"localDescription\"\r\n );\r\n Object.defineProperty(\r\n window.RTCPeerConnection.prototype,\r\n \"localDescription\",\r\n {\r\n get() {\r\n const description = origLocalDescription.get.apply(this);\r\n if (description.type === \"\") {\r\n return description;\r\n }\r\n return replaceInternalStreamId(this, description);\r\n },\r\n }\r\n );\r\n\r\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\r\n sender\r\n ) {\r\n if (this.signalingState === \"closed\") {\r\n throw new DOMException(\r\n \"The RTCPeerConnection's signalingState is 'closed'.\",\r\n \"InvalidStateError\"\r\n );\r\n }\r\n // We can not yet check for sender instanceof RTCRtpSender\r\n // since we shim RTPSender. So we check if sender._pc is set.\r\n if (!sender._pc) {\r\n throw new DOMException(\r\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\r\n \"does not implement interface RTCRtpSender.\",\r\n \"TypeError\"\r\n );\r\n }\r\n const isLocal = sender._pc === this;\r\n if (!isLocal) {\r\n throw new DOMException(\r\n \"Sender was not created by this connection.\",\r\n \"InvalidAccessError\"\r\n );\r\n }\r\n\r\n // Search for the native stream the senders track belongs to.\r\n this._streams = this._streams || {};\r\n let stream;\r\n Object.keys(this._streams).forEach((streamid) => {\r\n const hasTrack = this._streams[streamid]\r\n .getTracks()\r\n .find((track) => sender.track === track);\r\n if (hasTrack) {\r\n stream = this._streams[streamid];\r\n }\r\n });\r\n\r\n if (stream) {\r\n if (stream.getTracks().length === 1) {\r\n // if this is the last track of the stream, remove the stream. This\r\n // takes care of any shimmed _senders.\r\n this.removeStream(this._reverseStreams[stream.id]);\r\n } else {\r\n // relying on the same odd chrome behaviour as above.\r\n stream.removeTrack(sender.track);\r\n }\r\n this.dispatchEvent(new Event(\"negotiationneeded\"));\r\n }\r\n };\r\n}\r\n\r\nfunction shimPeerConnection$2(window, browserDetails) {\r\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\r\n // very basic support for old versions.\r\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\r\n }\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n\r\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\r\n if (browserDetails.version < 53) {\r\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\r\n function (method) {\r\n const nativeMethod = window.RTCPeerConnection.prototype[method];\r\n const methodObj = {\r\n [method]() {\r\n arguments[0] = new (\r\n method === \"addIceCandidate\"\r\n ? window.RTCIceCandidate\r\n : window.RTCSessionDescription\r\n )(arguments[0]);\r\n return nativeMethod.apply(this, arguments);\r\n },\r\n };\r\n window.RTCPeerConnection.prototype[method] = methodObj[method];\r\n }\r\n );\r\n }\r\n}\r\n\r\n// Attempt to fix ONN in plan-b mode.\r\nfunction fixNegotiationNeeded(window, browserDetails) {\r\n wrapPeerConnectionEvent(window, \"negotiationneeded\", (e) => {\r\n const pc = e.target;\r\n if (\r\n browserDetails.version < 72 ||\r\n (pc.getConfiguration && pc.getConfiguration().sdpSemantics === \"plan-b\")\r\n ) {\r\n if (pc.signalingState !== \"stable\") {\r\n return;\r\n }\r\n }\r\n return e;\r\n });\r\n}\r\n\r\nvar chromeShim = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n shimMediaStream: shimMediaStream,\r\n shimOnTrack: shimOnTrack$1,\r\n shimGetSendersWithDtmf: shimGetSendersWithDtmf,\r\n shimGetStats: shimGetStats,\r\n shimSenderReceiverGetStats: shimSenderReceiverGetStats,\r\n shimAddTrackRemoveTrackWithNative: shimAddTrackRemoveTrackWithNative,\r\n shimAddTrackRemoveTrack: shimAddTrackRemoveTrack,\r\n shimPeerConnection: shimPeerConnection$2,\r\n fixNegotiationNeeded: fixNegotiationNeeded,\r\n shimGetUserMedia: shimGetUserMedia$3,\r\n shimGetDisplayMedia: shimGetDisplayMedia$2,\r\n});\r\n\r\n/*\r\n * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n// Edge does not like\r\n// 1) stun: filtered after 14393 unless ?transport=udp is present\r\n// 2) turn: that does not have all of turn:host:port?transport=udp\r\n// 3) turn: with ipv6 addresses\r\n// 4) turn: occurring muliple times\r\nfunction filterIceServers$1(iceServers, edgeVersion) {\r\n let hasTurn = false;\r\n iceServers = JSON.parse(JSON.stringify(iceServers));\r\n return iceServers.filter((server) => {\r\n if (server && (server.urls || server.url)) {\r\n let urls = server.urls || server.url;\r\n if (server.url && !server.urls) {\r\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\r\n }\r\n const isString = typeof urls === \"string\";\r\n if (isString) {\r\n urls = [urls];\r\n }\r\n urls = urls.filter((url) => {\r\n // filter STUN unconditionally.\r\n if (url.indexOf(\"stun:\") === 0) {\r\n return false;\r\n }\r\n\r\n const validTurn =\r\n url.startsWith(\"turn\") &&\r\n !url.startsWith(\"turn:[\") &&\r\n url.includes(\"transport=udp\");\r\n if (validTurn && !hasTurn) {\r\n hasTurn = true;\r\n return true;\r\n }\r\n return validTurn && !hasTurn;\r\n });\r\n\r\n delete server.url;\r\n server.urls = isString ? urls[0] : urls;\r\n return !!urls.length;\r\n }\r\n });\r\n}\r\n\r\nfunction createCommonjsModule(fn) {\r\n var module = { exports: {} };\r\n return fn(module, module.exports), module.exports;\r\n}\r\n\r\n/* eslint-env node */\r\n\r\nvar sdp = createCommonjsModule(function (module) {\r\n // SDP helpers.\r\n var SDPUtils = {};\r\n\r\n // Generate an alphanumeric identifier for cname or mids.\r\n // TODO: use UUIDs instead? https://gist.github.com/jed/982883\r\n SDPUtils.generateIdentifier = function () {\r\n return Math.random().toString(36).substr(2, 10);\r\n };\r\n\r\n // The RTCP CNAME used by all peerconnections from the same JS.\r\n SDPUtils.localCName = SDPUtils.generateIdentifier();\r\n\r\n // Splits SDP into lines, dealing with both CRLF and LF.\r\n SDPUtils.splitLines = function (blob) {\r\n return blob\r\n .trim()\r\n .split(\"\\n\")\r\n .map(function (line) {\r\n return line.trim();\r\n });\r\n };\r\n // Splits SDP into sessionpart and mediasections. Ensures CRLF.\r\n SDPUtils.splitSections = function (blob) {\r\n var parts = blob.split(\"\\nm=\");\r\n return parts.map(function (part, index) {\r\n return (index > 0 ? \"m=\" + part : part).trim() + \"\\r\\n\";\r\n });\r\n };\r\n\r\n // returns the session description.\r\n SDPUtils.getDescription = function (blob) {\r\n var sections = SDPUtils.splitSections(blob);\r\n return sections && sections[0];\r\n };\r\n\r\n // returns the individual media sections.\r\n SDPUtils.getMediaSections = function (blob) {\r\n var sections = SDPUtils.splitSections(blob);\r\n sections.shift();\r\n return sections;\r\n };\r\n\r\n // Returns lines that start with a certain prefix.\r\n SDPUtils.matchPrefix = function (blob, prefix) {\r\n return SDPUtils.splitLines(blob).filter(function (line) {\r\n return line.indexOf(prefix) === 0;\r\n });\r\n };\r\n\r\n // Parses an ICE candidate line. Sample input:\r\n // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\r\n // rport 55996\"\r\n SDPUtils.parseCandidate = function (line) {\r\n var parts;\r\n // Parse both variants.\r\n if (line.indexOf(\"a=candidate:\") === 0) {\r\n parts = line.substring(12).split(\" \");\r\n } else {\r\n parts = line.substring(10).split(\" \");\r\n }\r\n\r\n var candidate = {\r\n foundation: parts[0],\r\n component: parseInt(parts[1], 10),\r\n protocol: parts[2].toLowerCase(),\r\n priority: parseInt(parts[3], 10),\r\n ip: parts[4],\r\n address: parts[4], // address is an alias for ip.\r\n port: parseInt(parts[5], 10),\r\n // skip parts[6] == 'typ'\r\n type: parts[7],\r\n };\r\n\r\n for (var i = 8; i < parts.length; i += 2) {\r\n switch (parts[i]) {\r\n case \"raddr\":\r\n candidate.relatedAddress = parts[i + 1];\r\n break;\r\n case \"rport\":\r\n candidate.relatedPort = parseInt(parts[i + 1], 10);\r\n break;\r\n case \"tcptype\":\r\n candidate.tcpType = parts[i + 1];\r\n break;\r\n case \"ufrag\":\r\n candidate.ufrag = parts[i + 1]; // for backward compability.\r\n candidate.usernameFragment = parts[i + 1];\r\n break;\r\n default:\r\n // extension handling, in particular ufrag\r\n candidate[parts[i]] = parts[i + 1];\r\n break;\r\n }\r\n }\r\n return candidate;\r\n };\r\n\r\n // Translates a candidate object into SDP candidate attribute.\r\n SDPUtils.writeCandidate = function (candidate) {\r\n var sdp = [];\r\n sdp.push(candidate.foundation);\r\n sdp.push(candidate.component);\r\n sdp.push(candidate.protocol.toUpperCase());\r\n sdp.push(candidate.priority);\r\n sdp.push(candidate.address || candidate.ip);\r\n sdp.push(candidate.port);\r\n\r\n var type = candidate.type;\r\n sdp.push(\"typ\");\r\n sdp.push(type);\r\n if (type !== \"host\" && candidate.relatedAddress && candidate.relatedPort) {\r\n sdp.push(\"raddr\");\r\n sdp.push(candidate.relatedAddress);\r\n sdp.push(\"rport\");\r\n sdp.push(candidate.relatedPort);\r\n }\r\n if (candidate.tcpType && candidate.protocol.toLowerCase() === \"tcp\") {\r\n sdp.push(\"tcptype\");\r\n sdp.push(candidate.tcpType);\r\n }\r\n if (candidate.usernameFragment || candidate.ufrag) {\r\n sdp.push(\"ufrag\");\r\n sdp.push(candidate.usernameFragment || candidate.ufrag);\r\n }\r\n return \"candidate:\" + sdp.join(\" \");\r\n };\r\n\r\n // Parses an ice-options line, returns an array of option tags.\r\n // a=ice-options:foo bar\r\n SDPUtils.parseIceOptions = function (line) {\r\n return line.substr(14).split(\" \");\r\n };\r\n\r\n // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:\r\n // a=rtpmap:111 opus/48000/2\r\n SDPUtils.parseRtpMap = function (line) {\r\n var parts = line.substr(9).split(\" \");\r\n var parsed = {\r\n payloadType: parseInt(parts.shift(), 10), // was: id\r\n };\r\n\r\n parts = parts[0].split(\"/\");\r\n\r\n parsed.name = parts[0];\r\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\r\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\r\n // legacy alias, got renamed back to channels in ORTC.\r\n parsed.numChannels = parsed.channels;\r\n return parsed;\r\n };\r\n\r\n // Generate an a=rtpmap line from RTCRtpCodecCapability or\r\n // RTCRtpCodecParameters.\r\n SDPUtils.writeRtpMap = function (codec) {\r\n var pt = codec.payloadType;\r\n if (codec.preferredPayloadType !== undefined) {\r\n pt = codec.preferredPayloadType;\r\n }\r\n var channels = codec.channels || codec.numChannels || 1;\r\n return (\r\n \"a=rtpmap:\" +\r\n pt +\r\n \" \" +\r\n codec.name +\r\n \"/\" +\r\n codec.clockRate +\r\n (channels !== 1 ? \"/\" + channels : \"\") +\r\n \"\\r\\n\"\r\n );\r\n };\r\n\r\n // Parses an a=extmap line (headerextension from RFC 5285). Sample input:\r\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\n // a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\r\n SDPUtils.parseExtmap = function (line) {\r\n var parts = line.substr(9).split(\" \");\r\n return {\r\n id: parseInt(parts[0], 10),\r\n direction:\r\n parts[0].indexOf(\"/\") > 0 ? parts[0].split(\"/\")[1] : \"sendrecv\",\r\n uri: parts[1],\r\n };\r\n };\r\n\r\n // Generates a=extmap line from RTCRtpHeaderExtensionParameters or\r\n // RTCRtpHeaderExtension.\r\n SDPUtils.writeExtmap = function (headerExtension) {\r\n return (\r\n \"a=extmap:\" +\r\n (headerExtension.id || headerExtension.preferredId) +\r\n (headerExtension.direction && headerExtension.direction !== \"sendrecv\"\r\n ? \"/\" + headerExtension.direction\r\n : \"\") +\r\n \" \" +\r\n headerExtension.uri +\r\n \"\\r\\n\"\r\n );\r\n };\r\n\r\n // Parses an ftmp line, returns dictionary. Sample input:\r\n // a=fmtp:96 vbr=on;cng=on\r\n // Also deals with vbr=on; cng=on\r\n SDPUtils.parseFmtp = function (line) {\r\n var parsed = {};\r\n var kv;\r\n var parts = line.substr(line.indexOf(\" \") + 1).split(\";\");\r\n for (var j = 0; j < parts.length; j++) {\r\n kv = parts[j].trim().split(\"=\");\r\n parsed[kv[0].trim()] = kv[1];\r\n }\r\n return parsed;\r\n };\r\n\r\n // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\r\n SDPUtils.writeFmtp = function (codec) {\r\n var line = \"\";\r\n var pt = codec.payloadType;\r\n if (codec.preferredPayloadType !== undefined) {\r\n pt = codec.preferredPayloadType;\r\n }\r\n if (codec.parameters && Object.keys(codec.parameters).length) {\r\n var params = [];\r\n Object.keys(codec.parameters).forEach(function (param) {\r\n if (codec.parameters[param]) {\r\n params.push(param + \"=\" + codec.parameters[param]);\r\n } else {\r\n params.push(param);\r\n }\r\n });\r\n line += \"a=fmtp:\" + pt + \" \" + params.join(\";\") + \"\\r\\n\";\r\n }\r\n return line;\r\n };\r\n\r\n // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\r\n // a=rtcp-fb:98 nack rpsi\r\n SDPUtils.parseRtcpFb = function (line) {\r\n var parts = line.substr(line.indexOf(\" \") + 1).split(\" \");\r\n return {\r\n type: parts.shift(),\r\n parameter: parts.join(\" \"),\r\n };\r\n };\r\n // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\r\n SDPUtils.writeRtcpFb = function (codec) {\r\n var lines = \"\";\r\n var pt = codec.payloadType;\r\n if (codec.preferredPayloadType !== undefined) {\r\n pt = codec.preferredPayloadType;\r\n }\r\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\r\n // FIXME: special handling for trr-int?\r\n codec.rtcpFeedback.forEach(function (fb) {\r\n lines +=\r\n \"a=rtcp-fb:\" +\r\n pt +\r\n \" \" +\r\n fb.type +\r\n (fb.parameter && fb.parameter.length ? \" \" + fb.parameter : \"\") +\r\n \"\\r\\n\";\r\n });\r\n }\r\n return lines;\r\n };\r\n\r\n // Parses an RFC 5576 ssrc media attribute. Sample input:\r\n // a=ssrc:3735928559 cname:something\r\n SDPUtils.parseSsrcMedia = function (line) {\r\n var sp = line.indexOf(\" \");\r\n var parts = {\r\n ssrc: parseInt(line.substr(7, sp - 7), 10),\r\n };\r\n var colon = line.indexOf(\":\", sp);\r\n if (colon > -1) {\r\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\r\n parts.value = line.substr(colon + 1);\r\n } else {\r\n parts.attribute = line.substr(sp + 1);\r\n }\r\n return parts;\r\n };\r\n\r\n SDPUtils.parseSsrcGroup = function (line) {\r\n var parts = line.substr(13).split(\" \");\r\n return {\r\n semantics: parts.shift(),\r\n ssrcs: parts.map(function (ssrc) {\r\n return parseInt(ssrc, 10);\r\n }),\r\n };\r\n };\r\n\r\n // Extracts the MID (RFC 5888) from a media section.\r\n // returns the MID or undefined if no mid line was found.\r\n SDPUtils.getMid = function (mediaSection) {\r\n var mid = SDPUtils.matchPrefix(mediaSection, \"a=mid:\")[0];\r\n if (mid) {\r\n return mid.substr(6);\r\n }\r\n };\r\n\r\n SDPUtils.parseFingerprint = function (line) {\r\n var parts = line.substr(14).split(\" \");\r\n return {\r\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\r\n value: parts[1],\r\n };\r\n };\r\n\r\n // Extracts DTLS parameters from SDP media section or sessionpart.\r\n // FIXME: for consistency with other functions this should only\r\n // get the fingerprint line as input. See also getIceParameters.\r\n SDPUtils.getDtlsParameters = function (mediaSection, sessionpart) {\r\n var lines = SDPUtils.matchPrefix(\r\n mediaSection + sessionpart,\r\n \"a=fingerprint:\"\r\n );\r\n // Note: a=setup line is ignored since we use the 'auto' role.\r\n // Note2: 'algorithm' is not case sensitive except in Edge.\r\n return {\r\n role: \"auto\",\r\n fingerprints: lines.map(SDPUtils.parseFingerprint),\r\n };\r\n };\r\n\r\n // Serializes DTLS parameters to SDP.\r\n SDPUtils.writeDtlsParameters = function (params, setupType) {\r\n var sdp = \"a=setup:\" + setupType + \"\\r\\n\";\r\n params.fingerprints.forEach(function (fp) {\r\n sdp += \"a=fingerprint:\" + fp.algorithm + \" \" + fp.value + \"\\r\\n\";\r\n });\r\n return sdp;\r\n };\r\n\r\n // Parses a=crypto lines into\r\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\r\n SDPUtils.parseCryptoLine = function (line) {\r\n var parts = line.substr(9).split(\" \");\r\n return {\r\n tag: parseInt(parts[0], 10),\r\n cryptoSuite: parts[1],\r\n keyParams: parts[2],\r\n sessionParams: parts.slice(3),\r\n };\r\n };\r\n\r\n SDPUtils.writeCryptoLine = function (parameters) {\r\n return (\r\n \"a=crypto:\" +\r\n parameters.tag +\r\n \" \" +\r\n parameters.cryptoSuite +\r\n \" \" +\r\n (typeof parameters.keyParams === \"object\"\r\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\r\n : parameters.keyParams) +\r\n (parameters.sessionParams\r\n ? \" \" + parameters.sessionParams.join(\" \")\r\n : \"\") +\r\n \"\\r\\n\"\r\n );\r\n };\r\n\r\n // Parses the crypto key parameters into\r\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\r\n SDPUtils.parseCryptoKeyParams = function (keyParams) {\r\n if (keyParams.indexOf(\"inline:\") !== 0) {\r\n return null;\r\n }\r\n var parts = keyParams.substr(7).split(\"|\");\r\n return {\r\n keyMethod: \"inline\",\r\n keySalt: parts[0],\r\n lifeTime: parts[1],\r\n mkiValue: parts[2] ? parts[2].split(\":\")[0] : undefined,\r\n mkiLength: parts[2] ? parts[2].split(\":\")[1] : undefined,\r\n };\r\n };\r\n\r\n SDPUtils.writeCryptoKeyParams = function (keyParams) {\r\n return (\r\n keyParams.keyMethod +\r\n \":\" +\r\n keyParams.keySalt +\r\n (keyParams.lifeTime ? \"|\" + keyParams.lifeTime : \"\") +\r\n (keyParams.mkiValue && keyParams.mkiLength\r\n ? \"|\" + keyParams.mkiValue + \":\" + keyParams.mkiLength\r\n : \"\")\r\n );\r\n };\r\n\r\n // Extracts all SDES paramters.\r\n SDPUtils.getCryptoParameters = function (mediaSection, sessionpart) {\r\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=crypto:\");\r\n return lines.map(SDPUtils.parseCryptoLine);\r\n };\r\n\r\n // Parses ICE information from SDP media section or sessionpart.\r\n // FIXME: for consistency with other functions this should only\r\n // get the ice-ufrag and ice-pwd lines as input.\r\n SDPUtils.getIceParameters = function (mediaSection, sessionpart) {\r\n var ufrag = SDPUtils.matchPrefix(\r\n mediaSection + sessionpart,\r\n \"a=ice-ufrag:\"\r\n )[0];\r\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=ice-pwd:\")[0];\r\n if (!(ufrag && pwd)) {\r\n return null;\r\n }\r\n return {\r\n usernameFragment: ufrag.substr(12),\r\n password: pwd.substr(10),\r\n };\r\n };\r\n\r\n // Serializes ICE parameters to SDP.\r\n SDPUtils.writeIceParameters = function (params) {\r\n return (\r\n \"a=ice-ufrag:\" +\r\n params.usernameFragment +\r\n \"\\r\\n\" +\r\n \"a=ice-pwd:\" +\r\n params.password +\r\n \"\\r\\n\"\r\n );\r\n };\r\n\r\n // Parses the SDP media section and returns RTCRtpParameters.\r\n SDPUtils.parseRtpParameters = function (mediaSection) {\r\n var description = {\r\n codecs: [],\r\n headerExtensions: [],\r\n fecMechanisms: [],\r\n rtcp: [],\r\n };\r\n var lines = SDPUtils.splitLines(mediaSection);\r\n var mline = lines[0].split(\" \");\r\n for (var i = 3; i < mline.length; i++) {\r\n // find all codecs from mline[3..]\r\n var pt = mline[i];\r\n var rtpmapline = SDPUtils.matchPrefix(\r\n mediaSection,\r\n \"a=rtpmap:\" + pt + \" \"\r\n )[0];\r\n if (rtpmapline) {\r\n var codec = SDPUtils.parseRtpMap(rtpmapline);\r\n var fmtps = SDPUtils.matchPrefix(mediaSection, \"a=fmtp:\" + pt + \" \");\r\n // Only the first a=fmtp:<pt> is considered.\r\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\r\n codec.rtcpFeedback = SDPUtils.matchPrefix(\r\n mediaSection,\r\n \"a=rtcp-fb:\" + pt + \" \"\r\n ).map(SDPUtils.parseRtcpFb);\r\n description.codecs.push(codec);\r\n // parse FEC mechanisms from rtpmap lines.\r\n switch (codec.name.toUpperCase()) {\r\n case \"RED\":\r\n case \"ULPFEC\":\r\n description.fecMechanisms.push(codec.name.toUpperCase());\r\n break;\r\n }\r\n }\r\n }\r\n SDPUtils.matchPrefix(mediaSection, \"a=extmap:\").forEach(function (line) {\r\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\r\n });\r\n // FIXME: parse rtcp.\r\n return description;\r\n };\r\n\r\n // Generates parts of the SDP media section describing the capabilities /\r\n // parameters.\r\n SDPUtils.writeRtpDescription = function (kind, caps) {\r\n var sdp = \"\";\r\n\r\n // Build the mline.\r\n sdp += \"m=\" + kind + \" \";\r\n sdp += caps.codecs.length > 0 ? \"9\" : \"0\"; // reject if no codecs.\r\n sdp += \" UDP/TLS/RTP/SAVPF \";\r\n sdp +=\r\n caps.codecs\r\n .map(function (codec) {\r\n if (codec.preferredPayloadType !== undefined) {\r\n return codec.preferredPayloadType;\r\n }\r\n return codec.payloadType;\r\n })\r\n .join(\" \") + \"\\r\\n\";\r\n\r\n sdp += \"c=IN IP4 0.0.0.0\\r\\n\";\r\n sdp += \"a=rtcp:9 IN IP4 0.0.0.0\\r\\n\";\r\n\r\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\r\n caps.codecs.forEach(function (codec) {\r\n sdp += SDPUtils.writeRtpMap(codec);\r\n sdp += SDPUtils.writeFmtp(codec);\r\n sdp += SDPUtils.writeRtcpFb(codec);\r\n });\r\n var maxptime = 0;\r\n caps.codecs.forEach(function (codec) {\r\n if (codec.maxptime > maxptime) {\r\n maxptime = codec.maxptime;\r\n }\r\n });\r\n if (maxptime > 0) {\r\n sdp += \"a=maxptime:\" + maxptime + \"\\r\\n\";\r\n }\r\n sdp += \"a=rtcp-mux\\r\\n\";\r\n\r\n if (caps.headerExtensions) {\r\n caps.headerExtensions.forEach(function (extension) {\r\n sdp += SDPUtils.writeExtmap(extension);\r\n });\r\n }\r\n // FIXME: write fecMechanisms.\r\n return sdp;\r\n };\r\n\r\n // Parses the SDP media section and returns an array of\r\n // RTCRtpEncodingParameters.\r\n SDPUtils.parseRtpEncodingParameters = function (mediaSection) {\r\n var encodingParameters = [];\r\n var description = SDPUtils.parseRtpParameters(mediaSection);\r\n var hasRed = description.fecMechanisms.indexOf(\"RED\") !== -1;\r\n var hasUlpfec = description.fecMechanisms.indexOf(\"ULPFEC\") !== -1;\r\n\r\n // filter a=ssrc:... cname:, ignore PlanB-msid\r\n var ssrcs = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\r\n .map(function (line) {\r\n return SDPUtils.parseSsrcMedia(line);\r\n })\r\n .filter(function (parts) {\r\n return parts.attribute === \"cname\";\r\n });\r\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\r\n var secondarySsrc;\r\n\r\n var flows = SDPUtils.matchPrefix(mediaSection, \"a=ssrc-group:FID\").map(\r\n function (line) {\r\n var parts = line.substr(17).split(\" \");\r\n return parts.map(function (part) {\r\n return parseInt(part, 10);\r\n });\r\n }\r\n );\r\n if (\r\n flows.length > 0 &&\r\n flows[0].length > 1 &&\r\n flows[0][0] === primarySsrc\r\n ) {\r\n secondarySsrc = flows[0][1];\r\n }\r\n\r\n description.codecs.forEach(function (codec) {\r\n if (codec.name.toUpperCase() === \"RTX\" && codec.parameters.apt) {\r\n var encParam = {\r\n ssrc: primarySsrc,\r\n codecPayloadType: parseInt(codec.parameters.apt, 10),\r\n };\r\n if (primarySsrc && secondarySsrc) {\r\n encParam.rtx = { ssrc: secondarySsrc };\r\n }\r\n encodingParameters.push(encParam);\r\n if (hasRed) {\r\n encParam = JSON.parse(JSON.stringify(encParam));\r\n encParam.fec = {\r\n ssrc: primarySsrc,\r\n mechanism: hasUlpfec ? \"red+ulpfec\" : \"red\",\r\n };\r\n encodingParameters.push(encParam);\r\n }\r\n }\r\n });\r\n if (encodingParameters.length === 0 && primarySsrc) {\r\n encodingParameters.push({\r\n ssrc: primarySsrc,\r\n });\r\n }\r\n\r\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\r\n var bandwidth = SDPUtils.matchPrefix(mediaSection, \"b=\");\r\n if (bandwidth.length) {\r\n if (bandwidth[0].indexOf(\"b=TIAS:\") === 0) {\r\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\r\n } else if (bandwidth[0].indexOf(\"b=AS:\") === 0) {\r\n // use formula from JSEP to convert b=AS to TIAS value.\r\n bandwidth =\r\n parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95 - 50 * 40 * 8;\r\n } else {\r\n bandwidth = undefined;\r\n }\r\n encodingParameters.forEach(function (params) {\r\n params.maxBitrate = bandwidth;\r\n });\r\n }\r\n return encodingParameters;\r\n };\r\n\r\n // parses http://draft.ortc.org/#rtcrtcpparameters*\r\n SDPUtils.parseRtcpParameters = function (mediaSection) {\r\n var rtcpParameters = {};\r\n\r\n // Gets the first SSRC. Note tha with RTX there might be multiple\r\n // SSRCs.\r\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\r\n .map(function (line) {\r\n return SDPUtils.parseSsrcMedia(line);\r\n })\r\n .filter(function (obj) {\r\n return obj.attribute === \"cname\";\r\n })[0];\r\n if (remoteSsrc) {\r\n rtcpParameters.cname = remoteSsrc.value;\r\n rtcpParameters.ssrc = remoteSsrc.ssrc;\r\n }\r\n\r\n // Edge uses the compound attribute instead of reducedSize\r\n // compound is !reducedSize\r\n var rsize = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-rsize\");\r\n rtcpParameters.reducedSize = rsize.length > 0;\r\n rtcpParameters.compound = rsize.length === 0;\r\n\r\n // parses the rtcp-mux attrіbute.\r\n // Note that Edge does not support unmuxed RTCP.\r\n var mux = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-mux\");\r\n rtcpParameters.mux = mux.length > 0;\r\n\r\n return rtcpParameters;\r\n };\r\n\r\n // parses either a=msid: or a=ssrc:... msid lines and returns\r\n // the id of the MediaStream and MediaStreamTrack.\r\n SDPUtils.parseMsid = function (mediaSection) {\r\n var parts;\r\n var spec = SDPUtils.matchPrefix(mediaSection, \"a=msid:\");\r\n if (spec.length === 1) {\r\n parts = spec[0].substr(7).split(\" \");\r\n return { stream: parts[0], track: parts[1] };\r\n }\r\n var planB = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\r\n .map(function (line) {\r\n return SDPUtils.parseSsrcMedia(line);\r\n })\r\n .filter(function (msidParts) {\r\n return msidParts.attribute === \"msid\";\r\n });\r\n if (planB.length > 0) {\r\n parts = planB[0].value.split(\" \");\r\n return { stream: parts[0], track: parts[1] };\r\n }\r\n };\r\n\r\n // SCTP\r\n // parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\r\n // to draft-ietf-mmusic-sctp-sdp-05\r\n SDPUtils.parseSctpDescription = function (mediaSection) {\r\n var mline = SDPUtils.parseMLine(mediaSection);\r\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, \"a=max-message-size:\");\r\n var maxMessageSize;\r\n if (maxSizeLine.length > 0) {\r\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\r\n }\r\n if (isNaN(maxMessageSize)) {\r\n maxMessageSize = 65536;\r\n }\r\n var sctpPort = SDPUtils.matchPrefix(mediaSection, \"a=sctp-port:\");\r\n if (sctpPort.length > 0) {\r\n return {\r\n port: parseInt(sctpPort[0].substr(12), 10),\r\n protocol: mline.fmt,\r\n maxMessageSize: maxMessageSize,\r\n };\r\n }\r\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\");\r\n if (sctpMapLines.length > 0) {\r\n var parts = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\")[0]\r\n .substr(10)\r\n .split(\" \");\r\n return {\r\n port: parseInt(parts[0], 10),\r\n protocol: parts[1],\r\n maxMessageSize: maxMessageSize,\r\n };\r\n }\r\n };\r\n\r\n // SCTP\r\n // outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\r\n // support by now receiving in this format, unless we originally parsed\r\n // as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\r\n // protocol of DTLS/SCTP -- without UDP/ or TCP/)\r\n SDPUtils.writeSctpDescription = function (media, sctp) {\r\n var output = [];\r\n if (media.protocol !== \"DTLS/SCTP\") {\r\n output = [\r\n \"m=\" +\r\n media.kind +\r\n \" 9 \" +\r\n media.protocol +\r\n \" \" +\r\n sctp.protocol +\r\n \"\\r\\n\",\r\n \"c=IN IP4 0.0.0.0\\r\\n\",\r\n \"a=sctp-port:\" + sctp.port + \"\\r\\n\",\r\n ];\r\n } else {\r\n output = [\r\n \"m=\" + media.kind + \" 9 \" + media.protocol + \" \" + sctp.port + \"\\r\\n\",\r\n \"c=IN IP4 0.0.0.0\\r\\n\",\r\n \"a=sctpmap:\" + sctp.port + \" \" + sctp.protocol + \" 65535\\r\\n\",\r\n ];\r\n }\r\n if (sctp.maxMessageSize !== undefined) {\r\n output.push(\"a=max-message-size:\" + sctp.maxMessageSize + \"\\r\\n\");\r\n }\r\n return output.join(\"\");\r\n };\r\n\r\n // Generate a session ID for SDP.\r\n // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\r\n // recommends using a cryptographically random +ve 64-bit value\r\n // but right now this should be acceptable and within the right range\r\n SDPUtils.generateSessionId = function () {\r\n return Math.random().toString().substr(2, 21);\r\n };\r\n\r\n // Write boilder plate for start of SDP\r\n // sessId argument is optional - if not supplied it will\r\n // be generated randomly\r\n // sessVersion is optional and defaults to 2\r\n // sessUser is optional and defaults to 'thisisadapterortc'\r\n SDPUtils.writeSessionBoilerplate = function (sessId, sessVer, sessUser) {\r\n var sessionId;\r\n var version = sessVer !== undefined ? sessVer : 2;\r\n if (sessId) {\r\n sessionId = sessId;\r\n } else {\r\n sessionId = SDPUtils.generateSessionId();\r\n }\r\n var user = sessUser || \"thisisadapterortc\";\r\n // FIXME: sess-id should be an NTP timestamp.\r\n return (\r\n \"v=0\\r\\n\" +\r\n \"o=\" +\r\n user +\r\n \" \" +\r\n sessionId +\r\n \" \" +\r\n version +\r\n \" IN IP4 127.0.0.1\\r\\n\" +\r\n \"s=-\\r\\n\" +\r\n \"t=0 0\\r\\n\"\r\n );\r\n };\r\n\r\n SDPUtils.writeMediaSection = function (transceiver, caps, type, stream) {\r\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\r\n\r\n // Map ICE parameters (ufrag, pwd) to SDP.\r\n sdp += SDPUtils.writeIceParameters(\r\n transceiver.iceGatherer.getLocalParameters()\r\n );\r\n\r\n // Map DTLS parameters to SDP.\r\n sdp += SDPUtils.writeDtlsParameters(\r\n transceiver.dtlsTransport.getLocalParameters(),\r\n type === \"offer\" ? \"actpass\" : \"active\"\r\n );\r\n\r\n sdp += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\r\n\r\n if (transceiver.direction) {\r\n sdp += \"a=\" + transceiver.direction + \"\\r\\n\";\r\n } else if (transceiver.rtpSender && transceiver.rtpReceiver) {\r\n sdp += \"a=sendrecv\\r\\n\";\r\n } else if (transceiver.rtpSender) {\r\n sdp += \"a=sendonly\\r\\n\";\r\n } else if (transceiver.rtpReceiver) {\r\n sdp += \"a=recvonly\\r\\n\";\r\n } else {\r\n sdp += \"a=inactive\\r\\n\";\r\n }\r\n\r\n if (transceiver.rtpSender) {\r\n // spec.\r\n var msid =\r\n \"msid:\" + stream.id + \" \" + transceiver.rtpSender.track.id + \"\\r\\n\";\r\n sdp += \"a=\" + msid;\r\n\r\n // for Chrome.\r\n sdp +=\r\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\r\n if (transceiver.sendEncodingParameters[0].rtx) {\r\n sdp +=\r\n \"a=ssrc:\" +\r\n transceiver.sendEncodingParameters[0].rtx.ssrc +\r\n \" \" +\r\n msid;\r\n sdp +=\r\n \"a=ssrc-group:FID \" +\r\n transceiver.sendEncodingParameters[0].ssrc +\r\n \" \" +\r\n transceiver.sendEncodingParameters[0].rtx.ssrc +\r\n \"\\r\\n\";\r\n }\r\n }\r\n // FIXME: this should be written by writeRtpDescription.\r\n sdp +=\r\n \"a=ssrc:\" +\r\n transceiver.sendEncodingParameters[0].ssrc +\r\n \" cname:\" +\r\n SDPUtils.localCName +\r\n \"\\r\\n\";\r\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\r\n sdp +=\r\n \"a=ssrc:\" +\r\n transceiver.sendEncodingParameters[0].rtx.ssrc +\r\n \" cname:\" +\r\n SDPUtils.localCName +\r\n \"\\r\\n\";\r\n }\r\n return sdp;\r\n };\r\n\r\n // Gets the direction from the mediaSection or the sessionpart.\r\n SDPUtils.getDirection = function (mediaSection, sessionpart) {\r\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\r\n var lines = SDPUtils.splitLines(mediaSection);\r\n for (var i = 0; i < lines.length; i++) {\r\n switch (lines[i]) {\r\n case \"a=sendrecv\":\r\n case \"a=sendonly\":\r\n case \"a=recvonly\":\r\n case \"a=inactive\":\r\n return lines[i].substr(2);\r\n // FIXME: What should happen here?\r\n }\r\n }\r\n if (sessionpart) {\r\n return SDPUtils.getDirection(sessionpart);\r\n }\r\n return \"sendrecv\";\r\n };\r\n\r\n SDPUtils.getKind = function (mediaSection) {\r\n var lines = SDPUtils.splitLines(mediaSection);\r\n var mline = lines[0].split(\" \");\r\n return mline[0].substr(2);\r\n };\r\n\r\n SDPUtils.isRejected = function (mediaSection) {\r\n return mediaSection.split(\" \", 2)[1] === \"0\";\r\n };\r\n\r\n SDPUtils.parseMLine = function (mediaSection) {\r\n var lines = SDPUtils.splitLines(mediaSection);\r\n var parts = lines[0].substr(2).split(\" \");\r\n return {\r\n kind: parts[0],\r\n port: parseInt(parts[1], 10),\r\n protocol: parts[2],\r\n fmt: parts.slice(3).join(\" \"),\r\n };\r\n };\r\n\r\n SDPUtils.parseOLine = function (mediaSection) {\r\n var line = SDPUtils.matchPrefix(mediaSection, \"o=\")[0];\r\n var parts = line.substr(2).split(\" \");\r\n return {\r\n username: parts[0],\r\n sessionId: parts[1],\r\n sessionVersion: parseInt(parts[2], 10),\r\n netType: parts[3],\r\n addressType: parts[4],\r\n address: parts[5],\r\n };\r\n };\r\n\r\n // a very naive interpretation of a valid SDP.\r\n SDPUtils.isValidSDP = function (blob) {\r\n if (typeof blob !== \"string\" || blob.length === 0) {\r\n return false;\r\n }\r\n var lines = SDPUtils.splitLines(blob);\r\n for (var i = 0; i < lines.length; i++) {\r\n if (lines[i].length < 2 || lines[i].charAt(1) !== \"=\") {\r\n return false;\r\n }\r\n // TODO: check the modifier a bit more.\r\n }\r\n return true;\r\n };\r\n\r\n // Expose public methods.\r\n {\r\n module.exports = SDPUtils;\r\n }\r\n});\r\n\r\n/*\r\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction fixStatsType(stat) {\r\n return (\r\n {\r\n inboundrtp: \"inbound-rtp\",\r\n outboundrtp: \"outbound-rtp\",\r\n candidatepair: \"candidate-pair\",\r\n localcandidate: \"local-candidate\",\r\n remotecandidate: \"remote-candidate\",\r\n }[stat.type] || stat.type\r\n );\r\n}\r\n\r\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\r\n var sdp$1 = sdp.writeRtpDescription(transceiver.kind, caps);\r\n\r\n // Map ICE parameters (ufrag, pwd) to SDP.\r\n sdp$1 += sdp.writeIceParameters(transceiver.iceGatherer.getLocalParameters());\r\n\r\n // Map DTLS parameters to SDP.\r\n sdp$1 += sdp.writeDtlsParameters(\r\n transceiver.dtlsTransport.getLocalParameters(),\r\n type === \"offer\" ? \"actpass\" : dtlsRole || \"active\"\r\n );\r\n\r\n sdp$1 += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\r\n\r\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\r\n sdp$1 += \"a=sendrecv\\r\\n\";\r\n } else if (transceiver.rtpSender) {\r\n sdp$1 += \"a=sendonly\\r\\n\";\r\n } else if (transceiver.rtpReceiver) {\r\n sdp$1 += \"a=recvonly\\r\\n\";\r\n } else {\r\n sdp$1 += \"a=inactive\\r\\n\";\r\n }\r\n\r\n if (transceiver.rtpSender) {\r\n var trackId =\r\n transceiver.rtpSender._initialTrackId || transceiver.rtpSender.track.id;\r\n transceiver.rtpSender._initialTrackId = trackId;\r\n // spec.\r\n var msid = \"msid:\" + (stream ? stream.id : \"-\") + \" \" + trackId + \"\\r\\n\";\r\n sdp$1 += \"a=\" + msid;\r\n // for Chrome. Legacy should no longer be required.\r\n sdp$1 +=\r\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\r\n\r\n // RTX\r\n if (transceiver.sendEncodingParameters[0].rtx) {\r\n sdp$1 +=\r\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].rtx.ssrc + \" \" + msid;\r\n sdp$1 +=\r\n \"a=ssrc-group:FID \" +\r\n transceiver.sendEncodingParameters[0].ssrc +\r\n \" \" +\r\n transceiver.sendEncodingParameters[0].rtx.ssrc +\r\n \"\\r\\n\";\r\n }\r\n }\r\n // FIXME: this should be written by writeRtpDescription.\r\n sdp$1 +=\r\n \"a=ssrc:\" +\r\n transceiver.sendEncodingParameters[0].ssrc +\r\n \" cname:\" +\r\n sdp.localCName +\r\n \"\\r\\n\";\r\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\r\n sdp$1 +=\r\n \"a=ssrc:\" +\r\n transceiver.sendEncodingParameters[0].rtx.ssrc +\r\n \" cname:\" +\r\n sdp.localCName +\r\n \"\\r\\n\";\r\n }\r\n return sdp$1;\r\n}\r\n\r\n// Edge does not like\r\n// 1) stun: filtered after 14393 unless ?transport=udp is present\r\n// 2) turn: that does not have all of turn:host:port?transport=udp\r\n// 3) turn: with ipv6 addresses\r\n// 4) turn: occurring muliple times\r\nfunction filterIceServers(iceServers, edgeVersion) {\r\n var hasTurn = false;\r\n iceServers = JSON.parse(JSON.stringify(iceServers));\r\n return iceServers.filter(function (server) {\r\n if (server && (server.urls || server.url)) {\r\n var urls = server.urls || server.url;\r\n if (server.url && !server.urls) {\r\n console.warn(\"RTCIceServer.url is deprecated! Use urls instead.\");\r\n }\r\n var isString = typeof urls === \"string\";\r\n if (isString) {\r\n urls = [urls];\r\n }\r\n urls = urls.filter(function (url) {\r\n var validTurn =\r\n url.indexOf(\"turn:\") === 0 &&\r\n url.indexOf(\"transport=udp\") !== -1 &&\r\n url.indexOf(\"turn:[\") === -1 &&\r\n !hasTurn;\r\n\r\n if (validTurn) {\r\n hasTurn = true;\r\n return true;\r\n }\r\n return (\r\n url.indexOf(\"stun:\") === 0 &&\r\n edgeVersion >= 14393 &&\r\n url.indexOf(\"?transport=udp\") === -1\r\n );\r\n });\r\n\r\n delete server.url;\r\n server.urls = isString ? urls[0] : urls;\r\n return !!urls.length;\r\n }\r\n });\r\n}\r\n\r\n// Determines the intersection of local and remote capabilities.\r\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\r\n var commonCapabilities = {\r\n codecs: [],\r\n headerExtensions: [],\r\n fecMechanisms: [],\r\n };\r\n\r\n var findCodecByPayloadType = function (pt, codecs) {\r\n pt = parseInt(pt, 10);\r\n for (var i = 0; i < codecs.length; i++) {\r\n if (\r\n codecs[i].payloadType === pt ||\r\n codecs[i].preferredPayloadType === pt\r\n ) {\r\n return codecs[i];\r\n }\r\n }\r\n };\r\n\r\n var rtxCapabilityMatches = function (lRtx, rRtx, lCodecs, rCodecs) {\r\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\r\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\r\n return (\r\n lCodec &&\r\n rCodec &&\r\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase()\r\n );\r\n };\r\n\r\n localCapabilities.codecs.forEach(function (lCodec) {\r\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\r\n var rCodec = remoteCapabilities.codecs[i];\r\n if (\r\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\r\n lCodec.clockRate === rCodec.clockRate\r\n ) {\r\n if (\r\n lCodec.name.toLowerCase() === \"rtx\" &&\r\n lCodec.parameters &&\r\n rCodec.parameters.apt\r\n ) {\r\n // for RTX we need to find the local rtx that has a apt\r\n // which points to the same local codec as the remote one.\r\n if (\r\n !rtxCapabilityMatches(\r\n lCodec,\r\n rCodec,\r\n localCapabilities.codecs,\r\n remoteCapabilities.codecs\r\n )\r\n ) {\r\n continue;\r\n }\r\n }\r\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\r\n // number of channels is the highest common number of channels\r\n rCodec.numChannels = Math.min(lCodec.numChannels, rCodec.numChannels);\r\n // push rCodec so we reply with offerer payload type\r\n commonCapabilities.codecs.push(rCodec);\r\n\r\n // determine common feedback mechanisms\r\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function (fb) {\r\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\r\n if (\r\n lCodec.rtcpFeedback[j].type === fb.type &&\r\n lCodec.rtcpFeedback[j].parameter === fb.parameter\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n // FIXME: also need to determine .parameters\r\n // see https://github.com/openpeer/ortc/issues/569\r\n break;\r\n }\r\n }\r\n });\r\n\r\n localCapabilities.headerExtensions.forEach(function (lHeaderExtension) {\r\n for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {\r\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\r\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\r\n commonCapabilities.headerExtensions.push(rHeaderExtension);\r\n break;\r\n }\r\n }\r\n });\r\n\r\n // FIXME: fecMechanisms\r\n return commonCapabilities;\r\n}\r\n\r\n// is action=setLocalDescription with type allowed in signalingState\r\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\r\n return (\r\n {\r\n offer: {\r\n setLocalDescription: [\"stable\", \"have-local-offer\"],\r\n setRemoteDescription: [\"stable\", \"have-remote-offer\"],\r\n },\r\n answer: {\r\n setLocalDescription: [\"have-remote-offer\", \"have-local-pranswer\"],\r\n setRemoteDescription: [\"have-local-offer\", \"have-remote-pranswer\"],\r\n },\r\n }[type][action].indexOf(signalingState) !== -1\r\n );\r\n}\r\n\r\nfunction maybeAddCandidate(iceTransport, candidate) {\r\n // Edge's internal representation adds some fields therefore\r\n // not all fieldѕ are taken into account.\r\n var alreadyAdded = iceTransport\r\n .getRemoteCandidates()\r\n .find(function (remoteCandidate) {\r\n return (\r\n candidate.foundation === remoteCandidate.foundation &&\r\n candidate.ip === remoteCandidate.ip &&\r\n candidate.port === remoteCandidate.port &&\r\n candidate.priority === remoteCandidate.priority &&\r\n candidate.protocol === remoteCandidate.protocol &&\r\n candidate.type === remoteCandidate.type\r\n );\r\n });\r\n if (!alreadyAdded) {\r\n iceTransport.addRemoteCandidate(candidate);\r\n }\r\n return !alreadyAdded;\r\n}\r\n\r\nfunction makeError(name, description) {\r\n var e = new Error(description);\r\n e.name = name;\r\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\r\n e.code = {\r\n NotSupportedError: 9,\r\n InvalidStateError: 11,\r\n InvalidAccessError: 15,\r\n TypeError: undefined,\r\n OperationError: undefined,\r\n }[name];\r\n return e;\r\n}\r\n\r\nvar rtcpeerconnection = function (window, edgeVersion) {\r\n // https://w3c.github.io/mediacapture-main/#mediastream\r\n // Helper function to add the track to the stream and\r\n // dispatch the event ourselves.\r\n function addTrackToStreamAndFireEvent(track, stream) {\r\n stream.addTrack(track);\r\n stream.dispatchEvent(\r\n new window.MediaStreamTrackEvent(\"addtrack\", { track: track })\r\n );\r\n }\r\n\r\n function removeTrackFromStreamAndFireEvent(track, stream) {\r\n stream.removeTrack(track);\r\n stream.dispatchEvent(\r\n new window.MediaStreamTrackEvent(\"removetrack\", { track: track })\r\n );\r\n }\r\n\r\n function fireAddTrack(pc, track, receiver, streams) {\r\n var trackEvent = new Event(\"track\");\r\n trackEvent.track = track;\r\n trackEvent.receiver = receiver;\r\n trackEvent.transceiver = { receiver: receiver };\r\n trackEvent.streams = streams;\r\n window.setTimeout(function () {\r\n pc._dispatchEvent(\"track\", trackEvent);\r\n });\r\n }\r\n\r\n var RTCPeerConnection = function (config) {\r\n var pc = this;\r\n\r\n var _eventTarget = document.createDocumentFragment();\r\n [\"addEventListener\", \"removeEventListener\", \"dispatchEvent\"].forEach(\r\n function (method) {\r\n pc[method] = _eventTarget[method].bind(_eventTarget);\r\n }\r\n );\r\n\r\n this.canTrickleIceCandidates = null;\r\n\r\n this.needNegotiation = false;\r\n\r\n this.localStreams = [];\r\n this.remoteStreams = [];\r\n\r\n this._localDescription = null;\r\n this._remoteDescription = null;\r\n\r\n this.signalingState = \"stable\";\r\n this.iceConnectionState = \"new\";\r\n this.connectionState = \"new\";\r\n this.iceGatheringState = \"new\";\r\n\r\n config = JSON.parse(JSON.stringify(config || {}));\r\n\r\n this.usingBundle = config.bundlePolicy === \"max-bundle\";\r\n if (config.rtcpMuxPolicy === \"negotiate\") {\r\n throw makeError(\r\n \"NotSupportedError\",\r\n \"rtcpMuxPolicy 'negotiate' is not supported\"\r\n );\r\n } else if (!config.rtcpMuxPolicy) {\r\n config.rtcpMuxPolicy = \"require\";\r\n }\r\n\r\n switch (config.iceTransportPolicy) {\r\n case \"all\":\r\n case \"relay\":\r\n break;\r\n default:\r\n config.iceTransportPolicy = \"all\";\r\n break;\r\n }\r\n\r\n switch (config.bundlePolicy) {\r\n case \"balanced\":\r\n case \"max-compat\":\r\n case \"max-bundle\":\r\n break;\r\n default:\r\n config.bundlePolicy = \"balanced\";\r\n break;\r\n }\r\n\r\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\r\n\r\n this._iceGatherers = [];\r\n if (config.iceCandidatePoolSize) {\r\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\r\n this._iceGatherers.push(\r\n new window.RTCIceGatherer({\r\n iceServers: config.iceServers,\r\n gatherPolicy: config.iceTransportPolicy,\r\n })\r\n );\r\n }\r\n } else {\r\n config.iceCandidatePoolSize = 0;\r\n }\r\n\r\n this._config = config;\r\n\r\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\r\n // everything that is needed to describe a SDP m-line.\r\n this.transceivers = [];\r\n\r\n this._sdpSessionId = sdp.generateSessionId();\r\n this._sdpSessionVersion = 0;\r\n\r\n this._dtlsRole = undefined; // role for a=setup to use in answers.\r\n\r\n this._isClosed = false;\r\n };\r\n\r\n Object.defineProperty(RTCPeerConnection.prototype, \"localDescription\", {\r\n configurable: true,\r\n get: function () {\r\n return this._localDescription;\r\n },\r\n });\r\n Object.defineProperty(RTCPeerConnection.prototype, \"remoteDescription\", {\r\n configurable: true,\r\n get: function () {\r\n return this._remoteDescription;\r\n },\r\n });\r\n\r\n // set up event handlers on prototype\r\n RTCPeerConnection.prototype.onicecandidate = null;\r\n RTCPeerConnection.prototype.onaddstream = null;\r\n RTCPeerConnection.prototype.ontrack = null;\r\n RTCPeerConnection.prototype.onremovestream = null;\r\n RTCPeerConnection.prototype.onsignalingstatechange = null;\r\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\r\n RTCPeerConnection.prototype.onconnectionstatechange = null;\r\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\r\n RTCPeerConnection.prototype.onnegotiationneeded = null;\r\n RTCPeerConnection.prototype.ondatachannel = null;\r\n\r\n RTCPeerConnection.prototype._dispatchEvent = function (name, event) {\r\n if (this._isClosed) {\r\n return;\r\n }\r\n this.dispatchEvent(event);\r\n if (typeof this[\"on\" + name] === \"function\") {\r\n this[\"on\" + name](event);\r\n }\r\n };\r\n\r\n RTCPeerConnection.prototype._emitGatheringStateChange = function () {\r\n var event = new Event(\"icegatheringstatechange\");\r\n this._dispatchEvent(\"icegatheringstatechange\", event);\r\n };\r\n\r\n RTCPeerConnection.prototype.getConfiguration = function () {\r\n return this._config;\r\n };\r\n\r\n RTCPeerConnection.prototype.getLocalStreams = function () {\r\n return this.localStreams;\r\n };\r\n\r\n RTCPeerConnection.prototype.getRemoteStreams = function () {\r\n return this.remoteStreams;\r\n };\r\n\r\n // internal helper to create a transceiver object.\r\n // (which is not yet the same as the WebRTC 1.0 transceiver)\r\n RTCPeerConnection.prototype._createTransceiver = function (kind, doNotAdd) {\r\n var hasBundleTransport = this.transceivers.length > 0;\r\n var transceiver = {\r\n track: null,\r\n iceGatherer: null,\r\n iceTransport: null,\r\n dtlsTransport: null,\r\n localCapabilities: null,\r\n remoteCapabilities: null,\r\n rtpSender: null,\r\n rtpReceiver: null,\r\n kind: kind,\r\n mid: null,\r\n sendEncodingParameters: null,\r\n recvEncodingParameters: null,\r\n stream: null,\r\n associatedRemoteMediaStreams: [],\r\n wantReceive: true,\r\n };\r\n if (this.usingBundle && hasBundleTransport) {\r\n transceiver.iceTransport = this.transceivers[0].iceTransport;\r\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\r\n } else {\r\n var transports = this._createIceAndDtlsTransports();\r\n transceiver.iceTransport = transports.iceTransport;\r\n transceiver.dtlsTransport = transports.dtlsTransport;\r\n }\r\n if (!doNotAdd) {\r\n this.transceivers.push(transceiver);\r\n }\r\n return transceiver;\r\n };\r\n\r\n RTCPeerConnection.prototype.addTrack = function (track, stream) {\r\n if (this._isClosed) {\r\n throw makeError(\r\n \"InvalidStateError\",\r\n \"Attempted to call addTrack on a closed peerconnection.\"\r\n );\r\n }\r\n\r\n var alreadyExists = this.transceivers.find(function (s) {\r\n return s.track === track;\r\n });\r\n\r\n if (alreadyExists) {\r\n throw makeError(\"InvalidAccessError\", \"Track already exists.\");\r\n }\r\n\r\n var transceiver;\r\n for (var i = 0; i < this.transceivers.length; i++) {\r\n if (\r\n !this.transceivers[i].track &&\r\n this.transceivers[i].kind === track.kind\r\n ) {\r\n transceiver = this.transceivers[i];\r\n }\r\n }\r\n if (!transceiver) {\r\n transceiver = this._createTransceiver(track.kind);\r\n }\r\n\r\n this._maybeFireNegotiationNeeded();\r\n\r\n if (this.localStreams.indexOf(stream) === -1) {\r\n this.localStreams.push(stream);\r\n }\r\n\r\n transceiver.track = track;\r\n transceiver.stream = stream;\r\n transceiver.rtpSender = new window.RTCRtpSender(\r\n track,\r\n transceiver.dtlsTransport\r\n );\r\n return transceiver.rtpSender;\r\n };\r\n\r\n RTCPeerConnection.prototype.addStream = function (stream) {\r\n var pc = this;\r\n if (edgeVersion >= 15025) {\r\n stream.getTracks().forEach(function (track) {\r\n pc.addTrack(track, stream);\r\n });\r\n } else {\r\n // Clone is necessary for local demos mostly, attaching directly\r\n // to two different senders does not work (build 10547).\r\n // Fixed in 15025 (or earlier)\r\n var clonedStream = stream.clone();\r\n stream.getTracks().forEach(function (track, idx) {\r\n var clonedTrack = clonedStream.getTracks()[idx];\r\n track.addEventListener(\"enabled\", function (event) {\r\n clonedTrack.enabled = event.enabled;\r\n });\r\n });\r\n clonedStream.getTracks().forEach(function (track) {\r\n pc.addTrack(track, clonedStream);\r\n });\r\n }\r\n };\r\n\r\n RTCPeerConnection.prototype.removeTrack = function (sender) {\r\n if (this._isClosed) {\r\n throw makeError(\r\n \"InvalidStateError\",\r\n \"Attempted to call removeTrack on a closed peerconnection.\"\r\n );\r\n }\r\n\r\n if (!(sender instanceof window.RTCRtpSender)) {\r\n throw new TypeError(\r\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\r\n \"does not implement interface RTCRtpSender.\"\r\n );\r\n }\r\n\r\n var transceiver = this.transceivers.find(function (t) {\r\n return t.rtpSender === sender;\r\n });\r\n\r\n if (!transceiver) {\r\n throw makeError(\r\n \"InvalidAccessError\",\r\n \"Sender was not created by this connection.\"\r\n );\r\n }\r\n var stream = transceiver.stream;\r\n\r\n transceiver.rtpSender.stop();\r\n transceiver.rtpSender = null;\r\n transceiver.track = null;\r\n transceiver.stream = null;\r\n\r\n // remove the stream from the set of local streams\r\n var localStreams = this.transceivers.map(function (t) {\r\n return t.stream;\r\n });\r\n if (\r\n localStreams.indexOf(stream) === -1 &&\r\n this.localStreams.indexOf(stream) > -1\r\n ) {\r\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\r\n }\r\n\r\n this._maybeFireNegotiationNeeded();\r\n };\r\n\r\n RTCPeerConnection.prototype.removeStream = function (stream) {\r\n var pc = this;\r\n stream.getTracks().forEach(function (track) {\r\n var sender = pc.getSenders().find(function (s) {\r\n return s.track === track;\r\n });\r\n if (sender) {\r\n pc.removeTrack(sender);\r\n }\r\n });\r\n };\r\n\r\n RTCPeerConnection.prototype.getSenders = function () {\r\n return this.transceivers\r\n .filter(function (transceiver) {\r\n return !!transceiver.rtpSender;\r\n })\r\n .map(function (transceiver) {\r\n return transceiver.rtpSender;\r\n });\r\n };\r\n\r\n RTCPeerConnection.prototype.getReceivers = function () {\r\n return this.transceivers\r\n .filter(function (transceiver) {\r\n return !!transceiver.rtpReceiver;\r\n })\r\n .map(function (transceiver) {\r\n return transceiver.rtpReceiver;\r\n });\r\n };\r\n\r\n RTCPeerConnection.prototype._createIceGatherer = function (\r\n sdpMLineIndex,\r\n usingBundle\r\n ) {\r\n var pc = this;\r\n if (usingBundle && sdpMLineIndex > 0) {\r\n return this.transceivers[0].iceGatherer;\r\n } else if (this._iceGatherers.length) {\r\n return this._iceGatherers.shift();\r\n }\r\n var iceGatherer = new window.RTCIceGatherer({\r\n iceServers: this._config.iceServers,\r\n gatherPolicy: this._config.iceTransportPolicy,\r\n });\r\n Object.defineProperty(iceGatherer, \"state\", {\r\n value: \"new\",\r\n writable: true,\r\n });\r\n\r\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\r\n this.transceivers[sdpMLineIndex].bufferCandidates = function (event) {\r\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\r\n // polyfill since RTCIceGatherer.state is not implemented in\r\n // Edge 10547 yet.\r\n iceGatherer.state = end ? \"completed\" : \"gathering\";\r\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\r\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\r\n }\r\n };\r\n iceGatherer.addEventListener(\r\n \"localcandidate\",\r\n this.transceivers[sdpMLineIndex].bufferCandidates\r\n );\r\n return iceGatherer;\r\n };\r\n\r\n // start gathering from an RTCIceGatherer.\r\n RTCPeerConnection.prototype._gather = function (mid, sdpMLineIndex) {\r\n var pc = this;\r\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\r\n if (iceGatherer.onlocalcandidate) {\r\n return;\r\n }\r\n var bufferedCandidateEvents =\r\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\r\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\r\n iceGatherer.removeEventListener(\r\n \"localcandidate\",\r\n this.transceivers[sdpMLineIndex].bufferCandidates\r\n );\r\n iceGatherer.onlocalcandidate = function (evt) {\r\n if (pc.usingBundle && sdpMLineIndex > 0) {\r\n // if we know that we use bundle we can drop candidates with\r\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\r\n // confused since we dispose the extra ice gatherer.\r\n return;\r\n }\r\n var event = new Event(\"icecandidate\");\r\n event.candidate = { sdpMid: mid, sdpMLineIndex: sdpMLineIndex };\r\n\r\n var cand = evt.candidate;\r\n // Edge emits an empty object for RTCIceCandidateComplete‥\r\n var end = !cand || Object.keys(cand).length === 0;\r\n if (end) {\r\n // polyfill since RTCIceGatherer.state is not implemented in\r\n // Edge 10547 yet.\r\n if (iceGatherer.state === \"new\" || iceGatherer.state === \"gathering\") {\r\n iceGatherer.state = \"completed\";\r\n }\r\n } else {\r\n if (iceGatherer.state === \"new\") {\r\n iceGatherer.state = \"gathering\";\r\n }\r\n // RTCIceCandidate doesn't have a component, needs to be added\r\n cand.component = 1;\r\n // also the usernameFragment. TODO: update SDP to take both variants.\r\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\r\n\r\n var serializedCandidate = sdp.writeCandidate(cand);\r\n event.candidate = Object.assign(\r\n event.candidate,\r\n sdp.parseCandidate(serializedCandidate)\r\n );\r\n\r\n event.candidate.candidate = serializedCandidate;\r\n event.candidate.toJSON = function () {\r\n return {\r\n candidate: event.candidate.candidate,\r\n sdpMid: event.candidate.sdpMid,\r\n sdpMLineIndex: event.candidate.sdpMLineIndex,\r\n usernameFragment: event.candidate.usernameFragment,\r\n };\r\n };\r\n }\r\n\r\n // update local description.\r\n var sections = sdp.getMediaSections(pc._localDescription.sdp);\r\n if (!end) {\r\n sections[event.candidate.sdpMLineIndex] +=\r\n \"a=\" + event.candidate.candidate + \"\\r\\n\";\r\n } else {\r\n sections[event.candidate.sdpMLineIndex] += \"a=end-of-candidates\\r\\n\";\r\n }\r\n pc._localDescription.sdp =\r\n sdp.getDescription(pc._localDescription.sdp) + sections.join(\"\");\r\n var complete = pc.transceivers.every(function (transceiver) {\r\n return (\r\n transceiver.iceGatherer &&\r\n transceiver.iceGatherer.state === \"completed\"\r\n );\r\n });\r\n\r\n if (pc.iceGatheringState !== \"gathering\") {\r\n pc.iceGatheringState = \"gathering\";\r\n pc._emitGatheringStateChange();\r\n }\r\n\r\n // Emit candidate. Also emit null candidate when all gatherers are\r\n // complete.\r\n if (!end) {\r\n pc._dispatchEvent(\"icecandidate\", event);\r\n }\r\n if (complete) {\r\n pc._dispatchEvent(\"icecandidate\", new Event(\"icecandidate\"));\r\n pc.iceGatheringState = \"complete\";\r\n pc._emitGatheringStateChange();\r\n }\r\n };\r\n\r\n // emit already gathered candidates.\r\n window.setTimeout(function () {\r\n bufferedCandidateEvents.forEach(function (e) {\r\n iceGatherer.onlocalcandidate(e);\r\n });\r\n }, 0);\r\n };\r\n\r\n // Create ICE transport and DTLS transport.\r\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function () {\r\n var pc = this;\r\n var iceTransport = new window.RTCIceTransport(null);\r\n iceTransport.onicestatechange = function () {\r\n pc._updateIceConnectionState();\r\n pc._updateConnectionState();\r\n };\r\n\r\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\r\n dtlsTransport.ondtlsstatechange = function () {\r\n pc._updateConnectionState();\r\n };\r\n dtlsTransport.onerror = function () {\r\n // onerror does not set state to failed by itself.\r\n Object.defineProperty(dtlsTransport, \"state\", {\r\n value: \"failed\",\r\n writable: true,\r\n });\r\n pc._updateConnectionState();\r\n };\r\n\r\n return {\r\n iceTransport: iceTransport,\r\n dtlsTransport: dtlsTransport,\r\n };\r\n };\r\n\r\n // Destroy ICE gatherer, ICE transport and DTLS transport.\r\n // Without triggering the callbacks.\r\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function (\r\n sdpMLineIndex\r\n ) {\r\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\r\n if (iceGatherer) {\r\n delete iceGatherer.onlocalcandidate;\r\n delete this.transceivers[sdpMLineIndex].iceGatherer;\r\n }\r\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\r\n if (iceTransport) {\r\n delete iceTransport.onicestatechange;\r\n delete this.transceivers[sdpMLineIndex].iceTransport;\r\n }\r\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\r\n if (dtlsTransport) {\r\n delete dtlsTransport.ondtlsstatechange;\r\n delete dtlsTransport.onerror;\r\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\r\n }\r\n };\r\n\r\n // Start the RTP Sender and Receiver for a transceiver.\r\n RTCPeerConnection.prototype._transceive = function (transceiver, send, recv) {\r\n var params = getCommonCapabilities(\r\n transceiver.localCapabilities,\r\n transceiver.remoteCapabilities\r\n );\r\n if (send && transceiver.rtpSender) {\r\n params.encodings = transceiver.sendEncodingParameters;\r\n params.rtcp = {\r\n cname: sdp.localCName,\r\n compound: transceiver.rtcpParameters.compound,\r\n };\r\n if (transceiver.recvEncodingParameters.length) {\r\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\r\n }\r\n transceiver.rtpSender.send(params);\r\n }\r\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\r\n // remove RTX field in Edge 14942\r\n if (\r\n transceiver.kind === \"video\" &&\r\n transceiver.recvEncodingParameters &&\r\n edgeVersion < 15019\r\n ) {\r\n transceiver.recvEncodingParameters.forEach(function (p) {\r\n delete p.rtx;\r\n });\r\n }\r\n if (transceiver.recvEncodingParameters.length) {\r\n params.encodings = transceiver.recvEncodingParameters;\r\n } else {\r\n params.encodings = [{}];\r\n }\r\n params.rtcp = {\r\n compound: transceiver.rtcpParameters.compound,\r\n };\r\n if (transceiver.rtcpParameters.cname) {\r\n params.rtcp.cname = transceiver.rtcpParameters.cname;\r\n }\r\n if (transceiver.sendEncodingParameters.length) {\r\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\r\n }\r\n transceiver.rtpReceiver.receive(params);\r\n }\r\n };\r\n\r\n RTCPeerConnection.prototype.setLocalDescription = function (description) {\r\n var pc = this;\r\n\r\n // Note: pranswer is not supported.\r\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\r\n return Promise.reject(\r\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\r\n );\r\n }\r\n\r\n if (\r\n !isActionAllowedInSignalingState(\r\n \"setLocalDescription\",\r\n description.type,\r\n pc.signalingState\r\n ) ||\r\n pc._isClosed\r\n ) {\r\n return Promise.reject(\r\n makeError(\r\n \"InvalidStateError\",\r\n \"Can not set local \" +\r\n description.type +\r\n \" in state \" +\r\n pc.signalingState\r\n )\r\n );\r\n }\r\n\r\n var sections;\r\n var sessionpart;\r\n if (description.type === \"offer\") {\r\n // VERY limited support for SDP munging. Limited to:\r\n // * changing the order of codecs\r\n sections = sdp.splitSections(description.sdp);\r\n sessionpart = sections.shift();\r\n sections.forEach(function (mediaSection, sdpMLineIndex) {\r\n var caps = sdp.parseRtpParameters(mediaSection);\r\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\r\n });\r\n\r\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\r\n pc._gather(transceiver.mid, sdpMLineIndex);\r\n });\r\n } else if (description.type === \"answer\") {\r\n sections = sdp.splitSections(pc._remoteDescription.sdp);\r\n sessionpart = sections.shift();\r\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\r\n sections.forEach(function (mediaSection, sdpMLineIndex) {\r\n var transceiver = pc.transceivers[sdpMLineIndex];\r\n var iceGatherer = transceiver.iceGatherer;\r\n var iceTransport = transceiver.iceTransport;\r\n var dtlsTransport = transceiver.dtlsTransport;\r\n var localCapabilities = transceiver.localCapabilities;\r\n var remoteCapabilities = transceiver.remoteCapabilities;\r\n\r\n // treat bundle-only as not-rejected.\r\n var rejected =\r\n sdp.isRejected(mediaSection) &&\r\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\r\n\r\n if (!rejected && !transceiver.rejected) {\r\n var remoteIceParameters = sdp.getIceParameters(\r\n mediaSection,\r\n sessionpart\r\n );\r\n var remoteDtlsParameters = sdp.getDtlsParameters(\r\n mediaSection,\r\n sessionpart\r\n );\r\n if (isIceLite) {\r\n remoteDtlsParameters.role = \"server\";\r\n }\r\n\r\n if (!pc.usingBundle || sdpMLineIndex === 0) {\r\n pc._gather(transceiver.mid, sdpMLineIndex);\r\n if (iceTransport.state === \"new\") {\r\n iceTransport.start(\r\n iceGatherer,\r\n remoteIceParameters,\r\n isIceLite ? \"controlling\" : \"controlled\"\r\n );\r\n }\r\n if (dtlsTransport.state === \"new\") {\r\n dtlsTransport.start(remoteDtlsParameters);\r\n }\r\n }\r\n\r\n // Calculate intersection of capabilities.\r\n var params = getCommonCapabilities(\r\n localCapabilities,\r\n remoteCapabilities\r\n );\r\n\r\n // Start the RTCRtpSender. The RTCRtpReceiver for this\r\n // transceiver has already been started in setRemoteDescription.\r\n pc._transceive(transceiver, params.codecs.length > 0, false);\r\n }\r\n });\r\n }\r\n\r\n pc._localDescription = {\r\n type: description.type,\r\n sdp: description.sdp,\r\n };\r\n if (description.type === \"offer\") {\r\n pc._updateSignalingState(\"have-local-offer\");\r\n } else {\r\n pc._updateSignalingState(\"stable\");\r\n }\r\n\r\n return Promise.resolve();\r\n };\r\n\r\n RTCPeerConnection.prototype.setRemoteDescription = function (description) {\r\n var pc = this;\r\n\r\n // Note: pranswer is not supported.\r\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\r\n return Promise.reject(\r\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\r\n );\r\n }\r\n\r\n if (\r\n !isActionAllowedInSignalingState(\r\n \"setRemoteDescription\",\r\n description.type,\r\n pc.signalingState\r\n ) ||\r\n pc._isClosed\r\n ) {\r\n return Promise.reject(\r\n makeError(\r\n \"InvalidStateError\",\r\n \"Can not set remote \" +\r\n description.type +\r\n \" in state \" +\r\n pc.signalingState\r\n )\r\n );\r\n }\r\n\r\n var streams = {};\r\n pc.remoteStreams.forEach(function (stream) {\r\n streams[stream.id] = stream;\r\n });\r\n var receiverList = [];\r\n var sections = sdp.splitSections(description.sdp);\r\n var sessionpart = sections.shift();\r\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\r\n var usingBundle =\r\n sdp.matchPrefix(sessionpart, \"a=group:BUNDLE \").length > 0;\r\n pc.usingBundle = usingBundle;\r\n var iceOptions = sdp.matchPrefix(sessionpart, \"a=ice-options:\")[0];\r\n if (iceOptions) {\r\n pc.canTrickleIceCandidates =\r\n iceOptions.substr(14).split(\" \").indexOf(\"trickle\") >= 0;\r\n } else {\r\n pc.canTrickleIceCandidates = false;\r\n }\r\n\r\n sections.forEach(function (mediaSection, sdpMLineIndex) {\r\n var lines = sdp.splitLines(mediaSection);\r\n var kind = sdp.getKind(mediaSection);\r\n // treat bundle-only as not-rejected.\r\n var rejected =\r\n sdp.isRejected(mediaSection) &&\r\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\r\n var protocol = lines[0].substr(2).split(\" \")[2];\r\n\r\n var direction = sdp.getDirection(mediaSection, sessionpart);\r\n var remoteMsid = sdp.parseMsid(mediaSection);\r\n\r\n var mid = sdp.getMid(mediaSection) || sdp.generateIdentifier();\r\n\r\n // Reject datachannels which are not implemented yet.\r\n if (\r\n rejected ||\r\n (kind === \"application\" &&\r\n (protocol === \"DTLS/SCTP\" || protocol === \"UDP/DTLS/SCTP\"))\r\n ) {\r\n // TODO: this is dangerous in the case where a non-rejected m-line\r\n // becomes rejected.\r\n pc.transceivers[sdpMLineIndex] = {\r\n mid: mid,\r\n kind: kind,\r\n protocol: protocol,\r\n rejected: true,\r\n };\r\n return;\r\n }\r\n\r\n if (\r\n !rejected &&\r\n pc.transceivers[sdpMLineIndex] &&\r\n pc.transceivers[sdpMLineIndex].rejected\r\n ) {\r\n // recycle a rejected transceiver.\r\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\r\n }\r\n\r\n var transceiver;\r\n var iceGatherer;\r\n var iceTransport;\r\n var dtlsTransport;\r\n var rtpReceiver;\r\n var sendEncodingParameters;\r\n var recvEncodingParameters;\r\n var localCapabilities;\r\n\r\n var track;\r\n // FIXME: ensure the mediaSection has rtcp-mux set.\r\n var remoteCapabilities = sdp.parseRtpParameters(mediaSection);\r\n var remoteIceParameters;\r\n var remoteDtlsParameters;\r\n if (!rejected) {\r\n remoteIceParameters = sdp.getIceParameters(mediaSection, sessionpart);\r\n remoteDtlsParameters = sdp.getDtlsParameters(mediaSection, sessionpart);\r\n remoteDtlsParameters.role = \"client\";\r\n }\r\n recvEncodingParameters = sdp.parseRtpEncodingParameters(mediaSection);\r\n\r\n var rtcpParameters = sdp.parseRtcpParameters(mediaSection);\r\n\r\n var isComplete =\r\n sdp.matchPrefix(mediaSection, \"a=end-of-candidates\", sessionpart)\r\n .length > 0;\r\n var cands = sdp\r\n .matchPrefix(mediaSection, \"a=candidate:\")\r\n .map(function (cand) {\r\n return sdp.parseCandidate(cand);\r\n })\r\n .filter(function (cand) {\r\n return cand.component === 1;\r\n });\r\n\r\n // Check if we can use BUNDLE and dispose transports.\r\n if (\r\n (description.type === \"offer\" || description.type === \"answer\") &&\r\n !rejected &&\r\n usingBundle &&\r\n sdpMLineIndex > 0 &&\r\n pc.transceivers[sdpMLineIndex]\r\n ) {\r\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\r\n pc.transceivers[sdpMLineIndex].iceGatherer =\r\n pc.transceivers[0].iceGatherer;\r\n pc.transceivers[sdpMLineIndex].iceTransport =\r\n pc.transceivers[0].iceTransport;\r\n pc.transceivers[sdpMLineIndex].dtlsTransport =\r\n pc.transceivers[0].dtlsTransport;\r\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\r\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\r\n pc.transceivers[0].dtlsTransport\r\n );\r\n }\r\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\r\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\r\n pc.transceivers[0].dtlsTransport\r\n );\r\n }\r\n }\r\n if (description.type === \"offer\" && !rejected) {\r\n transceiver =\r\n pc.transceivers[sdpMLineIndex] || pc._createTransceiver(kind);\r\n transceiver.mid = mid;\r\n\r\n if (!transceiver.iceGatherer) {\r\n transceiver.iceGatherer = pc._createIceGatherer(\r\n sdpMLineIndex,\r\n usingBundle\r\n );\r\n }\r\n\r\n if (cands.length && transceiver.iceTransport.state === \"new\") {\r\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\r\n transceiver.iceTransport.setRemoteCandidates(cands);\r\n } else {\r\n cands.forEach(function (candidate) {\r\n maybeAddCandidate(transceiver.iceTransport, candidate);\r\n });\r\n }\r\n }\r\n\r\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\r\n\r\n // filter RTX until additional stuff needed for RTX is implemented\r\n // in adapter.js\r\n if (edgeVersion < 15019) {\r\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\r\n codec\r\n ) {\r\n return codec.name !== \"rtx\";\r\n });\r\n }\r\n\r\n sendEncodingParameters = transceiver.sendEncodingParameters || [\r\n {\r\n ssrc: (2 * sdpMLineIndex + 2) * 1001,\r\n },\r\n ];\r\n\r\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\r\n var isNewTrack = false;\r\n if (direction === \"sendrecv\" || direction === \"sendonly\") {\r\n isNewTrack = !transceiver.rtpReceiver;\r\n rtpReceiver =\r\n transceiver.rtpReceiver ||\r\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\r\n\r\n if (isNewTrack) {\r\n var stream;\r\n track = rtpReceiver.track;\r\n // FIXME: does not work with Plan B.\r\n if (remoteMsid && remoteMsid.stream === \"-\");\r\n else if (remoteMsid) {\r\n if (!streams[remoteMsid.stream]) {\r\n streams[remoteMsid.stream] = new window.MediaStream();\r\n Object.defineProperty(streams[remoteMsid.stream], \"id\", {\r\n get: function () {\r\n return remoteMsid.stream;\r\n },\r\n });\r\n }\r\n Object.defineProperty(track, \"id\", {\r\n get: function () {\r\n return remoteMsid.track;\r\n },\r\n });\r\n stream = streams[remoteMsid.stream];\r\n } else {\r\n if (!streams.default) {\r\n streams.default = new window.MediaStream();\r\n }\r\n stream = streams.default;\r\n }\r\n if (stream) {\r\n addTrackToStreamAndFireEvent(track, stream);\r\n transceiver.associatedRemoteMediaStreams.push(stream);\r\n }\r\n receiverList.push([track, rtpReceiver, stream]);\r\n }\r\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\r\n transceiver.associatedRemoteMediaStreams.forEach(function (s) {\r\n var nativeTrack = s.getTracks().find(function (t) {\r\n return t.id === transceiver.rtpReceiver.track.id;\r\n });\r\n if (nativeTrack) {\r\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\r\n }\r\n });\r\n transceiver.associatedRemoteMediaStreams = [];\r\n }\r\n\r\n transceiver.localCapabilities = localCapabilities;\r\n transceiver.remoteCapabilities = remoteCapabilities;\r\n transceiver.rtpReceiver = rtpReceiver;\r\n transceiver.rtcpParameters = rtcpParameters;\r\n transceiver.sendEncodingParameters = sendEncodingParameters;\r\n transceiver.recvEncodingParameters = recvEncodingParameters;\r\n\r\n // Start the RTCRtpReceiver now. The RTPSender is started in\r\n // setLocalDescription.\r\n pc._transceive(pc.transceivers[sdpMLineIndex], false, isNewTrack);\r\n } else if (description.type === \"answer\" && !rejected) {\r\n transceiver = pc.transceivers[sdpMLineIndex];\r\n iceGatherer = transceiver.iceGatherer;\r\n iceTransport = transceiver.iceTransport;\r\n dtlsTransport = transceiver.dtlsTransport;\r\n rtpReceiver = transceiver.rtpReceiver;\r\n sendEncodingParameters = transceiver.sendEncodingParameters;\r\n localCapabilities = transceiver.localCapabilities;\r\n\r\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\r\n recvEncodingParameters;\r\n pc.transceivers[sdpMLineIndex].remoteCapabilities = remoteCapabilities;\r\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\r\n\r\n if (cands.length && iceTransport.state === \"new\") {\r\n if (\r\n (isIceLite || isComplete) &&\r\n (!usingBundle || sdpMLineIndex === 0)\r\n ) {\r\n iceTransport.setRemoteCandidates(cands);\r\n } else {\r\n cands.forEach(function (candidate) {\r\n maybeAddCandidate(transceiver.iceTransport, candidate);\r\n });\r\n }\r\n }\r\n\r\n if (!usingBundle || sdpMLineIndex === 0) {\r\n if (iceTransport.state === \"new\") {\r\n iceTransport.start(iceGatherer, remoteIceParameters, \"controlling\");\r\n }\r\n if (dtlsTransport.state === \"new\") {\r\n dtlsTransport.start(remoteDtlsParameters);\r\n }\r\n }\r\n\r\n // If the offer contained RTX but the answer did not,\r\n // remove RTX from sendEncodingParameters.\r\n var commonCapabilities = getCommonCapabilities(\r\n transceiver.localCapabilities,\r\n transceiver.remoteCapabilities\r\n );\r\n\r\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\r\n return c.name.toLowerCase() === \"rtx\";\r\n }).length;\r\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\r\n delete transceiver.sendEncodingParameters[0].rtx;\r\n }\r\n\r\n pc._transceive(\r\n transceiver,\r\n direction === \"sendrecv\" || direction === \"recvonly\",\r\n direction === \"sendrecv\" || direction === \"sendonly\"\r\n );\r\n\r\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\r\n if (\r\n rtpReceiver &&\r\n (direction === \"sendrecv\" || direction === \"sendonly\")\r\n ) {\r\n track = rtpReceiver.track;\r\n if (remoteMsid) {\r\n if (!streams[remoteMsid.stream]) {\r\n streams[remoteMsid.stream] = new window.MediaStream();\r\n }\r\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\r\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\r\n } else {\r\n if (!streams.default) {\r\n streams.default = new window.MediaStream();\r\n }\r\n addTrackToStreamAndFireEvent(track, streams.default);\r\n receiverList.push([track, rtpReceiver, streams.default]);\r\n }\r\n } else {\r\n // FIXME: actually the receiver should be created later.\r\n delete transceiver.rtpReceiver;\r\n }\r\n }\r\n });\r\n\r\n if (pc._dtlsRole === undefined) {\r\n pc._dtlsRole = description.type === \"offer\" ? \"active\" : \"passive\";\r\n }\r\n\r\n pc._remoteDescription = {\r\n type: description.type,\r\n sdp: description.sdp,\r\n };\r\n if (description.type === \"offer\") {\r\n pc._updateSignalingState(\"have-remote-offer\");\r\n } else {\r\n pc._updateSignalingState(\"stable\");\r\n }\r\n Object.keys(streams).forEach(function (sid) {\r\n var stream = streams[sid];\r\n if (stream.getTracks().length) {\r\n if (pc.remoteStreams.indexOf(stream) === -1) {\r\n pc.remoteStreams.push(stream);\r\n var event = new Event(\"addstream\");\r\n event.stream = stream;\r\n window.setTimeout(function () {\r\n pc._dispatchEvent(\"addstream\", event);\r\n });\r\n }\r\n\r\n receiverList.forEach(function (item) {\r\n var track = item[0];\r\n var receiver = item[1];\r\n if (stream.id !== item[2].id) {\r\n return;\r\n }\r\n fireAddTrack(pc, track, receiver, [stream]);\r\n });\r\n }\r\n });\r\n receiverList.forEach(function (item) {\r\n if (item[2]) {\r\n return;\r\n }\r\n fireAddTrack(pc, item[0], item[1], []);\r\n });\r\n\r\n // check whether addIceCandidate({}) was called within four seconds after\r\n // setRemoteDescription.\r\n window.setTimeout(function () {\r\n if (!(pc && pc.transceivers)) {\r\n return;\r\n }\r\n pc.transceivers.forEach(function (transceiver) {\r\n if (\r\n transceiver.iceTransport &&\r\n transceiver.iceTransport.state === \"new\" &&\r\n transceiver.iceTransport.getRemoteCandidates().length > 0\r\n ) {\r\n console.warn(\r\n \"Timeout for addRemoteCandidate. Consider sending \" +\r\n \"an end-of-candidates notification\"\r\n );\r\n transceiver.iceTransport.addRemoteCandidate({});\r\n }\r\n });\r\n }, 4000);\r\n\r\n return Promise.resolve();\r\n };\r\n\r\n RTCPeerConnection.prototype.close = function () {\r\n this.transceivers.forEach(function (transceiver) {\r\n /* not yet\r\n if (transceiver.iceGatherer) {\r\n transceiver.iceGatherer.close();\r\n }\r\n */\r\n if (transceiver.iceTransport) {\r\n transceiver.iceTransport.stop();\r\n }\r\n if (transceiver.dtlsTransport) {\r\n transceiver.dtlsTransport.stop();\r\n }\r\n if (transceiver.rtpSender) {\r\n transceiver.rtpSender.stop();\r\n }\r\n if (transceiver.rtpReceiver) {\r\n transceiver.rtpReceiver.stop();\r\n }\r\n });\r\n // FIXME: clean up tracks, local streams, remote streams, etc\r\n this._isClosed = true;\r\n this._updateSignalingState(\"closed\");\r\n };\r\n\r\n // Update the signaling state.\r\n RTCPeerConnection.prototype._updateSignalingState = function (newState) {\r\n this.signalingState = newState;\r\n var event = new Event(\"signalingstatechange\");\r\n this._dispatchEvent(\"signalingstatechange\", event);\r\n };\r\n\r\n // Determine whether to fire the negotiationneeded event.\r\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function () {\r\n var pc = this;\r\n if (this.signalingState !== \"stable\" || this.needNegotiation === true) {\r\n return;\r\n }\r\n this.needNegotiation = true;\r\n window.setTimeout(function () {\r\n if (pc.needNegotiation) {\r\n pc.needNegotiation = false;\r\n var event = new Event(\"negotiationneeded\");\r\n pc._dispatchEvent(\"negotiationneeded\", event);\r\n }\r\n }, 0);\r\n };\r\n\r\n // Update the ice connection state.\r\n RTCPeerConnection.prototype._updateIceConnectionState = function () {\r\n var newState;\r\n var states = {\r\n new: 0,\r\n closed: 0,\r\n checking: 0,\r\n connected: 0,\r\n completed: 0,\r\n disconnected: 0,\r\n failed: 0,\r\n };\r\n this.transceivers.forEach(function (transceiver) {\r\n if (transceiver.iceTransport && !transceiver.rejected) {\r\n states[transceiver.iceTransport.state]++;\r\n }\r\n });\r\n\r\n newState = \"new\";\r\n if (states.failed > 0) {\r\n newState = \"failed\";\r\n } else if (states.checking > 0) {\r\n newState = \"checking\";\r\n } else if (states.disconnected > 0) {\r\n newState = \"disconnected\";\r\n } else if (states.new > 0) {\r\n newState = \"new\";\r\n } else if (states.connected > 0) {\r\n newState = \"connected\";\r\n } else if (states.completed > 0) {\r\n newState = \"completed\";\r\n }\r\n\r\n if (newState !== this.iceConnectionState) {\r\n this.iceConnectionState = newState;\r\n var event = new Event(\"iceconnectionstatechange\");\r\n this._dispatchEvent(\"iceconnectionstatechange\", event);\r\n }\r\n };\r\n\r\n // Update the connection state.\r\n RTCPeerConnection.prototype._updateConnectionState = function () {\r\n var newState;\r\n var states = {\r\n new: 0,\r\n closed: 0,\r\n connecting: 0,\r\n connected: 0,\r\n completed: 0,\r\n disconnected: 0,\r\n failed: 0,\r\n };\r\n this.transceivers.forEach(function (transceiver) {\r\n if (\r\n transceiver.iceTransport &&\r\n transceiver.dtlsTransport &&\r\n !transceiver.rejected\r\n ) {\r\n states[transceiver.iceTransport.state]++;\r\n states[transceiver.dtlsTransport.state]++;\r\n }\r\n });\r\n // ICETransport.completed and connected are the same for this purpose.\r\n states.connected += states.completed;\r\n\r\n newState = \"new\";\r\n if (states.failed > 0) {\r\n newState = \"failed\";\r\n } else if (states.connecting > 0) {\r\n newState = \"connecting\";\r\n } else if (states.disconnected > 0) {\r\n newState = \"disconnected\";\r\n } else if (states.new > 0) {\r\n newState = \"new\";\r\n } else if (states.connected > 0) {\r\n newState = \"connected\";\r\n }\r\n\r\n if (newState !== this.connectionState) {\r\n this.connectionState = newState;\r\n var event = new Event(\"connectionstatechange\");\r\n this._dispatchEvent(\"connectionstatechange\", event);\r\n }\r\n };\r\n\r\n RTCPeerConnection.prototype.createOffer = function () {\r\n var pc = this;\r\n\r\n if (pc._isClosed) {\r\n return Promise.reject(\r\n makeError(\"InvalidStateError\", \"Can not call createOffer after close\")\r\n );\r\n }\r\n\r\n var numAudioTracks = pc.transceivers.filter(function (t) {\r\n return t.kind === \"audio\";\r\n }).length;\r\n var numVideoTracks = pc.transceivers.filter(function (t) {\r\n return t.kind === \"video\";\r\n }).length;\r\n\r\n // Determine number of audio and video tracks we need to send/recv.\r\n var offerOptions = arguments[0];\r\n if (offerOptions) {\r\n // Reject Chrome legacy constraints.\r\n if (offerOptions.mandatory || offerOptions.optional) {\r\n throw new TypeError(\r\n \"Legacy mandatory/optional constraints not supported.\"\r\n );\r\n }\r\n if (offerOptions.offerToReceiveAudio !== undefined) {\r\n if (offerOptions.offerToReceiveAudio === true) {\r\n numAudioTracks = 1;\r\n } else if (offerOptions.offerToReceiveAudio === false) {\r\n numAudioTracks = 0;\r\n } else {\r\n numAudioTracks = offerOptions.offerToReceiveAudio;\r\n }\r\n }\r\n if (offerOptions.offerToReceiveVideo !== undefined) {\r\n if (offerOptions.offerToReceiveVideo === true) {\r\n numVideoTracks = 1;\r\n } else if (offerOptions.offerToReceiveVideo === false) {\r\n numVideoTracks = 0;\r\n } else {\r\n numVideoTracks = offerOptions.offerToReceiveVideo;\r\n }\r\n }\r\n }\r\n\r\n pc.transceivers.forEach(function (transceiver) {\r\n if (transceiver.kind === \"audio\") {\r\n numAudioTracks--;\r\n if (numAudioTracks < 0) {\r\n transceiver.wantReceive = false;\r\n }\r\n } else if (transceiver.kind === \"video\") {\r\n numVideoTracks--;\r\n if (numVideoTracks < 0) {\r\n transceiver.wantReceive = false;\r\n }\r\n }\r\n });\r\n\r\n // Create M-lines for recvonly streams.\r\n while (numAudioTracks > 0 || numVideoTracks > 0) {\r\n if (numAudioTracks > 0) {\r\n pc._createTransceiver(\"audio\");\r\n numAudioTracks--;\r\n }\r\n if (numVideoTracks > 0) {\r\n pc._createTransceiver(\"video\");\r\n numVideoTracks--;\r\n }\r\n }\r\n\r\n var sdp$1 = sdp.writeSessionBoilerplate(\r\n pc._sdpSessionId,\r\n pc._sdpSessionVersion++\r\n );\r\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\r\n // For each track, create an ice gatherer, ice transport,\r\n // dtls transport, potentially rtpsender and rtpreceiver.\r\n var track = transceiver.track;\r\n var kind = transceiver.kind;\r\n var mid = transceiver.mid || sdp.generateIdentifier();\r\n transceiver.mid = mid;\r\n\r\n if (!transceiver.iceGatherer) {\r\n transceiver.iceGatherer = pc._createIceGatherer(\r\n sdpMLineIndex,\r\n pc.usingBundle\r\n );\r\n }\r\n\r\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\r\n // filter RTX until additional stuff needed for RTX is implemented\r\n // in adapter.js\r\n if (edgeVersion < 15019) {\r\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\r\n codec\r\n ) {\r\n return codec.name !== \"rtx\";\r\n });\r\n }\r\n localCapabilities.codecs.forEach(function (codec) {\r\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\r\n // by adding level-asymmetry-allowed=1\r\n if (\r\n codec.name === \"H264\" &&\r\n codec.parameters[\"level-asymmetry-allowed\"] === undefined\r\n ) {\r\n codec.parameters[\"level-asymmetry-allowed\"] = \"1\";\r\n }\r\n\r\n // for subsequent offers, we might have to re-use the payload\r\n // type of the last offer.\r\n if (\r\n transceiver.remoteCapabilities &&\r\n transceiver.remoteCapabilities.codecs\r\n ) {\r\n transceiver.remoteCapabilities.codecs.forEach(function (remoteCodec) {\r\n if (\r\n codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\r\n codec.clockRate === remoteCodec.clockRate\r\n ) {\r\n codec.preferredPayloadType = remoteCodec.payloadType;\r\n }\r\n });\r\n }\r\n });\r\n localCapabilities.headerExtensions.forEach(function (hdrExt) {\r\n var remoteExtensions =\r\n (transceiver.remoteCapabilities &&\r\n transceiver.remoteCapabilities.headerExtensions) ||\r\n [];\r\n remoteExtensions.forEach(function (rHdrExt) {\r\n if (hdrExt.uri === rHdrExt.uri) {\r\n hdrExt.id = rHdrExt.id;\r\n }\r\n });\r\n });\r\n\r\n // generate an ssrc now, to be used later in rtpSender.send\r\n var sendEncodingParameters = transceiver.sendEncodingParameters || [\r\n {\r\n ssrc: (2 * sdpMLineIndex + 1) * 1001,\r\n },\r\n ];\r\n if (track) {\r\n // add RTX\r\n if (\r\n edgeVersion >= 15019 &&\r\n kind === \"video\" &&\r\n !sendEncodingParameters[0].rtx\r\n ) {\r\n sendEncodingParameters[0].rtx = {\r\n ssrc: sendEncodingParameters[0].ssrc + 1,\r\n };\r\n }\r\n }\r\n\r\n if (transceiver.wantReceive) {\r\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\r\n transceiver.dtlsTransport,\r\n kind\r\n );\r\n }\r\n\r\n transceiver.localCapabilities = localCapabilities;\r\n transceiver.sendEncodingParameters = sendEncodingParameters;\r\n });\r\n\r\n // always offer BUNDLE and dispose on return if not supported.\r\n if (pc._config.bundlePolicy !== \"max-compat\") {\r\n sdp$1 +=\r\n \"a=group:BUNDLE \" +\r\n pc.transceivers\r\n .map(function (t) {\r\n return t.mid;\r\n })\r\n .join(\" \") +\r\n \"\\r\\n\";\r\n }\r\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\r\n\r\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\r\n sdp$1 += writeMediaSection(\r\n transceiver,\r\n transceiver.localCapabilities,\r\n \"offer\",\r\n transceiver.stream,\r\n pc._dtlsRole\r\n );\r\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\r\n\r\n if (\r\n transceiver.iceGatherer &&\r\n pc.iceGatheringState !== \"new\" &&\r\n (sdpMLineIndex === 0 || !pc.usingBundle)\r\n ) {\r\n transceiver.iceGatherer.getLocalCandidates().forEach(function (cand) {\r\n cand.component = 1;\r\n sdp$1 += \"a=\" + sdp.writeCandidate(cand) + \"\\r\\n\";\r\n });\r\n\r\n if (transceiver.iceGatherer.state === \"completed\") {\r\n sdp$1 += \"a=end-of-candidates\\r\\n\";\r\n }\r\n }\r\n });\r\n\r\n var desc = new window.RTCSessionDescription({\r\n type: \"offer\",\r\n sdp: sdp$1,\r\n });\r\n return Promise.resolve(desc);\r\n };\r\n\r\n RTCPeerConnection.prototype.createAnswer = function () {\r\n var pc = this;\r\n\r\n if (pc._isClosed) {\r\n return Promise.reject(\r\n makeError(\"InvalidStateError\", \"Can not call createAnswer after close\")\r\n );\r\n }\r\n\r\n if (\r\n !(\r\n pc.signalingState === \"have-remote-offer\" ||\r\n pc.signalingState === \"have-local-pranswer\"\r\n )\r\n ) {\r\n return Promise.reject(\r\n makeError(\r\n \"InvalidStateError\",\r\n \"Can not call createAnswer in signalingState \" + pc.signalingState\r\n )\r\n );\r\n }\r\n\r\n var sdp$1 = sdp.writeSessionBoilerplate(\r\n pc._sdpSessionId,\r\n pc._sdpSessionVersion++\r\n );\r\n if (pc.usingBundle) {\r\n sdp$1 +=\r\n \"a=group:BUNDLE \" +\r\n pc.transceivers\r\n .map(function (t) {\r\n return t.mid;\r\n })\r\n .join(\" \") +\r\n \"\\r\\n\";\r\n }\r\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\r\n\r\n var mediaSectionsInOffer = sdp.getMediaSections(\r\n pc._remoteDescription.sdp\r\n ).length;\r\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\r\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\r\n return;\r\n }\r\n if (transceiver.rejected) {\r\n if (transceiver.kind === \"application\") {\r\n if (transceiver.protocol === \"DTLS/SCTP\") {\r\n // legacy fmt\r\n sdp$1 += \"m=application 0 DTLS/SCTP 5000\\r\\n\";\r\n } else {\r\n sdp$1 +=\r\n \"m=application 0 \" +\r\n transceiver.protocol +\r\n \" webrtc-datachannel\\r\\n\";\r\n }\r\n } else if (transceiver.kind === \"audio\") {\r\n sdp$1 +=\r\n \"m=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n\" + \"a=rtpmap:0 PCMU/8000\\r\\n\";\r\n } else if (transceiver.kind === \"video\") {\r\n sdp$1 +=\r\n \"m=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n\" +\r\n \"a=rtpmap:120 VP8/90000\\r\\n\";\r\n }\r\n sdp$1 +=\r\n \"c=IN IP4 0.0.0.0\\r\\n\" +\r\n \"a=inactive\\r\\n\" +\r\n \"a=mid:\" +\r\n transceiver.mid +\r\n \"\\r\\n\";\r\n return;\r\n }\r\n\r\n // FIXME: look at direction.\r\n if (transceiver.stream) {\r\n var localTrack;\r\n if (transceiver.kind === \"audio\") {\r\n localTrack = transceiver.stream.getAudioTracks()[0];\r\n } else if (transceiver.kind === \"video\") {\r\n localTrack = transceiver.stream.getVideoTracks()[0];\r\n }\r\n if (localTrack) {\r\n // add RTX\r\n if (\r\n edgeVersion >= 15019 &&\r\n transceiver.kind === \"video\" &&\r\n !transceiver.sendEncodingParameters[0].rtx\r\n ) {\r\n transceiver.sendEncodingParameters[0].rtx = {\r\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1,\r\n };\r\n }\r\n }\r\n }\r\n\r\n // Calculate intersection of capabilities.\r\n var commonCapabilities = getCommonCapabilities(\r\n transceiver.localCapabilities,\r\n transceiver.remoteCapabilities\r\n );\r\n\r\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\r\n return c.name.toLowerCase() === \"rtx\";\r\n }).length;\r\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\r\n delete transceiver.sendEncodingParameters[0].rtx;\r\n }\r\n\r\n sdp$1 += writeMediaSection(\r\n transceiver,\r\n commonCapabilities,\r\n \"answer\",\r\n transceiver.stream,\r\n pc._dtlsRole\r\n );\r\n if (\r\n transceiver.rtcpParameters &&\r\n transceiver.rtcpParameters.reducedSize\r\n ) {\r\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\r\n }\r\n });\r\n\r\n var desc = new window.RTCSessionDescription({\r\n type: \"answer\",\r\n sdp: sdp$1,\r\n });\r\n return Promise.resolve(desc);\r\n };\r\n\r\n RTCPeerConnection.prototype.addIceCandidate = function (candidate) {\r\n var pc = this;\r\n var sections;\r\n if (\r\n candidate &&\r\n !(candidate.sdpMLineIndex !== undefined || candidate.sdpMid)\r\n ) {\r\n return Promise.reject(new TypeError(\"sdpMLineIndex or sdpMid required\"));\r\n }\r\n\r\n // TODO: needs to go into ops queue.\r\n return new Promise(function (resolve, reject) {\r\n if (!pc._remoteDescription) {\r\n return reject(\r\n makeError(\r\n \"InvalidStateError\",\r\n \"Can not add ICE candidate without a remote description\"\r\n )\r\n );\r\n } else if (!candidate || candidate.candidate === \"\") {\r\n for (var j = 0; j < pc.transceivers.length; j++) {\r\n if (pc.transceivers[j].rejected) {\r\n continue;\r\n }\r\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\r\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\r\n sections[j] += \"a=end-of-candidates\\r\\n\";\r\n pc._remoteDescription.sdp =\r\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\r\n if (pc.usingBundle) {\r\n break;\r\n }\r\n }\r\n } else {\r\n var sdpMLineIndex = candidate.sdpMLineIndex;\r\n if (candidate.sdpMid) {\r\n for (var i = 0; i < pc.transceivers.length; i++) {\r\n if (pc.transceivers[i].mid === candidate.sdpMid) {\r\n sdpMLineIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n var transceiver = pc.transceivers[sdpMLineIndex];\r\n if (transceiver) {\r\n if (transceiver.rejected) {\r\n return resolve();\r\n }\r\n var cand =\r\n Object.keys(candidate.candidate).length > 0\r\n ? sdp.parseCandidate(candidate.candidate)\r\n : {};\r\n // Ignore Chrome's invalid candidates since Edge does not like them.\r\n if (cand.protocol === \"tcp\" && (cand.port === 0 || cand.port === 9)) {\r\n return resolve();\r\n }\r\n // Ignore RTCP candidates, we assume RTCP-MUX.\r\n if (cand.component && cand.component !== 1) {\r\n return resolve();\r\n }\r\n // when using bundle, avoid adding candidates to the wrong\r\n // ice transport. And avoid adding candidates added in the SDP.\r\n if (\r\n sdpMLineIndex === 0 ||\r\n (sdpMLineIndex > 0 &&\r\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)\r\n ) {\r\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\r\n return reject(\r\n makeError(\"OperationError\", \"Can not add ICE candidate\")\r\n );\r\n }\r\n }\r\n\r\n // update the remoteDescription.\r\n var candidateString = candidate.candidate.trim();\r\n if (candidateString.indexOf(\"a=\") === 0) {\r\n candidateString = candidateString.substr(2);\r\n }\r\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\r\n sections[sdpMLineIndex] +=\r\n \"a=\" + (cand.type ? candidateString : \"end-of-candidates\") + \"\\r\\n\";\r\n pc._remoteDescription.sdp =\r\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\r\n } else {\r\n return reject(\r\n makeError(\"OperationError\", \"Can not add ICE candidate\")\r\n );\r\n }\r\n }\r\n resolve();\r\n });\r\n };\r\n\r\n RTCPeerConnection.prototype.getStats = function (selector) {\r\n if (selector && selector instanceof window.MediaStreamTrack) {\r\n var senderOrReceiver = null;\r\n this.transceivers.forEach(function (transceiver) {\r\n if (transceiver.rtpSender && transceiver.rtpSender.track === selector) {\r\n senderOrReceiver = transceiver.rtpSender;\r\n } else if (\r\n transceiver.rtpReceiver &&\r\n transceiver.rtpReceiver.track === selector\r\n ) {\r\n senderOrReceiver = transceiver.rtpReceiver;\r\n }\r\n });\r\n if (!senderOrReceiver) {\r\n throw makeError(\"InvalidAccessError\", \"Invalid selector.\");\r\n }\r\n return senderOrReceiver.getStats();\r\n }\r\n\r\n var promises = [];\r\n this.transceivers.forEach(function (transceiver) {\r\n [\r\n \"rtpSender\",\r\n \"rtpReceiver\",\r\n \"iceGatherer\",\r\n \"iceTransport\",\r\n \"dtlsTransport\",\r\n ].forEach(function (method) {\r\n if (transceiver[method]) {\r\n promises.push(transceiver[method].getStats());\r\n }\r\n });\r\n });\r\n return Promise.all(promises).then(function (allStats) {\r\n var results = new Map();\r\n allStats.forEach(function (stats) {\r\n stats.forEach(function (stat) {\r\n results.set(stat.id, stat);\r\n });\r\n });\r\n return results;\r\n });\r\n };\r\n\r\n // fix low-level stat names and return Map instead of object.\r\n var ortcObjects = [\r\n \"RTCRtpSender\",\r\n \"RTCRtpReceiver\",\r\n \"RTCIceGatherer\",\r\n \"RTCIceTransport\",\r\n \"RTCDtlsTransport\",\r\n ];\r\n ortcObjects.forEach(function (ortcObjectName) {\r\n var obj = window[ortcObjectName];\r\n if (obj && obj.prototype && obj.prototype.getStats) {\r\n var nativeGetstats = obj.prototype.getStats;\r\n obj.prototype.getStats = function () {\r\n return nativeGetstats.apply(this).then(function (nativeStats) {\r\n var mapStats = new Map();\r\n Object.keys(nativeStats).forEach(function (id) {\r\n nativeStats[id].type = fixStatsType(nativeStats[id]);\r\n mapStats.set(id, nativeStats[id]);\r\n });\r\n return mapStats;\r\n });\r\n };\r\n }\r\n });\r\n\r\n // legacy callback shims. Should be moved to adapter.js some days.\r\n var methods = [\"createOffer\", \"createAnswer\"];\r\n methods.forEach(function (method) {\r\n var nativeMethod = RTCPeerConnection.prototype[method];\r\n RTCPeerConnection.prototype[method] = function () {\r\n var args = arguments;\r\n if (typeof args[0] === \"function\" || typeof args[1] === \"function\") {\r\n // legacy\r\n return nativeMethod.apply(this, [arguments[2]]).then(\r\n function (description) {\r\n if (typeof args[0] === \"function\") {\r\n args[0].apply(null, [description]);\r\n }\r\n },\r\n function (error) {\r\n if (typeof args[1] === \"function\") {\r\n args[1].apply(null, [error]);\r\n }\r\n }\r\n );\r\n }\r\n return nativeMethod.apply(this, arguments);\r\n };\r\n });\r\n\r\n methods = [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"];\r\n methods.forEach(function (method) {\r\n var nativeMethod = RTCPeerConnection.prototype[method];\r\n RTCPeerConnection.prototype[method] = function () {\r\n var args = arguments;\r\n if (typeof args[1] === \"function\" || typeof args[2] === \"function\") {\r\n // legacy\r\n return nativeMethod.apply(this, arguments).then(\r\n function () {\r\n if (typeof args[1] === \"function\") {\r\n args[1].apply(null);\r\n }\r\n },\r\n function (error) {\r\n if (typeof args[2] === \"function\") {\r\n args[2].apply(null, [error]);\r\n }\r\n }\r\n );\r\n }\r\n return nativeMethod.apply(this, arguments);\r\n };\r\n });\r\n\r\n // getStats is special. It doesn't have a spec legacy method yet we support\r\n // getStats(something, cb) without error callbacks.\r\n [\"getStats\"].forEach(function (method) {\r\n var nativeMethod = RTCPeerConnection.prototype[method];\r\n RTCPeerConnection.prototype[method] = function () {\r\n var args = arguments;\r\n if (typeof args[1] === \"function\") {\r\n return nativeMethod.apply(this, arguments).then(function () {\r\n if (typeof args[1] === \"function\") {\r\n args[1].apply(null);\r\n }\r\n });\r\n }\r\n return nativeMethod.apply(this, arguments);\r\n };\r\n });\r\n\r\n return RTCPeerConnection;\r\n};\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimGetUserMedia$2(window) {\r\n const navigator = window && window.navigator;\r\n\r\n const shimError_ = function (e) {\r\n return {\r\n name: { PermissionDeniedError: \"NotAllowedError\" }[e.name] || e.name,\r\n message: e.message,\r\n constraint: e.constraint,\r\n toString() {\r\n return this.name;\r\n },\r\n };\r\n };\r\n\r\n // getUserMedia error shim.\r\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\r\n navigator.mediaDevices\r\n );\r\n navigator.mediaDevices.getUserMedia = function (c) {\r\n return origGetUserMedia(c).catch((e) => Promise.reject(shimError_(e)));\r\n };\r\n}\r\n\r\n/*\r\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimGetDisplayMedia$1(window) {\r\n if (!(\"getDisplayMedia\" in window.navigator)) {\r\n return;\r\n }\r\n if (!window.navigator.mediaDevices) {\r\n return;\r\n }\r\n if (\r\n window.navigator.mediaDevices &&\r\n \"getDisplayMedia\" in window.navigator.mediaDevices\r\n ) {\r\n return;\r\n }\r\n window.navigator.mediaDevices.getDisplayMedia =\r\n window.navigator.getDisplayMedia.bind(window.navigator);\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimPeerConnection$1(window, browserDetails) {\r\n if (window.RTCIceGatherer) {\r\n if (!window.RTCIceCandidate) {\r\n window.RTCIceCandidate = function RTCIceCandidate(args) {\r\n return args;\r\n };\r\n }\r\n if (!window.RTCSessionDescription) {\r\n window.RTCSessionDescription = function RTCSessionDescription(args) {\r\n return args;\r\n };\r\n }\r\n // this adds an additional event listener to MediaStrackTrack that signals\r\n // when a tracks enabled property was changed. Workaround for a bug in\r\n // addStream, see below. No longer required in 15025+\r\n if (browserDetails.version < 15025) {\r\n const origMSTEnabled = Object.getOwnPropertyDescriptor(\r\n window.MediaStreamTrack.prototype,\r\n \"enabled\"\r\n );\r\n Object.defineProperty(window.MediaStreamTrack.prototype, \"enabled\", {\r\n set(value) {\r\n origMSTEnabled.set.call(this, value);\r\n const ev = new Event(\"enabled\");\r\n ev.enabled = value;\r\n this.dispatchEvent(ev);\r\n },\r\n });\r\n }\r\n }\r\n\r\n // ORTC defines the DTMF sender a bit different.\r\n // https://github.com/w3c/ortc/issues/714\r\n if (window.RTCRtpSender && !(\"dtmf\" in window.RTCRtpSender.prototype)) {\r\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\r\n get() {\r\n if (this._dtmf === undefined) {\r\n if (this.track.kind === \"audio\") {\r\n this._dtmf = new window.RTCDtmfSender(this);\r\n } else if (this.track.kind === \"video\") {\r\n this._dtmf = null;\r\n }\r\n }\r\n return this._dtmf;\r\n },\r\n });\r\n }\r\n // Edge currently only implements the RTCDtmfSender, not the\r\n // RTCDTMFSender alias. See http://draft.ortc.org/#rtcdtmfsender2*\r\n if (window.RTCDtmfSender && !window.RTCDTMFSender) {\r\n window.RTCDTMFSender = window.RTCDtmfSender;\r\n }\r\n\r\n const RTCPeerConnectionShim = rtcpeerconnection(\r\n window,\r\n browserDetails.version\r\n );\r\n window.RTCPeerConnection = function RTCPeerConnection(config) {\r\n if (config && config.iceServers) {\r\n config.iceServers = filterIceServers$1(\r\n config.iceServers,\r\n browserDetails.version\r\n );\r\n log$1(\"ICE servers after filtering:\", config.iceServers);\r\n }\r\n return new RTCPeerConnectionShim(config);\r\n };\r\n window.RTCPeerConnection.prototype = RTCPeerConnectionShim.prototype;\r\n}\r\n\r\nfunction shimReplaceTrack(window) {\r\n // ORTC has replaceTrack -- https://github.com/w3c/ortc/issues/614\r\n if (\r\n window.RTCRtpSender &&\r\n !(\"replaceTrack\" in window.RTCRtpSender.prototype)\r\n ) {\r\n window.RTCRtpSender.prototype.replaceTrack =\r\n window.RTCRtpSender.prototype.setTrack;\r\n }\r\n}\r\n\r\nvar edgeShim = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n shimPeerConnection: shimPeerConnection$1,\r\n shimReplaceTrack: shimReplaceTrack,\r\n shimGetUserMedia: shimGetUserMedia$2,\r\n shimGetDisplayMedia: shimGetDisplayMedia$1,\r\n});\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimGetUserMedia$1(window, browserDetails) {\r\n const navigator = window && window.navigator;\r\n const MediaStreamTrack = window && window.MediaStreamTrack;\r\n\r\n navigator.getUserMedia = function (constraints, onSuccess, onError) {\r\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\r\n deprecated(\"navigator.getUserMedia\", \"navigator.mediaDevices.getUserMedia\");\r\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\r\n };\r\n\r\n if (\r\n !(\r\n browserDetails.version > 55 &&\r\n \"autoGainControl\" in navigator.mediaDevices.getSupportedConstraints()\r\n )\r\n ) {\r\n const remap = function (obj, a, b) {\r\n if (a in obj && !(b in obj)) {\r\n obj[b] = obj[a];\r\n delete obj[a];\r\n }\r\n };\r\n\r\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\r\n navigator.mediaDevices\r\n );\r\n navigator.mediaDevices.getUserMedia = function (c) {\r\n if (typeof c === \"object\" && typeof c.audio === \"object\") {\r\n c = JSON.parse(JSON.stringify(c));\r\n remap(c.audio, \"autoGainControl\", \"mozAutoGainControl\");\r\n remap(c.audio, \"noiseSuppression\", \"mozNoiseSuppression\");\r\n }\r\n return nativeGetUserMedia(c);\r\n };\r\n\r\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\r\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\r\n MediaStreamTrack.prototype.getSettings = function () {\r\n const obj = nativeGetSettings.apply(this, arguments);\r\n remap(obj, \"mozAutoGainControl\", \"autoGainControl\");\r\n remap(obj, \"mozNoiseSuppression\", \"noiseSuppression\");\r\n return obj;\r\n };\r\n }\r\n\r\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\r\n const nativeApplyConstraints =\r\n MediaStreamTrack.prototype.applyConstraints;\r\n MediaStreamTrack.prototype.applyConstraints = function (c) {\r\n if (this.kind === \"audio\" && typeof c === \"object\") {\r\n c = JSON.parse(JSON.stringify(c));\r\n remap(c, \"autoGainControl\", \"mozAutoGainControl\");\r\n remap(c, \"noiseSuppression\", \"mozNoiseSuppression\");\r\n }\r\n return nativeApplyConstraints.apply(this, [c]);\r\n };\r\n }\r\n }\r\n}\r\n\r\n/*\r\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimGetDisplayMedia(window, preferredMediaSource) {\r\n if (\r\n window.navigator.mediaDevices &&\r\n \"getDisplayMedia\" in window.navigator.mediaDevices\r\n ) {\r\n return;\r\n }\r\n if (!window.navigator.mediaDevices) {\r\n return;\r\n }\r\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\r\n constraints\r\n ) {\r\n if (!(constraints && constraints.video)) {\r\n const err = new DOMException(\r\n \"getDisplayMedia without video \" + \"constraints is undefined\"\r\n );\r\n err.name = \"NotFoundError\";\r\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\r\n err.code = 8;\r\n return Promise.reject(err);\r\n }\r\n if (constraints.video === true) {\r\n constraints.video = { mediaSource: preferredMediaSource };\r\n } else {\r\n constraints.video.mediaSource = preferredMediaSource;\r\n }\r\n return window.navigator.mediaDevices.getUserMedia(constraints);\r\n };\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimOnTrack(window) {\r\n if (\r\n typeof window === \"object\" &&\r\n window.RTCTrackEvent &&\r\n \"receiver\" in window.RTCTrackEvent.prototype &&\r\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\r\n ) {\r\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\r\n get() {\r\n return { receiver: this.receiver };\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction shimPeerConnection(window, browserDetails) {\r\n if (\r\n typeof window !== \"object\" ||\r\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)\r\n ) {\r\n return; // probably media.peerconnection.enabled=false in about:config\r\n }\r\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\r\n // very basic support for old versions.\r\n window.RTCPeerConnection = window.mozRTCPeerConnection;\r\n }\r\n\r\n if (browserDetails.version < 53) {\r\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\r\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\r\n function (method) {\r\n const nativeMethod = window.RTCPeerConnection.prototype[method];\r\n const methodObj = {\r\n [method]() {\r\n arguments[0] = new (\r\n method === \"addIceCandidate\"\r\n ? window.RTCIceCandidate\r\n : window.RTCSessionDescription\r\n )(arguments[0]);\r\n return nativeMethod.apply(this, arguments);\r\n },\r\n };\r\n window.RTCPeerConnection.prototype[method] = methodObj[method];\r\n }\r\n );\r\n }\r\n\r\n const modernStatsTypes = {\r\n inboundrtp: \"inbound-rtp\",\r\n outboundrtp: \"outbound-rtp\",\r\n candidatepair: \"candidate-pair\",\r\n localcandidate: \"local-candidate\",\r\n remotecandidate: \"remote-candidate\",\r\n };\r\n\r\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\r\n window.RTCPeerConnection.prototype.getStats = function getStats() {\r\n const [selector, onSucc, onErr] = arguments;\r\n return nativeGetStats\r\n .apply(this, [selector || null])\r\n .then((stats) => {\r\n if (browserDetails.version < 53 && !onSucc) {\r\n // Shim only promise getStats with spec-hyphens in type names\r\n // Leave callback version alone; misc old uses of forEach before Map\r\n try {\r\n stats.forEach((stat) => {\r\n stat.type = modernStatsTypes[stat.type] || stat.type;\r\n });\r\n } catch (e) {\r\n if (e.name !== \"TypeError\") {\r\n throw e;\r\n }\r\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\r\n stats.forEach((stat, i) => {\r\n stats.set(\r\n i,\r\n Object.assign({}, stat, {\r\n type: modernStatsTypes[stat.type] || stat.type,\r\n })\r\n );\r\n });\r\n }\r\n }\r\n return stats;\r\n })\r\n .then(onSucc, onErr);\r\n };\r\n}\r\n\r\nfunction shimSenderGetStats(window) {\r\n if (\r\n !(\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n window.RTCRtpSender\r\n )\r\n ) {\r\n return;\r\n }\r\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpSender.prototype) {\r\n return;\r\n }\r\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\r\n if (origGetSenders) {\r\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\r\n const senders = origGetSenders.apply(this, []);\r\n senders.forEach((sender) => (sender._pc = this));\r\n return senders;\r\n };\r\n }\r\n\r\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\r\n if (origAddTrack) {\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\r\n const sender = origAddTrack.apply(this, arguments);\r\n sender._pc = this;\r\n return sender;\r\n };\r\n }\r\n window.RTCRtpSender.prototype.getStats = function getStats() {\r\n return this.track\r\n ? this._pc.getStats(this.track)\r\n : Promise.resolve(new Map());\r\n };\r\n}\r\n\r\nfunction shimReceiverGetStats(window) {\r\n if (\r\n !(\r\n typeof window === \"object\" &&\r\n window.RTCPeerConnection &&\r\n window.RTCRtpSender\r\n )\r\n ) {\r\n return;\r\n }\r\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpReceiver.prototype) {\r\n return;\r\n }\r\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\r\n if (origGetReceivers) {\r\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\r\n const receivers = origGetReceivers.apply(this, []);\r\n receivers.forEach((receiver) => (receiver._pc = this));\r\n return receivers;\r\n };\r\n }\r\n wrapPeerConnectionEvent(window, \"track\", (e) => {\r\n e.receiver._pc = e.srcElement;\r\n return e;\r\n });\r\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\r\n return this._pc.getStats(this.track);\r\n };\r\n}\r\n\r\nfunction shimRemoveStream(window) {\r\n if (\r\n !window.RTCPeerConnection ||\r\n \"removeStream\" in window.RTCPeerConnection.prototype\r\n ) {\r\n return;\r\n }\r\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\r\n stream\r\n ) {\r\n deprecated(\"removeStream\", \"removeTrack\");\r\n this.getSenders().forEach((sender) => {\r\n if (sender.track && stream.getTracks().includes(sender.track)) {\r\n this.removeTrack(sender);\r\n }\r\n });\r\n };\r\n}\r\n\r\nfunction shimRTCDataChannel(window) {\r\n // rename DataChannel to RTCDataChannel (native fix in FF60):\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\r\n if (window.DataChannel && !window.RTCDataChannel) {\r\n window.RTCDataChannel = window.DataChannel;\r\n }\r\n}\r\n\r\nfunction shimAddTransceiver(window) {\r\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\r\n // Firefox ignores the init sendEncodings options passed to addTransceiver\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\r\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\r\n return;\r\n }\r\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\r\n if (origAddTransceiver) {\r\n window.RTCPeerConnection.prototype.addTransceiver =\r\n function addTransceiver() {\r\n this.setParametersPromises = [];\r\n const initParameters = arguments[1];\r\n const shouldPerformCheck =\r\n initParameters && \"sendEncodings\" in initParameters;\r\n if (shouldPerformCheck) {\r\n // If sendEncodings params are provided, validate grammar\r\n initParameters.sendEncodings.forEach((encodingParam) => {\r\n if (\"rid\" in encodingParam) {\r\n const ridRegex = /^[a-z0-9]{0,16}$/i;\r\n if (!ridRegex.test(encodingParam.rid)) {\r\n throw new TypeError(\"Invalid RID value provided.\");\r\n }\r\n }\r\n if (\"scaleResolutionDownBy\" in encodingParam) {\r\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\r\n throw new RangeError(\"scale_resolution_down_by must be >= 1.0\");\r\n }\r\n }\r\n if (\"maxFramerate\" in encodingParam) {\r\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\r\n throw new RangeError(\"max_framerate must be >= 0.0\");\r\n }\r\n }\r\n });\r\n }\r\n const transceiver = origAddTransceiver.apply(this, arguments);\r\n if (shouldPerformCheck) {\r\n // Check if the init options were applied. If not we do this in an\r\n // asynchronous way and save the promise reference in a global object.\r\n // This is an ugly hack, but at the same time is way more robust than\r\n // checking the sender parameters before and after the createOffer\r\n // Also note that after the createoffer we are not 100% sure that\r\n // the params were asynchronously applied so we might miss the\r\n // opportunity to recreate offer.\r\n const { sender } = transceiver;\r\n const params = sender.getParameters();\r\n if (\r\n !(\"encodings\" in params) ||\r\n // Avoid being fooled by patched getParameters() below.\r\n (params.encodings.length === 1 &&\r\n Object.keys(params.encodings[0]).length === 0)\r\n ) {\r\n params.encodings = initParameters.sendEncodings;\r\n sender.sendEncodings = initParameters.sendEncodings;\r\n this.setParametersPromises.push(\r\n sender\r\n .setParameters(params)\r\n .then(() => {\r\n delete sender.sendEncodings;\r\n })\r\n .catch(() => {\r\n delete sender.sendEncodings;\r\n })\r\n );\r\n }\r\n }\r\n return transceiver;\r\n };\r\n }\r\n}\r\n\r\nfunction shimGetParameters(window) {\r\n if (!(typeof window === \"object\" && window.RTCRtpSender)) {\r\n return;\r\n }\r\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\r\n if (origGetParameters) {\r\n window.RTCRtpSender.prototype.getParameters = function getParameters() {\r\n const params = origGetParameters.apply(this, arguments);\r\n if (!(\"encodings\" in params)) {\r\n params.encodings = [].concat(this.sendEncodings || [{}]);\r\n }\r\n return params;\r\n };\r\n }\r\n}\r\n\r\nfunction shimCreateOffer(window) {\r\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\r\n // Firefox ignores the init sendEncodings options passed to addTransceiver\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\r\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\r\n return;\r\n }\r\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\r\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\r\n if (this.setParametersPromises && this.setParametersPromises.length) {\r\n return Promise.all(this.setParametersPromises)\r\n .then(() => {\r\n return origCreateOffer.apply(this, arguments);\r\n })\r\n .finally(() => {\r\n this.setParametersPromises = [];\r\n });\r\n }\r\n return origCreateOffer.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimCreateAnswer(window) {\r\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\r\n // Firefox ignores the init sendEncodings options passed to addTransceiver\r\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\r\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\r\n return;\r\n }\r\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\r\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\r\n if (this.setParametersPromises && this.setParametersPromises.length) {\r\n return Promise.all(this.setParametersPromises)\r\n .then(() => {\r\n return origCreateAnswer.apply(this, arguments);\r\n })\r\n .finally(() => {\r\n this.setParametersPromises = [];\r\n });\r\n }\r\n return origCreateAnswer.apply(this, arguments);\r\n };\r\n}\r\n\r\nvar firefoxShim = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n shimOnTrack: shimOnTrack,\r\n shimPeerConnection: shimPeerConnection,\r\n shimSenderGetStats: shimSenderGetStats,\r\n shimReceiverGetStats: shimReceiverGetStats,\r\n shimRemoveStream: shimRemoveStream,\r\n shimRTCDataChannel: shimRTCDataChannel,\r\n shimAddTransceiver: shimAddTransceiver,\r\n shimGetParameters: shimGetParameters,\r\n shimCreateOffer: shimCreateOffer,\r\n shimCreateAnswer: shimCreateAnswer,\r\n shimGetUserMedia: shimGetUserMedia$1,\r\n shimGetDisplayMedia: shimGetDisplayMedia,\r\n});\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimLocalStreamsAPI(window) {\r\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\r\n return;\r\n }\r\n if (!(\"getLocalStreams\" in window.RTCPeerConnection.prototype)) {\r\n window.RTCPeerConnection.prototype.getLocalStreams =\r\n function getLocalStreams() {\r\n if (!this._localStreams) {\r\n this._localStreams = [];\r\n }\r\n return this._localStreams;\r\n };\r\n }\r\n if (!(\"addStream\" in window.RTCPeerConnection.prototype)) {\r\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\r\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\r\n if (!this._localStreams) {\r\n this._localStreams = [];\r\n }\r\n if (!this._localStreams.includes(stream)) {\r\n this._localStreams.push(stream);\r\n }\r\n // Try to emulate Chrome's behaviour of adding in audio-video order.\r\n // Safari orders by track id.\r\n stream\r\n .getAudioTracks()\r\n .forEach((track) => _addTrack.call(this, track, stream));\r\n stream\r\n .getVideoTracks()\r\n .forEach((track) => _addTrack.call(this, track, stream));\r\n };\r\n\r\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\r\n track,\r\n ...streams\r\n ) {\r\n if (streams) {\r\n streams.forEach((stream) => {\r\n if (!this._localStreams) {\r\n this._localStreams = [stream];\r\n } else if (!this._localStreams.includes(stream)) {\r\n this._localStreams.push(stream);\r\n }\r\n });\r\n }\r\n return _addTrack.apply(this, arguments);\r\n };\r\n }\r\n if (!(\"removeStream\" in window.RTCPeerConnection.prototype)) {\r\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\r\n stream\r\n ) {\r\n if (!this._localStreams) {\r\n this._localStreams = [];\r\n }\r\n const index = this._localStreams.indexOf(stream);\r\n if (index === -1) {\r\n return;\r\n }\r\n this._localStreams.splice(index, 1);\r\n const tracks = stream.getTracks();\r\n this.getSenders().forEach((sender) => {\r\n if (tracks.includes(sender.track)) {\r\n this.removeTrack(sender);\r\n }\r\n });\r\n };\r\n }\r\n}\r\n\r\nfunction shimRemoteStreamsAPI(window) {\r\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\r\n return;\r\n }\r\n if (!(\"getRemoteStreams\" in window.RTCPeerConnection.prototype)) {\r\n window.RTCPeerConnection.prototype.getRemoteStreams =\r\n function getRemoteStreams() {\r\n return this._remoteStreams ? this._remoteStreams : [];\r\n };\r\n }\r\n if (!(\"onaddstream\" in window.RTCPeerConnection.prototype)) {\r\n Object.defineProperty(window.RTCPeerConnection.prototype, \"onaddstream\", {\r\n get() {\r\n return this._onaddstream;\r\n },\r\n set(f) {\r\n if (this._onaddstream) {\r\n this.removeEventListener(\"addstream\", this._onaddstream);\r\n this.removeEventListener(\"track\", this._onaddstreampoly);\r\n }\r\n this.addEventListener(\"addstream\", (this._onaddstream = f));\r\n this.addEventListener(\r\n \"track\",\r\n (this._onaddstreampoly = (e) => {\r\n e.streams.forEach((stream) => {\r\n if (!this._remoteStreams) {\r\n this._remoteStreams = [];\r\n }\r\n if (this._remoteStreams.includes(stream)) {\r\n return;\r\n }\r\n this._remoteStreams.push(stream);\r\n const event = new Event(\"addstream\");\r\n event.stream = stream;\r\n this.dispatchEvent(event);\r\n });\r\n })\r\n );\r\n },\r\n });\r\n const origSetRemoteDescription =\r\n window.RTCPeerConnection.prototype.setRemoteDescription;\r\n window.RTCPeerConnection.prototype.setRemoteDescription =\r\n function setRemoteDescription() {\r\n const pc = this;\r\n if (!this._onaddstreampoly) {\r\n this.addEventListener(\r\n \"track\",\r\n (this._onaddstreampoly = function (e) {\r\n e.streams.forEach((stream) => {\r\n if (!pc._remoteStreams) {\r\n pc._remoteStreams = [];\r\n }\r\n if (pc._remoteStreams.indexOf(stream) >= 0) {\r\n return;\r\n }\r\n pc._remoteStreams.push(stream);\r\n const event = new Event(\"addstream\");\r\n event.stream = stream;\r\n pc.dispatchEvent(event);\r\n });\r\n })\r\n );\r\n }\r\n return origSetRemoteDescription.apply(pc, arguments);\r\n };\r\n }\r\n}\r\n\r\nfunction shimCallbacksAPI(window) {\r\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\r\n return;\r\n }\r\n const prototype = window.RTCPeerConnection.prototype;\r\n const origCreateOffer = prototype.createOffer;\r\n const origCreateAnswer = prototype.createAnswer;\r\n const setLocalDescription = prototype.setLocalDescription;\r\n const setRemoteDescription = prototype.setRemoteDescription;\r\n const addIceCandidate = prototype.addIceCandidate;\r\n\r\n prototype.createOffer = function createOffer(\r\n successCallback,\r\n failureCallback\r\n ) {\r\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\r\n const promise = origCreateOffer.apply(this, [options]);\r\n if (!failureCallback) {\r\n return promise;\r\n }\r\n promise.then(successCallback, failureCallback);\r\n return Promise.resolve();\r\n };\r\n\r\n prototype.createAnswer = function createAnswer(\r\n successCallback,\r\n failureCallback\r\n ) {\r\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\r\n const promise = origCreateAnswer.apply(this, [options]);\r\n if (!failureCallback) {\r\n return promise;\r\n }\r\n promise.then(successCallback, failureCallback);\r\n return Promise.resolve();\r\n };\r\n\r\n let withCallback = function (description, successCallback, failureCallback) {\r\n const promise = setLocalDescription.apply(this, [description]);\r\n if (!failureCallback) {\r\n return promise;\r\n }\r\n promise.then(successCallback, failureCallback);\r\n return Promise.resolve();\r\n };\r\n prototype.setLocalDescription = withCallback;\r\n\r\n withCallback = function (description, successCallback, failureCallback) {\r\n const promise = setRemoteDescription.apply(this, [description]);\r\n if (!failureCallback) {\r\n return promise;\r\n }\r\n promise.then(successCallback, failureCallback);\r\n return Promise.resolve();\r\n };\r\n prototype.setRemoteDescription = withCallback;\r\n\r\n withCallback = function (candidate, successCallback, failureCallback) {\r\n const promise = addIceCandidate.apply(this, [candidate]);\r\n if (!failureCallback) {\r\n return promise;\r\n }\r\n promise.then(successCallback, failureCallback);\r\n return Promise.resolve();\r\n };\r\n prototype.addIceCandidate = withCallback;\r\n}\r\n\r\nfunction shimGetUserMedia(window) {\r\n const navigator = window && window.navigator;\r\n\r\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\r\n // shim not needed in Safari 12.1\r\n const mediaDevices = navigator.mediaDevices;\r\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\r\n navigator.mediaDevices.getUserMedia = (constraints) => {\r\n return _getUserMedia(shimConstraints(constraints));\r\n };\r\n }\r\n\r\n if (\r\n !navigator.getUserMedia &&\r\n navigator.mediaDevices &&\r\n navigator.mediaDevices.getUserMedia\r\n ) {\r\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\r\n navigator.mediaDevices.getUserMedia(constraints).then(cb, errcb);\r\n }.bind(navigator);\r\n }\r\n}\r\n\r\nfunction shimConstraints(constraints) {\r\n if (constraints && constraints.video !== undefined) {\r\n return Object.assign({}, constraints, {\r\n video: compactObject(constraints.video),\r\n });\r\n }\r\n\r\n return constraints;\r\n}\r\n\r\nfunction shimRTCIceServerUrls(window) {\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\r\n const OrigPeerConnection = window.RTCPeerConnection;\r\n window.RTCPeerConnection = function RTCPeerConnection(\r\n pcConfig,\r\n pcConstraints\r\n ) {\r\n if (pcConfig && pcConfig.iceServers) {\r\n const newIceServers = [];\r\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\r\n let server = pcConfig.iceServers[i];\r\n if (!server.hasOwnProperty(\"urls\") && server.hasOwnProperty(\"url\")) {\r\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\r\n server = JSON.parse(JSON.stringify(server));\r\n server.urls = server.url;\r\n delete server.url;\r\n newIceServers.push(server);\r\n } else {\r\n newIceServers.push(pcConfig.iceServers[i]);\r\n }\r\n }\r\n pcConfig.iceServers = newIceServers;\r\n }\r\n return new OrigPeerConnection(pcConfig, pcConstraints);\r\n };\r\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\r\n // wrap static methods. Currently just generateCertificate.\r\n if (\"generateCertificate\" in OrigPeerConnection) {\r\n Object.defineProperty(window.RTCPeerConnection, \"generateCertificate\", {\r\n get() {\r\n return OrigPeerConnection.generateCertificate;\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction shimTrackEventTransceiver(window) {\r\n // Add event.transceiver member over deprecated event.receiver\r\n if (\r\n typeof window === \"object\" &&\r\n window.RTCTrackEvent &&\r\n \"receiver\" in window.RTCTrackEvent.prototype &&\r\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\r\n ) {\r\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\r\n get() {\r\n return { receiver: this.receiver };\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction shimCreateOfferLegacy(window) {\r\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\r\n window.RTCPeerConnection.prototype.createOffer = function createOffer(\r\n offerOptions\r\n ) {\r\n if (offerOptions) {\r\n if (typeof offerOptions.offerToReceiveAudio !== \"undefined\") {\r\n // support bit values\r\n offerOptions.offerToReceiveAudio = !!offerOptions.offerToReceiveAudio;\r\n }\r\n const audioTransceiver = this.getTransceivers().find(\r\n (transceiver) => transceiver.receiver.track.kind === \"audio\"\r\n );\r\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\r\n if (audioTransceiver.direction === \"sendrecv\") {\r\n if (audioTransceiver.setDirection) {\r\n audioTransceiver.setDirection(\"sendonly\");\r\n } else {\r\n audioTransceiver.direction = \"sendonly\";\r\n }\r\n } else if (audioTransceiver.direction === \"recvonly\") {\r\n if (audioTransceiver.setDirection) {\r\n audioTransceiver.setDirection(\"inactive\");\r\n } else {\r\n audioTransceiver.direction = \"inactive\";\r\n }\r\n }\r\n } else if (\r\n offerOptions.offerToReceiveAudio === true &&\r\n !audioTransceiver\r\n ) {\r\n this.addTransceiver(\"audio\");\r\n }\r\n\r\n if (typeof offerOptions.offerToReceiveVideo !== \"undefined\") {\r\n // support bit values\r\n offerOptions.offerToReceiveVideo = !!offerOptions.offerToReceiveVideo;\r\n }\r\n const videoTransceiver = this.getTransceivers().find(\r\n (transceiver) => transceiver.receiver.track.kind === \"video\"\r\n );\r\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\r\n if (videoTransceiver.direction === \"sendrecv\") {\r\n if (videoTransceiver.setDirection) {\r\n videoTransceiver.setDirection(\"sendonly\");\r\n } else {\r\n videoTransceiver.direction = \"sendonly\";\r\n }\r\n } else if (videoTransceiver.direction === \"recvonly\") {\r\n if (videoTransceiver.setDirection) {\r\n videoTransceiver.setDirection(\"inactive\");\r\n } else {\r\n videoTransceiver.direction = \"inactive\";\r\n }\r\n }\r\n } else if (\r\n offerOptions.offerToReceiveVideo === true &&\r\n !videoTransceiver\r\n ) {\r\n this.addTransceiver(\"video\");\r\n }\r\n }\r\n return origCreateOffer.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimAudioContext(window) {\r\n if (typeof window !== \"object\" || window.AudioContext) {\r\n return;\r\n }\r\n window.AudioContext = window.webkitAudioContext;\r\n}\r\n\r\nvar safariShim = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n shimLocalStreamsAPI: shimLocalStreamsAPI,\r\n shimRemoteStreamsAPI: shimRemoteStreamsAPI,\r\n shimCallbacksAPI: shimCallbacksAPI,\r\n shimGetUserMedia: shimGetUserMedia,\r\n shimConstraints: shimConstraints,\r\n shimRTCIceServerUrls: shimRTCIceServerUrls,\r\n shimTrackEventTransceiver: shimTrackEventTransceiver,\r\n shimCreateOfferLegacy: shimCreateOfferLegacy,\r\n shimAudioContext: shimAudioContext,\r\n});\r\n\r\n/*\r\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nfunction shimRTCIceCandidate(window) {\r\n // foundation is arbitrarily chosen as an indicator for full support for\r\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\r\n if (\r\n !window.RTCIceCandidate ||\r\n (window.RTCIceCandidate && \"foundation\" in window.RTCIceCandidate.prototype)\r\n ) {\r\n return;\r\n }\r\n\r\n const NativeRTCIceCandidate = window.RTCIceCandidate;\r\n window.RTCIceCandidate = function RTCIceCandidate(args) {\r\n // Remove the a= which shouldn't be part of the candidate string.\r\n if (\r\n typeof args === \"object\" &&\r\n args.candidate &&\r\n args.candidate.indexOf(\"a=\") === 0\r\n ) {\r\n args = JSON.parse(JSON.stringify(args));\r\n args.candidate = args.candidate.substr(2);\r\n }\r\n\r\n if (args.candidate && args.candidate.length) {\r\n // Augment the native candidate with the parsed fields.\r\n const nativeCandidate = new NativeRTCIceCandidate(args);\r\n const parsedCandidate = sdp.parseCandidate(args.candidate);\r\n const augmentedCandidate = Object.assign(\r\n nativeCandidate,\r\n parsedCandidate\r\n );\r\n\r\n // Add a serializer that does not serialize the extra attributes.\r\n augmentedCandidate.toJSON = function toJSON() {\r\n return {\r\n candidate: augmentedCandidate.candidate,\r\n sdpMid: augmentedCandidate.sdpMid,\r\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\r\n usernameFragment: augmentedCandidate.usernameFragment,\r\n };\r\n };\r\n return augmentedCandidate;\r\n }\r\n return new NativeRTCIceCandidate(args);\r\n };\r\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\r\n\r\n // Hook up the augmented candidate in onicecandidate and\r\n // addEventListener('icecandidate', ...)\r\n wrapPeerConnectionEvent(window, \"icecandidate\", (e) => {\r\n if (e.candidate) {\r\n Object.defineProperty(e, \"candidate\", {\r\n value: new window.RTCIceCandidate(e.candidate),\r\n writable: \"false\",\r\n });\r\n }\r\n return e;\r\n });\r\n}\r\n\r\nfunction shimMaxMessageSize(window, browserDetails) {\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n\r\n if (!(\"sctp\" in window.RTCPeerConnection.prototype)) {\r\n Object.defineProperty(window.RTCPeerConnection.prototype, \"sctp\", {\r\n get() {\r\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\r\n },\r\n });\r\n }\r\n\r\n const sctpInDescription = function (description) {\r\n if (!description || !description.sdp) {\r\n return false;\r\n }\r\n const sections = sdp.splitSections(description.sdp);\r\n sections.shift();\r\n return sections.some((mediaSection) => {\r\n const mLine = sdp.parseMLine(mediaSection);\r\n return (\r\n mLine &&\r\n mLine.kind === \"application\" &&\r\n mLine.protocol.indexOf(\"SCTP\") !== -1\r\n );\r\n });\r\n };\r\n\r\n const getRemoteFirefoxVersion = function (description) {\r\n // TODO: Is there a better solution for detecting Firefox?\r\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\r\n if (match === null || match.length < 2) {\r\n return -1;\r\n }\r\n const version = parseInt(match[1], 10);\r\n // Test for NaN (yes, this is ugly)\r\n return version !== version ? -1 : version;\r\n };\r\n\r\n const getCanSendMaxMessageSize = function (remoteIsFirefox) {\r\n // Every implementation we know can send at least 64 KiB.\r\n // Note: Although Chrome is technically able to send up to 256 KiB, the\r\n // data does not reach the other peer reliably.\r\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\r\n let canSendMaxMessageSize = 65536;\r\n if (browserDetails.browser === \"firefox\") {\r\n if (browserDetails.version < 57) {\r\n if (remoteIsFirefox === -1) {\r\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\r\n // fragmentation.\r\n canSendMaxMessageSize = 16384;\r\n } else {\r\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\r\n // messages. Thus, supporting ~2 GiB when sending.\r\n canSendMaxMessageSize = 2147483637;\r\n }\r\n } else if (browserDetails.version < 60) {\r\n // Currently, all FF >= 57 will reset the remote maximum message size\r\n // to the default value when a data channel is created at a later\r\n // stage. :(\r\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\r\n canSendMaxMessageSize = browserDetails.version === 57 ? 65535 : 65536;\r\n } else {\r\n // FF >= 60 supports sending ~2 GiB\r\n canSendMaxMessageSize = 2147483637;\r\n }\r\n }\r\n return canSendMaxMessageSize;\r\n };\r\n\r\n const getMaxMessageSize = function (description, remoteIsFirefox) {\r\n // Note: 65536 bytes is the default value from the SDP spec. Also,\r\n // every implementation we know supports receiving 65536 bytes.\r\n let maxMessageSize = 65536;\r\n\r\n // FF 57 has a slightly incorrect default remote max message size, so\r\n // we need to adjust it here to avoid a failure when sending.\r\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\r\n if (browserDetails.browser === \"firefox\" && browserDetails.version === 57) {\r\n maxMessageSize = 65535;\r\n }\r\n\r\n const match = sdp.matchPrefix(description.sdp, \"a=max-message-size:\");\r\n if (match.length > 0) {\r\n maxMessageSize = parseInt(match[0].substr(19), 10);\r\n } else if (browserDetails.browser === \"firefox\" && remoteIsFirefox !== -1) {\r\n // If the maximum message size is not present in the remote SDP and\r\n // both local and remote are Firefox, the remote peer can receive\r\n // ~2 GiB.\r\n maxMessageSize = 2147483637;\r\n }\r\n return maxMessageSize;\r\n };\r\n\r\n const origSetRemoteDescription =\r\n window.RTCPeerConnection.prototype.setRemoteDescription;\r\n window.RTCPeerConnection.prototype.setRemoteDescription =\r\n function setRemoteDescription() {\r\n this._sctp = null;\r\n // Chrome decided to not expose .sctp in plan-b mode.\r\n // As usual, adapter.js has to do an 'ugly worakaround'\r\n // to cover up the mess.\r\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 76) {\r\n const { sdpSemantics } = this.getConfiguration();\r\n if (sdpSemantics === \"plan-b\") {\r\n Object.defineProperty(this, \"sctp\", {\r\n get() {\r\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n }\r\n }\r\n\r\n if (sctpInDescription(arguments[0])) {\r\n // Check if the remote is FF.\r\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\r\n\r\n // Get the maximum message size the local peer is capable of sending\r\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\r\n\r\n // Get the maximum message size of the remote peer.\r\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\r\n\r\n // Determine final maximum message size\r\n let maxMessageSize;\r\n if (canSendMMS === 0 && remoteMMS === 0) {\r\n maxMessageSize = Number.POSITIVE_INFINITY;\r\n } else if (canSendMMS === 0 || remoteMMS === 0) {\r\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\r\n } else {\r\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\r\n }\r\n\r\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\r\n // attribute.\r\n const sctp = {};\r\n Object.defineProperty(sctp, \"maxMessageSize\", {\r\n get() {\r\n return maxMessageSize;\r\n },\r\n });\r\n this._sctp = sctp;\r\n }\r\n\r\n return origSetRemoteDescription.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimSendThrowTypeError(window) {\r\n if (\r\n !(\r\n window.RTCPeerConnection &&\r\n \"createDataChannel\" in window.RTCPeerConnection.prototype\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // Note: Although Firefox >= 57 has a native implementation, the maximum\r\n // message size can be reset for all data channels at a later stage.\r\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\r\n\r\n function wrapDcSend(dc, pc) {\r\n const origDataChannelSend = dc.send;\r\n dc.send = function send() {\r\n const data = arguments[0];\r\n const length = data.length || data.size || data.byteLength;\r\n if (\r\n dc.readyState === \"open\" &&\r\n pc.sctp &&\r\n length > pc.sctp.maxMessageSize\r\n ) {\r\n throw new TypeError(\r\n \"Message too large (can send a maximum of \" +\r\n pc.sctp.maxMessageSize +\r\n \" bytes)\"\r\n );\r\n }\r\n return origDataChannelSend.apply(dc, arguments);\r\n };\r\n }\r\n const origCreateDataChannel =\r\n window.RTCPeerConnection.prototype.createDataChannel;\r\n window.RTCPeerConnection.prototype.createDataChannel =\r\n function createDataChannel() {\r\n const dataChannel = origCreateDataChannel.apply(this, arguments);\r\n wrapDcSend(dataChannel, this);\r\n return dataChannel;\r\n };\r\n wrapPeerConnectionEvent(window, \"datachannel\", (e) => {\r\n wrapDcSend(e.channel, e.target);\r\n return e;\r\n });\r\n}\r\n\r\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\r\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\r\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\r\n * since DTLS failures would be hidden. See\r\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\r\n * for the Firefox tracking bug.\r\n */\r\nfunction shimConnectionState(window) {\r\n if (\r\n !window.RTCPeerConnection ||\r\n \"connectionState\" in window.RTCPeerConnection.prototype\r\n ) {\r\n return;\r\n }\r\n const proto = window.RTCPeerConnection.prototype;\r\n Object.defineProperty(proto, \"connectionState\", {\r\n get() {\r\n return (\r\n {\r\n completed: \"connected\",\r\n checking: \"connecting\",\r\n }[this.iceConnectionState] || this.iceConnectionState\r\n );\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n Object.defineProperty(proto, \"onconnectionstatechange\", {\r\n get() {\r\n return this._onconnectionstatechange || null;\r\n },\r\n set(cb) {\r\n if (this._onconnectionstatechange) {\r\n this.removeEventListener(\r\n \"connectionstatechange\",\r\n this._onconnectionstatechange\r\n );\r\n delete this._onconnectionstatechange;\r\n }\r\n if (cb) {\r\n this.addEventListener(\r\n \"connectionstatechange\",\r\n (this._onconnectionstatechange = cb)\r\n );\r\n }\r\n },\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n\r\n [\"setLocalDescription\", \"setRemoteDescription\"].forEach((method) => {\r\n const origMethod = proto[method];\r\n proto[method] = function () {\r\n if (!this._connectionstatechangepoly) {\r\n this._connectionstatechangepoly = (e) => {\r\n const pc = e.target;\r\n if (pc._lastConnectionState !== pc.connectionState) {\r\n pc._lastConnectionState = pc.connectionState;\r\n const newEvent = new Event(\"connectionstatechange\", e);\r\n pc.dispatchEvent(newEvent);\r\n }\r\n return e;\r\n };\r\n this.addEventListener(\r\n \"iceconnectionstatechange\",\r\n this._connectionstatechangepoly\r\n );\r\n }\r\n return origMethod.apply(this, arguments);\r\n };\r\n });\r\n}\r\n\r\nfunction removeExtmapAllowMixed(window, browserDetails) {\r\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\r\n if (!window.RTCPeerConnection) {\r\n return;\r\n }\r\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 71) {\r\n return;\r\n }\r\n if (browserDetails.browser === \"safari\" && browserDetails.version >= 605) {\r\n return;\r\n }\r\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\r\n window.RTCPeerConnection.prototype.setRemoteDescription =\r\n function setRemoteDescription(desc) {\r\n if (\r\n desc &&\r\n desc.sdp &&\r\n desc.sdp.indexOf(\"\\na=extmap-allow-mixed\") !== -1\r\n ) {\r\n const sdp = desc.sdp\r\n .split(\"\\n\")\r\n .filter((line) => {\r\n return line.trim() !== \"a=extmap-allow-mixed\";\r\n })\r\n .join(\"\\n\");\r\n // Safari enforces read-only-ness of RTCSessionDescription fields.\r\n if (\r\n window.RTCSessionDescription &&\r\n desc instanceof window.RTCSessionDescription\r\n ) {\r\n arguments[0] = new window.RTCSessionDescription({\r\n type: desc.type,\r\n sdp,\r\n });\r\n } else {\r\n desc.sdp = sdp;\r\n }\r\n }\r\n return nativeSRD.apply(this, arguments);\r\n };\r\n}\r\n\r\nfunction shimAddIceCandidateNullOrEmpty(window, browserDetails) {\r\n // Support for addIceCandidate(null or undefined)\r\n // as well as addIceCandidate({candidate: \"\", ...})\r\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\r\n // Note: must be called before other polyfills which change the signature.\r\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\r\n return;\r\n }\r\n const nativeAddIceCandidate =\r\n window.RTCPeerConnection.prototype.addIceCandidate;\r\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\r\n return;\r\n }\r\n window.RTCPeerConnection.prototype.addIceCandidate =\r\n function addIceCandidate() {\r\n if (!arguments[0]) {\r\n if (arguments[1]) {\r\n arguments[1].apply(null);\r\n }\r\n return Promise.resolve();\r\n }\r\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\r\n // in older versions.\r\n // Native support for ignoring exists for Chrome M77+.\r\n // Safari ignores as well, exact version unknown but works in the same\r\n // version that also ignores addIceCandidate(null).\r\n if (\r\n ((browserDetails.browser === \"chrome\" && browserDetails.version < 78) ||\r\n (browserDetails.browser === \"firefox\" &&\r\n browserDetails.version < 68) ||\r\n browserDetails.browser === \"safari\") &&\r\n arguments[0] &&\r\n arguments[0].candidate === \"\"\r\n ) {\r\n return Promise.resolve();\r\n }\r\n return nativeAddIceCandidate.apply(this, arguments);\r\n };\r\n}\r\n\r\nvar commonShim = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n shimRTCIceCandidate: shimRTCIceCandidate,\r\n shimMaxMessageSize: shimMaxMessageSize,\r\n shimSendThrowTypeError: shimSendThrowTypeError,\r\n shimConnectionState: shimConnectionState,\r\n removeExtmapAllowMixed: removeExtmapAllowMixed,\r\n shimAddIceCandidateNullOrEmpty: shimAddIceCandidateNullOrEmpty,\r\n});\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\n// Shimming starts here.\r\nfunction adapterFactory(\r\n { window } = {},\r\n options = {\r\n shimChrome: true,\r\n shimFirefox: true,\r\n shimEdge: true,\r\n shimSafari: true,\r\n }\r\n) {\r\n // Utils.\r\n const logging = log$1;\r\n const browserDetails = detectBrowser(window);\r\n\r\n const adapter = {\r\n browserDetails,\r\n commonShim,\r\n extractVersion: extractVersion,\r\n disableLog: disableLog,\r\n disableWarnings: disableWarnings,\r\n };\r\n\r\n // Shim browser if found.\r\n switch (browserDetails.browser) {\r\n case \"chrome\":\r\n if (!chromeShim || !shimPeerConnection$2 || !options.shimChrome) {\r\n logging(\"Chrome shim is not included in this adapter release.\");\r\n return adapter;\r\n }\r\n if (browserDetails.version === null) {\r\n logging(\"Chrome shim can not determine version, not shimming.\");\r\n return adapter;\r\n }\r\n logging(\"adapter.js shimming chrome.\");\r\n // Export to the adapter global object visible in the browser.\r\n adapter.browserShim = chromeShim;\r\n\r\n // Must be called before shimPeerConnection.\r\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\r\n\r\n shimGetUserMedia$3(window, browserDetails);\r\n shimMediaStream(window);\r\n shimPeerConnection$2(window, browserDetails);\r\n shimOnTrack$1(window);\r\n shimAddTrackRemoveTrack(window, browserDetails);\r\n shimGetSendersWithDtmf(window);\r\n shimGetStats(window);\r\n shimSenderReceiverGetStats(window);\r\n fixNegotiationNeeded(window, browserDetails);\r\n\r\n shimRTCIceCandidate(window);\r\n shimConnectionState(window);\r\n shimMaxMessageSize(window, browserDetails);\r\n shimSendThrowTypeError(window);\r\n removeExtmapAllowMixed(window, browserDetails);\r\n break;\r\n case \"firefox\":\r\n if (!firefoxShim || !shimPeerConnection || !options.shimFirefox) {\r\n logging(\"Firefox shim is not included in this adapter release.\");\r\n return adapter;\r\n }\r\n logging(\"adapter.js shimming firefox.\");\r\n // Export to the adapter global object visible in the browser.\r\n adapter.browserShim = firefoxShim;\r\n\r\n // Must be called before shimPeerConnection.\r\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\r\n\r\n shimGetUserMedia$1(window, browserDetails);\r\n shimPeerConnection(window, browserDetails);\r\n shimOnTrack(window);\r\n shimRemoveStream(window);\r\n shimSenderGetStats(window);\r\n shimReceiverGetStats(window);\r\n shimRTCDataChannel(window);\r\n shimAddTransceiver(window);\r\n shimGetParameters(window);\r\n shimCreateOffer(window);\r\n shimCreateAnswer(window);\r\n\r\n shimRTCIceCandidate(window);\r\n shimConnectionState(window);\r\n shimMaxMessageSize(window, browserDetails);\r\n shimSendThrowTypeError(window);\r\n break;\r\n case \"edge\":\r\n if (!edgeShim || !shimPeerConnection$1 || !options.shimEdge) {\r\n logging(\"MS edge shim is not included in this adapter release.\");\r\n return adapter;\r\n }\r\n logging(\"adapter.js shimming edge.\");\r\n // Export to the adapter global object visible in the browser.\r\n adapter.browserShim = edgeShim;\r\n\r\n shimGetUserMedia$2(window);\r\n shimGetDisplayMedia$1(window);\r\n shimPeerConnection$1(window, browserDetails);\r\n shimReplaceTrack(window);\r\n\r\n // the edge shim implements the full RTCIceCandidate object.\r\n\r\n shimMaxMessageSize(window, browserDetails);\r\n shimSendThrowTypeError(window);\r\n break;\r\n case \"safari\":\r\n if (!safariShim || !options.shimSafari) {\r\n logging(\"Safari shim is not included in this adapter release.\");\r\n return adapter;\r\n }\r\n logging(\"adapter.js shimming safari.\");\r\n // Export to the adapter global object visible in the browser.\r\n adapter.browserShim = safariShim;\r\n\r\n // Must be called before shimCallbackAPI.\r\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\r\n\r\n shimRTCIceServerUrls(window);\r\n shimCreateOfferLegacy(window);\r\n shimCallbacksAPI(window);\r\n shimLocalStreamsAPI(window);\r\n shimRemoteStreamsAPI(window);\r\n shimTrackEventTransceiver(window);\r\n shimGetUserMedia(window);\r\n shimAudioContext(window);\r\n\r\n shimRTCIceCandidate(window);\r\n shimMaxMessageSize(window, browserDetails);\r\n shimSendThrowTypeError(window);\r\n removeExtmapAllowMixed(window, browserDetails);\r\n break;\r\n default:\r\n logging(\"Unsupported browser!\");\r\n break;\r\n }\r\n\r\n return adapter;\r\n}\r\n\r\n/*\r\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by a BSD-style license\r\n * that can be found in the LICENSE file in the root of the source\r\n * tree.\r\n */\r\n\r\nadapterFactory({ window: typeof window === \"undefined\" ? undefined : window });\r\n\r\n/**\r\n * @class AudioTrackConstraints\r\n * @classDesc Constraints for creating an audio MediaStreamTrack.\r\n * @memberof Owt.Base\r\n * @constructor\r\n * @param {Owt.Base.AudioSourceInfo} source Source info of this audio track.\r\n */\r\n\r\nclass AudioTrackConstraints {\r\n // eslint-disable-next-line require-jsdoc\r\n constructor(source) {\r\n if (!Object.values(AudioSourceInfo).some((v) => v === source)) {\r\n throw new TypeError(\"Invalid source.\");\r\n }\r\n /**\r\n * @member {string} source\r\n * @memberof Owt.Base.AudioTrackConstraints\r\n * @desc Values could be \"mic\", \"screen-cast\", \"file\" or \"mixed\".\r\n * @instance\r\n */\r\n\r\n this.source = source;\r\n /**\r\n * @member {string} deviceId\r\n * @memberof Owt.Base.AudioTrackConstraints\r\n * @desc Do not provide deviceId if source is not \"mic\".\r\n * @instance\r\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\r\n */\r\n\r\n this.deviceId = undefined;\r\n }\r\n}\r\n/**\r\n * @class VideoTrackConstraints\r\n * @classDesc Constraints for creating a video MediaStreamTrack.\r\n * @memberof Owt.Base\r\n * @constructor\r\n * @param {Owt.Base.VideoSourceInfo} source Source info of this video track.\r\n */\r\n\r\nclass VideoTrackConstraints {\r\n // eslint-disable-next-line require-jsdoc\r\n constructor(source) {\r\n if (!Object.values(VideoSourceInfo).some((v) => v === source)) {\r\n throw new TypeError(\"Invalid source.\");\r\n }\r\n /**\r\n * @member {string} source\r\n * @memberof Owt.Base.VideoTrackConstraints\r\n * @desc Values could be \"camera\", \"screen-cast\", \"file\" or \"mixed\".\r\n * @instance\r\n */\r\n\r\n this.source = source;\r\n /**\r\n * @member {string} deviceId\r\n * @memberof Owt.Base.VideoTrackConstraints\r\n * @desc Do not provide deviceId if source is not \"camera\".\r\n * @instance\r\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\r\n */\r\n\r\n this.deviceId = undefined;\r\n /**\r\n * @member {Owt.Base.Resolution} resolution\r\n * @memberof Owt.Base.VideoTrackConstraints\r\n * @instance\r\n */\r\n\r\n this.resolution = undefined;\r\n /**\r\n * @member {number} frameRate\r\n * @memberof Owt.Base.VideoTrackConstraints\r\n * @instance\r\n */\r\n\r\n this.frameRate = undefined;\r\n }\r\n}\r\n/**\r\n * @class StreamConstraints\r\n * @classDesc Constraints for creating a MediaStream from screen mic and camera.\r\n * @memberof Owt.Base\r\n * @constructor\r\n * @param {?Owt.Base.AudioTrackConstraints} audioConstraints\r\n * @param {?Owt.Base.VideoTrackConstraints} videoConstraints\r\n */\r\n\r\nclass StreamConstraints {\r\n // eslint-disable-next-line require-jsdoc\r\n constructor(audioConstraints = false, videoConstraints = false) {\r\n /**\r\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForAudio} audio\r\n * @memberof Owt.Base.MediaStreamDeviceConstraints\r\n * @instance\r\n */\r\n this.audio = audioConstraints;\r\n /**\r\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForVideo} Video\r\n * @memberof Owt.Base.MediaStreamDeviceConstraints\r\n * @instance\r\n */\r\n\r\n this.video = videoConstraints;\r\n }\r\n} // eslint-disable-next-line require-jsdoc\r\n\r\nfunction isVideoConstrainsForScreenCast(constraints) {\r\n return (\r\n typeof constraints.video === \"object\" &&\r\n constraints.video.source === VideoSourceInfo.SCREENCAST\r\n );\r\n}\r\n/**\r\n * @class MediaStreamFactory\r\n * @classDesc A factory to create MediaStream. You can also create MediaStream by yourself.\r\n * @memberof Owt.Base\r\n */\r\n\r\nclass MediaStreamFactory {\r\n /**\r\n * @function createMediaStream\r\n * @static\r\n * @desc Create a MediaStream with given constraints. If you want to create a MediaStream for screen cast, please make sure both audio and video's source are \"screen-cast\".\r\n * @memberof Owt.Base.MediaStreamFactory\r\n * @return {Promise<MediaStream, Error>} Return a promise that is resolved when stream is successfully created, or rejected if one of the following error happened:\r\n * - One or more parameters cannot be satisfied.\r\n * - Specified device is busy.\r\n * - Cannot obtain necessary permission or operation is canceled by user.\r\n * - Video source is screen cast, while audio source is not.\r\n * - Audio source is screen cast, while video source is disabled.\r\n * @param {Owt.Base.StreamConstraints} constraints\r\n */\r\n static createMediaStream(constraints) {\r\n if (\r\n typeof constraints !== \"object\" ||\r\n (!constraints.audio && !constraints.video)\r\n ) {\r\n return Promise.reject(new TypeError(\"Invalid constrains\"));\r\n }\r\n\r\n if (\r\n !isVideoConstrainsForScreenCast(constraints) &&\r\n typeof constraints.audio === \"object\" &&\r\n constraints.audio.source === AudioSourceInfo.SCREENCAST\r\n ) {\r\n return Promise.reject(\r\n new TypeError(\"Cannot share screen without video.\")\r\n );\r\n }\r\n\r\n if (\r\n isVideoConstrainsForScreenCast(constraints) &&\r\n !isChrome() &&\r\n !isFirefox()\r\n ) {\r\n return Promise.reject(\r\n new TypeError(\"Screen sharing only supports Chrome and Firefox.\")\r\n );\r\n }\r\n\r\n if (\r\n isVideoConstrainsForScreenCast(constraints) &&\r\n typeof constraints.audio === \"object\" &&\r\n constraints.audio.source !== AudioSourceInfo.SCREENCAST\r\n ) {\r\n return Promise.reject(\r\n new TypeError(\r\n \"Cannot capture video from screen cast while capture audio from\" +\r\n \" other source.\"\r\n )\r\n );\r\n } // Check and convert constraints.\r\n\r\n if (!constraints.audio && !constraints.video) {\r\n return Promise.reject(\r\n new TypeError(\"At least one of audio and video must be requested.\")\r\n );\r\n }\r\n\r\n const mediaConstraints = Object.create({});\r\n\r\n if (\r\n typeof constraints.audio === \"object\" &&\r\n constraints.audio.source === AudioSourceInfo.MIC\r\n ) {\r\n mediaConstraints.audio = Object.create({});\r\n\r\n if (isEdge()) {\r\n mediaConstraints.audio.deviceId = constraints.audio.deviceId;\r\n } else {\r\n mediaConstraints.audio.deviceId = {\r\n exact: constraints.audio.deviceId,\r\n };\r\n }\r\n } else {\r\n if (constraints.audio.source === AudioSourceInfo.SCREENCAST) {\r\n mediaConstraints.audio = true;\r\n } else {\r\n mediaConstraints.audio = constraints.audio;\r\n }\r\n }\r\n\r\n if (typeof constraints.video === \"object\") {\r\n mediaConstraints.video = Object.create({});\r\n\r\n if (typeof constraints.video.frameRate === \"number\") {\r\n mediaConstraints.video.frameRate = constraints.video.frameRate;\r\n }\r\n\r\n if (\r\n constraints.video.resolution &&\r\n constraints.video.resolution.width &&\r\n constraints.video.resolution.height\r\n ) {\r\n if (constraints.video.source === VideoSourceInfo.SCREENCAST) {\r\n mediaConstraints.video.width = constraints.video.resolution.width;\r\n mediaConstraints.video.height = constraints.video.resolution.height;\r\n } else {\r\n mediaConstraints.video.width = Object.create({});\r\n mediaConstraints.video.width.exact =\r\n constraints.video.resolution.width;\r\n mediaConstraints.video.height = Object.create({});\r\n mediaConstraints.video.height.exact =\r\n constraints.video.resolution.height;\r\n }\r\n }\r\n\r\n if (typeof constraints.video.deviceId === \"string\") {\r\n mediaConstraints.video.deviceId = {\r\n exact: constraints.video.deviceId,\r\n };\r\n }\r\n\r\n if (\r\n isFirefox() &&\r\n constraints.video.source === VideoSourceInfo.SCREENCAST\r\n ) {\r\n mediaConstraints.video.mediaSource = \"screen\";\r\n }\r\n } else {\r\n mediaConstraints.video = constraints.video;\r\n }\r\n\r\n if (isVideoConstrainsForScreenCast(constraints)) {\r\n return navigator.mediaDevices.getDisplayMedia(mediaConstraints);\r\n } else {\r\n return navigator.mediaDevices.getUserMedia(mediaConstraints);\r\n }\r\n }\r\n}\r\n\r\n// Copyright (C) <2018> Intel Corporation\r\n\r\nvar media = /*#__PURE__*/ Object.freeze({\r\n __proto__: null,\r\n AudioTrackConstraints: AudioTrackConstraints,\r\n VideoTrackConstraints: VideoTrackConstraints,\r\n StreamConstraints: StreamConstraints,\r\n MediaStreamFactory: MediaStreamFactory,\r\n AudioSourceInfo: AudioSourceInfo,\r\n VideoSourceInfo: VideoSourceInfo,\r\n TrackKind: TrackKind,\r\n Resolution: Resolution,\r\n});\r\n\r\nlet logger;\r\nlet errorLogger;\r\nfunction setLogger() {\r\n /*eslint-disable */\r\n logger = console.log;\r\n errorLogger = console.error;\r\n /*eslint-enable */\r\n}\r\nfunction log(message, ...optionalParams) {\r\n if (logger) {\r\n logger(message, ...optionalParams);\r\n }\r\n}\r\nfunction error(message, ...optionalParams) {\r\n if (errorLogger) {\r\n errorLogger(message, ...optionalParams);\r\n }\r\n}\r\n\r\nclass Event$1 {\r\n constructor(type) {\r\n this.listener = {};\r\n this.type = type | \"\";\r\n }\r\n\r\n on(event, fn) {\r\n if (!this.listener[event]) {\r\n this.listener[event] = [];\r\n }\r\n\r\n this.listener[event].push(fn);\r\n return true;\r\n }\r\n\r\n off(event, fn) {\r\n if (this.listener[event]) {\r\n var index = this.listener[event].indexOf(fn);\r\n\r\n if (index > -1) {\r\n this.listener[event].splice(index, 1);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n offAll() {\r\n this.listener = {};\r\n }\r\n\r\n dispatch(event, data) {\r\n if (this.listener[event]) {\r\n this.listener[event].map((each) => {\r\n each.apply(null, [data]);\r\n });\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nclass RTCEndpoint extends Event$1 {\r\n constructor(options) {\r\n super(\"RTCPusherPlayer\");\r\n this.TAG = \"[RTCPusherPlayer]\";\r\n let defaults = {\r\n element: \"\",\r\n // html video element\r\n debug: false,\r\n // if output debug log\r\n zlmsdpUrl: \"\",\r\n simulcast: false,\r\n useCamera: true,\r\n audioEnable: true,\r\n videoEnable: true,\r\n recvOnly: false,\r\n resolution: {\r\n w: 0,\r\n h: 0,\r\n },\r\n };\r\n this.options = Object.assign({}, defaults, options);\r\n\r\n if (this.options.debug) {\r\n setLogger();\r\n }\r\n\r\n this.e = {\r\n onicecandidate: this._onIceCandidate.bind(this),\r\n ontrack: this._onTrack.bind(this),\r\n onicecandidateerror: this._onIceCandidateError.bind(this),\r\n onconnectionstatechange: this._onconnectionstatechange.bind(this),\r\n };\r\n this._remoteStream = null;\r\n this._localStream = null;\r\n this.pc = new RTCPeerConnection(null);\r\n this.pc.onicecandidate = this.e.onicecandidate;\r\n this.pc.onicecandidateerror = this.e.onicecandidateerror;\r\n this.pc.ontrack = this.e.ontrack;\r\n this.pc.onconnectionstatechange = this.e.onconnectionstatechange;\r\n if (\r\n !this.options.recvOnly &&\r\n (this.options.audioEnable || this.options.videoEnable)\r\n )\r\n this.start();\r\n else this.receive();\r\n }\r\n\r\n receive() {\r\n const AudioTransceiverInit = {\r\n direction: \"recvonly\",\r\n sendEncodings: [],\r\n };\r\n const VideoTransceiverInit = {\r\n direction: \"recvonly\",\r\n sendEncodings: [],\r\n };\r\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\r\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\r\n this.pc\r\n .createOffer()\r\n .then((desc) => {\r\n log(this.TAG, \"offer:\", desc.sdp);\r\n this.pc.setLocalDescription(desc).then(() => {\r\n axios({\r\n method: \"post\",\r\n url: this.options.zlmsdpUrl,\r\n responseType: \"json\",\r\n data: desc.sdp,\r\n headers: {\r\n \"Content-Type\": \"text/plain;charset=utf-8\",\r\n },\r\n }).then((response) => {\r\n let ret = response.data; //JSON.parse(response.data);\r\n\r\n if (ret.code != 0) {\r\n // mean failed for offer/anwser exchange\r\n this.dispatch(Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED, ret);\r\n return;\r\n }\r\n\r\n let anwser = {};\r\n anwser.sdp = ret.sdp;\r\n anwser.type = \"answer\";\r\n log(this.TAG, \"answer:\", ret.sdp);\r\n this.pc\r\n .setRemoteDescription(anwser)\r\n .then(() => {\r\n log(this.TAG, \"set remote sucess\");\r\n })\r\n .catch((e) => {\r\n error(this.TAG, e);\r\n });\r\n });\r\n });\r\n })\r\n .catch((e) => {\r\n error(this.TAG, e);\r\n });\r\n }\r\n\r\n start() {\r\n let videoConstraints = false;\r\n let audioConstraints = false;\r\n\r\n if (this.options.useCamera) {\r\n if (this.options.videoEnable)\r\n videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\r\n if (this.options.audioEnable)\r\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\r\n } else {\r\n if (this.options.videoEnable) {\r\n videoConstraints = new VideoTrackConstraints(\r\n VideoSourceInfo.SCREENCAST\r\n );\r\n if (this.options.audioEnable)\r\n audioConstraints = new AudioTrackConstraints(\r\n AudioSourceInfo.SCREENCAST\r\n );\r\n } else {\r\n if (this.options.audioEnable)\r\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\r\n else {\r\n // error shared display media not only audio\r\n error(this.TAG, \"error paramter\");\r\n }\r\n }\r\n }\r\n\r\n if (\r\n this.options.resolution.w != 0 &&\r\n this.options.resolution.h != 0 &&\r\n typeof videoConstraints == \"object\"\r\n ) {\r\n videoConstraints.resolution = new Resolution(\r\n this.options.resolution.w,\r\n this.options.resolution.h\r\n );\r\n }\r\n\r\n MediaStreamFactory.createMediaStream(\r\n new StreamConstraints(audioConstraints, videoConstraints)\r\n )\r\n .then((stream) => {\r\n this._localStream = stream;\r\n this.dispatch(Events$1.WEBRTC_ON_LOCAL_STREAM, stream);\r\n const AudioTransceiverInit = {\r\n direction: \"sendrecv\",\r\n sendEncodings: [],\r\n };\r\n const VideoTransceiverInit = {\r\n direction: \"sendrecv\",\r\n sendEncodings: [],\r\n };\r\n\r\n if (this.options.simulcast && stream.getVideoTracks().length > 0) {\r\n VideoTransceiverInit.sendEncodings = [\r\n {\r\n rid: \"h\",\r\n active: true,\r\n maxBitrate: 1000000,\r\n },\r\n {\r\n rid: \"m\",\r\n active: true,\r\n maxBitrate: 500000,\r\n scaleResolutionDownBy: 2,\r\n },\r\n {\r\n rid: \"l\",\r\n active: true,\r\n maxBitrate: 200000,\r\n scaleResolutionDownBy: 4,\r\n },\r\n ];\r\n }\r\n\r\n if (stream.getAudioTracks().length > 0) {\r\n this.pc.addTransceiver(\r\n stream.getAudioTracks()[0],\r\n AudioTransceiverInit\r\n );\r\n } else {\r\n AudioTransceiverInit.direction = \"recvonly\";\r\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\r\n }\r\n\r\n if (stream.getVideoTracks().length > 0) {\r\n this.pc.addTransceiver(\r\n stream.getVideoTracks()[0],\r\n VideoTransceiverInit\r\n );\r\n } else {\r\n VideoTransceiverInit.direction = \"recvonly\";\r\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\r\n }\r\n /*\r\n stream.getTracks().forEach((track,idx)=>{\r\n debug.log(this.TAG,track);\r\n this.pc.addTrack(track);\r\n });\r\n */\r\n\r\n this.pc\r\n .createOffer()\r\n .then((desc) => {\r\n log(this.TAG, \"offer:\", desc.sdp);\r\n this.pc.setLocalDescription(desc).then(() => {\r\n axios({\r\n method: \"post\",\r\n url: this.options.zlmsdpUrl,\r\n responseType: \"json\",\r\n data: desc.sdp,\r\n headers: {\r\n \"Content-Type\": \"text/plain;charset=utf-8\",\r\n },\r\n }).then((response) => {\r\n let ret = response.data; //JSON.parse(response.data);\r\n\r\n if (ret.code != 0) {\r\n // mean failed for offer/anwser exchange\r\n this.dispatch(\r\n Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,\r\n ret\r\n );\r\n return;\r\n }\r\n\r\n let anwser = {};\r\n anwser.sdp = ret.sdp;\r\n anwser.type = \"answer\";\r\n log(this.TAG, \"answer:\", ret.sdp);\r\n this.pc\r\n .setRemoteDescription(anwser)\r\n .then(() => {\r\n log(this.TAG, \"set remote sucess\");\r\n })\r\n .catch((e) => {\r\n error(this.TAG, e);\r\n });\r\n });\r\n });\r\n })\r\n .catch((e) => {\r\n error(this.TAG, e);\r\n });\r\n })\r\n .catch((e) => {\r\n this.dispatch(Events$1.CAPTURE_STREAM_FAILED); //debug.error(this.TAG,e);\r\n }); //const offerOptions = {};\r\n\r\n /*\r\n if (typeof this.pc.addTransceiver === 'function') {\r\n // |direction| seems not working on Safari.\r\n this.pc.addTransceiver('audio', { direction: 'recvonly' });\r\n this.pc.addTransceiver('video', { direction: 'recvonly' });\r\n } else {\r\n offerOptions.offerToReceiveAudio = true;\r\n offerOptions.offerToReceiveVideo = true;\r\n }\r\n */\r\n }\r\n\r\n _onIceCandidate(event) {\r\n if (event.candidate) {\r\n log(\"Remote ICE candidate: \\n \" + event.candidate.candidate); // Send the candidate to the remote peer\r\n }\r\n }\r\n\r\n _onTrack(event) {\r\n if (this.options.element && event.streams && event.streams.length > 0) {\r\n this.options.element.srcObject = event.streams[0];\r\n this._remoteStream = event.streams[0];\r\n this.dispatch(Events$1.WEBRTC_ON_REMOTE_STREAMS, event);\r\n } else {\r\n error(\"element pararm is failed\");\r\n }\r\n }\r\n\r\n _onIceCandidateError(event) {\r\n this.dispatch(Events$1.WEBRTC_ICE_CANDIDATE_ERROR, event);\r\n }\r\n\r\n _onconnectionstatechange(event) {\r\n this.dispatch(\r\n Events$1.WEBRTC_ON_CONNECTION_STATE_CHANGE,\r\n this.pc.connectionState\r\n );\r\n }\r\n\r\n close() {\r\n if (this.pc) {\r\n this.pc.close();\r\n this.pc = null;\r\n }\r\n\r\n if (this.options) {\r\n this.options = null;\r\n }\r\n\r\n if (this._localStream) {\r\n this._localStream.getTracks().forEach((track, idx) => {\r\n track.stop();\r\n });\r\n }\r\n\r\n if (this._remoteStream) {\r\n this._remoteStream.getTracks().forEach((track, idx) => {\r\n track.stop();\r\n });\r\n }\r\n }\r\n\r\n get remoteStream() {\r\n return this._remoteStream;\r\n }\r\n\r\n get localStream() {\r\n return this._localStream;\r\n }\r\n}\r\n\r\nconst quickScan = [\r\n {\r\n label: \"4K(UHD)\",\r\n width: 3840,\r\n height: 2160,\r\n },\r\n {\r\n label: \"1080p(FHD)\",\r\n width: 1920,\r\n height: 1080,\r\n },\r\n {\r\n label: \"UXGA\",\r\n width: 1600,\r\n height: 1200,\r\n ratio: \"4:3\",\r\n },\r\n {\r\n label: \"720p(HD)\",\r\n width: 1280,\r\n height: 720,\r\n },\r\n {\r\n label: \"SVGA\",\r\n width: 800,\r\n height: 600,\r\n },\r\n {\r\n label: \"VGA\",\r\n width: 640,\r\n height: 480,\r\n },\r\n {\r\n label: \"360p(nHD)\",\r\n width: 640,\r\n height: 360,\r\n },\r\n {\r\n label: \"CIF\",\r\n width: 352,\r\n height: 288,\r\n },\r\n {\r\n label: \"QVGA\",\r\n width: 320,\r\n height: 240,\r\n },\r\n {\r\n label: \"QCIF\",\r\n width: 176,\r\n height: 144,\r\n },\r\n {\r\n label: \"QQVGA\",\r\n width: 160,\r\n height: 120,\r\n },\r\n];\r\nfunction GetSupportCameraResolutions$1() {\r\n return new Promise(function (resolve, reject) {\r\n let resolutions = [];\r\n let ok = 0;\r\n let err = 0;\r\n\r\n for (let i = 0; i < quickScan.length; ++i) {\r\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\r\n videoConstraints.resolution = new Resolution(\r\n quickScan[i].width,\r\n quickScan[i].height\r\n );\r\n MediaStreamFactory.createMediaStream(\r\n new StreamConstraints(false, videoConstraints)\r\n )\r\n .then((stream) => {\r\n resolutions.push(quickScan[i]);\r\n ok++;\r\n\r\n if (ok + err == quickScan.length) {\r\n resolve(resolutions);\r\n }\r\n })\r\n .catch((e) => {\r\n err++;\r\n\r\n if (ok + err == quickScan.length) {\r\n resolve(resolutions);\r\n }\r\n });\r\n }\r\n });\r\n}\r\nfunction GetAllScanResolution$1() {\r\n return quickScan;\r\n}\r\nfunction isSupportResolution$1(w, h) {\r\n return new Promise(function (resolve, reject) {\r\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\r\n videoConstraints.resolution = new Resolution(w, h);\r\n MediaStreamFactory.createMediaStream(\r\n new StreamConstraints(false, videoConstraints)\r\n )\r\n .then((stream) => {\r\n resolve();\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n });\r\n });\r\n}\r\nconst Events = Events$1;\r\nconst Media = media;\r\nconst Endpoint = RTCEndpoint;\r\nconst GetSupportCameraResolutions = GetSupportCameraResolutions$1;\r\nconst GetAllScanResolution = GetAllScanResolution$1;\r\nconst isSupportResolution = isSupportResolution$1;\r\n\r\nexport {\r\n Endpoint,\r\n Events,\r\n GetAllScanResolution,\r\n GetSupportCameraResolutions,\r\n Media,\r\n isSupportResolution,\r\n};\r\n//# sourceMappingURL=ZLMRTCClient.js.map\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["config","prefix","conf","classNames","ty","map","item","component","name","install","app","_context","slots","useSlots","i","default","utils","className","installComponent","getSlots","useVModel","props","key","emit","computed","get","set","value","active","type","String","Number","title","mode","titleClassName","itemClassName","menuList","HeaderMenu","defineComponent","setup","prop","menuLeft","slice","length","menuRight","HeaderMenuItem","emits","ref","watch","e","immediate","icon","HeaderMenuTitle","instance","axios","create","baseURL","timeout","headers","clientType","userId","getToken","sessionStorage","getItem","interceptors","request","use","method","paramsSerializer","params","JSON","stringify","Authorization","err","Promise","reject","response","res","resData","data","status","code","resolve","getByUuid","uuid","Events$1","WEBRTC_NOT_SUPPORT","WEBRTC_ICE_CANDIDATE_ERROR","WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED","WEBRTC_ON_REMOTE_STREAMS","WEBRTC_ON_LOCAL_STREAM","WEBRTC_ON_CONNECTION_STATE_CHANGE","CAPTURE_STREAM_FAILED","isFirefox","window","navigator","userAgent","match","isChrome","isEdge","AudioSourceInfo","MIC","SCREENCAST","FILE","MIXED","VideoSourceInfo","CAMERA","Resolution","constructor","width","height","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","pos","parseInt","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","prototype","nativeAddEventListener","addEventListener","nativeEventName","cb","apply","arguments","wrappedCallback","modifiedEvent","handleEvent","_eventMap","Map","nativeRemoveEventListener","removeEventListener","has","unwrappedCb","delete","size","Object","keys","defineProperty","enumerable","configurable","disableLog","bool","Error","disableWarnings","log$1","console","log","deprecated","oldMethod","newMethod","warn","detectBrowser","result","browser","version","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","mediaDevices","supportsUnifiedPlan","RTCRtpTransceiver","isObject","val","toString","call","compactObject","reduce","accumulator","isObj","isEmptyObject","undefined","assign","walkStats","stats","base","resultSet","id","forEach","endsWith","filterStats","track","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","push","trackStat","trackId","logging","shimGetUserMedia$3","browserDetails","constraintsToChrome_","c","mandatory","optional","cc","r","ideal","exact","min","max","oldname_","charAt","toUpperCase","oc","mix","advanced","concat","shimConstraints_","constraints","func","parse","audio","remap","obj","a","b","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","filter","d","kind","dev","find","some","label","toLowerCase","includes","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","message","constraint","constraintName","getUserMedia_","onSuccess","onError","getUserMedia","bind","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","stop","DOMException","shimGetDisplayMedia$2","getSourceId","error","getDisplayMedia","sourceId","widthSpecified","heightSpecified","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxWidth","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack$1","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","event","Event","transceiver","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","indexOf","splice","origAddStream","addStream","origRemoveStream","removeStream","s","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","t","oldStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","args","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection$2","RTCIceCandidate","fixNegotiationNeeded","target","getConfiguration","sdpSemantics","chromeShim","freeze","__proto__","shimOnTrack","shimPeerConnection","shimGetUserMedia","shimGetDisplayMedia","filterIceServers$1","iceServers","edgeVersion","hasTurn","server","urls","url","isString","validTurn","startsWith","createCommonjsModule","fn","module","exports","SDPUtils","generateIdentifier","Math","random","substr","localCName","splitLines","blob","trim","split","line","splitSections","parts","part","index","getDescription","sections","getMediaSections","shift","matchPrefix","parseCandidate","substring","candidate","foundation","protocol","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","join","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","direction","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","j","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","isNaN","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","user","writeMediaSection","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","msid","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","fixStatsType","inboundrtp","outboundrtp","candidatepair","dtlsRole","sdp$1","_initialTrackId","filterIceServers","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","action","offer","answer","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidAccessError","TypeError","OperationError","rtcpeerconnection","addTrackToStreamAndFireEvent","MediaStreamTrackEvent","removeTrackFromStreamAndFireEvent","fireAddTrack","trackEvent","setTimeout","_dispatchEvent","_eventTarget","document","createDocumentFragment","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceConnectionState","connectionState","iceGatheringState","usingBundle","bundlePolicy","rtcpMuxPolicy","iceTransportPolicy","_iceGatherers","iceCandidatePoolSize","gatherPolicy","_config","transceivers","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","ondatachannel","_emitGatheringStateChange","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","transports","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clone","clonedTrack","enabled","_createIceGatherer","sdpMLineIndex","writable","bufferedCandidateEvents","bufferCandidates","end","state","_gather","onlocalcandidate","evt","sdpMid","cand","serializedCandidate","toJSON","complete","every","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","onerror","_disposeIceAndDtlsTransports","_transceive","send","recv","encodings","p","receive","isIceLite","rejected","remoteIceParameters","remoteDtlsParameters","start","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","getCapabilities","isNewTrack","nativeTrack","hasRtx","sid","close","newState","states","new","closed","checking","connected","completed","disconnected","failed","connecting","createOffer","numAudioTracks","numVideoTracks","offerOptions","offerToReceiveAudio","offerToReceiveVideo","remoteCodec","hdrExt","remoteExtensions","rHdrExt","getLocalCandidates","createAnswer","mediaSectionsInOffer","localTrack","addIceCandidate","candidateString","senderOrReceiver","promises","all","allStats","results","ortcObjects","ortcObjectName","nativeGetstats","nativeStats","mapStats","methods","shimGetUserMedia$2","catch","shimGetDisplayMedia$1","shimPeerConnection$1","origMSTEnabled","ev","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimReplaceTrack","replaceTrack","setTrack","edgeShim","shimGetUserMedia$1","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","test","rid","parseFloat","scaleResolutionDownBy","RangeError","maxFramerate","getParameters","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","firefoxShim","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","successCallback","failureCallback","options","promise","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","hasOwnProperty","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","audioTransceiver","getTransceivers","setDirection","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","safariShim","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","byteLength","readyState","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","commonShim","adapterFactory","shimChrome","shimFirefox","shimEdge","shimSafari","adapter","browserShim","AudioTrackConstraints","source","values","v","VideoTrackConstraints","resolution","StreamConstraints","audioConstraints","videoConstraints","isVideoConstrainsForScreenCast","MediaStreamFactory","createMediaStream","mediaConstraints","logger","errorLogger","setLogger","optionalParams","Event$1","listener","on","off","offAll","dispatch","each","RTCEndpoint","TAG","defaults","element","debug","zlmsdpUrl","simulcast","useCamera","audioEnable","videoEnable","recvOnly","w","h","_onIceCandidate","_onTrack","onicecandidateerror","_onIceCandidateError","_remoteStream","_localStream","AudioTransceiverInit","VideoTransceiverInit","responseType","ret","anwser","srcObject","remoteStream","localStream","Events","Endpoint","appName","WebRtcMt","opt","init","p_player","playerMap","streamMap","mediaServerAddrMap","endpointConfig","createRtspUrl","plays","cameraUserName","cameraPwd","cameraIp","cameraRtspPort","cameraChannel","cameraStream","videoElm","mediaServerAddr","addRtspProxyUrl","hkNvrRtsp","sdpUrl","rtsp","createVideo","startPlay","text","info","stopPlay","player","clear","playEvent","rePlay","DISCONNECTED","LOST_SERVER","play","EndpointConfig","getElementById","camera","cameraUuid","timer","Date","getTime","VideoPlayer","_prop","streamType","webrtcTemplateMerged","replaceAll","mediaServerPo","pass","rtspPort","deep","onUnmounted","headerMenu","headerMenuItem","headerMenuTitle","videoPlayer","About","summary","hardware","software","database","manualUrl","context","reactive","showContent","loading","confirm","cancel","useTableList","getData","listProp","tableList","isLoading","total","refresh","debounce","totalCount","currPage","handlePageChange","page","getUser","corpId","token","userName","isPlainObject","omit","msg","getUserList","getRoleList","getEmployeeList","insertOneUserRecord","post","editUserRecord","put","resetPassword","changePassword","detail","deleteUserById","getEmployeeDetailInfo","employeeId","useModalVisibleControl","isDialogVisible","tableRow","handleOpenDialog","record","encodeStr","str","btoa","getRequiredRule","required","getMaxRule","UserProfileDialog","visible","Boolean","urlMap","inject","isVisible","profile","nextTick","api","employeeDetail","display","textAlign","sex","age","nativePlace","identityCard","hiredate","mobile","bossName","jobPostNames","footer","_func","flag","SearchSelect","Array","getUrl","extParams","valuePorp","excludeValues","attrs","modelValue","optionList","isFetching","lastFetchId","getOptionList","isNil","fetchId","keyword","curr","prev","isEqual","isArray","UpdateUserDialog","onRefresh","Function","formRef","form","cloneDeep","roleIds","resetFields","employeeList","modalTitle","isView","isProfileShow","handleProfileClick","handleResetPassword","Modal","content","onOk","resetPass","success","validatePassword","rule","checkPass","validateCheckPass","passWord","handleCommit","validate","add","update","span","employeeName","validator","roleTypeNames","phone","zhixin","wechat","mail","DEFAULT_URL","list","roleList","column","dataIndex","customRender","UserManager","provide","formState","keyWord","pageNum","pageSize","handleSubmit","isAddDialogShow","handleAddClick","isViewDialogShow","viewUserRecord","handleView","row","isEditDialogShow","handleEditClick","isDescDialogShow","descUserRecord","handleDecs","preventDefault","handleDeleteUser","marginBottom","resolveComponent","current","editFlg","deleteFlg","getRoleListByPager","switchRoleEnableStatus","insertRole","getRoleTreeEdit","getRoleTree","deleteRoleById","roleTypeId","transformMenuTree","treeData","softSysId","softSysName","subList","UpdateRoleDialog","checkedPermissionList","addPermission","editPermission","roleMenuVoList","checkedMenuIds","validatePermission","save","roleCode","roleTypeName","roleDesc","overflowY","children","switchStatus","columns","RoleManager","handleSwitchEnable","enable","viewRoleRecord","handleViewClick","editRoleRecord","handleDeleteClick","userCount","operation","emitterMap","useBus","emitter","mitt","getMenuTreeList","insertMenuRecord","editMenuRecord","deleteMenuById","menuId","sortMenu","uploadJSONFile","file","formData","FormData","append","ContentType","useProxy","getCurrentInstance","proxy","findById","childProp","dataList","node","removeDateProp","getParentById","sub","CommonTree","downLoadName","onSelect","onCopy","onDelete","onEdit","onAdd","onDrop","isJSONOperation","onJSONUploadClick","bus","searchText","originData","getTreeData","callback","selectedKeys","handleSelectNode","selected","_refresh","_reselect","parent","handleDownload","Blob","URL","createObjectURL","aEl","createElement","href","download","click","handleCopy","handleEdit","handleAddNodeClick","handleDelete","isDraggable","handleDrop","dropKey","dragKey","dragNode","dropPos","dropPosition","loop","dragObj","arr","dropToGap","unshift","expanded","ar","_item","setSort","sort","ind","handleRefresh","onMounted","onBeforeUnmount","padding","showLeafIcon","isSystem","dataRef","float","stopPropagation","valid","iconsList","CiOutlined","UpOutlined","ApiOutlined","EyeOutlined","KeyOutlined","IconSelect","selectValue","UpdateMenuDialog","isSystemParent","level","parentId","UploadJSONDialog","fileList","upload","originFileObj","onCancle","render","MenuSelectTree","treeRef","tree","isAddNodeDialogShow","addNodeParent","isUploadDialogShow","handleUploadClick","Dynamicicon","createVNode","icons","MenuDetail","isEdit","startEdit","handleSave","_edit","MenuManager","detailRef","currSelectNode","handleNodeSelect","handleNodeEdit","getPostList","switchPostEnable","getDepList","orgId","departmentList","updatePostRecord","insertPostRecord","deletePostById","jobPostId","useModalTitle","moduleName","useModalForm","getRecord","transformForm","cloneRecord","UpdatePostDialog","depList","createDt","depName","depId","remark","PostManager","viewRecord","editRecord","employeeCount","warning","checked","justifyContent","onChange","getTeamListByPage","switchEnableTeam","departmentId","edidTeamRecord","insertTeam","deleteTeamById","memberIds","isClean","empList","leaderId","postList","jobPostName","memberNames","leaderName","TeamManager","getDepData","insertDepRecord","updateDepRecord","deleteDepById","getDepEmployeeSelectList","ruleType","sortDepList","getDetail","getEmployeeDetail","insetEmployee","updateEmployee","deleteEmployeeById","UpdateEmployeeDialog","empDetail","jobPostIds","dayjs","format","addEmp","updateEmp","style","pattern","date","isAfter","allowClear","empSelect","bossId","postSelect","EmployeeTable","isValid","isTopLevel","deleteEmp","UpdateDepDialog","filteredDepList","fDep","dep","isEmpty","parentName","DepTree","handleSelect","isAddDepDialogShow","handleAddDepClick","addDepParent","isEditDepDialogShow","handleEditDepClick","editDepRecord","hanldeDeleteDep","hanldeDrop","DepManager","currDep","parentDepName","handleSelectDep","getList","getHead","searchList","LogManager","systemType","moduleType","operateType","recordType","startTime","endTime","time","systemTypeList","moduleTypeList","operateTypeList","recordTypeList","resp","handleReset","submit","startOf","endOf","contentText","createTime","headName","margin","getGroupList","getParamDefineList","groupId","batchSaveParamsValue","ProFormItem","paramDefine","paramDefineValue","isSwitch","inputValue","handleValueChange","Filed","InputNumber","Switch","Select","Input","rules","maxValue","minValue","limitLength","regularExpression","inputProps","unit","writeable","disabled","DynamicForm","urmMap","formDescList","getFormDescList","define","paramDefineValueVoList","valueDefineMap","handleFieldChange","_confirm","valueDefine","_update","CollapseContainer","defaultCollapse","isOpen","TabItem","tabId","groupFormRef","cellFormRef","onBeforeUpdate","groupList","getGoupAndCellParams","groupRes","cellPromises","_children","resList","allFormRef","validateList","formList","updateFormList","ins","cell","ParamManager","tabs","getTabs","Editpasswordform","formModel","checkPassWord","_validate","_reset","oldPassWord","updatePass","PersonalSetting","passwordFormRef","canEdit","copyForm","passwordForm","handleSavePassword","handleCancelClick","clearValidate","comps","pageComponents","components"],"mappings":"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"}
|