@nethesis/phone-island 1.0.14 → 1.0.15-dev.1

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.
Files changed (732) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/App.js.map +1 -1
  3. package/dist/_virtual/index8.js +1 -1
  4. package/dist/_virtual/index9.js +1 -1
  5. package/dist/components/AlertGuard.js +1 -1
  6. package/dist/components/AlertGuard.js.map +1 -1
  7. package/dist/components/AlertView/index.js +1 -1
  8. package/dist/components/AlertView/index.js.map +1 -1
  9. package/dist/components/AudioBars.js +1 -1
  10. package/dist/components/AudioBars.js.map +1 -1
  11. package/dist/components/AudioPlayerView/Avatar.js +1 -1
  12. package/dist/components/AudioPlayerView/Avatar.js.map +1 -1
  13. package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
  14. package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
  15. package/dist/components/AudioPlayerView/Progress.js +1 -1
  16. package/dist/components/AudioPlayerView/Progress.js.map +1 -1
  17. package/dist/components/AudioPlayerView/index.js +1 -1
  18. package/dist/components/AudioPlayerView/index.js.map +1 -1
  19. package/dist/components/AvatarGroup.js +1 -1
  20. package/dist/components/AvatarGroup.js.map +1 -1
  21. package/dist/components/CallView/Actions.js +1 -1
  22. package/dist/components/CallView/Actions.js.map +1 -1
  23. package/dist/components/CallView/Avatar.js +1 -1
  24. package/dist/components/CallView/Avatar.js.map +1 -1
  25. package/dist/components/CallView/BackCall.js +1 -1
  26. package/dist/components/CallView/BackCall.js.map +1 -1
  27. package/dist/components/CallView/DeviceIcon.js +2 -0
  28. package/dist/components/CallView/DeviceIcon.js.map +1 -0
  29. package/dist/components/CallView/DisplayName.js +1 -1
  30. package/dist/components/CallView/DisplayName.js.map +1 -1
  31. package/dist/components/CallView/Number.js +1 -1
  32. package/dist/components/CallView/Number.js.map +1 -1
  33. package/dist/components/CallView/NumberPopover.js +2 -0
  34. package/dist/components/CallView/NumberPopover.js.map +1 -0
  35. package/dist/components/CallView/Timer.js +1 -1
  36. package/dist/components/CallView/Timer.js.map +1 -1
  37. package/dist/components/CallView/index.js +1 -1
  38. package/dist/components/CallView/index.js.map +1 -1
  39. package/dist/components/ConferenceView/ConferenceUsersList.js +1 -1
  40. package/dist/components/ConferenceView/ConferenceUsersList.js.map +1 -1
  41. package/dist/components/ConferenceView/index.js +1 -1
  42. package/dist/components/ConferenceView/index.js.map +1 -1
  43. package/dist/components/ContactView/ContactListView.js +1 -1
  44. package/dist/components/ContactView/ContactListView.js.map +1 -1
  45. package/dist/components/ContactView/ListAvatar.js +1 -1
  46. package/dist/components/ContactView/ListAvatar.js.map +1 -1
  47. package/dist/components/ContactView/SelectContactNumberView.js +1 -1
  48. package/dist/components/ContactView/SelectContactNumberView.js.map +1 -1
  49. package/dist/components/ContactView/TransferActions.js +1 -1
  50. package/dist/components/ContactView/TransferActions.js.map +1 -1
  51. package/dist/components/CustomThemedTooltip.js +1 -1
  52. package/dist/components/CustomThemedTooltip.js.map +1 -1
  53. package/dist/components/Dropdown.js +1 -1
  54. package/dist/components/Dropdown.js.map +1 -1
  55. package/dist/components/GenericAvatar.js +1 -1
  56. package/dist/components/GenericAvatar.js.map +1 -1
  57. package/dist/components/Hangup.js +1 -1
  58. package/dist/components/Hangup.js.map +1 -1
  59. package/dist/components/Island.js +1 -1
  60. package/dist/components/Island.js.map +1 -1
  61. package/dist/components/IslandDrag.js +1 -1
  62. package/dist/components/IslandDrag.js.map +1 -1
  63. package/dist/components/IslandMotion.js +1 -1
  64. package/dist/components/IslandMotion.js.map +1 -1
  65. package/dist/components/KeypadView/Actions.js +1 -1
  66. package/dist/components/KeypadView/Actions.js.map +1 -1
  67. package/dist/components/KeypadView/index.js +1 -1
  68. package/dist/components/KeypadView/index.js.map +1 -1
  69. package/dist/components/OperatorBusyView/index.js +1 -1
  70. package/dist/components/OperatorBusyView/index.js.map +1 -1
  71. package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js +1 -1
  72. package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js.map +1 -1
  73. package/dist/components/PhysicalRecorderView/index.js +1 -1
  74. package/dist/components/PhysicalRecorderView/index.js.map +1 -1
  75. package/dist/components/RecorderView/Actions.js +1 -1
  76. package/dist/components/RecorderView/Actions.js.map +1 -1
  77. package/dist/components/RecorderView/Bar.js +1 -1
  78. package/dist/components/RecorderView/Bar.js.map +1 -1
  79. package/dist/components/RecorderView/BarsGroup.js +1 -1
  80. package/dist/components/RecorderView/BarsGroup.js.map +1 -1
  81. package/dist/components/RecorderView/Timer.js +1 -1
  82. package/dist/components/RecorderView/Timer.js.map +1 -1
  83. package/dist/components/RecorderView/index.js +1 -1
  84. package/dist/components/RecorderView/index.js.map +1 -1
  85. package/dist/components/RestAPI.js +1 -1
  86. package/dist/components/RestAPI.js.map +1 -1
  87. package/dist/components/SettingsView/AudioView.js +1 -1
  88. package/dist/components/SettingsView/AudioView.js.map +1 -1
  89. package/dist/components/SettingsView/MicrophoneView.js +1 -1
  90. package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
  91. package/dist/components/SettingsView/SettingsHeader.js +1 -1
  92. package/dist/components/SettingsView/SettingsHeader.js.map +1 -1
  93. package/dist/components/SettingsView/ThemeView.js +1 -1
  94. package/dist/components/SettingsView/ThemeView.js.map +1 -1
  95. package/dist/components/SettingsView/VideoInputView.js +1 -1
  96. package/dist/components/SettingsView/VideoInputView.js.map +1 -1
  97. package/dist/components/SettingsView/index.js +1 -1
  98. package/dist/components/SettingsView/index.js.map +1 -1
  99. package/dist/components/SideView/SideView.js +1 -1
  100. package/dist/components/SideView/SideView.js.map +1 -1
  101. package/dist/components/SideView/components/SideViewButton.js +1 -1
  102. package/dist/components/SideView/components/SideViewButton.js.map +1 -1
  103. package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
  104. package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
  105. package/dist/components/Socket.js +1 -1
  106. package/dist/components/Socket.js.map +1 -1
  107. package/dist/components/StreamingAnswerView/index.js +1 -1
  108. package/dist/components/StreamingAnswerView/index.js.map +1 -1
  109. package/dist/components/StreamingImage/index.js +1 -1
  110. package/dist/components/StreamingImage/index.js.map +1 -1
  111. package/dist/components/SwitchDeviceView/index.js +1 -1
  112. package/dist/components/SwitchDeviceView/index.js.map +1 -1
  113. package/dist/components/SwitchInputView/DropdownContent.js +1 -1
  114. package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
  115. package/dist/components/SwitchInputView/Index.js +1 -1
  116. package/dist/components/TextScroll.js +1 -1
  117. package/dist/components/TextScroll.js.map +1 -1
  118. package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
  119. package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
  120. package/dist/components/TransferButton.js +1 -1
  121. package/dist/components/TransferButton.js.map +1 -1
  122. package/dist/components/VideoStreamingEmptyState/index.js +1 -1
  123. package/dist/components/VideoStreamingEmptyState/index.js.map +1 -1
  124. package/dist/components/VideoStreamingSkeleton/index.js +1 -1
  125. package/dist/components/VideoStreamingSkeleton/index.js.map +1 -1
  126. package/dist/components/VideoView/index.js +1 -1
  127. package/dist/components/VideoView/index.js.map +1 -1
  128. package/dist/components/ViewsTransition.js +1 -1
  129. package/dist/components/ViewsTransition.js.map +1 -1
  130. package/dist/components/WebRTC.js +1 -1
  131. package/dist/components/WebRTC.js.map +1 -1
  132. package/dist/events/CallEvents.js +1 -1
  133. package/dist/events/CallEvents.js.map +1 -1
  134. package/dist/events/PlayerEvents.js +1 -1
  135. package/dist/events/PlayerEvents.js.map +1 -1
  136. package/dist/events/RecorderEvents.js +1 -1
  137. package/dist/events/RecorderEvents.js.map +1 -1
  138. package/dist/index.css +1 -1
  139. package/dist/lib/avatars/avatars.js +1 -1
  140. package/dist/lib/avatars/avatars.js.map +1 -1
  141. package/dist/lib/devices/devices.js +1 -1
  142. package/dist/lib/devices/devices.js.map +1 -1
  143. package/dist/lib/phone/audio.js +1 -1
  144. package/dist/lib/phone/audio.js.map +1 -1
  145. package/dist/lib/phone/call.js +1 -1
  146. package/dist/lib/phone/call.js.map +1 -1
  147. package/dist/lib/phone/conversation.js +1 -1
  148. package/dist/lib/phone/conversation.js.map +1 -1
  149. package/dist/lib/phone/counterpartDevice.js +2 -0
  150. package/dist/lib/phone/counterpartDevice.js.map +1 -0
  151. package/dist/lib/phone/queue.js +1 -1
  152. package/dist/lib/phone/queue.js.map +1 -1
  153. package/dist/lib/player/audio.js +1 -1
  154. package/dist/lib/player/audio.js.map +1 -1
  155. package/dist/lib/user/extensions.js +1 -1
  156. package/dist/lib/user/extensions.js.map +1 -1
  157. package/dist/lib/webrtc/janus.js +1 -1
  158. package/dist/lib/webrtc/janus.js.map +1 -1
  159. package/dist/lib/webrtc/messages.js +1 -1
  160. package/dist/lib/webrtc/messages.js.map +1 -1
  161. package/dist/models/conference.js +1 -1
  162. package/dist/models/conference.js.map +1 -1
  163. package/dist/models/currentCall.js +1 -1
  164. package/dist/models/currentCall.js.map +1 -1
  165. package/dist/models/mediaDevices.js +1 -1
  166. package/dist/models/mediaDevices.js.map +1 -1
  167. package/dist/models/player.js +1 -1
  168. package/dist/models/player.js.map +1 -1
  169. package/dist/models/queue.js +1 -1
  170. package/dist/models/queue.js.map +1 -1
  171. package/dist/models/ringtones.js +1 -1
  172. package/dist/models/ringtones.js.map +1 -1
  173. package/dist/models/streaming.js +1 -1
  174. package/dist/models/streaming.js.map +1 -1
  175. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -1
  176. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +1 -1
  177. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
  178. package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -1
  179. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
  180. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
  181. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -1
  182. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -1
  183. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +1 -1
  184. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
  185. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +1 -1
  186. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -1
  187. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +1 -1
  188. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -1
  189. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +1 -1
  190. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -1
  191. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js +1 -1
  192. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js.map +1 -1
  193. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js +1 -1
  194. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js.map +1 -1
  195. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +1 -1
  196. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -1
  197. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +1 -1
  198. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -1
  199. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +1 -1
  200. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -1
  201. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js +3 -3
  202. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js.map +1 -1
  203. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
  204. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
  205. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js +2 -0
  206. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js.map +1 -0
  207. package/dist/node_modules/@headlessui/react/dist/components/description/description.js +1 -1
  208. package/dist/node_modules/@headlessui/react/dist/components/description/description.js.map +1 -1
  209. package/dist/node_modules/@headlessui/react/dist/components/label/label.js +1 -1
  210. package/dist/node_modules/@headlessui/react/dist/components/label/label.js.map +1 -1
  211. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js +1 -1
  212. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js.map +1 -1
  213. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js +1 -1
  214. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js.map +1 -1
  215. package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js +1 -1
  216. package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js.map +1 -1
  217. package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js +1 -1
  218. package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js.map +1 -1
  219. package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js +1 -1
  220. package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js.map +1 -1
  221. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js +1 -1
  222. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
  223. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js +1 -1
  224. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js.map +1 -1
  225. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js +1 -1
  226. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js.map +1 -1
  227. package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js +1 -1
  228. package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js.map +1 -1
  229. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +1 -1
  230. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -1
  231. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +1 -1
  232. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -1
  233. package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js +1 -1
  234. package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js.map +1 -1
  235. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +1 -1
  236. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -1
  237. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +1 -1
  238. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -1
  239. package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js +1 -1
  240. package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js.map +1 -1
  241. package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js +1 -1
  242. package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js.map +1 -1
  243. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +1 -1
  244. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -1
  245. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js +1 -1
  246. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js.map +1 -1
  247. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -1
  248. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +1 -1
  249. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -1
  250. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js +1 -1
  251. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js.map +1 -1
  252. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js +1 -1
  253. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js.map +1 -1
  254. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +1 -1
  255. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -1
  256. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +1 -1
  257. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -1
  258. package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js +1 -1
  259. package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js.map +1 -1
  260. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +1 -1
  261. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -1
  262. package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js +1 -1
  263. package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js.map +1 -1
  264. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +1 -1
  265. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
  266. package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js +1 -1
  267. package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js.map +1 -1
  268. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +1 -1
  269. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -1
  270. package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js +1 -1
  271. package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js.map +1 -1
  272. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +1 -1
  273. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
  274. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +1 -1
  275. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -1
  276. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +1 -1
  277. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -1
  278. package/dist/node_modules/@headlessui/react/dist/internal/disabled.js.map +1 -1
  279. package/dist/node_modules/@headlessui/react/dist/internal/floating.js +1 -1
  280. package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
  281. package/dist/node_modules/@headlessui/react/dist/internal/id.js.map +1 -1
  282. package/dist/node_modules/@headlessui/react/dist/machine.js +1 -1
  283. package/dist/node_modules/@headlessui/react/dist/machine.js.map +1 -1
  284. package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js +1 -1
  285. package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js.map +1 -1
  286. package/dist/node_modules/@headlessui/react/dist/react-glue.js +1 -1
  287. package/dist/node_modules/@headlessui/react/dist/react-glue.js.map +1 -1
  288. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -1
  289. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +1 -1
  290. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -1
  291. package/dist/node_modules/@headlessui/react/dist/utils/default-map.js.map +1 -1
  292. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +1 -1
  293. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -1
  294. package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js +1 -1
  295. package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js.map +1 -1
  296. package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -1
  297. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +1 -1
  298. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -1
  299. package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js +1 -1
  300. package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js.map +1 -1
  301. package/dist/node_modules/@headlessui/react/dist/utils/match.js +1 -1
  302. package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -1
  303. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +1 -1
  304. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -1
  305. package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -1
  306. package/dist/node_modules/@headlessui/react/dist/utils/render.js +1 -1
  307. package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -1
  308. package/dist/node_modules/@headlessui/react/dist/utils/store.js +1 -1
  309. package/dist/node_modules/@headlessui/react/dist/utils/store.js.map +1 -1
  310. package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js +1 -1
  311. package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js.map +1 -1
  312. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js +1 -1
  313. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js.map +1 -1
  314. package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js +1 -1
  315. package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js.map +1 -1
  316. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js +1 -1
  317. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js.map +1 -1
  318. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js +1 -1
  319. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js.map +1 -1
  320. package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js +1 -1
  321. package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js.map +1 -1
  322. package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js +1 -1
  323. package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js.map +1 -1
  324. package/dist/node_modules/@react-aria/utils/dist/domHelpers.mjs.js.map +1 -1
  325. package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js +1 -1
  326. package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js.map +1 -1
  327. package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js +1 -1
  328. package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js.map +1 -1
  329. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js +1 -1
  330. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js.map +1 -1
  331. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js +1 -1
  332. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js.map +1 -1
  333. package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js +1 -1
  334. package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js.map +1 -1
  335. package/dist/node_modules/@rematch/core/dist/core.esm.js +1 -1
  336. package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -1
  337. package/dist/node_modules/@rematch/immer/dist/immer.esm.js +1 -1
  338. package/dist/node_modules/@rematch/immer/dist/immer.esm.js.map +1 -1
  339. package/dist/node_modules/@rematch/select/dist/select.esm.js +1 -1
  340. package/dist/node_modules/@rematch/select/dist/select.esm.js.map +1 -1
  341. package/dist/node_modules/bowser/es5.js +1 -1
  342. package/dist/node_modules/bowser/es5.js.map +1 -1
  343. package/dist/node_modules/ebml-block/index.js +1 -1
  344. package/dist/node_modules/ebml-block/index.js.map +1 -1
  345. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +1 -1
  346. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -1
  347. package/dist/node_modules/engine.io-client/build/esm/globals.js +2 -0
  348. package/dist/node_modules/engine.io-client/build/esm/globals.js.map +1 -0
  349. package/dist/node_modules/engine.io-client/build/esm/socket.js +1 -1
  350. package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -1
  351. package/dist/node_modules/engine.io-client/build/esm/transport.js +1 -1
  352. package/dist/node_modules/engine.io-client/build/esm/transport.js.map +1 -1
  353. package/dist/node_modules/engine.io-client/build/esm/transports/index.js +1 -1
  354. package/dist/node_modules/engine.io-client/build/esm/transports/index.js.map +1 -1
  355. package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +2 -0
  356. package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js.map +1 -0
  357. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +1 -1
  358. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -1
  359. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +1 -1
  360. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -1
  361. package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js +1 -1
  362. package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js.map +1 -1
  363. package/dist/node_modules/engine.io-client/build/esm/util.js +1 -1
  364. package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -1
  365. package/dist/node_modules/engine.io-parser/build/esm/commons.js +1 -1
  366. package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -1
  367. package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -1
  368. package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -1
  369. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +1 -1
  370. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -1
  371. package/dist/node_modules/engine.io-parser/build/esm/index.js +1 -1
  372. package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -1
  373. package/dist/node_modules/events/events.js +1 -1
  374. package/dist/node_modules/events/events.js.map +1 -1
  375. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
  376. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
  377. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
  378. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
  379. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
  380. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
  381. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
  382. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
  383. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js +1 -1
  384. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -1
  385. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js +1 -1
  386. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
  387. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js +1 -1
  388. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -1
  389. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +1 -1
  390. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -1
  391. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +1 -1
  392. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
  393. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +1 -1
  394. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -1
  395. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
  396. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
  397. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -1
  398. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
  399. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
  400. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
  401. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
  402. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
  403. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
  404. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
  405. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
  406. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
  407. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
  408. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +1 -1
  409. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -1
  410. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -1
  411. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +1 -1
  412. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -1
  413. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
  414. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
  415. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -1
  416. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +1 -1
  417. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -1
  418. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
  419. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
  420. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +1 -1
  421. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -1
  422. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
  423. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
  424. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -1
  425. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js +1 -1
  426. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js.map +1 -1
  427. package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
  428. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +1 -1
  429. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +1 -1
  430. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  431. package/dist/node_modules/i18next/dist/esm/i18next.js +1 -1
  432. package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -1
  433. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +1 -1
  434. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -1
  435. package/dist/node_modules/immer/dist/immer.esm.mjs.js +1 -1
  436. package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -1
  437. package/dist/node_modules/int64-buffer/int64-buffer.js.map +1 -1
  438. package/dist/node_modules/js-base64/base64.mjs.js +1 -1
  439. package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
  440. package/dist/node_modules/mic-check/lib/index.js.map +1 -1
  441. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +1 -1
  442. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -1
  443. package/dist/node_modules/moment/moment.js +1 -1
  444. package/dist/node_modules/moment/moment.js.map +1 -1
  445. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
  446. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
  447. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
  448. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
  449. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
  450. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -1
  451. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
  452. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +1 -1
  453. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
  454. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +1 -1
  455. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -1
  456. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +1 -1
  457. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -1
  458. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +1 -1
  459. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -1
  460. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +1 -1
  461. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -1
  462. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js +1 -1
  463. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -1
  464. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
  465. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
  466. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
  467. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
  468. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js +1 -1
  469. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -1
  470. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
  471. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
  472. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
  473. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
  474. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js +1 -1
  475. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js.map +1 -1
  476. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js.map +1 -1
  477. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -1
  478. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js +1 -1
  479. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -1
  480. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
  481. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
  482. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +1 -1
  483. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +1 -1
  484. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
  485. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
  486. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
  487. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
  488. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -1
  489. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
  490. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
  491. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
  492. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
  493. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +1 -1
  494. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
  495. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +1 -1
  496. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -1
  497. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -1
  498. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +1 -1
  499. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -1
  500. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js +1 -1
  501. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js.map +1 -1
  502. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -1
  503. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -1
  504. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +1 -1
  505. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -1
  506. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js +1 -1
  507. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -1
  508. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
  509. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js +1 -1
  510. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -1
  511. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +1 -1
  512. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -1
  513. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +1 -1
  514. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -1
  515. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +1 -1
  516. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -1
  517. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js +1 -1
  518. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -1
  519. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js +1 -1
  520. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js.map +1 -1
  521. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js +1 -1
  522. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js.map +1 -1
  523. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js +1 -1
  524. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js.map +1 -1
  525. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -1
  526. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
  527. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
  528. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
  529. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
  530. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
  531. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
  532. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
  533. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js +1 -1
  534. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -1
  535. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +1 -1
  536. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -1
  537. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
  538. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
  539. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -1
  540. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -1
  541. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -1
  542. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -1
  543. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -1
  544. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
  545. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
  546. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js +1 -1
  547. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js.map +1 -1
  548. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +1 -1
  549. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
  550. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
  551. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
  552. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +1 -1
  553. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -1
  554. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -1
  555. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  556. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  557. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -1
  558. package/dist/node_modules/react-i18next/dist/es/context.js +1 -1
  559. package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -1
  560. package/dist/node_modules/react-i18next/dist/es/defaults.js +1 -1
  561. package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -1
  562. package/dist/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  563. package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -1
  564. package/dist/node_modules/react-i18next/dist/es/utils.js +1 -1
  565. package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -1
  566. package/dist/node_modules/react-moment/dist/index.js +1 -1
  567. package/dist/node_modules/react-moment/dist/index.js.map +1 -1
  568. package/dist/node_modules/react-redux/es/components/Context.js +1 -1
  569. package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
  570. package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
  571. package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
  572. package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
  573. package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
  574. package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
  575. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
  576. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
  577. package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -1
  578. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  579. package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
  580. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js +1 -1
  581. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js.map +1 -1
  582. package/dist/node_modules/redux/es/redux.js +1 -1
  583. package/dist/node_modules/redux/es/redux.js.map +1 -1
  584. package/dist/node_modules/reselect/es/defaultMemoize.js +1 -1
  585. package/dist/node_modules/reselect/es/defaultMemoize.js.map +1 -1
  586. package/dist/node_modules/reselect/es/index.js +1 -1
  587. package/dist/node_modules/reselect/es/index.js.map +1 -1
  588. package/dist/node_modules/sdp/sdp.js +1 -1
  589. package/dist/node_modules/sdp/sdp.js.map +1 -1
  590. package/dist/node_modules/socket.io-client/build/esm/index.js +1 -1
  591. package/dist/node_modules/socket.io-client/build/esm/index.js.map +1 -1
  592. package/dist/node_modules/socket.io-client/build/esm/manager.js +1 -1
  593. package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -1
  594. package/dist/node_modules/socket.io-client/build/esm/socket.js +1 -1
  595. package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -1
  596. package/dist/node_modules/socket.io-client/build/esm/url.js +1 -1
  597. package/dist/node_modules/socket.io-client/build/esm/url.js.map +1 -1
  598. package/dist/node_modules/socket.io-parser/build/esm/binary.js +1 -1
  599. package/dist/node_modules/socket.io-parser/build/esm/binary.js.map +1 -1
  600. package/dist/node_modules/socket.io-parser/build/esm/index.js +1 -1
  601. package/dist/node_modules/socket.io-parser/build/esm/index.js.map +1 -1
  602. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +1 -1
  603. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -1
  604. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
  605. package/dist/node_modules/tslib/tslib.es6.js +1 -1
  606. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  607. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -2
  608. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  609. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +2 -2
  610. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -1
  611. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +1 -1
  612. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  613. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +1 -1
  614. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
  615. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +1 -1
  616. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js.map +1 -1
  617. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +1 -1
  618. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js.map +1 -1
  619. package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
  620. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js +1 -1
  621. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js.map +1 -1
  622. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js +1 -1
  623. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js.map +1 -1
  624. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js +1 -1
  625. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js.map +1 -1
  626. package/dist/node_modules/webm-duration-fix/lib/ebml/ebmlID.js.map +1 -1
  627. package/dist/node_modules/webm-duration-fix/lib/ebml/index.js +1 -1
  628. package/dist/node_modules/webm-duration-fix/lib/ebml/index.js.map +1 -1
  629. package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js +1 -1
  630. package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js.map +1 -1
  631. package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js +1 -1
  632. package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js.map +1 -1
  633. package/dist/node_modules/webm-duration-fix/lib/index.js +1 -1
  634. package/dist/node_modules/webm-duration-fix/lib/index.js.map +1 -1
  635. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +1 -1
  636. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -1
  637. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
  638. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
  639. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
  640. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
  641. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
  642. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
  643. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +1 -1
  644. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -1
  645. package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
  646. package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
  647. package/dist/package.json.js +1 -1
  648. package/dist/public/locales/en/translation.json.js +1 -1
  649. package/dist/public/locales/it/translation.json.js +1 -1
  650. package/dist/services/astproxy.js +1 -1
  651. package/dist/services/astproxy.js.map +1 -1
  652. package/dist/services/history_call.js +1 -1
  653. package/dist/services/history_call.js.map +1 -1
  654. package/dist/services/offhour.js +1 -1
  655. package/dist/services/offhour.js.map +1 -1
  656. package/dist/services/phonebook.js +1 -1
  657. package/dist/services/phonebook.js.map +1 -1
  658. package/dist/services/user.js +1 -1
  659. package/dist/services/user.js.map +1 -1
  660. package/dist/services/voicemail.js +1 -1
  661. package/dist/services/voicemail.js.map +1 -1
  662. package/dist/store/index.js +1 -1
  663. package/dist/store/index.js.map +1 -1
  664. package/dist/styles/Island.styles.js +1 -1
  665. package/dist/styles/Island.styles.js.map +1 -1
  666. package/dist/utils/customHooks/useCommittedRef.js +1 -1
  667. package/dist/utils/customHooks/useCommittedRef.js.map +1 -1
  668. package/dist/utils/customHooks/useEventCallback.js +1 -1
  669. package/dist/utils/customHooks/useEventCallback.js.map +1 -1
  670. package/dist/utils/customHooks/useEventListener.js +1 -1
  671. package/dist/utils/customHooks/useEventListener.js.map +1 -1
  672. package/dist/utils/customHooks/useIntersectionObserver.js +1 -1
  673. package/dist/utils/customHooks/useIntersectionObserver.js.map +1 -1
  674. package/dist/utils/customHooks/useLocalStorage.js +1 -1
  675. package/dist/utils/customHooks/useLocalStorage.js.map +1 -1
  676. package/dist/utils/customHooks/useLongPress.js +1 -1
  677. package/dist/utils/customHooks/useLongPress.js.map +1 -1
  678. package/dist/utils/deviceUtils.js +1 -1
  679. package/dist/utils/deviceUtils.js.map +1 -1
  680. package/dist/utils/genericFunctions/checkConnection.js +1 -1
  681. package/dist/utils/genericFunctions/checkConnection.js.map +1 -1
  682. package/dist/utils/genericFunctions/isBackCallVisible.js +1 -1
  683. package/dist/utils/genericFunctions/isBackCallVisible.js.map +1 -1
  684. package/dist/utils/genericFunctions/withTimeout.js +1 -1
  685. package/dist/utils/genericFunctions/withTimeout.js.map +1 -1
  686. package/dist/utils/streaming/getStreamingSourceId.js +1 -1
  687. package/dist/utils/streaming/getStreamingSourceId.js.map +1 -1
  688. package/dist/utils/streaming/isFromStreaming.js +1 -1
  689. package/dist/utils/streaming/isFromStreaming.js.map +1 -1
  690. package/dist/utils/streaming/streamingUtils.js +1 -1
  691. package/dist/utils/streaming/streamingUtils.js.map +1 -1
  692. package/dist/workers/wake_up.js +1 -1
  693. package/dist/workers/wake_up.js.map +1 -1
  694. package/package.json +7 -7
  695. package/dist/_virtual/index10.js +0 -2
  696. package/dist/_virtual/index10.js.map +0 -1
  697. package/dist/_virtual/index11.js +0 -2
  698. package/dist/_virtual/index11.js.map +0 -1
  699. package/dist/_virtual/react-is.development4.js +0 -2
  700. package/dist/_virtual/react-is.development4.js.map +0 -1
  701. package/dist/_virtual/react-is.production.min4.js +0 -2
  702. package/dist/_virtual/react-is.production.min4.js.map +0 -1
  703. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +0 -2
  704. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js.map +0 -1
  705. package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js +0 -2
  706. package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js.map +0 -1
  707. package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js +0 -2
  708. package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js.map +0 -1
  709. package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js +0 -2
  710. package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js.map +0 -1
  711. package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js +0 -2
  712. package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js.map +0 -1
  713. package/dist/node_modules/object-assign/index.js +0 -8
  714. package/dist/node_modules/object-assign/index.js.map +0 -1
  715. package/dist/node_modules/prop-types/checkPropTypes.js +0 -2
  716. package/dist/node_modules/prop-types/checkPropTypes.js.map +0 -1
  717. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -2
  718. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
  719. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -2
  720. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
  721. package/dist/node_modules/prop-types/index.js +0 -2
  722. package/dist/node_modules/prop-types/index.js.map +0 -1
  723. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -2
  724. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
  725. package/dist/node_modules/prop-types/lib/has.js +0 -2
  726. package/dist/node_modules/prop-types/lib/has.js.map +0 -1
  727. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -10
  728. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  729. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -10
  730. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  731. package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -2
  732. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../utils.js").log;exports.shimGetUserMedia=function(r,o){if(o.version>=64)return;const t=r&&r.navigator;if(!t.mediaDevices)return;const i=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const r={};return Object.keys(e).forEach((o=>{if("require"===o||"advanced"===o||"mediaSource"===o)return;const t="object"==typeof e[o]?e[o]:{ideal:e[o]};void 0!==t.exact&&"number"==typeof t.exact&&(t.min=t.max=t.exact);const i=function(e,r){return e?e+r.charAt(0).toUpperCase()+r.slice(1):"deviceId"===r?"sourceId":r};if(void 0!==t.ideal){r.optional=r.optional||[];let e={};"number"==typeof t.ideal?(e[i("min",o)]=t.ideal,r.optional.push(e),e={},e[i("max",o)]=t.ideal,r.optional.push(e)):(e[i("",o)]=t.ideal,r.optional.push(e))}void 0!==t.exact&&"number"!=typeof t.exact?(r.mandatory=r.mandatory||{},r.mandatory[i("",o)]=t.exact):["min","max"].forEach((e=>{void 0!==t[e]&&(r.mandatory=r.mandatory||{},r.mandatory[i(e,o)]=t[e])}))})),e.advanced&&(r.optional=(r.optional||[]).concat(e.advanced)),r},n=function(r,n){if(o.version>=61)return n(r);if((r=JSON.parse(JSON.stringify(r)))&&"object"==typeof r.audio){const e=function(e,r,o){r in e&&!(o in e)&&(e[o]=e[r],delete e[r])};e((r=JSON.parse(JSON.stringify(r))).audio,"autoGainControl","googAutoGainControl"),e(r.audio,"noiseSuppression","googNoiseSuppression"),r.audio=i(r.audio)}if(r&&"object"==typeof r.video){let a=r.video.facingMode;a=a&&("object"==typeof a?a:{ideal:a});const d=o.version<66;if(a&&("user"===a.exact||"environment"===a.exact||"user"===a.ideal||"environment"===a.ideal)&&(!t.mediaDevices.getSupportedConstraints||!t.mediaDevices.getSupportedConstraints().facingMode||d)){let o;if(delete r.video.facingMode,"environment"===a.exact||"environment"===a.ideal?o=["back","rear"]:"user"!==a.exact&&"user"!==a.ideal||(o=["front"]),o)return t.mediaDevices.enumerateDevices().then((t=>{let d=(t=t.filter((e=>"videoinput"===e.kind))).find((e=>o.some((r=>e.label.toLowerCase().includes(r)))));return!d&&t.length&&o.includes("back")&&(d=t[t.length-1]),d&&(r.video.deviceId=a.exact?{exact:d.deviceId}:{ideal:d.deviceId}),r.video=i(r.video),e("chrome: "+JSON.stringify(r)),n(r)}))}r.video=i(r.video)}return e("chrome: "+JSON.stringify(r)),n(r)},a=function(e){return o.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(t.getUserMedia=function(e,r,o){n(e,(e=>{t.webkitGetUserMedia(e,r,(e=>{o&&o(a(e))}))}))}.bind(t),t.mediaDevices.getUserMedia){const e=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(r){return n(r,(r=>e(r).then((e=>{if(r.audio&&!e.getAudioTracks().length||r.video&&!e.getVideoTracks().length)throw e.getTracks().forEach((e=>{e.stop()})),new DOMException("","NotFoundError");return e}),(e=>Promise.reject(a(e))))))}}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const e=require("../utils.js").log;exports.shimGetUserMedia=function(r,o){if(o.version>=64)return;const t=r&&r.navigator;if(!t.mediaDevices)return;const i=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const r={};return Object.keys(e).forEach(o=>{if("require"===o||"advanced"===o||"mediaSource"===o)return;const t="object"==typeof e[o]?e[o]:{ideal:e[o]};void 0!==t.exact&&"number"==typeof t.exact&&(t.min=t.max=t.exact);const i=function(e,r){return e?e+r.charAt(0).toUpperCase()+r.slice(1):"deviceId"===r?"sourceId":r};if(void 0!==t.ideal){r.optional=r.optional||[];let e={};"number"==typeof t.ideal?(e[i("min",o)]=t.ideal,r.optional.push(e),e={},e[i("max",o)]=t.ideal,r.optional.push(e)):(e[i("",o)]=t.ideal,r.optional.push(e))}void 0!==t.exact&&"number"!=typeof t.exact?(r.mandatory=r.mandatory||{},r.mandatory[i("",o)]=t.exact):["min","max"].forEach(e=>{void 0!==t[e]&&(r.mandatory=r.mandatory||{},r.mandatory[i(e,o)]=t[e])})}),e.advanced&&(r.optional=(r.optional||[]).concat(e.advanced)),r},n=function(r,n){if(o.version>=61)return n(r);if((r=JSON.parse(JSON.stringify(r)))&&"object"==typeof r.audio){const e=function(e,r,o){r in e&&!(o in e)&&(e[o]=e[r],delete e[r])};e((r=JSON.parse(JSON.stringify(r))).audio,"autoGainControl","googAutoGainControl"),e(r.audio,"noiseSuppression","googNoiseSuppression"),r.audio=i(r.audio)}if(r&&"object"==typeof r.video){let a=r.video.facingMode;a=a&&("object"==typeof a?a:{ideal:a});const d=o.version<66;if(a&&("user"===a.exact||"environment"===a.exact||"user"===a.ideal||"environment"===a.ideal)&&(!t.mediaDevices.getSupportedConstraints||!t.mediaDevices.getSupportedConstraints().facingMode||d)){let o;if(delete r.video.facingMode,"environment"===a.exact||"environment"===a.ideal?o=["back","rear"]:"user"!==a.exact&&"user"!==a.ideal||(o=["front"]),o)return t.mediaDevices.enumerateDevices().then(t=>{let d=(t=t.filter(e=>"videoinput"===e.kind)).find(e=>o.some(r=>e.label.toLowerCase().includes(r)));return!d&&t.length&&o.includes("back")&&(d=t[t.length-1]),d&&(r.video.deviceId=a.exact?{exact:d.deviceId}:{ideal:d.deviceId}),r.video=i(r.video),e("chrome: "+JSON.stringify(r)),n(r)})}r.video=i(r.video)}return e("chrome: "+JSON.stringify(r)),n(r)},a=function(e){return o.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(t.getUserMedia=function(e,r,o){n(e,e=>{t.webkitGetUserMedia(e,r,e=>{o&&o(a(e))})})}.bind(t),t.mediaDevices.getUserMedia){const e=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(r){return n(r,r=>e(r).then(e=>{if(r.audio&&!e.getAudioTracks().length||r.video&&!e.getVideoTracks().length)throw e.getTracks().forEach(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(a(e))))}}};
