@nethesis/phone-island 1.0.14-dev.1 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.js +1 -1
- package/dist/App.js.map +1 -1
- package/dist/components/AlertGuard.js +1 -1
- package/dist/components/AlertGuard.js.map +1 -1
- package/dist/components/AlertView/index.js +1 -1
- package/dist/components/AlertView/index.js.map +1 -1
- package/dist/components/AudioBars.js +1 -1
- package/dist/components/AudioBars.js.map +1 -1
- package/dist/components/AudioPlayerView/Avatar.js +1 -1
- package/dist/components/AudioPlayerView/Avatar.js.map +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
- package/dist/components/AudioPlayerView/Progress.js +1 -1
- package/dist/components/AudioPlayerView/Progress.js.map +1 -1
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/AvatarGroup.js +1 -1
- package/dist/components/AvatarGroup.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/Avatar.js +1 -1
- package/dist/components/CallView/Avatar.js.map +1 -1
- package/dist/components/CallView/BackCall.js +1 -1
- package/dist/components/CallView/BackCall.js.map +1 -1
- package/dist/components/CallView/DisplayName.js +1 -1
- package/dist/components/CallView/DisplayName.js.map +1 -1
- package/dist/components/CallView/Number.js +1 -1
- package/dist/components/CallView/Number.js.map +1 -1
- package/dist/components/CallView/Timer.js +1 -1
- package/dist/components/CallView/Timer.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/ConferenceView/ConferenceUsersList.js +1 -1
- package/dist/components/ConferenceView/ConferenceUsersList.js.map +1 -1
- package/dist/components/ConferenceView/index.js +1 -1
- package/dist/components/ConferenceView/index.js.map +1 -1
- package/dist/components/ContactView/ContactListView.js +1 -1
- package/dist/components/ContactView/ContactListView.js.map +1 -1
- package/dist/components/ContactView/ListAvatar.js +1 -1
- package/dist/components/ContactView/ListAvatar.js.map +1 -1
- package/dist/components/ContactView/SelectContactNumberView.js +1 -1
- package/dist/components/ContactView/SelectContactNumberView.js.map +1 -1
- package/dist/components/ContactView/TransferActions.js +1 -1
- package/dist/components/ContactView/TransferActions.js.map +1 -1
- package/dist/components/CustomThemedTooltip.js +1 -1
- package/dist/components/CustomThemedTooltip.js.map +1 -1
- package/dist/components/Dropdown.js +1 -1
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/Island.js +1 -1
- package/dist/components/Island.js.map +1 -1
- package/dist/components/IslandDrag.js +1 -1
- package/dist/components/IslandDrag.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/KeypadView/Actions.js +1 -1
- package/dist/components/KeypadView/Actions.js.map +1 -1
- package/dist/components/KeypadView/index.js +1 -1
- package/dist/components/KeypadView/index.js.map +1 -1
- package/dist/components/OperatorBusyView/index.js +1 -1
- package/dist/components/OperatorBusyView/index.js.map +1 -1
- package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js +1 -1
- package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js.map +1 -1
- package/dist/components/PhysicalRecorderView/index.js +1 -1
- package/dist/components/PhysicalRecorderView/index.js.map +1 -1
- package/dist/components/RecorderView/Actions.js +1 -1
- package/dist/components/RecorderView/Actions.js.map +1 -1
- package/dist/components/RecorderView/Bar.js +1 -1
- package/dist/components/RecorderView/Bar.js.map +1 -1
- package/dist/components/RecorderView/BarsGroup.js +1 -1
- package/dist/components/RecorderView/BarsGroup.js.map +1 -1
- package/dist/components/RecorderView/Timer.js +1 -1
- package/dist/components/RecorderView/Timer.js.map +1 -1
- package/dist/components/RecorderView/index.js +1 -1
- package/dist/components/RecorderView/index.js.map +1 -1
- package/dist/components/RestAPI.js +1 -1
- package/dist/components/RestAPI.js.map +1 -1
- package/dist/components/SettingsView/AudioView.js +1 -1
- package/dist/components/SettingsView/AudioView.js.map +1 -1
- package/dist/components/SettingsView/MicrophoneView.js +1 -1
- package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
- package/dist/components/SettingsView/SettingsHeader.js +1 -1
- package/dist/components/SettingsView/SettingsHeader.js.map +1 -1
- package/dist/components/SettingsView/ThemeView.js +1 -1
- package/dist/components/SettingsView/ThemeView.js.map +1 -1
- package/dist/components/SettingsView/VideoInputView.js +1 -1
- package/dist/components/SettingsView/VideoInputView.js.map +1 -1
- package/dist/components/SettingsView/index.js +1 -1
- package/dist/components/SettingsView/index.js.map +1 -1
- package/dist/components/SideView/SideView.js +1 -1
- package/dist/components/SideView/SideView.js.map +1 -1
- package/dist/components/SideView/components/SideViewButton.js +1 -1
- package/dist/components/SideView/components/SideViewButton.js.map +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/StreamingAnswerView/index.js +1 -1
- package/dist/components/StreamingAnswerView/index.js.map +1 -1
- package/dist/components/StreamingImage/index.js +1 -1
- package/dist/components/StreamingImage/index.js.map +1 -1
- package/dist/components/SwitchDeviceView/index.js +1 -1
- package/dist/components/SwitchDeviceView/index.js.map +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
- package/dist/components/TextScroll.js +1 -1
- package/dist/components/TextScroll.js.map +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
- package/dist/components/TransferButton.js +1 -1
- package/dist/components/TransferButton.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/ViewsTransition.js +1 -1
- package/dist/components/ViewsTransition.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/events/PlayerEvents.js +1 -1
- package/dist/events/PlayerEvents.js.map +1 -1
- package/dist/events/RecorderEvents.js +1 -1
- package/dist/events/RecorderEvents.js.map +1 -1
- package/dist/lib/avatars/avatars.js +1 -1
- package/dist/lib/avatars/avatars.js.map +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/devices/devices.js.map +1 -1
- package/dist/lib/phone/audio.js +1 -1
- package/dist/lib/phone/audio.js.map +1 -1
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/phone/queue.js +1 -1
- package/dist/lib/phone/queue.js.map +1 -1
- package/dist/lib/player/audio.js +1 -1
- package/dist/lib/player/audio.js.map +1 -1
- package/dist/lib/user/extensions.js +1 -1
- package/dist/lib/user/extensions.js.map +1 -1
- package/dist/lib/webrtc/janus.js +1 -1
- package/dist/lib/webrtc/janus.js.map +1 -1
- package/dist/lib/webrtc/messages.js +1 -1
- package/dist/lib/webrtc/messages.js.map +1 -1
- package/dist/models/conference.js +1 -1
- package/dist/models/conference.js.map +1 -1
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/mediaDevices.js +1 -1
- package/dist/models/mediaDevices.js.map +1 -1
- package/dist/models/player.js +1 -1
- package/dist/models/player.js.map +1 -1
- package/dist/models/queue.js +1 -1
- package/dist/models/queue.js.map +1 -1
- package/dist/models/ringtones.js +1 -1
- package/dist/models/ringtones.js.map +1 -1
- package/dist/models/streaming.js +1 -1
- package/dist/models/streaming.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -1
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +1 -1
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +1 -1
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +1 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -1
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js +1 -1
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js.map +1 -1
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/description/description.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/description/description.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/label/label.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/label/label.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/internal/disabled.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/internal/floating.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/internal/id.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/machine.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/machine.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/react-glue.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/react-glue.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/default-map.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/match.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/render.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/store.js +1 -1
- package/dist/node_modules/@headlessui/react/dist/utils/store.js.map +1 -1
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js +1 -1
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js +1 -1
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js +1 -1
- package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/domHelpers.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js +1 -1
- package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js +1 -1
- package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js.map +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js +1 -1
- package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js.map +1 -1
- package/dist/node_modules/@rematch/core/dist/core.esm.js +1 -1
- package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -1
- package/dist/node_modules/@rematch/immer/dist/immer.esm.js +1 -1
- package/dist/node_modules/@rematch/immer/dist/immer.esm.js.map +1 -1
- package/dist/node_modules/@rematch/select/dist/select.esm.js +1 -1
- package/dist/node_modules/@rematch/select/dist/select.esm.js.map +1 -1
- package/dist/node_modules/bowser/es5.js +1 -1
- package/dist/node_modules/bowser/es5.js.map +1 -1
- package/dist/node_modules/ebml-block/index.js +1 -1
- package/dist/node_modules/ebml-block/index.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/socket.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js.map +1 -1
- package/dist/node_modules/engine.io-client/build/esm/util.js +1 -1
- package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/commons.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/index.js +1 -1
- package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -1
- package/dist/node_modules/events/events.js +1 -1
- package/dist/node_modules/events/events.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js.map +1 -1
- package/dist/node_modules/i18next/dist/esm/i18next.js +1 -1
- package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -1
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +1 -1
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -1
- package/dist/node_modules/immer/dist/immer.esm.mjs.js +1 -1
- package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -1
- package/dist/node_modules/int64-buffer/int64-buffer.js.map +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
- package/dist/node_modules/mic-check/lib/index.js.map +1 -1
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +1 -1
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -1
- package/dist/node_modules/moment/moment.js +1 -1
- package/dist/node_modules/moment/moment.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -1
- package/dist/node_modules/object-assign/index.js +1 -1
- package/dist/node_modules/object-assign/index.js.map +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +1 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/context.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/defaults.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/utils.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -1
- package/dist/node_modules/react-moment/dist/index.js +1 -1
- package/dist/node_modules/react-moment/dist/index.js.map +1 -1
- package/dist/node_modules/react-redux/es/components/Context.js +1 -1
- package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
- package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
- package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
- package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
- package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js +1 -1
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js.map +1 -1
- package/dist/node_modules/redux/es/redux.js +1 -1
- package/dist/node_modules/redux/es/redux.js.map +1 -1
- package/dist/node_modules/reselect/es/defaultMemoize.js +1 -1
- package/dist/node_modules/reselect/es/defaultMemoize.js.map +1 -1
- package/dist/node_modules/reselect/es/index.js +1 -1
- package/dist/node_modules/reselect/es/index.js.map +1 -1
- package/dist/node_modules/sdp/sdp.js +1 -1
- package/dist/node_modules/sdp/sdp.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/manager.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -1
- package/dist/node_modules/socket.io-client/build/esm/socket.js +1 -1
- package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +1 -1
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -1
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -2
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +2 -2
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js.map +1 -1
- package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/ebmlID.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/index.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js.map +1 -1
- package/dist/node_modules/webm-duration-fix/lib/index.js +1 -1
- package/dist/node_modules/webm-duration-fix/lib/index.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
- package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/services/astproxy.js +1 -1
- package/dist/services/astproxy.js.map +1 -1
- package/dist/services/history_call.js +1 -1
- package/dist/services/history_call.js.map +1 -1
- package/dist/services/offhour.js +1 -1
- package/dist/services/offhour.js.map +1 -1
- package/dist/services/phonebook.js +1 -1
- package/dist/services/phonebook.js.map +1 -1
- package/dist/services/user.js +1 -1
- package/dist/services/user.js.map +1 -1
- package/dist/services/voicemail.js +1 -1
- package/dist/services/voicemail.js.map +1 -1
- package/dist/store/index.js +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/styles/Island.styles.js +1 -1
- package/dist/styles/Island.styles.js.map +1 -1
- package/dist/utils/customHooks/useCommittedRef.js +1 -1
- package/dist/utils/customHooks/useCommittedRef.js.map +1 -1
- package/dist/utils/customHooks/useEventCallback.js +1 -1
- package/dist/utils/customHooks/useEventCallback.js.map +1 -1
- package/dist/utils/customHooks/useEventListener.js +1 -1
- package/dist/utils/customHooks/useEventListener.js.map +1 -1
- package/dist/utils/customHooks/useIntersectionObserver.js +1 -1
- package/dist/utils/customHooks/useIntersectionObserver.js.map +1 -1
- package/dist/utils/customHooks/useLocalStorage.js +1 -1
- package/dist/utils/customHooks/useLocalStorage.js.map +1 -1
- package/dist/utils/customHooks/useLongPress.js +1 -1
- package/dist/utils/customHooks/useLongPress.js.map +1 -1
- package/dist/utils/deviceUtils.js +1 -1
- package/dist/utils/deviceUtils.js.map +1 -1
- package/dist/utils/genericFunctions/checkConnection.js +1 -1
- package/dist/utils/genericFunctions/checkConnection.js.map +1 -1
- package/dist/utils/genericFunctions/isBackCallVisible.js +1 -1
- package/dist/utils/genericFunctions/isBackCallVisible.js.map +1 -1
- package/dist/utils/genericFunctions/withTimeout.js +1 -1
- package/dist/utils/genericFunctions/withTimeout.js.map +1 -1
- package/dist/utils/streaming/getStreamingSourceId.js +1 -1
- package/dist/utils/streaming/getStreamingSourceId.js.map +1 -1
- package/dist/utils/streaming/isFromStreaming.js +1 -1
- package/dist/utils/streaming/isFromStreaming.js.map +1 -1
- package/dist/utils/streaming/streamingUtils.js +1 -1
- package/dist/utils/streaming/streamingUtils.js.map +1 -1
- package/dist/workers/wake_up.js +1 -1
- package/dist/workers/wake_up.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/tools.js");require("../../../int64-buffer/int64-buffer.js");var t=require("./EBMLEncoder.js"),n=require("buffer"),r=require("./tools-ebml.js"),a=require("../../../ebml-block/index.js"),u=require("../../../../_virtual/int64-buffer.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f,o=i(n);exports.__require=function(){return f||(f=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.convertEBMLDateToJSDate=e.createFloatBuffer=e.createIntBuffer=e.createUIntBuffer=e.encodeValueToBuffer=e.concat=e.putRefinedMetaData=e.extractElement=e.removeElement=e.makeMetadataSeekable=e.createRIFFChunk=e.VP8BitStreamToRiffWebPBuffer=e.WebPBlockFilter=e.encodeTag=e.readBlock=e.ebmlBlock=e.writeVint=e.readVint=e.Buffer=void 0;var n=u.__exports,i=t.__require(),f=o.default,s=r.__require(),c=a.default;function d(t,n){var r=new e.Buffer(4);return r.writeUInt32LE(n.byteLength,0),b([new e.Buffer(t.substr(0,4),"ascii"),r,n,new e.Buffer(n.byteLength%2==0?0:1)])}function p(e,t){for(var n=-1,r=0;r<t.length;r++){var a=t[r];if(a.name===e){if("m"!==a.type)return void t.splice(r,1);if(a.isEnd){if(-1==n)throw new Error("Detected ".concat(e," closing element before finding the start"));return void t.splice(n,r-n+1)}n=r}}}function m(e,t){for(var n=[],r=-1,a=0;a<t.length;a++){var u=t[a];if(u.name===e){if("m"!==u.type){n.push(t[a]);break}if(u.isEnd){if(-1==r)throw new Error("Detected ".concat(e," closing element before finding the start"));n=t.slice(r,a+1);break}r=a}}return n}function l(e){var t=new i.default;return e.reduce(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../../_virtual/tools.js");require("../../../int64-buffer/int64-buffer.js");var t=require("./EBMLEncoder.js"),n=require("buffer"),r=require("./tools-ebml.js"),a=require("../../../ebml-block/index.js"),u=require("../../../../_virtual/int64-buffer.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f,o=i(n);exports.__require=function(){return f||(f=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.convertEBMLDateToJSDate=e.createFloatBuffer=e.createIntBuffer=e.createUIntBuffer=e.encodeValueToBuffer=e.concat=e.putRefinedMetaData=e.extractElement=e.removeElement=e.makeMetadataSeekable=e.createRIFFChunk=e.VP8BitStreamToRiffWebPBuffer=e.WebPBlockFilter=e.encodeTag=e.readBlock=e.ebmlBlock=e.writeVint=e.readVint=e.Buffer=void 0;var n=u.__exports,i=t.__require(),f=o.default,s=r.__require(),c=a.default;function d(t,n){var r=new e.Buffer(4);return r.writeUInt32LE(n.byteLength,0),b([new e.Buffer(t.substr(0,4),"ascii"),r,n,new e.Buffer(n.byteLength%2==0?0:1)])}function p(e,t){for(var n=-1,r=0;r<t.length;r++){var a=t[r];if(a.name===e){if("m"!==a.type)return void t.splice(r,1);if(a.isEnd){if(-1==n)throw new Error("Detected ".concat(e," closing element before finding the start"));return void t.splice(n,r-n+1)}n=r}}}function m(e,t){for(var n=[],r=-1,a=0;a<t.length;a++){var u=t[a];if(u.name===e){if("m"!==u.type){n.push(t[a]);break}if(u.isEnd){if(-1==r)throw new Error("Detected ".concat(e," closing element before finding the start"));n=t.slice(r,a+1);break}r=a}}return n}function l(e){var t=new i.default;return e.reduce(function(e,n){return e.concat(t.encode([n]))},[]).reduce(function(e,t){return e+t.byteLength},0)}function h(t,n,r){var a=r.duration,u=r.clusterPtrs,i=r.cues,f=t.slice(0);if("number"==typeof a){var o=!1;f.forEach(function(e){"f"===e.type&&"Duration"===e.name&&(o=!0,e.data=k(a,8))}),o||y(f,"Info",[{name:"Duration",type:"f",data:k(a,8)}])}Array.isArray(i)&&y(f,"Cues",function(e,t){var n=[];return e.forEach(function(e){var r=e.CueTrack,a=e.CueClusterPosition,u=e.CueTime;n.push({name:"CuePoint",type:"m",isEnd:!1}),n.push({name:"CueTime",type:"u",data:E(u)}),n.push({name:"CueTrackPositions",type:"m",isEnd:!1}),n.push({name:"CueTrack",type:"u",data:E(r)}),n.push({name:"CueClusterPosition",type:"u",data:E(a+t)}),n.push({name:"CueTrackPositions",type:"m",isEnd:!0}),n.push({name:"CuePoint",type:"m",isEnd:!0})}),n}(i,n));var s=[];return Array.isArray(u)&&(console.warn("append cluster pointers to seekhead is deprecated. please use cues"),s=function(t,n){var r=[];return t.forEach(function(t){r.push({name:"Seek",type:"m",isEnd:!1}),r.push({name:"SeekID",type:"b",data:new e.Buffer([31,67,182,117])}),r.push({name:"SeekPosition",type:"u",data:E(t+n)}),r.push({name:"Seek",type:"m",isEnd:!0})}),r}(u,n)),y(f,"SeekHead",s,!0),f}function y(e,t,n,r){void 0===r&&(r=!1);for(var a=-1,u=0;u<e.length;u++){var i=e[u];if("m"===i.type&&i.name===t&&!1===i.isEnd){a=u;break}}a>=0?Array.prototype.splice.apply(e,[a+1,0].concat(n)):r?[].concat([{name:t,type:"m",isEnd:!1}],n,[{name:t,type:"m",isEnd:!0}]).reverse().forEach(function(t){e.unshift(t)}):(e.push({name:t,type:"m",isEnd:!1}),n.forEach(function(t){e.push(t)}),e.push({name:t,type:"m",isEnd:!0}))}function b(t){return e.Buffer.concat(t)}function E(t){for(var r=1;t>=Math.pow(2,8*r);r++);if(r>=7)return console.warn("7bit or more bigger uint not supported."),new n.Uint64BE(t).toBuffer();var a=new e.Buffer(r);return a.writeUIntBE(t,0,r),a}function w(t){for(var r=1;t>=Math.pow(2,8*r);r++);if(r>=7)return console.warn("7bit or more bigger uint not supported."),new n.Int64BE(t).toBuffer();var a=new e.Buffer(r);return a.writeIntBE(t,0,r),a}function k(t,n){var r;if(void 0===n&&(n=8),8===n)return(r=new e.Buffer(8)).writeDoubleBE(t,0),r;if(4===n)return(r=new e.Buffer(4)).writeFloatBE(t,0),r;throw new Error("float type bits must 4bytes or 8bytes")}e.Buffer=f.Buffer,e.readVint=s.default.readVint,e.writeVint=s.default.writeVint,e.ebmlBlock=c,e.readBlock=function(t){return(0,e.ebmlBlock)(new e.Buffer(t))},e.encodeTag=function(t,n,r){return void 0===r&&(r=!1),b([t,r?new e.Buffer("01ffffffffffffff","hex"):(0,e.writeVint)(n.length),n])},e.WebPBlockFilter=function(t){return t.reduce(function(t,n){return"b"!==n.type||"SimpleBlock"!==n.name?t:(0,e.ebmlBlock)(n.data).frames.some(function(e){return"9d012a"===e.slice(3,6).toString("hex")})?t.concat(n):t},[])},e.VP8BitStreamToRiffWebPBuffer=function(t){var n=d("VP8 ",t);return d("RIFF",b([new e.Buffer("WEBP","ascii"),n]))},e.createRIFFChunk=d,e.makeMetadataSeekable=function(t,n,r){var a=m("EBML",t),u=l(a)+12,f=t[t.length-1].dataEnd-u,o=m("Info",t);p("Duration",o),o.splice(1,0,{name:"Duration",type:"f",data:k(n,8)});for(var s=l(o),c=m("Tracks",t),d=l(c),h=47,y=[],b=5+15*r.length,w=[],B=-1,v=function(t){var n=h,a=n+s,i=a+d,o=i+b-f;if((y=[]).push({name:"SeekHead",type:"m",isEnd:!1}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([21,73,169,102])}),y.push({name:"SeekPosition",type:"u",data:E(n)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([22,84,174,107])}),y.push({name:"SeekPosition",type:"u",data:E(a)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"Seek",type:"m",isEnd:!1}),y.push({name:"SeekID",type:"b",data:new e.Buffer([28,83,187,107])}),y.push({name:"SeekPosition",type:"u",data:E(i)}),y.push({name:"Seek",type:"m",isEnd:!0}),y.push({name:"SeekHead",type:"m",isEnd:!0}),h=l(y),(w=[]).push({name:"Cues",type:"m",isEnd:!1}),r.forEach(function(e){var t=e.CueTrack,n=e.CueClusterPosition,r=e.CueTime;w.push({name:"CuePoint",type:"m",isEnd:!1}),w.push({name:"CueTime",type:"u",data:E(r)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!1}),w.push({name:"CueTrack",type:"u",data:E(t)}),n-=u,n+=o,w.push({name:"CueClusterPosition",type:"u",data:E(n)}),w.push({name:"CueTrackPositions",type:"m",isEnd:!0}),w.push({name:"CuePoint",type:"m",isEnd:!0})}),w.push({name:"Cues",type:"m",isEnd:!0}),b=l(w),B===o)return"break";if(B=o,9===t)throw new Error("Failed to converge to a stable metadata size")},g=0;g<10;g++){if("break"===v(g))break}var S=[].concat.apply([],[a,{name:"Segment",type:"m",isEnd:!1,unknownSize:!0},y,o,c,w]);return(new i.default).encode(S)},e.removeElement=p,e.extractElement=m,e.putRefinedMetaData=function(t,n){Array.isArray(n.cueInfos)&&!Array.isArray(n.cues)&&(console.warn("putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues"),n.cues=n.cueInfos);for(var r=[],a=[],u=0;u<t.length;u++){var f=t[u];if("m"===f.type&&"Segment"===f.name){if(r=t.slice(0,u),a=t.slice(u),f.unknownSize){a.shift();break}throw new Error("this metadata is not streaming webm file")}}if(!(a[a.length-1].dataEnd>0))throw new Error("metadata dataEnd has wrong number");var o=a[a.length-1].dataEnd,s=r[r.length-1].dataEnd,c=(new i.default).encode(r).byteLength-s,d=o-a[0].tagStart;a[0].tagStart,a[0].tagStart;var p,m=new e.Buffer([24,83,128,103]),l=new e.Buffer("01ffffffffffffff","hex"),y=m.byteLength+l.byteLength,b=d;for(p=1;p<20;p++){var E=h(a,c+(s+y+b-o),n),w=(new i.default).encode(E).byteLength;if(w===b)return(new i.default).encode([].concat(r,[{type:"m",name:"Segment",isEnd:!1,unknownSize:!0}],E));b=w}throw new Error("unable to refine metadata, stable size could not be found in "+p+" iterations!")},e.concat=b,e.encodeValueToBuffer=function(t){var r=new e.Buffer(0);if("m"===t.type)return t;switch(t.type){case"u":r=E(t.value);break;case"i":r=w(t.value);break;case"f":r=k(t.value);break;case"s":r=new e.Buffer(t.value,"ascii");break;case"8":r=new e.Buffer(t.value,"utf8");break;case"b":r=t.value;break;case"d":r=new n.Int64BE(t.value.getTime().toString()).toBuffer()}return Object.assign({},t,{data:r})},e.createUIntBuffer=E,e.createIntBuffer=w,e.createFloatBuffer=k,e.convertEBMLDateToJSDate=function(e){return e instanceof Date?e:new Date(new Date("2001-01-01T00:00:00.000Z").getTime()+Number(e)/1e3/1e3)}}(e.__exports)),e.__exports};
|
|
2
2
|
//# sourceMappingURL=tools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sources":["../../../../../node_modules/webm-duration-fix/lib/ebml/tools.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertEBMLDateToJSDate = exports.createFloatBuffer = exports.createIntBuffer = exports.createUIntBuffer = exports.encodeValueToBuffer = exports.concat = exports.putRefinedMetaData = exports.extractElement = exports.removeElement = exports.makeMetadataSeekable = exports.createRIFFChunk = exports.VP8BitStreamToRiffWebPBuffer = exports.WebPBlockFilter = exports.encodeTag = exports.readBlock = exports.ebmlBlock = exports.writeVint = exports.readVint = exports.Buffer = void 0;\n/// <reference types=\"node\"/>\nvar int64_buffer_1 = require(\"int64-buffer\");\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nvar _Buffer = require(\"buffer\");\nvar tools_ebml_1 = require(\"./tools-ebml\");\nvar _block = require(\"ebml-block\");\nexports.Buffer = _Buffer.Buffer;\nexports.readVint = tools_ebml_1.default.readVint;\nexports.writeVint = tools_ebml_1.default.writeVint;\nexports.ebmlBlock = _block;\nfunction readBlock(buf) {\n return (0, exports.ebmlBlock)(new exports.Buffer(buf));\n}\nexports.readBlock = readBlock;\n/**\n * @param end - if end === false then length is unknown\n */\nfunction encodeTag(tagId, tagData, unknownSize) {\n if (unknownSize === void 0) { unknownSize = false; }\n return concat([\n tagId,\n unknownSize ?\n new exports.Buffer('01ffffffffffffff', 'hex') :\n (0, exports.writeVint)(tagData.length),\n tagData\n ]);\n}\nexports.encodeTag = encodeTag;\n/**\n * WebP ファイルにできる SimpleBlock の パスフィルタ\n */\nfunction WebPBlockFilter(elms) {\n return elms.reduce(function (lst, elm) {\n if (elm.type !== \"b\") {\n return lst;\n }\n if (elm.name !== \"SimpleBlock\") {\n return lst;\n }\n var o = (0, exports.ebmlBlock)(elm.data);\n var hasWebP = o.frames.some(function (frame) {\n // https://tools.ietf.org/html/rfc6386#section-19.1\n var startcode = frame.slice(3, 6).toString(\"hex\");\n return startcode === \"9d012a\";\n });\n if (!hasWebP) {\n return lst;\n }\n return lst.concat(elm);\n }, []);\n}\nexports.WebPBlockFilter = WebPBlockFilter;\n/**\n * @param frame - VP8 BitStream のうち startcode をもつ frame\n * @return - WebP ファイルの ArrayBuffer\n */\nfunction VP8BitStreamToRiffWebPBuffer(frame) {\n var VP8Chunk = createRIFFChunk(\"VP8 \", frame);\n var WebPChunk = concat([\n new exports.Buffer(\"WEBP\", \"ascii\"),\n VP8Chunk\n ]);\n return createRIFFChunk(\"RIFF\", WebPChunk);\n}\nexports.VP8BitStreamToRiffWebPBuffer = VP8BitStreamToRiffWebPBuffer;\n/**\n * RIFF データチャンクを作る\n */\nfunction createRIFFChunk(FourCC, chunk) {\n var chunkSize = new exports.Buffer(4);\n chunkSize.writeUInt32LE(chunk.byteLength, 0);\n return concat([\n new exports.Buffer(FourCC.substr(0, 4), \"ascii\"),\n chunkSize,\n chunk,\n new exports.Buffer(chunk.byteLength % 2 === 0 ? 0 : 1) // padding\n ]);\n}\nexports.createRIFFChunk = createRIFFChunk;\n/* Original Metadata\n\n m 0\tEBML\n u 1\t EBMLVersion 1\n u 1\t EBMLReadVersion 1\n u 1\t EBMLMaxIDLength 4\n u 1\t EBMLMaxSizeLength 8\n s 1\t DocType webm\n u 1\t DocTypeVersion 4\n u 1\t DocTypeReadVersion 2\n m 0\tSegment\n m 1\t Info segmentContentStartPos, all CueClusterPositions provided in info.cues will be relative to here and will need adjusted\n u 2\t TimecodeScale 1000000\n 8 2\t MuxingApp Chrome\n 8 2\t WritingApp Chrome\n m 1\t Tracks tracksStartPos\n m 2\t TrackEntry\n u 3\t TrackNumber 1\n u 3\t TrackUID 31790271978391090\n u 3\t TrackType 2\n s 3\t CodecID A_OPUS\n b 3\t CodecPrivate <Buffer 19>\n m 3\t Audio\n f 4\t SamplingFrequency 48000\n u 4\t Channels 1\n m 2\t TrackEntry\n u 3\t TrackNumber 2\n u 3\t TrackUID 24051277436254136\n u 3\t TrackType 1\n s 3\t CodecID V_VP8\n m 3\t Video\n u 4\t PixelWidth 1024\n u 4\t PixelHeight 576\n m 1\t Cluster clusterStartPos\n u 2\t Timecode 0\n b 2\t SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/* Desired Metadata\n\n m\t0 EBML\n u\t1 EBMLVersion 1\n u\t1 EBMLReadVersion 1\n u\t1 EBMLMaxIDLength 4\n u\t1 EBMLMaxSizeLength 8\n s\t1 DocType webm\n u\t1 DocTypeVersion 4\n u\t1 DocTypeReadVersion 2\n m\t0 Segment\n m\t1 SeekHead -> This is SeekPosition 0, so all SeekPositions can be calculated as (bytePos - segmentContentStartPos), which is 44 in this case\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x15, 0x49, 0xA9, 0x66]) Info\n u\t3 SeekPosition -> infoStartPos =\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x16, 0x54, 0xAE, 0x6B]) Tracks\n u\t3 SeekPosition { tracksStartPos }\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x1C, 0x53, 0xBB, 0x6B]) Cues\n u\t3 SeekPosition { cuesStartPos }\n m\t1 Info\n f\t2 Duration 32480 -> overwrite, or insert if it doesn't exist\n u\t2 TimecodeScale 1000000\n 8\t2 MuxingApp Chrome\n 8\t2 WritingApp Chrome\n m\t1 Tracks\n m\t2 TrackEntry\n u\t3 TrackNumber 1\n u\t3 TrackUID 31790271978391090\n u\t3 TrackType 2\n s\t3 CodecID A_OPUS\n b\t3 CodecPrivate <Buffer 19>\n m\t3 Audio\n f\t4 SamplingFrequency 48000\n u\t4 Channels 1\n m\t2 TrackEntry\n u\t3 TrackNumber 2\n u\t3 TrackUID 24051277436254136\n u\t3 TrackType 1\n s\t3 CodecID V_VP8\n m\t3 Video\n u\t4 PixelWidth 1024\n u\t4 PixelHeight 576\n m 1 Cues -> cuesStartPos\n m 2 CuePoint\n u 3 CueTime 0\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 2 CuePoint\n u 3 CueTime 600\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 1 Cluster\n u 2 Timecode 0\n b 2 SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/**\n * convert the metadata from a streaming webm bytestream to a seekable file by inserting Duration, Seekhead and Cues\n * @param originalMetadata - orginal metadata (everything before the clusters start) from media recorder\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n */\nfunction makeMetadataSeekable(originalMetadata, duration, cuesInfo) {\n // extract the header, we can reuse this as-is\n var header = extractElement(\"EBML\", originalMetadata);\n var headerSize = encodedSizeOfEbml(header);\n //console.error(\"Header size: \" + headerSize);\n //printElementIds(header);\n // After the header comes the Segment open tag, which in this implementation is always 12 bytes (4 byte id, 8 byte 'unknown length')\n // After that the segment content starts. All SeekPositions and CueClusterPosition must be relative to segmentContentStartPos\n var segmentContentStartPos = headerSize + 12;\n //console.error(\"segmentContentStartPos: \" + segmentContentStartPos); \n // find the original metadata size, and adjust it for header size and Segment start element so we can keep all positions relative to segmentContentStartPos\n var originalMetadataSize = originalMetadata[originalMetadata.length - 1].dataEnd - segmentContentStartPos;\n //console.error(\"Original Metadata size: \" + originalMetadataSize);\n //printElementIds(originalMetadata);\n // extract the segment info, remove the potentially existing Duration element, and add our own one.\n var info = extractElement(\"Info\", originalMetadata);\n removeElement(\"Duration\", info);\n info.splice(1, 0, { name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) });\n var infoSize = encodedSizeOfEbml(info);\n //console.error(\"Info size: \" + infoSize);\n //printElementIds(info); \n // extract the track info, we can re-use this as is\n var tracks = extractElement(\"Tracks\", originalMetadata);\n var tracksSize = encodedSizeOfEbml(tracks);\n //console.error(\"Tracks size: \" + tracksSize);\n //printElementIds(tracks); \n var seekHeadSize = 47; // Initial best guess, but could be slightly larger if the Cues element is huge.\n var seekHead = [];\n var cuesSize = 5 + cuesInfo.length * 15; // very rough initial approximation, depends a lot on file size and number of CuePoints \n var cues = [];\n var lastSizeDifference = -1; // \n // The size of SeekHead and Cues elements depends on how many bytes the offsets values can be encoded in.\n // The actual offsets in CueClusterPosition depend on the final size of the SeekHead and Cues elements\n // We need to iteratively converge to a stable solution.\n var maxIterations = 10;\n var _loop_1 = function (i) {\n // SeekHead starts at 0\n var infoStart = seekHeadSize; // Info comes directly after SeekHead\n var tracksStart = infoStart + infoSize; // Tracks comes directly after Info\n var cuesStart = tracksStart + tracksSize; // Cues starts directly after \n var newMetadataSize = cuesStart + cuesSize; // total size of metadata \n // This is the offset all CueClusterPositions should be adjusted by due to the metadata size changing.\n var sizeDifference = newMetadataSize - originalMetadataSize;\n // console.error(`infoStart: ${infoStart}, infoSize: ${infoSize}`);\n // console.error(`tracksStart: ${tracksStart}, tracksSize: ${tracksSize}`);\n // console.error(`cuesStart: ${cuesStart}, cuesSize: ${cuesSize}`);\n // console.error(`originalMetadataSize: ${originalMetadataSize}, newMetadataSize: ${newMetadataSize}, sizeDifference: ${sizeDifference}`); \n // create the SeekHead element\n seekHead = [];\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) }); // Info\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(infoStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) }); // Tracks\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tracksStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) }); // Cues\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(cuesStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: true });\n seekHeadSize = encodedSizeOfEbml(seekHead);\n //console.error(\"SeekHead size: \" + seekHeadSize);\n //printElementIds(seekHead); \n // create the Cues element\n cues = [];\n cues.push({ name: \"Cues\", type: \"m\", isEnd: false });\n cuesInfo.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) });\n //console.error(`CueClusterPosition: ${CueClusterPosition}, Corrected to: ${CueClusterPosition - segmentContentStartPos} , offset by ${sizeDifference} to become ${(CueClusterPosition - segmentContentStartPos) + sizeDifference - segmentContentStartPos}`);\n // EBMLReader returns CueClusterPosition with absolute byte offsets. The Cues section expects them as offsets from the first level 1 element of the Segment, so we need to adjust it.\n CueClusterPosition -= segmentContentStartPos;\n // We also need to adjust to take into account the change in metadata size from when EBMLReader read the original metadata.\n CueClusterPosition += sizeDifference;\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n cues.push({ name: \"Cues\", type: \"m\", isEnd: true });\n cuesSize = encodedSizeOfEbml(cues);\n //console.error(\"Cues size: \" + cuesSize); \n //console.error(\"Cue count: \" + cuesInfo.length);\n //printElementIds(cues); \n // If the new MetadataSize is not the same as the previous iteration, we need to run once more.\n if (lastSizeDifference !== sizeDifference) {\n lastSizeDifference = sizeDifference;\n if (i === maxIterations - 1) {\n throw new Error(\"Failed to converge to a stable metadata size\");\n }\n }\n else {\n return \"break\";\n }\n };\n for (var i = 0; i < maxIterations; i++) {\n var state_1 = _loop_1(i);\n if (state_1 === \"break\")\n break;\n }\n var finalMetadata = [].concat.apply([], [\n header,\n { name: \"Segment\", type: \"m\", isEnd: false, unknownSize: true },\n seekHead,\n info,\n tracks,\n cues\n ]);\n var result = new EBMLEncoder_1.default().encode(finalMetadata);\n //printElementIds(finalMetadata);\n //console.error(`Final metadata buffer size: ${result.byteLength}`);\n //console.error(`Final metadata buffer size without header and segment: ${result.byteLength-segmentContentStartPos}`);\n return result;\n}\nexports.makeMetadataSeekable = makeMetadataSeekable;\n/**\n * print all element id names in a list\n\n * @param metadata - array of EBML elements to print\n *\nexport function printElementIds(metadata: EBML.EBMLElementBuffer[]) {\n\n let result: EBML.EBMLElementBuffer[] = [];\n let start: number = -1;\n\n for (let i = 0; i < metadata.length; i++) {\n console.error(\"\\t id: \" + metadata[i].name);\n }\n}\n*/\n/**\n * remove all occurances of an EBML element from an array of elements\n * If it's a MasterElement you will also remove the content. (everything between start and end)\n * @param idName - name of the EBML Element to remove.\n * @param metadata - array of EBML elements to search\n */\nfunction removeElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n metadata.splice(start, i - start + 1);\n return;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n metadata.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.removeElement = removeElement;\n/**\n * extract the first occurance of an EBML tag from a flattened array of EBML data.\n * If it's a MasterElement you will also get the content. (everything between start and end)\n * @param idName - name of the EBML Element to extract.\n * @param metadata - array of EBML elements to search\n */\nfunction extractElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n result = metadata.slice(start, i + 1);\n break;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n result.push(metadata[i]);\n break;\n }\n }\n }\n return result;\n}\nexports.extractElement = extractElement;\n/**\n * @deprecated\n * metadata に対して duration と seekhead を追加した metadata を返す\n * @param metadata - 変更前の webm における ファイル先頭から 最初の Cluster 要素までの 要素\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n * @deprecated @param clusterPtrs - 変更前の webm における SeekHead に追加する Cluster 要素 への start pointer\n * @deprecated @param cueInfos - please use cues.\n */\nfunction putRefinedMetaData(metadata, info) {\n if (Array.isArray(info.cueInfos) && !Array.isArray(info.cues)) {\n console.warn(\"putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues\");\n info.cues = info.cueInfos;\n }\n var ebml = [];\n var payload = [];\n for (var i_1 = 0; i_1 < metadata.length; i_1++) {\n var elm = metadata[i_1];\n if (elm.type === \"m\" && elm.name === \"Segment\") {\n ebml = metadata.slice(0, i_1);\n payload = metadata.slice(i_1);\n if (elm.unknownSize) {\n payload.shift(); // remove segment tag\n break;\n }\n throw new Error(\"this metadata is not streaming webm file\");\n }\n }\n // *0 *4 *5 *36 *40 *48=segmentOffset *185=originalPayloadOffsetEnd\n // | | | | | | |\n // [EBML][size]....[Segment][size][Info][size][Duration][size]...[Cluster]\n // | | |^inf | |\n // | +segmentSiz(12)+ |\n // +-ebmlSize(36)--+ | +-payloadSize(137)-------------+offsetEndDiff+\n // | | +-newPayloadSize(??)-------------------------+\n // | | | |\n // [Segment][size][Info][size][Duration][size]....[size][value][Cluster]\n // ^ |\n // | *??=newPayloadOffsetEnd\n // inf\n if (!(payload[payload.length - 1].dataEnd > 0)) {\n throw new Error(\"metadata dataEnd has wrong number\");\n }\n var originalPayloadOffsetEnd = payload[payload.length - 1].dataEnd; // = first cluster ptr\n var ebmlSize = ebml[ebml.length - 1].dataEnd; // = first segment ptr\n var refinedEBMLSize = new EBMLEncoder_1.default().encode(ebml).byteLength;\n var offsetDiff = refinedEBMLSize - ebmlSize;\n var payloadSize = originalPayloadOffsetEnd - payload[0].tagStart;\n var segmentSize = payload[0].tagStart - ebmlSize;\n var segmentOffset = payload[0].tagStart;\n var segmentTagBuf = new exports.Buffer([0x18, 0x53, 0x80, 0x67]); // Segment\n var segmentSizeBuf = new exports.Buffer('01ffffffffffffff', 'hex'); // Segmentの最後の位置は無数の Cluster 依存なので。 writeVint(newPayloadSize).byteLength ではなく、 infinity.\n var _segmentSize = segmentTagBuf.byteLength + segmentSizeBuf.byteLength; // == segmentSize\n var newPayloadSize = payloadSize;\n // We need the size to be stable between two refinements in order for our offsets to be correct\n // Bound the number of possible refinements so we can't go infinate if something goes wrong\n var i;\n for (i = 1; i < 20; i++) {\n var newPayloadOffsetEnd = ebmlSize + _segmentSize + newPayloadSize;\n var offsetEndDiff = newPayloadOffsetEnd - originalPayloadOffsetEnd;\n var sizeDiff = offsetDiff + offsetEndDiff;\n var refined = refineMetadata(payload, sizeDiff, info);\n var newNewRefinedSize = new EBMLEncoder_1.default().encode(refined).byteLength; // 一旦 seekhead を作って自身のサイズを調べる\n if (newNewRefinedSize === newPayloadSize) {\n // Size is stable\n return new EBMLEncoder_1.default().encode([].concat(ebml, [{ type: \"m\", name: \"Segment\", isEnd: false, unknownSize: true }], refined));\n }\n newPayloadSize = newNewRefinedSize;\n }\n throw new Error(\"unable to refine metadata, stable size could not be found in \" + i + \" iterations!\");\n}\nexports.putRefinedMetaData = putRefinedMetaData;\n// Given a list of EBMLElementBuffers, returns their encoded size in bytes\nfunction encodedSizeOfEbml(refinedMetaData) {\n var encorder = new EBMLEncoder_1.default();\n return refinedMetaData.reduce(function (lst, elm) { return lst.concat(encorder.encode([elm])); }, []).reduce(function (o, buf) { return o + buf.byteLength; }, 0);\n}\nfunction refineMetadata(mesetadata, sizeDiff, info) {\n var duration = info.duration, clusterPtrs = info.clusterPtrs, cues = info.cues;\n var _metadata = mesetadata.slice(0);\n if (typeof duration === \"number\") {\n // duration を追加する\n var overwrited_1 = false;\n _metadata.forEach(function (elm) {\n if (elm.type === \"f\" && elm.name === \"Duration\") {\n overwrited_1 = true;\n elm.data = createFloatBuffer(duration, 8);\n }\n });\n if (!overwrited_1) {\n insertTag(_metadata, \"Info\", [{ name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) }]);\n }\n }\n if (Array.isArray(cues)) {\n insertTag(_metadata, \"Cues\", create_cue(cues, sizeDiff));\n }\n var seekhead_children = [];\n if (Array.isArray(clusterPtrs)) {\n console.warn(\"append cluster pointers to seekhead is deprecated. please use cues\");\n seekhead_children = create_seek_from_clusters(clusterPtrs, sizeDiff);\n }\n // remove seek info\n /*\n _metadata = _metadata.filter((elm)=> !(\n elm.name === \"Seek\" ||\n elm.name === \"SeekID\" ||\n elm.name === \"SeekPosition\") );\n */\n // working on progress\n //seekhead_children = seekhead_children.concat(create_seekhead(_metadata));\n insertTag(_metadata, \"SeekHead\", seekhead_children, true);\n return _metadata;\n}\nfunction create_seekhead(metadata, sizeDiff) {\n var seeks = [];\n [\"Info\", \"Tracks\", \"Cues\"].forEach(function (tagName) {\n var tagStarts = metadata.filter(function (elm) { return elm.type === \"m\" && elm.name === tagName && elm.isEnd === false; }).map(function (elm) { return elm[\"tagStart\"]; });\n var tagStart = tagStarts[0];\n if (typeof tagStart !== \"number\") {\n return;\n }\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n switch (tagName) {\n case \"Info\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) });\n break;\n case \"Tracks\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) });\n break;\n case \"Cues\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) });\n break;\n }\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tagStart + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_seek_from_clusters(clusterPtrs, sizeDiff) {\n var seeks = [];\n clusterPtrs.forEach(function (start) {\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n // [0x1F, 0x43, 0xB6, 0x75] で Cluster 意\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1F, 0x43, 0xB6, 0x75]) });\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(start + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_cue(cueInfos, sizeDiff) {\n var cues = [];\n cueInfos.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) }); // video track\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition + sizeDiff) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n return cues;\n}\nfunction insertTag(_metadata, tagName, children, insertHead) {\n if (insertHead === void 0) { insertHead = false; }\n // find the tagname from _metadata\n var idx = -1;\n for (var i = 0; i < _metadata.length; i++) {\n var elm = _metadata[i];\n if (elm.type === \"m\" && elm.name === tagName && elm.isEnd === false) {\n idx = i;\n break;\n }\n }\n if (idx >= 0) {\n // insert [<CuePoint />] to <Cues />\n Array.prototype.splice.apply(_metadata, [idx + 1, 0].concat(children));\n }\n else if (insertHead) {\n [].concat([{ name: tagName, type: \"m\", isEnd: false }], children, [{ name: tagName, type: \"m\", isEnd: true }]).reverse().forEach(function (elm) { _metadata.unshift(elm); });\n }\n else {\n // metadata 末尾に <Cues /> を追加\n // insert <Cues />\n _metadata.push({ name: tagName, type: \"m\", isEnd: false });\n children.forEach(function (elm) { _metadata.push(elm); });\n _metadata.push({ name: tagName, type: \"m\", isEnd: true });\n }\n}\nfunction concat(list) {\n return exports.Buffer.concat(list);\n}\nexports.concat = concat;\nfunction encodeValueToBuffer(elm) {\n var data = new exports.Buffer(0);\n if (elm.type === \"m\") {\n return elm;\n }\n switch (elm.type) {\n case \"u\":\n data = createUIntBuffer(elm.value);\n break;\n case \"i\":\n data = createIntBuffer(elm.value);\n break;\n case \"f\":\n data = createFloatBuffer(elm.value);\n break;\n case \"s\":\n data = new exports.Buffer(elm.value, 'ascii');\n break;\n case \"8\":\n data = new exports.Buffer(elm.value, 'utf8');\n break;\n case \"b\":\n data = elm.value;\n break;\n case \"d\":\n data = new int64_buffer_1.Int64BE(elm.value.getTime().toString()).toBuffer();\n break;\n }\n return Object.assign({}, elm, { data: data });\n}\nexports.encodeValueToBuffer = encodeValueToBuffer;\nfunction createUIntBuffer(value) {\n // Big-endian, any size from 1 to 8\n // but js number is float64, so max 6 bit octets\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Uint64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeUIntBE(value, 0, bytes);\n return data;\n}\nexports.createUIntBuffer = createUIntBuffer;\nfunction createIntBuffer(value) {\n // Big-endian, any size from 1 to 8 octets\n // but js number is float64, so max 6 bit\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Int64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeIntBE(value, 0, bytes);\n return data;\n}\nexports.createIntBuffer = createIntBuffer;\nfunction createFloatBuffer(value, bytes) {\n if (bytes === void 0) { bytes = 8; }\n // Big-endian, defined for 4 and 8 octets (32, 64 bits)\n // js number is float64 so 8 bytes.\n if (bytes === 8) {\n // 64bit\n var data = new exports.Buffer(8);\n data.writeDoubleBE(value, 0);\n return data;\n }\n else if (bytes === 4) {\n // 32bit\n var data = new exports.Buffer(4);\n data.writeFloatBE(value, 0);\n return data;\n }\n else {\n throw new Error(\"float type bits must 4bytes or 8bytes\");\n }\n}\nexports.createFloatBuffer = createFloatBuffer;\nfunction convertEBMLDateToJSDate(int64str) {\n if (int64str instanceof Date) {\n return int64str;\n }\n return new Date(new Date(\"2001-01-01T00:00:00.000Z\").getTime() + (Number(int64str) / 1000 / 1000));\n}\nexports.convertEBMLDateToJSDate = convertEBMLDateToJSDate;\n"],"names":["Object","defineProperty","exports","value","convertEBMLDateToJSDate","createFloatBuffer","createUIntBuffer","encodeValueToBuffer","putRefinedMetaData","extractElement","makeMetadataSeekable","createRIFFChunk","WebPBlockFilter","encodeTag","ebmlBlock","writeVint","Buffer","int64_buffer_1","require$$0","EBMLEncoder_1","require$$1","_Buffer","require$$2","tools_ebml_1","require$$3","_block","require$$4","FourCC","chunk","chunkSize","writeUInt32LE","byteLength","concat","substr","removeElement","idName","metadata","start","i","length","element","name","type","splice","isEnd","Error","result","push","slice","encodedSizeOfEbml","refinedMetaData","encorder","default","reduce","lst","elm","encode","o","buf","refineMetadata","mesetadata","sizeDiff","info","duration","clusterPtrs","cues","_metadata","overwrited_1","forEach","data","insertTag","Array","isArray","cueInfos","_a","CueTrack","CueClusterPosition","CueTime","create_cue","seekhead_children","console","warn","seeks","create_seek_from_clusters","tagName","children","insertHead","idx","prototype","apply","reverse","unshift","list","bytes","Math","pow","Uint64BE","toBuffer","writeUIntBE","createIntBuffer","Int64BE","writeIntBE","writeDoubleBE","writeFloatBE","readVint","readBlock","tagId","tagData","unknownSize","elms","frames","some","frame","toString","VP8BitStreamToRiffWebPBuffer","VP8Chunk","originalMetadata","cuesInfo","header","segmentContentStartPos","originalMetadataSize","dataEnd","infoSize","tracks","tracksSize","seekHeadSize","seekHead","cuesSize","lastSizeDifference","_loop_1","infoStart","tracksStart","cuesStart","sizeDifference","maxIterations","finalMetadata","ebml","payload","i_1","shift","originalPayloadOffsetEnd","ebmlSize","offsetDiff","payloadSize","tagStart","segmentTagBuf","segmentSizeBuf","_segmentSize","newPayloadSize","refined","newNewRefinedSize","getTime","assign","int64str","Date","Number"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sources":["../../../../../node_modules/webm-duration-fix/lib/ebml/tools.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertEBMLDateToJSDate = exports.createFloatBuffer = exports.createIntBuffer = exports.createUIntBuffer = exports.encodeValueToBuffer = exports.concat = exports.putRefinedMetaData = exports.extractElement = exports.removeElement = exports.makeMetadataSeekable = exports.createRIFFChunk = exports.VP8BitStreamToRiffWebPBuffer = exports.WebPBlockFilter = exports.encodeTag = exports.readBlock = exports.ebmlBlock = exports.writeVint = exports.readVint = exports.Buffer = void 0;\n/// <reference types=\"node\"/>\nvar int64_buffer_1 = require(\"int64-buffer\");\nvar EBMLEncoder_1 = require(\"./EBMLEncoder\");\nvar _Buffer = require(\"buffer\");\nvar tools_ebml_1 = require(\"./tools-ebml\");\nvar _block = require(\"ebml-block\");\nexports.Buffer = _Buffer.Buffer;\nexports.readVint = tools_ebml_1.default.readVint;\nexports.writeVint = tools_ebml_1.default.writeVint;\nexports.ebmlBlock = _block;\nfunction readBlock(buf) {\n return (0, exports.ebmlBlock)(new exports.Buffer(buf));\n}\nexports.readBlock = readBlock;\n/**\n * @param end - if end === false then length is unknown\n */\nfunction encodeTag(tagId, tagData, unknownSize) {\n if (unknownSize === void 0) { unknownSize = false; }\n return concat([\n tagId,\n unknownSize ?\n new exports.Buffer('01ffffffffffffff', 'hex') :\n (0, exports.writeVint)(tagData.length),\n tagData\n ]);\n}\nexports.encodeTag = encodeTag;\n/**\n * WebP ファイルにできる SimpleBlock の パスフィルタ\n */\nfunction WebPBlockFilter(elms) {\n return elms.reduce(function (lst, elm) {\n if (elm.type !== \"b\") {\n return lst;\n }\n if (elm.name !== \"SimpleBlock\") {\n return lst;\n }\n var o = (0, exports.ebmlBlock)(elm.data);\n var hasWebP = o.frames.some(function (frame) {\n // https://tools.ietf.org/html/rfc6386#section-19.1\n var startcode = frame.slice(3, 6).toString(\"hex\");\n return startcode === \"9d012a\";\n });\n if (!hasWebP) {\n return lst;\n }\n return lst.concat(elm);\n }, []);\n}\nexports.WebPBlockFilter = WebPBlockFilter;\n/**\n * @param frame - VP8 BitStream のうち startcode をもつ frame\n * @return - WebP ファイルの ArrayBuffer\n */\nfunction VP8BitStreamToRiffWebPBuffer(frame) {\n var VP8Chunk = createRIFFChunk(\"VP8 \", frame);\n var WebPChunk = concat([\n new exports.Buffer(\"WEBP\", \"ascii\"),\n VP8Chunk\n ]);\n return createRIFFChunk(\"RIFF\", WebPChunk);\n}\nexports.VP8BitStreamToRiffWebPBuffer = VP8BitStreamToRiffWebPBuffer;\n/**\n * RIFF データチャンクを作る\n */\nfunction createRIFFChunk(FourCC, chunk) {\n var chunkSize = new exports.Buffer(4);\n chunkSize.writeUInt32LE(chunk.byteLength, 0);\n return concat([\n new exports.Buffer(FourCC.substr(0, 4), \"ascii\"),\n chunkSize,\n chunk,\n new exports.Buffer(chunk.byteLength % 2 === 0 ? 0 : 1) // padding\n ]);\n}\nexports.createRIFFChunk = createRIFFChunk;\n/* Original Metadata\n\n m 0\tEBML\n u 1\t EBMLVersion 1\n u 1\t EBMLReadVersion 1\n u 1\t EBMLMaxIDLength 4\n u 1\t EBMLMaxSizeLength 8\n s 1\t DocType webm\n u 1\t DocTypeVersion 4\n u 1\t DocTypeReadVersion 2\n m 0\tSegment\n m 1\t Info segmentContentStartPos, all CueClusterPositions provided in info.cues will be relative to here and will need adjusted\n u 2\t TimecodeScale 1000000\n 8 2\t MuxingApp Chrome\n 8 2\t WritingApp Chrome\n m 1\t Tracks tracksStartPos\n m 2\t TrackEntry\n u 3\t TrackNumber 1\n u 3\t TrackUID 31790271978391090\n u 3\t TrackType 2\n s 3\t CodecID A_OPUS\n b 3\t CodecPrivate <Buffer 19>\n m 3\t Audio\n f 4\t SamplingFrequency 48000\n u 4\t Channels 1\n m 2\t TrackEntry\n u 3\t TrackNumber 2\n u 3\t TrackUID 24051277436254136\n u 3\t TrackType 1\n s 3\t CodecID V_VP8\n m 3\t Video\n u 4\t PixelWidth 1024\n u 4\t PixelHeight 576\n m 1\t Cluster clusterStartPos\n u 2\t Timecode 0\n b 2\t SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/* Desired Metadata\n\n m\t0 EBML\n u\t1 EBMLVersion 1\n u\t1 EBMLReadVersion 1\n u\t1 EBMLMaxIDLength 4\n u\t1 EBMLMaxSizeLength 8\n s\t1 DocType webm\n u\t1 DocTypeVersion 4\n u\t1 DocTypeReadVersion 2\n m\t0 Segment\n m\t1 SeekHead -> This is SeekPosition 0, so all SeekPositions can be calculated as (bytePos - segmentContentStartPos), which is 44 in this case\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x15, 0x49, 0xA9, 0x66]) Info\n u\t3 SeekPosition -> infoStartPos =\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x16, 0x54, 0xAE, 0x6B]) Tracks\n u\t3 SeekPosition { tracksStartPos }\n m\t2 Seek\n b\t3 SeekID -> Buffer([0x1C, 0x53, 0xBB, 0x6B]) Cues\n u\t3 SeekPosition { cuesStartPos }\n m\t1 Info\n f\t2 Duration 32480 -> overwrite, or insert if it doesn't exist\n u\t2 TimecodeScale 1000000\n 8\t2 MuxingApp Chrome\n 8\t2 WritingApp Chrome\n m\t1 Tracks\n m\t2 TrackEntry\n u\t3 TrackNumber 1\n u\t3 TrackUID 31790271978391090\n u\t3 TrackType 2\n s\t3 CodecID A_OPUS\n b\t3 CodecPrivate <Buffer 19>\n m\t3 Audio\n f\t4 SamplingFrequency 48000\n u\t4 Channels 1\n m\t2 TrackEntry\n u\t3 TrackNumber 2\n u\t3 TrackUID 24051277436254136\n u\t3 TrackType 1\n s\t3 CodecID V_VP8\n m\t3 Video\n u\t4 PixelWidth 1024\n u\t4 PixelHeight 576\n m 1 Cues -> cuesStartPos\n m 2 CuePoint\n u 3 CueTime 0\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 2 CuePoint\n u 3 CueTime 600\n m 3 CueTrackPositions\n u 4 CueTrack 1\n u 4 CueClusterPosition 3911\n m 1 Cluster\n u 2 Timecode 0\n b 2 SimpleBlock track:2 timecode:0\tkeyframe:true\tinvisible:false\tdiscardable:false\tlacing:1\n*/\n/**\n * convert the metadata from a streaming webm bytestream to a seekable file by inserting Duration, Seekhead and Cues\n * @param originalMetadata - orginal metadata (everything before the clusters start) from media recorder\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n */\nfunction makeMetadataSeekable(originalMetadata, duration, cuesInfo) {\n // extract the header, we can reuse this as-is\n var header = extractElement(\"EBML\", originalMetadata);\n var headerSize = encodedSizeOfEbml(header);\n //console.error(\"Header size: \" + headerSize);\n //printElementIds(header);\n // After the header comes the Segment open tag, which in this implementation is always 12 bytes (4 byte id, 8 byte 'unknown length')\n // After that the segment content starts. All SeekPositions and CueClusterPosition must be relative to segmentContentStartPos\n var segmentContentStartPos = headerSize + 12;\n //console.error(\"segmentContentStartPos: \" + segmentContentStartPos); \n // find the original metadata size, and adjust it for header size and Segment start element so we can keep all positions relative to segmentContentStartPos\n var originalMetadataSize = originalMetadata[originalMetadata.length - 1].dataEnd - segmentContentStartPos;\n //console.error(\"Original Metadata size: \" + originalMetadataSize);\n //printElementIds(originalMetadata);\n // extract the segment info, remove the potentially existing Duration element, and add our own one.\n var info = extractElement(\"Info\", originalMetadata);\n removeElement(\"Duration\", info);\n info.splice(1, 0, { name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) });\n var infoSize = encodedSizeOfEbml(info);\n //console.error(\"Info size: \" + infoSize);\n //printElementIds(info); \n // extract the track info, we can re-use this as is\n var tracks = extractElement(\"Tracks\", originalMetadata);\n var tracksSize = encodedSizeOfEbml(tracks);\n //console.error(\"Tracks size: \" + tracksSize);\n //printElementIds(tracks); \n var seekHeadSize = 47; // Initial best guess, but could be slightly larger if the Cues element is huge.\n var seekHead = [];\n var cuesSize = 5 + cuesInfo.length * 15; // very rough initial approximation, depends a lot on file size and number of CuePoints \n var cues = [];\n var lastSizeDifference = -1; // \n // The size of SeekHead and Cues elements depends on how many bytes the offsets values can be encoded in.\n // The actual offsets in CueClusterPosition depend on the final size of the SeekHead and Cues elements\n // We need to iteratively converge to a stable solution.\n var maxIterations = 10;\n var _loop_1 = function (i) {\n // SeekHead starts at 0\n var infoStart = seekHeadSize; // Info comes directly after SeekHead\n var tracksStart = infoStart + infoSize; // Tracks comes directly after Info\n var cuesStart = tracksStart + tracksSize; // Cues starts directly after \n var newMetadataSize = cuesStart + cuesSize; // total size of metadata \n // This is the offset all CueClusterPositions should be adjusted by due to the metadata size changing.\n var sizeDifference = newMetadataSize - originalMetadataSize;\n // console.error(`infoStart: ${infoStart}, infoSize: ${infoSize}`);\n // console.error(`tracksStart: ${tracksStart}, tracksSize: ${tracksSize}`);\n // console.error(`cuesStart: ${cuesStart}, cuesSize: ${cuesSize}`);\n // console.error(`originalMetadataSize: ${originalMetadataSize}, newMetadataSize: ${newMetadataSize}, sizeDifference: ${sizeDifference}`); \n // create the SeekHead element\n seekHead = [];\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) }); // Info\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(infoStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) }); // Tracks\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tracksStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: false });\n seekHead.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) }); // Cues\n seekHead.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(cuesStart) });\n seekHead.push({ name: \"Seek\", type: \"m\", isEnd: true });\n seekHead.push({ name: \"SeekHead\", type: \"m\", isEnd: true });\n seekHeadSize = encodedSizeOfEbml(seekHead);\n //console.error(\"SeekHead size: \" + seekHeadSize);\n //printElementIds(seekHead); \n // create the Cues element\n cues = [];\n cues.push({ name: \"Cues\", type: \"m\", isEnd: false });\n cuesInfo.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) });\n //console.error(`CueClusterPosition: ${CueClusterPosition}, Corrected to: ${CueClusterPosition - segmentContentStartPos} , offset by ${sizeDifference} to become ${(CueClusterPosition - segmentContentStartPos) + sizeDifference - segmentContentStartPos}`);\n // EBMLReader returns CueClusterPosition with absolute byte offsets. The Cues section expects them as offsets from the first level 1 element of the Segment, so we need to adjust it.\n CueClusterPosition -= segmentContentStartPos;\n // We also need to adjust to take into account the change in metadata size from when EBMLReader read the original metadata.\n CueClusterPosition += sizeDifference;\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n cues.push({ name: \"Cues\", type: \"m\", isEnd: true });\n cuesSize = encodedSizeOfEbml(cues);\n //console.error(\"Cues size: \" + cuesSize); \n //console.error(\"Cue count: \" + cuesInfo.length);\n //printElementIds(cues); \n // If the new MetadataSize is not the same as the previous iteration, we need to run once more.\n if (lastSizeDifference !== sizeDifference) {\n lastSizeDifference = sizeDifference;\n if (i === maxIterations - 1) {\n throw new Error(\"Failed to converge to a stable metadata size\");\n }\n }\n else {\n return \"break\";\n }\n };\n for (var i = 0; i < maxIterations; i++) {\n var state_1 = _loop_1(i);\n if (state_1 === \"break\")\n break;\n }\n var finalMetadata = [].concat.apply([], [\n header,\n { name: \"Segment\", type: \"m\", isEnd: false, unknownSize: true },\n seekHead,\n info,\n tracks,\n cues\n ]);\n var result = new EBMLEncoder_1.default().encode(finalMetadata);\n //printElementIds(finalMetadata);\n //console.error(`Final metadata buffer size: ${result.byteLength}`);\n //console.error(`Final metadata buffer size without header and segment: ${result.byteLength-segmentContentStartPos}`);\n return result;\n}\nexports.makeMetadataSeekable = makeMetadataSeekable;\n/**\n * print all element id names in a list\n\n * @param metadata - array of EBML elements to print\n *\nexport function printElementIds(metadata: EBML.EBMLElementBuffer[]) {\n\n let result: EBML.EBMLElementBuffer[] = [];\n let start: number = -1;\n\n for (let i = 0; i < metadata.length; i++) {\n console.error(\"\\t id: \" + metadata[i].name);\n }\n}\n*/\n/**\n * remove all occurances of an EBML element from an array of elements\n * If it's a MasterElement you will also remove the content. (everything between start and end)\n * @param idName - name of the EBML Element to remove.\n * @param metadata - array of EBML elements to search\n */\nfunction removeElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n metadata.splice(start, i - start + 1);\n return;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n metadata.splice(i, 1);\n return;\n }\n }\n }\n}\nexports.removeElement = removeElement;\n/**\n * extract the first occurance of an EBML tag from a flattened array of EBML data.\n * If it's a MasterElement you will also get the content. (everything between start and end)\n * @param idName - name of the EBML Element to extract.\n * @param metadata - array of EBML elements to search\n */\nfunction extractElement(idName, metadata) {\n var result = [];\n var start = -1;\n for (var i = 0; i < metadata.length; i++) {\n var element = metadata[i];\n if (element.name === idName) {\n // if it's a Master element, extract the start and end element, and everything in between\n if (element.type === \"m\") {\n if (!element.isEnd) {\n start = i;\n }\n else {\n // we've reached the end, extract the whole thing\n if (start == -1)\n throw new Error(\"Detected \".concat(idName, \" closing element before finding the start\"));\n result = metadata.slice(start, i + 1);\n break;\n }\n }\n else {\n // not a Master element, so we've found what we're looking for.\n result.push(metadata[i]);\n break;\n }\n }\n }\n return result;\n}\nexports.extractElement = extractElement;\n/**\n * @deprecated\n * metadata に対して duration と seekhead を追加した metadata を返す\n * @param metadata - 変更前の webm における ファイル先頭から 最初の Cluster 要素までの 要素\n * @param duration - Duration (TimecodeScale)\n * @param cues - cue points for clusters\n * @deprecated @param clusterPtrs - 変更前の webm における SeekHead に追加する Cluster 要素 への start pointer\n * @deprecated @param cueInfos - please use cues.\n */\nfunction putRefinedMetaData(metadata, info) {\n if (Array.isArray(info.cueInfos) && !Array.isArray(info.cues)) {\n console.warn(\"putRefinedMetaData: info.cueInfos property is deprecated. please use info.cues\");\n info.cues = info.cueInfos;\n }\n var ebml = [];\n var payload = [];\n for (var i_1 = 0; i_1 < metadata.length; i_1++) {\n var elm = metadata[i_1];\n if (elm.type === \"m\" && elm.name === \"Segment\") {\n ebml = metadata.slice(0, i_1);\n payload = metadata.slice(i_1);\n if (elm.unknownSize) {\n payload.shift(); // remove segment tag\n break;\n }\n throw new Error(\"this metadata is not streaming webm file\");\n }\n }\n // *0 *4 *5 *36 *40 *48=segmentOffset *185=originalPayloadOffsetEnd\n // | | | | | | |\n // [EBML][size]....[Segment][size][Info][size][Duration][size]...[Cluster]\n // | | |^inf | |\n // | +segmentSiz(12)+ |\n // +-ebmlSize(36)--+ | +-payloadSize(137)-------------+offsetEndDiff+\n // | | +-newPayloadSize(??)-------------------------+\n // | | | |\n // [Segment][size][Info][size][Duration][size]....[size][value][Cluster]\n // ^ |\n // | *??=newPayloadOffsetEnd\n // inf\n if (!(payload[payload.length - 1].dataEnd > 0)) {\n throw new Error(\"metadata dataEnd has wrong number\");\n }\n var originalPayloadOffsetEnd = payload[payload.length - 1].dataEnd; // = first cluster ptr\n var ebmlSize = ebml[ebml.length - 1].dataEnd; // = first segment ptr\n var refinedEBMLSize = new EBMLEncoder_1.default().encode(ebml).byteLength;\n var offsetDiff = refinedEBMLSize - ebmlSize;\n var payloadSize = originalPayloadOffsetEnd - payload[0].tagStart;\n var segmentSize = payload[0].tagStart - ebmlSize;\n var segmentOffset = payload[0].tagStart;\n var segmentTagBuf = new exports.Buffer([0x18, 0x53, 0x80, 0x67]); // Segment\n var segmentSizeBuf = new exports.Buffer('01ffffffffffffff', 'hex'); // Segmentの最後の位置は無数の Cluster 依存なので。 writeVint(newPayloadSize).byteLength ではなく、 infinity.\n var _segmentSize = segmentTagBuf.byteLength + segmentSizeBuf.byteLength; // == segmentSize\n var newPayloadSize = payloadSize;\n // We need the size to be stable between two refinements in order for our offsets to be correct\n // Bound the number of possible refinements so we can't go infinate if something goes wrong\n var i;\n for (i = 1; i < 20; i++) {\n var newPayloadOffsetEnd = ebmlSize + _segmentSize + newPayloadSize;\n var offsetEndDiff = newPayloadOffsetEnd - originalPayloadOffsetEnd;\n var sizeDiff = offsetDiff + offsetEndDiff;\n var refined = refineMetadata(payload, sizeDiff, info);\n var newNewRefinedSize = new EBMLEncoder_1.default().encode(refined).byteLength; // 一旦 seekhead を作って自身のサイズを調べる\n if (newNewRefinedSize === newPayloadSize) {\n // Size is stable\n return new EBMLEncoder_1.default().encode([].concat(ebml, [{ type: \"m\", name: \"Segment\", isEnd: false, unknownSize: true }], refined));\n }\n newPayloadSize = newNewRefinedSize;\n }\n throw new Error(\"unable to refine metadata, stable size could not be found in \" + i + \" iterations!\");\n}\nexports.putRefinedMetaData = putRefinedMetaData;\n// Given a list of EBMLElementBuffers, returns their encoded size in bytes\nfunction encodedSizeOfEbml(refinedMetaData) {\n var encorder = new EBMLEncoder_1.default();\n return refinedMetaData.reduce(function (lst, elm) { return lst.concat(encorder.encode([elm])); }, []).reduce(function (o, buf) { return o + buf.byteLength; }, 0);\n}\nfunction refineMetadata(mesetadata, sizeDiff, info) {\n var duration = info.duration, clusterPtrs = info.clusterPtrs, cues = info.cues;\n var _metadata = mesetadata.slice(0);\n if (typeof duration === \"number\") {\n // duration を追加する\n var overwrited_1 = false;\n _metadata.forEach(function (elm) {\n if (elm.type === \"f\" && elm.name === \"Duration\") {\n overwrited_1 = true;\n elm.data = createFloatBuffer(duration, 8);\n }\n });\n if (!overwrited_1) {\n insertTag(_metadata, \"Info\", [{ name: \"Duration\", type: \"f\", data: createFloatBuffer(duration, 8) }]);\n }\n }\n if (Array.isArray(cues)) {\n insertTag(_metadata, \"Cues\", create_cue(cues, sizeDiff));\n }\n var seekhead_children = [];\n if (Array.isArray(clusterPtrs)) {\n console.warn(\"append cluster pointers to seekhead is deprecated. please use cues\");\n seekhead_children = create_seek_from_clusters(clusterPtrs, sizeDiff);\n }\n // remove seek info\n /*\n _metadata = _metadata.filter((elm)=> !(\n elm.name === \"Seek\" ||\n elm.name === \"SeekID\" ||\n elm.name === \"SeekPosition\") );\n */\n // working on progress\n //seekhead_children = seekhead_children.concat(create_seekhead(_metadata));\n insertTag(_metadata, \"SeekHead\", seekhead_children, true);\n return _metadata;\n}\nfunction create_seekhead(metadata, sizeDiff) {\n var seeks = [];\n [\"Info\", \"Tracks\", \"Cues\"].forEach(function (tagName) {\n var tagStarts = metadata.filter(function (elm) { return elm.type === \"m\" && elm.name === tagName && elm.isEnd === false; }).map(function (elm) { return elm[\"tagStart\"]; });\n var tagStart = tagStarts[0];\n if (typeof tagStart !== \"number\") {\n return;\n }\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n switch (tagName) {\n case \"Info\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x15, 0x49, 0xA9, 0x66]) });\n break;\n case \"Tracks\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x16, 0x54, 0xAE, 0x6B]) });\n break;\n case \"Cues\":\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1C, 0x53, 0xBB, 0x6B]) });\n break;\n }\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(tagStart + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_seek_from_clusters(clusterPtrs, sizeDiff) {\n var seeks = [];\n clusterPtrs.forEach(function (start) {\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: false });\n // [0x1F, 0x43, 0xB6, 0x75] で Cluster 意\n seeks.push({ name: \"SeekID\", type: \"b\", data: new exports.Buffer([0x1F, 0x43, 0xB6, 0x75]) });\n seeks.push({ name: \"SeekPosition\", type: \"u\", data: createUIntBuffer(start + sizeDiff) });\n seeks.push({ name: \"Seek\", type: \"m\", isEnd: true });\n });\n return seeks;\n}\nfunction create_cue(cueInfos, sizeDiff) {\n var cues = [];\n cueInfos.forEach(function (_a) {\n var CueTrack = _a.CueTrack, CueClusterPosition = _a.CueClusterPosition, CueTime = _a.CueTime;\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTime\", type: \"u\", data: createUIntBuffer(CueTime) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: false });\n cues.push({ name: \"CueTrack\", type: \"u\", data: createUIntBuffer(CueTrack) }); // video track\n cues.push({ name: \"CueClusterPosition\", type: \"u\", data: createUIntBuffer(CueClusterPosition + sizeDiff) });\n cues.push({ name: \"CueTrackPositions\", type: \"m\", isEnd: true });\n cues.push({ name: \"CuePoint\", type: \"m\", isEnd: true });\n });\n return cues;\n}\nfunction insertTag(_metadata, tagName, children, insertHead) {\n if (insertHead === void 0) { insertHead = false; }\n // find the tagname from _metadata\n var idx = -1;\n for (var i = 0; i < _metadata.length; i++) {\n var elm = _metadata[i];\n if (elm.type === \"m\" && elm.name === tagName && elm.isEnd === false) {\n idx = i;\n break;\n }\n }\n if (idx >= 0) {\n // insert [<CuePoint />] to <Cues />\n Array.prototype.splice.apply(_metadata, [idx + 1, 0].concat(children));\n }\n else if (insertHead) {\n [].concat([{ name: tagName, type: \"m\", isEnd: false }], children, [{ name: tagName, type: \"m\", isEnd: true }]).reverse().forEach(function (elm) { _metadata.unshift(elm); });\n }\n else {\n // metadata 末尾に <Cues /> を追加\n // insert <Cues />\n _metadata.push({ name: tagName, type: \"m\", isEnd: false });\n children.forEach(function (elm) { _metadata.push(elm); });\n _metadata.push({ name: tagName, type: \"m\", isEnd: true });\n }\n}\nfunction concat(list) {\n return exports.Buffer.concat(list);\n}\nexports.concat = concat;\nfunction encodeValueToBuffer(elm) {\n var data = new exports.Buffer(0);\n if (elm.type === \"m\") {\n return elm;\n }\n switch (elm.type) {\n case \"u\":\n data = createUIntBuffer(elm.value);\n break;\n case \"i\":\n data = createIntBuffer(elm.value);\n break;\n case \"f\":\n data = createFloatBuffer(elm.value);\n break;\n case \"s\":\n data = new exports.Buffer(elm.value, 'ascii');\n break;\n case \"8\":\n data = new exports.Buffer(elm.value, 'utf8');\n break;\n case \"b\":\n data = elm.value;\n break;\n case \"d\":\n data = new int64_buffer_1.Int64BE(elm.value.getTime().toString()).toBuffer();\n break;\n }\n return Object.assign({}, elm, { data: data });\n}\nexports.encodeValueToBuffer = encodeValueToBuffer;\nfunction createUIntBuffer(value) {\n // Big-endian, any size from 1 to 8\n // but js number is float64, so max 6 bit octets\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Uint64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeUIntBE(value, 0, bytes);\n return data;\n}\nexports.createUIntBuffer = createUIntBuffer;\nfunction createIntBuffer(value) {\n // Big-endian, any size from 1 to 8 octets\n // but js number is float64, so max 6 bit\n var bytes = 1;\n for (; value >= Math.pow(2, 8 * bytes); bytes++) { }\n if (bytes >= 7) {\n console.warn(\"7bit or more bigger uint not supported.\");\n return new int64_buffer_1.Int64BE(value).toBuffer();\n }\n var data = new exports.Buffer(bytes);\n data.writeIntBE(value, 0, bytes);\n return data;\n}\nexports.createIntBuffer = createIntBuffer;\nfunction createFloatBuffer(value, bytes) {\n if (bytes === void 0) { bytes = 8; }\n // Big-endian, defined for 4 and 8 octets (32, 64 bits)\n // js number is float64 so 8 bytes.\n if (bytes === 8) {\n // 64bit\n var data = new exports.Buffer(8);\n data.writeDoubleBE(value, 0);\n return data;\n }\n else if (bytes === 4) {\n // 32bit\n var data = new exports.Buffer(4);\n data.writeFloatBE(value, 0);\n return data;\n }\n else {\n throw new Error(\"float type bits must 4bytes or 8bytes\");\n }\n}\nexports.createFloatBuffer = createFloatBuffer;\nfunction convertEBMLDateToJSDate(int64str) {\n if (int64str instanceof Date) {\n return int64str;\n }\n return new Date(new Date(\"2001-01-01T00:00:00.000Z\").getTime() + (Number(int64str) / 1000 / 1000));\n}\nexports.convertEBMLDateToJSDate = convertEBMLDateToJSDate;\n"],"names":["Object","defineProperty","exports","value","convertEBMLDateToJSDate","createFloatBuffer","createUIntBuffer","encodeValueToBuffer","putRefinedMetaData","extractElement","makeMetadataSeekable","createRIFFChunk","WebPBlockFilter","encodeTag","ebmlBlock","writeVint","Buffer","int64_buffer_1","require$$0","EBMLEncoder_1","require$$1","_Buffer","require$$2","tools_ebml_1","require$$3","_block","require$$4","FourCC","chunk","chunkSize","writeUInt32LE","byteLength","concat","substr","removeElement","idName","metadata","start","i","length","element","name","type","splice","isEnd","Error","result","push","slice","encodedSizeOfEbml","refinedMetaData","encorder","default","reduce","lst","elm","encode","o","buf","refineMetadata","mesetadata","sizeDiff","info","duration","clusterPtrs","cues","_metadata","overwrited_1","forEach","data","insertTag","Array","isArray","cueInfos","_a","CueTrack","CueClusterPosition","CueTime","create_cue","seekhead_children","console","warn","seeks","create_seek_from_clusters","tagName","children","insertHead","idx","prototype","apply","reverse","unshift","list","bytes","Math","pow","Uint64BE","toBuffer","writeUIntBE","createIntBuffer","Int64BE","writeIntBE","writeDoubleBE","writeFloatBE","readVint","readBlock","tagId","tagData","unknownSize","elms","frames","some","frame","toString","VP8BitStreamToRiffWebPBuffer","VP8Chunk","originalMetadata","cuesInfo","header","segmentContentStartPos","originalMetadataSize","dataEnd","infoSize","tracks","tracksSize","seekHeadSize","seekHead","cuesSize","lastSizeDifference","_loop_1","infoStart","tracksStart","cuesStart","sizeDifference","maxIterations","finalMetadata","ebml","payload","i_1","shift","originalPayloadOffsetEnd","ebmlSize","offsetDiff","payloadSize","tagStart","segmentTagBuf","segmentSizeBuf","_segmentSize","newPayloadSize","refined","newNewRefinedSize","getTime","assign","int64str","Date","Number"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_commonjsHelpers.js"),t=require("../../../_virtual/index10.js");require("./ebml/index.js");var r=require("../../../_virtual/index11.js"),n=e.commonjsGlobal&&e.commonjsGlobal.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../_virtual/_commonjsHelpers.js"),t=require("../../../_virtual/index10.js");require("./ebml/index.js");var r=require("../../../_virtual/index11.js"),n=e.commonjsGlobal&&e.commonjsGlobal.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(o,a){function l(e){try{i(n.next(e))}catch(e){a(e)}}function u(e){try{i(n.throw(e))}catch(e){a(e)}}function i(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(l,u)}i((n=n.apply(e,t||[])).next())})},o=e.commonjsGlobal&&e.commonjsGlobal.__generator||function(e,t){var r,n,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;l;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return l.label++,{value:a[1],done:!1};case 5:l.label++,n=a[1],a=[0];continue;case 7:a=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){l=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){l.label=a[1];break}if(6===a[0]&&l.label<o[1]){l.label=o[1],o=a;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(a);break}o[2]&&l.ops.pop(),l.trys.pop();continue}a=t.call(e,l)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}};Object.defineProperty(t.__exports,"__esModule",{value:!0});var a=r.__exports;var l=t.__exports.default=function(e){return n(this,void 0,void 0,function(){var t,r,n,l,u,i,c,s,f,d,p;return o(this,function(o){switch(o.label){case 0:if(!e)throw Error("call to fixWebmDuration requires a blob");t=new a.Decoder,r=new a.Reader,n=e.stream(),l=n.getReader(),o.label=1;case 1:return[4,l.read()];case 2:return u=o.sent(),i=u.done,c=u.value,i?(r.stop(),[3,3]):((s=null==(s=t.decode(c))?void 0:s.filter(function(e){return"unknown"!==e.type})).forEach(function(e){r.read(e)}),c=null,[3,1]);case 3:return f=a.tools.makeMetadataSeekable(r.metadatas,r.duration,r.cues),d=new Blob([f],{type:e.type}),p=e.slice(r.metadataSize),[2,new Blob([d,p],{type:e.type})]}})})};exports.default=l;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../node_modules/webm-duration-fix/lib/index.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ebml_1 = require(\"./ebml\");\n/**\n * based on ts-ebml and support large file,optimize memory usage during repair\n *\n * @param blob the blob you need to fix\n * @returns the blob that has been fixed\n *\n */\nfunction fixWebmDuration(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var decoder, reader, readstream, readerBlob, _a, done, value, elms, refinedMetadataBuf, refinedMetadataBlob, firstPartBlobWithoutMetadata, finalBlob;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!blob) {\n throw Error('call to fixWebmDuration requires a blob');\n }\n decoder = new ebml_1.Decoder();\n reader = new ebml_1.Reader();\n readstream = blob.stream();\n readerBlob = readstream.getReader();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n return [4 /*yield*/, readerBlob.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n reader.stop();\n return [3 /*break*/, 3];\n }\n elms = decoder.decode(value);\n // As browser upgrade webm meta attributes are gradually added, \n // so filter unknown type to bypass this issue.\n elms = elms === null || elms === void 0 ? void 0 : elms.filter(function (elm) { return elm.type !== 'unknown'; });\n elms.forEach(function (elm) {\n reader.read(elm);\n });\n value = null;\n return [3 /*break*/, 1];\n case 3:\n refinedMetadataBuf = ebml_1.tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\n refinedMetadataBlob = new Blob([refinedMetadataBuf], { type: blob.type });\n firstPartBlobWithoutMetadata = blob.slice(reader.metadataSize);\n finalBlob = new Blob([refinedMetadataBlob, firstPartBlobWithoutMetadata], { type: blob.type });\n return [2 /*return*/, finalBlob];\n }\n });\n });\n}\nexports.default = fixWebmDuration;\n"],"names":["__awaiter","this","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","commonjsGlobal","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","Object","defineProperty","lib","__exports","ebml_1","require$$0","_default","default","blob","decoder","reader","readstream","readerBlob","_a","elms","refinedMetadataBuf","refinedMetadataBlob","firstPartBlobWithoutMetadata","_b","Error","Decoder","Reader","stream","getReader","read","stop","decode","filter","elm","type","forEach","tools","makeMetadataSeekable","metadatas","duration","cues","Blob","slice","metadataSize"],"mappings":"8OACIA,EAAaC,EAAAA,gBAAQA,EAAAA,eAAKD,WAAc,SAAUE,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIE,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../node_modules/webm-duration-fix/lib/index.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ebml_1 = require(\"./ebml\");\n/**\n * based on ts-ebml and support large file,optimize memory usage during repair\n *\n * @param blob the blob you need to fix\n * @returns the blob that has been fixed\n *\n */\nfunction fixWebmDuration(blob) {\n return __awaiter(this, void 0, void 0, function () {\n var decoder, reader, readstream, readerBlob, _a, done, value, elms, refinedMetadataBuf, refinedMetadataBlob, firstPartBlobWithoutMetadata, finalBlob;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!blob) {\n throw Error('call to fixWebmDuration requires a blob');\n }\n decoder = new ebml_1.Decoder();\n reader = new ebml_1.Reader();\n readstream = blob.stream();\n readerBlob = readstream.getReader();\n _b.label = 1;\n case 1:\n if (!true) return [3 /*break*/, 3];\n return [4 /*yield*/, readerBlob.read()];\n case 2:\n _a = _b.sent(), done = _a.done, value = _a.value;\n if (done) {\n reader.stop();\n return [3 /*break*/, 3];\n }\n elms = decoder.decode(value);\n // As browser upgrade webm meta attributes are gradually added, \n // so filter unknown type to bypass this issue.\n elms = elms === null || elms === void 0 ? void 0 : elms.filter(function (elm) { return elm.type !== 'unknown'; });\n elms.forEach(function (elm) {\n reader.read(elm);\n });\n value = null;\n return [3 /*break*/, 1];\n case 3:\n refinedMetadataBuf = ebml_1.tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);\n refinedMetadataBlob = new Blob([refinedMetadataBuf], { type: blob.type });\n firstPartBlobWithoutMetadata = blob.slice(reader.metadataSize);\n finalBlob = new Blob([refinedMetadataBlob, firstPartBlobWithoutMetadata], { type: blob.type });\n return [2 /*return*/, finalBlob];\n }\n });\n });\n}\nexports.default = fixWebmDuration;\n"],"names":["__awaiter","this","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","commonjsGlobal","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","Object","defineProperty","lib","__exports","ebml_1","require$$0","_default","default","blob","decoder","reader","readstream","readerBlob","_a","elms","refinedMetadataBuf","refinedMetadataBlob","firstPartBlobWithoutMetadata","_b","Error","Decoder","Reader","stream","getReader","read","stop","decode","filter","elm","type","forEach","tools","makeMetadataSeekable","metadatas","duration","cues","Blob","slice","metadataSize"],"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");function r(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map((e=>this._shimmedLocalStreams[e][0]))};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){if(!r)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=t.apply(this,arguments);return this._shimmedLocalStreams[r.id]?-1===this._shimmedLocalStreams[r.id].indexOf(n)&&this._shimmedLocalStreams[r.id].push(n):this._shimmedLocalStreams[r.id]=[r,n],n};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")}));const t=this.getSenders();r.apply(this,arguments);const n=this.getSenders().filter((e=>-1===t.indexOf(e)));this._shimmedLocalStreams[e.id]=[e].concat(n)};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],n.apply(this,arguments)};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach((t=>{const r=this._shimmedLocalStreams[t].indexOf(e);-1!==r&&this._shimmedLocalStreams[t].splice(r,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]})),o.apply(this,arguments)}}exports.shimGetUserMedia=t.shimGetUserMedia,exports.fixNegotiationNeeded=function(t,r){r.version>102||e.wrapPeerConnectionEvent(t,"negotiationneeded",(e=>{const t=e.target;if(!(r.version<72||t.getConfiguration&&"plan-b"===t.getConfiguration().sdpSemantics)||"stable"===t.signalingState)return e}))},exports.shimAddTrackRemoveTrack=function(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return r(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map((e=>this._reverseStreams[e.id]))};const o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach((e=>{if(this.getSenders().find((t=>t.track===e)))throw new DOMException("Track already exists.","InvalidAccessError")})),!this._reverseStreams[t.id]){const r=new e.MediaStream(t.getTracks());this._streams[t.id]=r,this._reverseStreams[r.id]=t,t=r}o.apply(this,[t])};const s=e.RTCPeerConnection.prototype.removeStream;function i(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(o.id,"g"),n.id)})),new RTCSessionDescription({type:t.type,sdp:r})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find((e=>e===t)))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find((e=>e.track===t)))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const o=this._streams[r.id];if(o)o.addTrack(t),Promise.resolve().then((()=>{this.dispatchEvent(new Event("negotiationneeded"))}));else{const n=new e.MediaStream([t]);this._streams[r.id]=n,this._reverseStreams[n.id]=r,this.addStream(n)}return this.getSenders().find((e=>e.track===t))},["createOffer","createAnswer"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?r.apply(this,[t=>{const r=i(this,t);e[0].apply(null,[r])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):r.apply(this,arguments).then((e=>i(this,e)))}};e.RTCPeerConnection.prototype[t]=n[t]}));const c=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach((t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(n.id,"g"),o.id)})),new RTCSessionDescription({type:t.type,sdp:r})}(this,arguments[0]),c.apply(this,arguments)):c.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:i(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach((r=>{this._streams[r].getTracks().find((t=>e.track===t))&&(t=this._streams[r])})),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}},exports.shimAddTrackRemoveTrackWithNative=r,exports.shimGetSendersWithDtmf=function(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=r.apply(this,arguments);return o||(o=t(this,e),this._senders.push(o)),o};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach((e=>{this._senders.push(t(this,e))}))};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach((e=>{const t=this._senders.find((t=>t.track===e));t&&this._senders.splice(this._senders.indexOf(t),1)}))}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach((e=>e._pc=this)),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},exports.shimMediaStream=function(e){e.MediaStream=e.MediaStream||e.webkitMediaStream},exports.shimOnTrack=function(t,r){if(!(r.version>102))if("object"==typeof t&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=e=>{e.stream.addEventListener("addtrack",(r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.track.id)):{track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)})),e.stream.getTracks().forEach((r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find((e=>e.track&&e.track.id===r.id)):{track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)}))},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else e.wrapPeerConnectionEvent(t,"track",(e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e)))},exports.shimPeerConnection=function(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach((function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]}))},exports.shimSenderReceiverGetStats=function(t,r){if(r.version>=67)return;if(!("object"==typeof t&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const r=t.RTCPeerConnection.prototype.getSenders;r&&(t.RTCPeerConnection.prototype.getSenders=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e});const n=t.RTCPeerConnection.prototype.addTrack;n&&(t.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),t.RTCRtpSender.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!0)))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const r=t.RTCPeerConnection.prototype.getReceivers;r&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=r.apply(this,[]);return e.forEach((e=>e._pc=this)),e}),e.wrapPeerConnectionEvent(t,"track",(e=>(e.receiver._pc=e.srcElement,e))),t.RTCRtpReceiver.prototype.getStats=function(){const t=this;return this._pc.getStats().then((r=>e.filterStats(r,t.track,!1)))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const n=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const e=arguments[0];let t,r,n;return this.getSenders().forEach((r=>{r.track===e&&(t?n=!0:t=r)})),this.getReceivers().forEach((t=>(t.track===e&&(r?n=!0:r=t),t.track===e))),n||t&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return n.apply(this,arguments)}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../utils.js"),t=require("./getusermedia.js");function r(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){if(!r)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const n=t.apply(this,arguments);return this._shimmedLocalStreams[r.id]?-1===this._shimmedLocalStreams[r.id].indexOf(n)&&this._shimmedLocalStreams[r.id].push(n):this._shimmedLocalStreams[r.id]=[r,n],n};const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")});const t=this.getSenders();r.apply(this,arguments);const n=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(n)};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],n.apply(this,arguments)};const o=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{const r=this._shimmedLocalStreams[t].indexOf(e);-1!==r&&this._shimmedLocalStreams[t].splice(r,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),o.apply(this,arguments)}}exports.shimGetUserMedia=t.shimGetUserMedia,exports.fixNegotiationNeeded=function(t,r){r.version>102||e.wrapPeerConnectionEvent(t,"negotiationneeded",e=>{const t=e.target;if(!(r.version<72||t.getConfiguration&&"plan-b"===t.getConfiguration().sdpSemantics)||"stable"===t.signalingState)return e})},exports.shimAddTrackRemoveTrack=function(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return r(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};const o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{if(this.getSenders().find(t=>t.track===e))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){const r=new e.MediaStream(t.getTracks());this._streams[t.id]=r,this._reverseStreams[r.id]=t,t=r}o.apply(this,[t])};const s=e.RTCPeerConnection.prototype.removeStream;function i(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(o.id,"g"),n.id)}),new RTCSessionDescription({type:t.type,sdp:r})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},s.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const n=[].slice.call(arguments,1);if(1!==n.length||!n[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(e=>e.track===t))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const o=this._streams[r.id];if(o)o.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const n=new e.MediaStream([t]);this._streams[r.id]=n,this._reverseStreams[n.id]=r,this.addStream(n)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?r.apply(this,[t=>{const r=i(this,t);e[0].apply(null,[r])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):r.apply(this,arguments).then(e=>i(this,e))}};e.RTCPeerConnection.prototype[t]=n[t]});const c=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let r=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const n=e._reverseStreams[t],o=e._streams[n.id];r=r.replace(new RegExp(n.id,"g"),o.id)}),new RTCSessionDescription({type:t.type,sdp:r})}(this,arguments[0]),c.apply(this,arguments)):c.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:i(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(!(e._pc===this))throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach(r=>{this._streams[r].getTracks().find(t=>e.track===t)&&(t=this._streams[r])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}},exports.shimAddTrackRemoveTrackWithNative=r,exports.shimGetSendersWithDtmf=function(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const r=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){let o=r.apply(this,arguments);return o||(o=t(this,e),this._senders.push(o)),o};const n=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){n.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],r.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};const n=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{const t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},exports.shimMediaStream=function(e){e.MediaStream=e.MediaStream||e.webkitMediaStream},exports.shimOnTrack=function(t,r){if(!(r.version>102))if("object"==typeof t&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const e=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=e=>{e.stream.addEventListener("addtrack",r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===r.track.id):{track:r.track};const o=new Event("track");o.track=r.track,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)}),e.stream.getTracks().forEach(r=>{let n;n=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===r.id):{track:r};const o=new Event("track");o.track=r,o.receiver=n,o.transceiver={receiver:n},o.streams=[e.stream],this.dispatchEvent(o)})},this.addEventListener("addstream",this._ontrackpoly)),e.apply(this,arguments)}}else e.wrapPeerConnectionEvent(t,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))},exports.shimPeerConnection=function(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const r=e.RTCPeerConnection.prototype[t],n={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=n[t]})},exports.shimSenderReceiverGetStats=function(t,r){if(r.version>=67)return;if(!("object"==typeof t&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const r=t.RTCPeerConnection.prototype.getSenders;r&&(t.RTCPeerConnection.prototype.getSenders=function(){const e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e});const n=t.RTCPeerConnection.prototype.addTrack;n&&(t.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),t.RTCRtpSender.prototype.getStats=function(){const t=this;return this._pc.getStats().then(r=>e.filterStats(r,t.track,!0))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const r=t.RTCPeerConnection.prototype.getReceivers;r&&(t.RTCPeerConnection.prototype.getReceivers=function(){const e=r.apply(this,[]);return e.forEach(e=>e._pc=this),e}),e.wrapPeerConnectionEvent(t,"track",e=>(e.receiver._pc=e.srcElement,e)),t.RTCRtpReceiver.prototype.getStats=function(){const t=this;return this._pc.getStats().then(r=>e.filterStats(r,t.track,!1))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const n=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const e=arguments[0];let t,r,n;return this.getSenders().forEach(r=>{r.track===e&&(t?n=!0:t=r)}),this.getReceivers().forEach(t=>(t.track===e&&(r?n=!0:r=t),t.track===e)),n||t&&r?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():r?r.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return n.apply(this,arguments)}};
|
|
2
2
|
//# sourceMappingURL=chrome_shim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimSenderReceiverGetStats(window, browserDetails) {\n if (browserDetails.version >= 67) {\n return;\n }\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Plan-B is no longer supported.\n return;\n }\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n"],"names":["shimAddTrackRemoveTrackWithNative","window","RTCPeerConnection","prototype","getLocalStreams","this","_shimmedLocalStreams","Object","keys","map","streamId","origAddTrack","addTrack","track","stream","apply","arguments","sender","id","indexOf","push","origAddStream","addStream","getTracks","forEach","getSenders","find","s","DOMException","existingSenders","newSenders","filter","newSender","concat","origRemoveStream","removeStream","origRemoveTrack","removeTrack","idx","splice","length","browserDetails","version","utils","e","pc","target","getConfiguration","sdpSemantics","signalingState","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","MediaStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","type","streams","slice","call","t","oldStream","Promise","resolve","then","dispatchEvent","Event","method","nativeMethod","methodObj","args","desc","err","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","getOwnPropertyDescriptor","defineProperty","get","_pc","streamid","shimSenderWithDtmf","dtmf","undefined","_dtmf","kind","createDTMFSender","_senders","RTCRtpSender","origGetSenders","senders","webkitMediaStream","_ontrack","set","f","removeEventListener","addEventListener","enumerable","configurable","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","r","event","transceiver","value","webkitRTCPeerConnection","RTCIceCandidate","RTCRtpReceiver","getStats","result","origGetReceivers","receivers","srcElement","filterStats","origGetStats","MediaStreamTrack","reject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chrome_shim.js","sources":["../../../../../../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js"],"sourcesContent":["/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Unified plan is supported so no need to do anything.\n return;\n }\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimSenderReceiverGetStats(window, browserDetails) {\n if (browserDetails.version >= 67) {\n return;\n }\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n if (browserDetails.version > 102) {\n // Plan-B is no longer supported.\n return;\n }\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n"],"names":["shimAddTrackRemoveTrackWithNative","window","RTCPeerConnection","prototype","getLocalStreams","this","_shimmedLocalStreams","Object","keys","map","streamId","origAddTrack","addTrack","track","stream","apply","arguments","sender","id","indexOf","push","origAddStream","addStream","getTracks","forEach","getSenders","find","s","DOMException","existingSenders","newSenders","filter","newSender","concat","origRemoveStream","removeStream","origRemoveTrack","removeTrack","idx","splice","length","browserDetails","version","utils","e","pc","target","getConfiguration","sdpSemantics","signalingState","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","MediaStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","type","streams","slice","call","t","oldStream","Promise","resolve","then","dispatchEvent","Event","method","nativeMethod","methodObj","args","desc","err","origSetLocalDescription","setLocalDescription","replaceExternalStreamId","origLocalDescription","getOwnPropertyDescriptor","defineProperty","get","_pc","streamid","shimSenderWithDtmf","dtmf","undefined","_dtmf","kind","createDTMFSender","_senders","RTCRtpSender","origGetSenders","senders","webkitMediaStream","_ontrack","set","f","removeEventListener","addEventListener","enumerable","configurable","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","r","event","transceiver","value","webkitRTCPeerConnection","RTCIceCandidate","RTCRtpReceiver","getStats","result","origGetReceivers","receivers","srcElement","filterStats","origGetStats","MediaStreamTrack","reject"],"mappings":"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"}
|