2
2
  //# sourceMappingURL=getusermedia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getusermedia.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n if (browserDetails.version >= 64) {\n return;\n }\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact\n ? {exact: dev.deviceId}\n : {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n // Fixed in M64 too, see\n // https://groups.google.com/g/discuss-webrtc/c/DMPTKcXVUQ4/m/85FaASoFBwAJ?\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n"],"names":["logging","utils","window","browserDetails","version","navigator","mediaDevices","constraintsToChrome_","c","mandatory","optional","cc","Object","keys","forEach","key","r","ideal","undefined","exact","min","max","oldname_","prefix","name","charAt","toUpperCase","slice","oc","push","mix","advanced","concat","shimConstraints_","constraints","func","JSON","parse","stringify","audio","remap","obj","a","b","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","dev","filter","d","kind","find","some","match","label","toLowerCase","includes","length","deviceId","shimError_","e","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","message","constraint","constraintName","toString","this","getUserMedia","onSuccess","onError","webkitGetUserMedia","bind","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","track","stop","DOMException","Promise","reject"],"mappings":"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"}
1
+ {"version":3,"file":"getusermedia.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n if (browserDetails.version >= 64) {\n return;\n }\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact\n ? {exact: dev.deviceId}\n : {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n // Fixed in M64 too, see\n // https://groups.google.com/g/discuss-webrtc/c/DMPTKcXVUQ4/m/85FaASoFBwAJ?\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n"],"names":["logging","utils","window","browserDetails","version","navigator","mediaDevices","constraintsToChrome_","c","mandatory","optional","cc","Object","keys","forEach","key","r","ideal","undefined","exact","min","max","oldname_","prefix","name","charAt","toUpperCase","slice","oc","push","mix","advanced","concat","shimConstraints_","constraints","func","JSON","parse","stringify","audio","remap","obj","a","b","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","dev","filter","d","kind","find","some","match","label","toLowerCase","includes","length","deviceId","shimError_","e","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","message","constraint","constraintName","toString","this","getUserMedia","onSuccess","onError","webkitGetUserMedia","bind","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","track","stop","DOMException","Promise","reject"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../sdp/sdp.js"),t=require("./utils.js");exports.removeExtmapAllowMixed=function(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter((e=>"a=extmap-allow-mixed"!==e.trim())).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}},exports.shimAddIceCandidateNullOrEmpty=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})},exports.shimConnectionState=function(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach((e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}}))},exports.shimMaxMessageSize=function(t,n){if(!t.RTCPeerConnection)return;if("chrome"===n.browser&&n.version>102)return;if("firefox"===n.browser&&n.version>=113)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const o=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===n.browser&&n.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(t){if(!t||!t.sdp)return!1;const n=e.default.splitSections(t.sdp);return n.shift(),n.some((t=>{const n=e.default.parseMLine(t);return n&&"application"===n.kind&&-1!==n.protocol.indexOf("SCTP")}))}(arguments[0])){const t=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),o=function(e){let t=65536;return"firefox"===n.browser&&(t=n.version<57?-1===e?16384:2147483637:n.version<60?57===n.version?65535:65536:2147483637),t}(t),i=function(t,o){let i=65536;"firefox"===n.browser&&57===n.version&&(i=65535);const r=e.default.matchPrefix(t.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===n.browser&&-1!==o&&(i=2147483637),i}(arguments[0],t);let r;r=0===o&&0===i?Number.POSITIVE_INFINITY:0===o||0===i?Math.max(o,i):Math.min(o,i);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>r}),this._sctp=a}return o.apply(this,arguments)}},exports.shimParameterlessSetLocalDescription=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return n.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then((e=>n.apply(this,[e])))})},exports.shimRTCIceCandidate=function(n){if(!n.RTCIceCandidate||n.RTCIceCandidate&&"foundation"in n.RTCIceCandidate.prototype)return;const o=n.RTCIceCandidate;n.RTCIceCandidate=function(t){if("object"==typeof t&&t.candidate&&0===t.candidate.indexOf("a=")&&((t=JSON.parse(JSON.stringify(t))).candidate=t.candidate.substring(2)),t.candidate&&t.candidate.length){const n=new o(t),i=e.default.parseCandidate(t.candidate);for(const e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new o(t)},n.RTCIceCandidate.prototype=o.prototype,t.wrapPeerConnectionEvent(n,"icecandidate",(e=>(e.candidate&&Object.defineProperty(e,"candidate",{value:new n.RTCIceCandidate(e.candidate),writable:"false"}),e)))},exports.shimRTCIceCandidateRelayProtocol=function(n){!n.RTCIceCandidate||n.RTCIceCandidate&&"relayProtocol"in n.RTCIceCandidate.prototype||t.wrapPeerConnectionEvent(n,"icecandidate",(t=>{if(t.candidate){const n=e.default.parseCandidate(t.candidate.candidate);"relay"===n.type&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return t}))},exports.shimSendThrowTypeError=function(e,n){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;if("chrome"===n.browser&&n.version>=149)return;if("firefox"===n.browser&&n.version>60)return;function o(e,t){const n=e.send;e.send=function(){const o=arguments[0],i=o.length||o.size||o.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return o(e,this),e},t.wrapPeerConnectionEvent(e,"datachannel",(e=>(o(e.channel,e.target),e)))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../sdp/sdp.js"),t=require("./utils.js");exports.removeExtmapAllowMixed=function(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.sdp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}},exports.shimAddIceCandidateNullOrEmpty=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})},exports.shimConnectionState=function(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})},exports.shimMaxMessageSize=function(t,n){if(!t.RTCPeerConnection)return;if("chrome"===n.browser&&n.version>102)return;if("firefox"===n.browser&&n.version>=113)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const o=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===n.browser&&n.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(t){if(!t||!t.sdp)return!1;const n=e.default.splitSections(t.sdp);return n.shift(),n.some(t=>{const n=e.default.parseMLine(t);return n&&"application"===n.kind&&-1!==n.protocol.indexOf("SCTP")})}(arguments[0])){const t=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),o=function(e){let t=65536;return"firefox"===n.browser&&(t=n.version<57?-1===e?16384:2147483637:n.version<60?57===n.version?65535:65536:2147483637),t}(t),i=function(t,o){let i=65536;"firefox"===n.browser&&57===n.version&&(i=65535);const r=e.default.matchPrefix(t.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===n.browser&&-1!==o&&(i=2147483637),i}(arguments[0],t);let r;r=0===o&&0===i?Number.POSITIVE_INFINITY:0===o||0===i?Math.max(o,i):Math.min(o,i);const a={};Object.defineProperty(a,"maxMessageSize",{get:()=>r}),this._sctp=a}return o.apply(this,arguments)}},exports.shimParameterlessSetLocalDescription=function(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}if(e.sdp||"offer"!==e.type&&"answer"!==e.type)return n.apply(this,[e]);return("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>n.apply(this,[e]))})},exports.shimRTCIceCandidate=function(n){if(!n.RTCIceCandidate||n.RTCIceCandidate&&"foundation"in n.RTCIceCandidate.prototype)return;const o=n.RTCIceCandidate;n.RTCIceCandidate=function(t){if("object"==typeof t&&t.candidate&&0===t.candidate.indexOf("a=")&&((t=JSON.parse(JSON.stringify(t))).candidate=t.candidate.substring(2)),t.candidate&&t.candidate.length){const n=new o(t),i=e.default.parseCandidate(t.candidate);for(const e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new o(t)},n.RTCIceCandidate.prototype=o.prototype,t.wrapPeerConnectionEvent(n,"icecandidate",e=>(e.candidate&&Object.defineProperty(e,"candidate",{value:new n.RTCIceCandidate(e.candidate),writable:"false"}),e))},exports.shimRTCIceCandidateRelayProtocol=function(n){!n.RTCIceCandidate||n.RTCIceCandidate&&"relayProtocol"in n.RTCIceCandidate.prototype||t.wrapPeerConnectionEvent(n,"icecandidate",t=>{if(t.candidate){const n=e.default.parseCandidate(t.candidate.candidate);"relay"===n.type&&(t.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return t})},exports.shimSendThrowTypeError=function(e,n){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;if("chrome"===n.browser&&n.version>=149)return;if("firefox"===n.browser&&n.version>60)return;function o(e,t){const n=e.send;e.send=function(){const o=arguments[0],i=o.length||o.size||o.byteLength;if("open"===e.readyState&&t.sctp&&i>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const i=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=i.apply(this,arguments);return o(e,this),e},t.wrapPeerConnectionEvent(e,"datachannel",e=>(o(e.channel,e.target),e))};
2
2
  //# sourceMappingURL=common_shim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common_shim.js","sources":["../../../../../node_modules/webrtc-adapter/src/js/common_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substring(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n for (const key in parsedCandidate) {\n if (!(key in nativeCandidate)) {\n Object.defineProperty(nativeCandidate, key,\n {value: parsedCandidate[key]});\n }\n }\n\n // Override serializer to not serialize the extra attributes.\n nativeCandidate.toJSON = function toJSON() {\n return {\n candidate: nativeCandidate.candidate,\n sdpMid: nativeCandidate.sdpMid,\n sdpMLineIndex: nativeCandidate.sdpMLineIndex,\n usernameFragment: nativeCandidate.usernameFragment,\n };\n };\n return nativeCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimRTCIceCandidateRelayProtocol(window) {\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'relayProtocol' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n const parsedCandidate = SDPUtils.parseCandidate(e.candidate.candidate);\n if (parsedCandidate.type === 'relay') {\n // This is a libwebrtc-specific mapping of local type preference\n // to relayProtocol.\n e.candidate.relayProtocol = {\n 0: 'tls',\n 1: 'tcp',\n 2: 'udp',\n }[parsedCandidate.priority >> 24];\n }\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (browserDetails.browser === 'firefox' && browserDetails.version >= 113) {\n // Native RTCSctpTransport, see\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1278299\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substring(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window, browserDetails) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 149) {\n // Fixed by https://issues.chromium.org/issues/490588131\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n if (browserDetails.browser === 'firefox' && browserDetails.version > 60) {\n return;\n }\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' &&\n browserDetails._safariVersion >= 13.1) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n"],"names":["window","browserDetails","RTCPeerConnection","browser","version","_safariVersion","nativeSRD","prototype","setRemoteDescription","desc","sdp","indexOf","split","filter","line","trim","join","RTCSessionDescription","arguments","type","apply","this","nativeAddIceCandidate","addIceCandidate","length","candidate","Promise","resolve","proto","Object","defineProperty","get","completed","checking","iceConnectionState","enumerable","configurable","_onconnectionstatechange","set","cb","removeEventListener","addEventListener","forEach","method","origMethod","_connectionstatechangepoly","e","pc","target","_lastConnectionState","connectionState","newEvent","Event","dispatchEvent","_sctp","origSetRemoteDescription","sdpSemantics","getConfiguration","description","sections","SDPUtils","splitSections","shift","some","mediaSection","mLine","parseMLine","kind","protocol","sctpInDescription","isFirefox","match","parseInt","getRemoteFirefoxVersion","canSendMMS","remoteIsFirefox","canSendMaxMessageSize","getCanSendMaxMessageSize","remoteMMS","maxMessageSize","matchPrefix","substring","getMaxMessageSize","Number","POSITIVE_INFINITY","Math","max","min","sctp","nativeSetLocalDescription","setLocalDescription","signalingState","createOffer","createAnswer","then","d","RTCIceCandidate","NativeRTCIceCandidate","args","JSON","parse","stringify","nativeCandidate","parsedCandidate","parseCandidate","key","value","toJSON","sdpMid","sdpMLineIndex","usernameFragment","utils","writable","relayProtocol","priority","wrapDcSend","dc","origDataChannelSend","send","data","size","byteLength","readyState","TypeError","origCreateDataChannel","createDataChannel","dataChannel","channel"],"mappings":"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"}
1
+ {"version":3,"file":"common_shim.js","sources":["../../../../../node_modules/webrtc-adapter/src/js/common_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substring(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n for (const key in parsedCandidate) {\n if (!(key in nativeCandidate)) {\n Object.defineProperty(nativeCandidate, key,\n {value: parsedCandidate[key]});\n }\n }\n\n // Override serializer to not serialize the extra attributes.\n nativeCandidate.toJSON = function toJSON() {\n return {\n candidate: nativeCandidate.candidate,\n sdpMid: nativeCandidate.sdpMid,\n sdpMLineIndex: nativeCandidate.sdpMLineIndex,\n usernameFragment: nativeCandidate.usernameFragment,\n };\n };\n return nativeCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimRTCIceCandidateRelayProtocol(window) {\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'relayProtocol' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n const parsedCandidate = SDPUtils.parseCandidate(e.candidate.candidate);\n if (parsedCandidate.type === 'relay') {\n // This is a libwebrtc-specific mapping of local type preference\n // to relayProtocol.\n e.candidate.relayProtocol = {\n 0: 'tls',\n 1: 'tcp',\n 2: 'udp',\n }[parsedCandidate.priority >> 24];\n }\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (browserDetails.browser === 'firefox' && browserDetails.version >= 113) {\n // Native RTCSctpTransport, see\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1278299\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substring(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window, browserDetails) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 149) {\n // Fixed by https://issues.chromium.org/issues/490588131\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n if (browserDetails.browser === 'firefox' && browserDetails.version > 60) {\n return;\n }\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' &&\n browserDetails._safariVersion >= 13.1) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n"],"names":["window","browserDetails","RTCPeerConnection","browser","version","_safariVersion","nativeSRD","prototype","setRemoteDescription","desc","sdp","indexOf","split","filter","line","trim","join","RTCSessionDescription","arguments","type","apply","this","nativeAddIceCandidate","addIceCandidate","length","candidate","Promise","resolve","proto","Object","defineProperty","get","completed","checking","iceConnectionState","enumerable","configurable","_onconnectionstatechange","set","cb","removeEventListener","addEventListener","forEach","method","origMethod","_connectionstatechangepoly","e","pc","target","_lastConnectionState","connectionState","newEvent","Event","dispatchEvent","_sctp","origSetRemoteDescription","sdpSemantics","getConfiguration","description","sections","SDPUtils","splitSections","shift","some","mediaSection","mLine","parseMLine","kind","protocol","sctpInDescription","isFirefox","match","parseInt","getRemoteFirefoxVersion","canSendMMS","remoteIsFirefox","canSendMaxMessageSize","getCanSendMaxMessageSize","remoteMMS","maxMessageSize","matchPrefix","substring","getMaxMessageSize","Number","POSITIVE_INFINITY","Math","max","min","sctp","nativeSetLocalDescription","setLocalDescription","signalingState","createOffer","createAnswer","then","d","RTCIceCandidate","NativeRTCIceCandidate","args","JSON","parse","stringify","nativeCandidate","parsedCandidate","parseCandidate","key","value","toJSON","sdpMid","sdpMLineIndex","usernameFragment","utils","writable","relayProtocol","priority","wrapDcSend","dc","origDataChannelSend","send","data","size","byteLength","readyState","TypeError","origCreateDataChannel","createDataChannel","dataChannel","channel"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js"),t=require("./getusermedia.js"),n=require("./getdisplaymedia.js");exports.shimGetUserMedia=t.shimGetUserMedia,exports.shimGetDisplayMedia=n.shimGetDisplayMedia,exports.shimAddTransceiver=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.addTransceiver;n&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const t=e.length>0;t&&e.forEach((e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")}));const r=n.apply(this,arguments);if(t){const{sender:t}=r,n=t.getParameters();(!("encodings"in n)||1===n.encodings.length&&0===Object.keys(n.encodings[0]).length)&&(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then((()=>{delete t.sendEncodings})).catch((()=>{delete t.sendEncodings}))))}return r})},exports.shimCreateAnswer=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>n.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):n.apply(this,arguments)}},exports.shimCreateOffer=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then((()=>n.apply(this,arguments))).finally((()=>{this.setParametersPromises=[]})):n.apply(this,arguments)}},exports.shimGetParameters=function(e,t){if("object"!=typeof e||!e.RTCRtpSender)return;if(t.version>=110)return;const n=e.RTCRtpSender.prototype.getParameters;n&&(e.RTCRtpSender.prototype.getParameters=function(){const e=n.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})},exports.shimGetStats=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;if(t.version>=151)return;const n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,o,i]=arguments;return"closed"===this.signalingState?Promise.resolve(new Map):r.apply(this,[e||null]).then((e=>{if(t.version<53&&!o)try{e.forEach((e=>{e.type=n[e.type]||e.type}))}catch(t){if("TypeError"!==t.name)throw t;e.forEach(((t,r)=>{e.set(r,Object.assign({},t,{type:n[t.type]||t.type}))}))}return e})).then(o,i)}},exports.shimOnTrack=function(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})},exports.shimPeerConnection=function(e,t){"object"==typeof e&&(e.RTCPeerConnection||e.mozRTCPeerConnection)&&(!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]})))},exports.shimRTCDataChannel=function(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)},exports.shimReceiverGetStats=function(t){if("object"!=typeof t||!t.RTCPeerConnection||!t.RTCRtpSender)return;if(t.RTCRtpSender&&"getStats"in t.RTCRtpReceiver.prototype)return;const n=t.RTCPeerConnection.prototype.getReceivers;n&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=n.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),e.wrapPeerConnectionEvent(t,"track",(e=>(e.receiver._pc=e.srcElement,e))),t.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}},exports.shimRemoveStream=function(t){t.RTCPeerConnection&&!("removeStream"in t.RTCPeerConnection.prototype)&&(t.RTCPeerConnection.prototype.removeStream=function(t){e.deprecated("removeStream","removeTrack"),this.getSenders().forEach((e=>{e.track&&t.getTracks().includes(e.track)&&this.removeTrack(e)}))})},exports.shimSenderGetStats=function(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js"),t=require("./getusermedia.js"),n=require("./getdisplaymedia.js");exports.shimGetUserMedia=t.shimGetUserMedia,exports.shimGetDisplayMedia=n.shimGetDisplayMedia,exports.shimAddTransceiver=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.addTransceiver;n&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const t=e.length>0;t&&e.forEach(e=>{if("rid"in e){if(!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.")}if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const r=n.apply(this,arguments);if(t){const{sender:t}=r,n=t.getParameters();(!("encodings"in n)||1===n.encodings.length&&0===Object.keys(n.encodings[0]).length)&&(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return r})},exports.shimCreateAnswer=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>n.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):n.apply(this,arguments)}},exports.shimCreateOffer=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection)return;if(t.version>=110)return;const n=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>n.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):n.apply(this,arguments)}},exports.shimGetParameters=function(e,t){if("object"!=typeof e||!e.RTCRtpSender)return;if(t.version>=110)return;const n=e.RTCRtpSender.prototype.getParameters;n&&(e.RTCRtpSender.prototype.getParameters=function(){const e=n.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})},exports.shimGetStats=function(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;if(t.version>=151)return;const n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},r=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,o,i]=arguments;return"closed"===this.signalingState?Promise.resolve(new Map):r.apply(this,[e||null]).then(e=>{if(t.version<53&&!o)try{e.forEach(e=>{e.type=n[e.type]||e.type})}catch(t){if("TypeError"!==t.name)throw t;e.forEach((t,r)=>{e.set(r,Object.assign({},t,{type:n[t.type]||t.type}))})}return e}).then(o,i)}},exports.shimOnTrack=function(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})},exports.shimPeerConnection=function(e,t){"object"==typeof e&&(e.RTCPeerConnection||e.mozRTCPeerConnection)&&(!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const n=e.RTCPeerConnection.prototype[t],r={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=r[t]}))},exports.shimRTCDataChannel=function(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)},exports.shimReceiverGetStats=function(t){if("object"!=typeof t||!t.RTCPeerConnection||!t.RTCRtpSender)return;if(t.RTCRtpSender&&"getStats"in t.RTCRtpReceiver.prototype)return;const n=t.RTCPeerConnection.prototype.getReceivers;n&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=n.apply(this,[]);return e.forEach(e=>e._pc=this),e}),e.wrapPeerConnectionEvent(t,"track",e=>(e.receiver._pc=e.srcElement,e)),t.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}},exports.shimRemoveStream=function(t){t.RTCPeerConnection&&!("removeStream"in t.RTCPeerConnection.prototype)&&(t.RTCPeerConnection.prototype.removeStream=function(t){e.deprecated("removeStream","removeTrack"),this.getSenders().forEach(e=>{e.track&&t.getTracks().includes(e.track)&&this.removeTrack(e)})})},exports.shimSenderGetStats=function(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}};
2
2
  //# sourceMappingURL=firefox_shim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"firefox_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\nexport function shimGetStats(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (browserDetails.version >= 151) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1056433\n return;\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n if (this.signalingState === 'closed') {\n // No longer required in FF151+\n return Promise.resolve(new Map());\n }\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n // WebIDL input coercion and validation\n let sendEncodings = arguments[1] && arguments[1].sendEncodings;\n if (sendEncodings === undefined) {\n sendEncodings = [];\n }\n sendEncodings = [...sendEncodings];\n const shouldPerformCheck = sendEncodings.length > 0;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = sendEncodings;\n sender.sendEncodings = sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window, browserDetails) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n"],"names":["window","browserDetails","RTCPeerConnection","version","origAddTransceiver","prototype","addTransceiver","this","setParametersPromises","sendEncodings","arguments","undefined","shouldPerformCheck","length","forEach","encodingParam","test","rid","TypeError","parseFloat","scaleResolutionDownBy","RangeError","maxFramerate","transceiver","apply","sender","params","getParameters","encodings","Object","keys","push","setParameters","then","catch","origCreateAnswer","createAnswer","Promise","all","finally","origCreateOffer","createOffer","RTCRtpSender","origGetParameters","concat","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","nativeGetStats","getStats","selector","onSucc","onErr","signalingState","resolve","Map","stats","stat","type","e","name","i","set","assign","RTCTrackEvent","defineProperty","get","receiver","method","nativeMethod","methodObj","RTCIceCandidate","RTCSessionDescription","DataChannel","RTCDataChannel","RTCRtpReceiver","origGetReceivers","getReceivers","receivers","_pc","utils","srcElement","track","removeStream","stream","getSenders","getTracks","includes","removeTrack","origGetSenders","senders","origAddTrack","addTrack"],"mappings":"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"}
1
+ {"version":3,"file":"firefox_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\nexport function shimGetStats(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (browserDetails.version >= 151) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1056433\n return;\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n if (this.signalingState === 'closed') {\n // No longer required in FF151+\n return Promise.resolve(new Map());\n }\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n // WebIDL input coercion and validation\n let sendEncodings = arguments[1] && arguments[1].sendEncodings;\n if (sendEncodings === undefined) {\n sendEncodings = [];\n }\n sendEncodings = [...sendEncodings];\n const shouldPerformCheck = sendEncodings.length > 0;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = sendEncodings;\n sender.sendEncodings = sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window, browserDetails) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window, browserDetails) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n // Fixed by https://bugzilla.mozilla.org/show_bug.cgi?id=1401592 in FF110.\n if (browserDetails.version >= 110) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n"],"names":["window","browserDetails","RTCPeerConnection","version","origAddTransceiver","prototype","addTransceiver","this","setParametersPromises","sendEncodings","arguments","undefined","shouldPerformCheck","length","forEach","encodingParam","test","rid","TypeError","parseFloat","scaleResolutionDownBy","RangeError","maxFramerate","transceiver","apply","sender","params","getParameters","encodings","Object","keys","push","setParameters","then","catch","origCreateAnswer","createAnswer","Promise","all","finally","origCreateOffer","createOffer","RTCRtpSender","origGetParameters","concat","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","nativeGetStats","getStats","selector","onSucc","onErr","signalingState","resolve","Map","stats","stat","type","e","name","i","set","assign","RTCTrackEvent","defineProperty","get","receiver","method","nativeMethod","methodObj","RTCIceCandidate","RTCSessionDescription","DataChannel","RTCDataChannel","RTCRtpReceiver","origGetReceivers","getReceivers","receivers","_pc","utils","srcElement","track","removeStream","stream","getSenders","getTracks","includes","removeTrack","origGetSenders","senders","origAddTrack","addTrack"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js");function t(t){return t&&void 0!==t.video?Object.assign({},t,{video:e.compactObject(t.video)}):t}exports.shimAudioContext=function(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)},exports.shimCallbacksAPI=function(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,r=t.createOffer,o=t.createAnswer,i=t.setLocalDescription,n=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const o=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[o]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],i=o.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i};let c=function(e,t,r){const o=i.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o};t.setLocalDescription=c,c=function(e,t,r){const o=n.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.setRemoteDescription=c,c=function(e,t,r){const o=s.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.addIceCandidate=c},exports.shimConstraints=t,exports.shimCreateOfferLegacy=function(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find((e=>"audio"===e.receiver.track.kind));!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const r=this.getTransceivers().find((e=>"video"===e.receiver.track.kind));!1===e.offerToReceiveVideo&&r?"sendrecv"===r.direction?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":"recvonly"===r.direction&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):!0!==e.offerToReceiveVideo||r||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}},exports.shimGetUserMedia=function(e){const r=e&&e.navigator;if(r.mediaDevices&&r.mediaDevices.getUserMedia){const e=r.mediaDevices,o=e.getUserMedia.bind(e);r.mediaDevices.getUserMedia=e=>o(t(e))}!r.getUserMedia&&r.mediaDevices&&r.mediaDevices.getUserMedia&&(r.getUserMedia=function(e,t,o){r.mediaDevices.getUserMedia(e).then(t,o)}.bind(r))},exports.shimLocalStreamsAPI=function(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach((r=>t.call(this,r,e))),e.getVideoTracks().forEach((r=>t.call(this,r,e)))},e.RTCPeerConnection.prototype.addTrack=function(e){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return o&&o.forEach((e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]})),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const r=e.getTracks();this.getSenders().forEach((e=>{r.includes(e.track)&&this.removeTrack(e)}))})}},exports.shimRTCIceServerUrls=function(t){if(!t.RTCPeerConnection)return;const r=t.RTCPeerConnection;t.RTCPeerConnection=function(t,o){if(t&&t.iceServers){const r=[];for(let o=0;o<t.iceServers.length;o++){let i=t.iceServers[o];void 0===i.urls&&i.url?(e.deprecated("RTCIceServer.url","RTCIceServer.urls"),i=JSON.parse(JSON.stringify(i)),i.urls=i.url,delete i.url,r.push(i)):r.push(t.iceServers[o])}t.iceServers=r}return new r(t,o)},t.RTCPeerConnection.prototype=r.prototype,"generateCertificate"in r&&Object.defineProperty(t.RTCPeerConnection,"generateCertificate",{get:()=>r.generateCertificate})},exports.shimRemoteStreamsAPI=function(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach((e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)}))})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach((t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const r=new Event("addstream");r.stream=t,e.dispatchEvent(r)}))}),t.apply(e,arguments)}}},exports.shimTrackEventTransceiver=function(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js");function t(t){return t&&void 0!==t.video?Object.assign({},t,{video:e.compactObject(t.video)}):t}exports.shimAudioContext=function(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)},exports.shimCallbacksAPI=function(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,r=t.createOffer,o=t.createAnswer,i=t.setLocalDescription,n=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t){const o=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[o]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){const r=arguments.length>=2?arguments[2]:arguments[0],i=o.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i};let c=function(e,t,r){const o=i.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o};t.setLocalDescription=c,c=function(e,t,r){const o=n.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.setRemoteDescription=c,c=function(e,t,r){const o=s.apply(this,[e]);return r?(o.then(t,r),Promise.resolve()):o},t.addIceCandidate=c},exports.shimConstraints=t,exports.shimCreateOfferLegacy=function(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const r=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&r?"sendrecv"===r.direction?r.setDirection?r.setDirection("sendonly"):r.direction="sendonly":"recvonly"===r.direction&&(r.setDirection?r.setDirection("inactive"):r.direction="inactive"):!0!==e.offerToReceiveVideo||r||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}},exports.shimGetUserMedia=function(e){const r=e&&e.navigator;if(r.mediaDevices&&r.mediaDevices.getUserMedia){const e=r.mediaDevices,o=e.getUserMedia.bind(e);r.mediaDevices.getUserMedia=e=>o(t(e))}!r.getUserMedia&&r.mediaDevices&&r.mediaDevices.getUserMedia&&(r.getUserMedia=function(e,t,o){r.mediaDevices.getUserMedia(e).then(t,o)}.bind(r))},exports.shimLocalStreamsAPI=function(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(r=>t.call(this,r,e)),e.getVideoTracks().forEach(r=>t.call(this,r,e))},e.RTCPeerConnection.prototype.addTrack=function(e){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return o&&o.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const r=e.getTracks();this.getSenders().forEach(e=>{r.includes(e.track)&&this.removeTrack(e)})})}},exports.shimRTCIceServerUrls=function(t){if(!t.RTCPeerConnection)return;const r=t.RTCPeerConnection;t.RTCPeerConnection=function(t,o){if(t&&t.iceServers){const r=[];for(let o=0;o<t.iceServers.length;o++){let i=t.iceServers[o];void 0===i.urls&&i.url?(e.deprecated("RTCIceServer.url","RTCIceServer.urls"),i=JSON.parse(JSON.stringify(i)),i.urls=i.url,delete i.url,r.push(i)):r.push(t.iceServers[o])}t.iceServers=r}return new r(t,o)},t.RTCPeerConnection.prototype=r.prototype,"generateCertificate"in r&&Object.defineProperty(t.RTCPeerConnection,"generateCertificate",{get:()=>r.generateCertificate})},exports.shimRemoteStreamsAPI=function(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const r=new Event("addstream");r.stream=t,e.dispatchEvent(r)})}),t.apply(e,arguments)}}},exports.shimTrackEventTransceiver=function(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})};
2
2
  //# sourceMappingURL=safari_shim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safari_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/safari/safari_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (server.urls === undefined && server.url) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n"],"names":["shimConstraints","constraints","undefined","video","Object","assign","utils","window","AudioContext","webkitAudioContext","RTCPeerConnection","prototype","origCreateOffer","createOffer","origCreateAnswer","createAnswer","setLocalDescription","setRemoteDescription","addIceCandidate","successCallback","failureCallback","options","arguments","length","promise","apply","this","then","Promise","resolve","withCallback","description","candidate","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","find","transceiver","receiver","track","kind","direction","setDirection","addTransceiver","offerToReceiveVideo","videoTransceiver","navigator","mediaDevices","getUserMedia","_getUserMedia","bind","cb","errcb","getLocalStreams","_localStreams","_addTrack","addTrack","addStream","stream","includes","push","getAudioTracks","forEach","call","getVideoTracks","_len","streams","Array","_key","removeStream","index","indexOf","splice","tracks","getTracks","getSenders","sender","removeTrack","OrigPeerConnection","pcConfig","pcConstraints","iceServers","newIceServers","i","server","urls","url","JSON","parse","stringify","defineProperty","get","generateCertificate","getRemoteStreams","_remoteStreams","_onaddstream","set","f","removeEventListener","_onaddstreampoly","addEventListener","e","event","Event","dispatchEvent","origSetRemoteDescription","pc","RTCTrackEvent"],"mappings":"iGA+NO,SAASA,EAAgBC,GAC9B,OAAIA,QAAqCC,IAAtBD,EAAYE,MACtBC,OAAOC,OAAO,CAAE,EACrBJ,EACA,CAACE,MAAOG,EAAAA,cAAoBL,EAAYE,SAIrCF,CACT,0BAiHO,SAA0BM,GACT,iBAAXA,GAAuBA,EAAOC,eAGzCD,EAAOC,aAAeD,EAAOE,mBAC/B,2BApNO,SAA0BF,GAC/B,GAAsB,iBAAXA,IAAwBA,EAAOG,kBACxC,OAEF,MAAMC,EAAYJ,EAAOG,kBAAkBC,UACrCC,EAAkBD,EAAUE,YAC5BC,EAAmBH,EAAUI,aAC7BC,EAAsBL,EAAUK,oBAChCC,EAAuBN,EAAUM,qBACjCC,EAAkBP,EAAUO,gBAElCP,EAAUE,YACR,SAAqBM,EAAiBC,GACpC,MAAMC,EAAWC,UAAUC,QAAU,EAAKD,UAAU,GAAKA,UAAU,GAC7DE,EAAUZ,EAAgBa,MAAMC,KAAM,CAACL,IAC7C,OAAKD,GAGLI,EAAQG,KAAKR,EAAiBC,GACvBQ,QAAQC,WAHNL,GAMbb,EAAUI,aACR,SAAsBI,EAAiBC,GACrC,MAAMC,EAAWC,UAAUC,QAAU,EAAKD,UAAU,GAAKA,UAAU,GAC7DE,EAAUV,EAAiBW,MAAMC,KAAM,CAACL,IAC9C,OAAKD,GAGLI,EAAQG,KAAKR,EAAiBC,GACvBQ,QAAQC,WAHNL,GAMb,IAAIM,EAAe,SAASC,EAAaZ,EAAiBC,GACxD,MAAMI,EAAUR,EAAoBS,MAAMC,KAAM,CAACK,IACjD,OAAKX,GAGLI,EAAQG,KAAKR,EAAiBC,GACvBQ,QAAQC,WAHNL,GAKXb,EAAUK,oBAAsBc,EAEhCA,EAAe,SAASC,EAAaZ,EAAiBC,GACpD,MAAMI,EAAUP,EAAqBQ,MAAMC,KAAM,CAACK,IAClD,OAAKX,GAGLI,EAAQG,KAAKR,EAAiBC,GACvBQ,QAAQC,WAHNL,GAKXb,EAAUM,qBAAuBa,EAEjCA,EAAe,SAASE,EAAWb,EAAiBC,GAClD,MAAMI,EAAUN,EAAgBO,MAAMC,KAAM,CAACM,IAC7C,OAAKZ,GAGLI,EAAQG,KAAKR,EAAiBC,GACvBQ,QAAQC,WAHNL,GAKXb,EAAUO,gBAAkBY,CAC9B,0DAoFO,SAA+BvB,GACpC,MAAMK,EAAkBL,EAAOG,kBAAkBC,UAAUE,YAC3DN,EAAOG,kBAAkBC,UAAUE,YACjC,SAAqBoB,GACnB,GAAIA,EAAc,MACgC,IAArCA,EAAaC,sBAEtBD,EAAaC,sBACTD,EAAaC,qBAEnB,MAAMC,EAAmBT,KAAKU,kBAAkBC,MAAKC,GACf,UAApCA,EAAYC,SAASC,MAAMC,QACY,IAArCR,EAAaC,qBAAiCC,EACb,aAA/BA,EAAiBO,UACfP,EAAiBQ,aACnBR,EAAiBQ,aAAa,YAE9BR,EAAiBO,UAAY,WAES,aAA/BP,EAAiBO,YACtBP,EAAiBQ,aACnBR,EAAiBQ,aAAa,YAE9BR,EAAiBO,UAAY,aAGa,IAArCT,EAAaC,qBACnBC,GACHT,KAAKkB,eAAe,QAAS,CAACF,UAAW,kBAGK,IAArCT,EAAaY,sBAEtBZ,EAAaY,sBACTZ,EAAaY,qBAEnB,MAAMC,EAAmBpB,KAAKU,kBAAkBC,MAAKC,GACf,UAApCA,EAAYC,SAASC,MAAMC,QACY,IAArCR,EAAaY,qBAAiCC,EACb,aAA/BA,EAAiBJ,UACfI,EAAiBH,aACnBG,EAAiBH,aAAa,YAE9BG,EAAiBJ,UAAY,WAES,aAA/BI,EAAiBJ,YACtBI,EAAiBH,aACnBG,EAAiBH,aAAa,YAE9BG,EAAiBJ,UAAY,aAGa,IAArCT,EAAaY,qBACnBC,GACHpB,KAAKkB,eAAe,QAAS,CAACF,UAAW,YAE7C,CACA,OAAO9B,EAAgBa,MAAMC,KAAMJ,WAEzC,2BA7IO,SAA0Bf,GAC/B,MAAMwC,EAAYxC,GAAUA,EAAOwC,UAEnC,GAAIA,EAAUC,cAAgBD,EAAUC,aAAaC,aAAc,CAEjE,MAAMD,EAAeD,EAAUC,aACzBE,EAAgBF,EAAaC,aAAaE,KAAKH,GACrDD,EAAUC,aAAaC,aAAgBhD,GAC9BiD,EAAclD,EAAgBC,GAEzC,EAEK8C,EAAUE,cAAgBF,EAAUC,cACvCD,EAAUC,aAAaC,eACvBF,EAAUE,aAAe,SAAsBhD,EAAamD,EAAIC,GAC9DN,EAAUC,aAAaC,aAAahD,GACjC0B,KAAKyB,EAAIC,EACd,EAAEF,KAAKJ,GAEX,8BAnNO,SAA6BxC,GAClC,GAAsB,iBAAXA,GAAwBA,EAAOG,kBAA1C,CAYA,GATM,oBAAqBH,EAAOG,kBAAkBC,YAClDJ,EAAOG,kBAAkBC,UAAU2C,gBACjC,WAIE,OAHK5B,KAAK6B,gBACR7B,KAAK6B,cAAgB,IAEhB7B,KAAK6B,kBAGZ,cAAehD,EAAOG,kBAAkBC,WAAY,CACxD,MAAM6C,EAAYjD,EAAOG,kBAAkBC,UAAU8C,SACrDlD,EAAOG,kBAAkBC,UAAU+C,UAAY,SAAmBC,GAC3DjC,KAAK6B,gBACR7B,KAAK6B,cAAgB,IAElB7B,KAAK6B,cAAcK,SAASD,IAC/BjC,KAAK6B,cAAcM,KAAKF,GAI1BA,EAAOG,iBAAiBC,SAAQvB,GAASgB,EAAUQ,KAAKtC,KAAMc,EAC5DmB,KACFA,EAAOM,iBAAiBF,SAAQvB,GAASgB,EAAUQ,KAAKtC,KAAMc,EAC5DmB,MAGJpD,EAAOG,kBAAkBC,UAAU8C,SACjC,SAAkBjB,GAAmB,IAAA0B,IAAAA,EAAA5C,UAAAC,OAAT4C,MAAOC,MAAAF,EAAAA,EAAAA,OAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAPF,EAAOE,EAAA/C,GAAAA,UAAA+C,GAUjC,OATIF,GACFA,EAAQJ,SAASJ,IACVjC,KAAK6B,cAEE7B,KAAK6B,cAAcK,SAASD,IACtCjC,KAAK6B,cAAcM,KAAKF,GAFxBjC,KAAK6B,cAAgB,CAACI,EAGxB,IAGGH,EAAU/B,MAAMC,KAAMJ,WAEnC,CACM,iBAAkBf,EAAOG,kBAAkBC,YAC/CJ,EAAOG,kBAAkBC,UAAU2D,aACjC,SAAsBX,GACfjC,KAAK6B,gBACR7B,KAAK6B,cAAgB,IAEvB,MAAMgB,EAAQ7C,KAAK6B,cAAciB,QAAQb,GACzC,IAAe,IAAXY,EACF,OAEF7C,KAAK6B,cAAckB,OAAOF,EAAO,GACjC,MAAMG,EAASf,EAAOgB,YACtBjD,KAAKkD,aAAab,SAAQc,IACpBH,EAAOd,SAASiB,EAAOrC,QACzBd,KAAKoD,YAAYD,EACnB,KAxDR,CA4DF,+BAiKO,SAA8BtE,GACnC,IAAKA,EAAOG,kBACV,OAGF,MAAMqE,EAAqBxE,EAAOG,kBAClCH,EAAOG,kBACL,SAA2BsE,EAAUC,GACnC,GAAID,GAAYA,EAASE,WAAY,CACnC,MAAMC,EAAgB,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIJ,EAASE,WAAW3D,OAAQ6D,IAAK,CACnD,IAAIC,EAASL,EAASE,WAAWE,QACblF,IAAhBmF,EAAOC,MAAsBD,EAAOE,KACtCjF,aAAiB,mBAAoB,qBACrC+E,EAASG,KAAKC,MAAMD,KAAKE,UAAUL,IACnCA,EAAOC,KAAOD,EAAOE,WACdF,EAAOE,IACdJ,EAActB,KAAKwB,IAEnBF,EAActB,KAAKmB,EAASE,WAAWE,GAE3C,CACAJ,EAASE,WAAaC,CACxB,CACA,OAAO,IAAIJ,EAAmBC,EAAUC,IAE5C1E,EAAOG,kBAAkBC,UAAYoE,EAAmBpE,UAEpD,wBAAyBoE,GAC3B3E,OAAOuF,eAAepF,EAAOG,kBAAmB,sBAAuB,CACrEkF,IAAGA,IACMb,EAAmBc,qBAIlC,+BAlMO,SAA8BtF,GACnC,GAAsB,iBAAXA,GAAwBA,EAAOG,oBAGpC,qBAAsBH,EAAOG,kBAAkBC,YACnDJ,EAAOG,kBAAkBC,UAAUmF,iBACjC,WACE,OAAOpE,KAAKqE,eAAiBrE,KAAKqE,eAAiB,OAGnD,gBAAiBxF,EAAOG,kBAAkBC,YAAY,CAC1DP,OAAOuF,eAAepF,EAAOG,kBAAkBC,UAAW,cAAe,CACvEiF,GAAAA,GACE,OAAOlE,KAAKsE,YACb,EACDC,GAAAA,CAAIC,GACExE,KAAKsE,eACPtE,KAAKyE,oBAAoB,YAAazE,KAAKsE,cAC3CtE,KAAKyE,oBAAoB,QAASzE,KAAK0E,mBAEzC1E,KAAK2E,iBAAiB,YAAa3E,KAAKsE,aAAeE,GACvDxE,KAAK2E,iBAAiB,QAAS3E,KAAK0E,iBAAoBE,IACtDA,EAAEnC,QAAQJ,SAAQJ,IAIhB,GAHKjC,KAAKqE,iBACRrE,KAAKqE,eAAiB,IAEpBrE,KAAKqE,eAAenC,SAASD,GAC/B,OAEFjC,KAAKqE,eAAelC,KAAKF,GACzB,MAAM4C,EAAQ,IAAIC,MAAM,aACxBD,EAAM5C,OAASA,EACfjC,KAAK+E,cAAcF,EAAM,GACzB,EAEN,IAEF,MAAMG,EACJnG,EAAOG,kBAAkBC,UAAUM,qBACrCV,EAAOG,kBAAkBC,UAAUM,qBACjC,WACE,MAAM0F,EAAKjF,KAiBX,OAhBKA,KAAK0E,kBACR1E,KAAK2E,iBAAiB,QAAS3E,KAAK0E,iBAAmB,SAASE,GAC9DA,EAAEnC,QAAQJ,SAAQJ,IAIhB,GAHKgD,EAAGZ,iBACNY,EAAGZ,eAAiB,IAElBY,EAAGZ,eAAevB,QAAQb,IAAW,EACvC,OAEFgD,EAAGZ,eAAelC,KAAKF,GACvB,MAAM4C,EAAQ,IAAIC,MAAM,aACxBD,EAAM5C,OAASA,EACfgD,EAAGF,cAAcF,EAAM,GAE3B,GAEKG,EAAyBjF,MAAMkF,EAAIrF,WAEhD,CACF,oCAuIO,SAAmCf,GAElB,iBAAXA,GAAuBA,EAAOqG,eACrC,aAAcrG,EAAOqG,cAAcjG,aACjC,gBAAiBJ,EAAOqG,cAAcjG,YAC1CP,OAAOuF,eAAepF,EAAOqG,cAAcjG,UAAW,cAAe,CACnEiF,GAAAA,GACE,MAAO,CAACrD,SAAUb,KAAKa,SACzB,GAGN"}
1
+ {"version":3,"file":"safari_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/safari/safari_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (server.urls === undefined && server.url) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n"],"names":["shimConstraints","constraints","undefined","video","Object","assign","utils","window","AudioContext","webkitAudioContext","RTCPeerConnection","prototype","origCreateOffer","createOffer","origCreateAnswer","createAnswer","setLocalDescription","setRemoteDescription","addIceCandidate","successCallback","failureCallback","options","arguments","length","promise","apply","this","then","Promise","resolve","withCallback","description","candidate","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","find","transceiver","receiver","track","kind","direction","setDirection","addTransceiver","offerToReceiveVideo","videoTransceiver","navigator","mediaDevices","getUserMedia","_getUserMedia","bind","cb","errcb","getLocalStreams","_localStreams","_addTrack","addTrack","addStream","stream","includes","push","getAudioTracks","forEach","call","getVideoTracks","_len","streams","Array","_key","removeStream","index","indexOf","splice","tracks","getTracks","getSenders","sender","removeTrack","OrigPeerConnection","pcConfig","pcConstraints","iceServers","newIceServers","i","server","urls","url","JSON","parse","stringify","defineProperty","get","generateCertificate","getRemoteStreams","_remoteStreams","_onaddstream","set","f","removeEventListener","_onaddstreampoly","addEventListener","e","event","Event","dispatchEvent","origSetRemoteDescription","pc","RTCTrackEvent"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});let e=!0,t=!0;function n(e,t,n){const r=e.match(t);return r&&r.length>=n&&parseFloat(r[n],10)}function r(){if("object"==typeof window){if(e)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function o(e){return"[object Object]"===Object.prototype.toString.call(e)}function s(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach((r=>{r.endsWith("Id")?s(e,e.get(t[r]),n):r.endsWith("Ids")&&t[r].forEach((t=>{s(e,e.get(t),n)}))})))}exports.compactObject=function e(t){return o(t)?Object.keys(t).reduce((function(n,r){const s=o(t[r]),i=s?e(t[r]):t[r],a=s&&!Object.keys(i).length;return void 0===i||a?n:Object.assign(n,{[r]:i})}),{}):t},exports.deprecated=function(e,n){t&&console.warn(e+" is deprecated, please use "+n+" instead.")},exports.detectBrowser=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:r}=e;if(r.userAgentData&&r.userAgentData.brands){const e=r.userAgentData.brands.find((e=>"Chromium"===e.brand));if(e){const t=parseInt(e.version,10);if(t>=90)return{browser:"chrome",version:t}}}if(r.mozGetUserMedia)t.browser="firefox",t.version=parseInt(n(r.userAgent,/Firefox\/(\d+)\./,1));else if(r.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=parseInt(n(r.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else{if(!e.RTCPeerConnection||!r.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=parseInt(n(r.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,t._safariVersion=n(r.userAgent,/Version\/(\d+(\.?\d+))/,1)}return t},exports.disableLog=function(t){return"boolean"!=typeof t?new Error("Argument type: "+typeof t+". Please use a boolean."):(e=t,t?"adapter.js logging disabled":"adapter.js logging enabled")},exports.disableWarnings=function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(t=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))},exports.extractVersion=n,exports.filterStats=function(e,t,n){const r=n?"outbound-rtp":"inbound-rtp",o=new Map;if(null===t)return o;const i=[];return e.forEach((e=>{"track"===e.type&&e.trackIdentifier===t.id&&i.push(e)})),i.forEach((t=>{e.forEach((n=>{n.type===r&&n.trackId===t.id&&s(e,n,o)}))})),o},exports.log=r,exports.walkStats=s,exports.wrapPeerConnectionEvent=function(e,t,n){if(!e.RTCPeerConnection)return;if(!Object.getOwnPropertyDescriptor(EventTarget.prototype,"addEventListener").writable)return void r("Unable to polyfill events");const o=e.RTCPeerConnection.prototype,s=o.addEventListener;o.addEventListener=function(e,r){if(e!==t)return s.apply(this,arguments);const o=e=>{const t=n(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),s.apply(this,[e,o])};const i=o.removeEventListener;o.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t])return i.apply(this,arguments);if(!this._eventMap[t].has(n))return i.apply(this,arguments);const r=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,i.apply(this,[e,r])},Object.defineProperty(o,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});let e=!0,t=!0;function n(e,t,n){const r=e.match(t);return r&&r.length>=n&&parseFloat(r[n],10)}function r(){if("object"==typeof window){if(e)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function o(e){return"[object Object]"===Object.prototype.toString.call(e)}function s(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach(r=>{r.endsWith("Id")?s(e,e.get(t[r]),n):r.endsWith("Ids")&&t[r].forEach(t=>{s(e,e.get(t),n)})}))}exports.compactObject=function e(t){return o(t)?Object.keys(t).reduce(function(n,r){const s=o(t[r]),i=s?e(t[r]):t[r],a=s&&!Object.keys(i).length;return void 0===i||a?n:Object.assign(n,{[r]:i})},{}):t},exports.deprecated=function(e,n){t&&console.warn(e+" is deprecated, please use "+n+" instead.")},exports.detectBrowser=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:r}=e;if(r.userAgentData&&r.userAgentData.brands){const e=r.userAgentData.brands.find(e=>"Chromium"===e.brand);if(e){const t=parseInt(e.version,10);if(t>=90)return{browser:"chrome",version:t}}}if(r.mozGetUserMedia)t.browser="firefox",t.version=parseInt(n(r.userAgent,/Firefox\/(\d+)\./,1));else if(r.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=parseInt(n(r.userAgent,/Chrom(e|ium)\/(\d+)\./,2))||null;else{if(!e.RTCPeerConnection||!r.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=parseInt(n(r.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,t._safariVersion=n(r.userAgent,/Version\/(\d+(\.?\d+))/,1)}return t},exports.disableLog=function(t){return"boolean"!=typeof t?new Error("Argument type: "+typeof t+". Please use a boolean."):(e=t,t?"adapter.js logging disabled":"adapter.js logging enabled")},exports.disableWarnings=function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(t=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))},exports.extractVersion=n,exports.filterStats=function(e,t,n){const r=n?"outbound-rtp":"inbound-rtp",o=new Map;if(null===t)return o;const i=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&i.push(e)}),i.forEach(t=>{e.forEach(n=>{n.type===r&&n.trackId===t.id&&s(e,n,o)})}),o},exports.log=r,exports.walkStats=s,exports.wrapPeerConnectionEvent=function(e,t,n){if(!e.RTCPeerConnection)return;if(!Object.getOwnPropertyDescriptor(EventTarget.prototype,"addEventListener").writable)return void r("Unable to polyfill events");const o=e.RTCPeerConnection.prototype,s=o.addEventListener;o.addEventListener=function(e,r){if(e!==t)return s.apply(this,arguments);const o=e=>{const t=n(e);t&&(r.handleEvent?r.handleEvent(t):r(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(r,o),s.apply(this,[e,o])};const i=o.removeEventListener;o.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t])return i.apply(this,arguments);if(!this._eventMap[t].has(n))return i.apply(this,arguments);const r=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,i.apply(this,[e,r])},Object.defineProperty(o,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})};
2
2
  //# sourceMappingURL=utils.js.map