@bigbinary/neeto-media-recorder 2.7.3 → 2.7.5

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/core.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import axios from 'axios';
2
2
  import { isNotEmpty, existsBy, isNot, noop } from '@bigbinary/neeto-cist';
3
- import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, ONE_SECOND, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND_IN_MILLISECONDS, TWO_HUNDRED_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, IS_EXTENSION } from '@bigbinary/neeto-media-recorder/constants';
3
+ import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, TWO_HUNDRED_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, IS_EXTENSION } from '@bigbinary/neeto-media-recorder/constants';
4
4
  import { useMultipartS3UploadStatus as useMultipartS3UploadStatus$1, getMultipartS3Uploader as getMultipartS3Uploader$1 } from '@bigbinary/neeto-media-recorder/core';
5
5
  import { isNotNil, min, isNil, identity, isEmpty, pick, equals, not } from 'ramda';
6
6
  import platform from 'platform';
@@ -1498,6 +1498,7 @@ var _micAudioStream = /*#__PURE__*/new WeakMap();
1498
1498
  var _timeLimit = /*#__PURE__*/new WeakMap();
1499
1499
  var _startRecordingTimeoutID = /*#__PURE__*/new WeakMap();
1500
1500
  var _enableNoiseCancellation = /*#__PURE__*/new WeakMap();
1501
+ var _showCountdown = /*#__PURE__*/new WeakMap();
1501
1502
  var _mimeType = /*#__PURE__*/new WeakMap();
1502
1503
  var _stopAllStreams = /*#__PURE__*/new WeakMap();
1503
1504
  var _checkCompatibility = /*#__PURE__*/new WeakMap();
@@ -1506,7 +1507,8 @@ var _fireCallbacks = /*#__PURE__*/new WeakMap();
1506
1507
  var _onRecordingStart = /*#__PURE__*/new WeakMap();
1507
1508
  var _onRecordingActive = /*#__PURE__*/new WeakMap();
1508
1509
  var _onRecordingStop = /*#__PURE__*/new WeakMap();
1509
- var _countdownAndStartRecording = /*#__PURE__*/new WeakMap();
1510
+ var _startMediaRecorder = /*#__PURE__*/new WeakMap();
1511
+ var _startCountdown = /*#__PURE__*/new WeakMap();
1510
1512
  var _startTimer = /*#__PURE__*/new WeakMap();
1511
1513
  var _stopTimer = /*#__PURE__*/new WeakMap();
1512
1514
  var _checkIfTimeLimitReached = /*#__PURE__*/new WeakMap();
@@ -1572,7 +1574,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1572
1574
  });
1573
1575
  _classPrivateFieldInitSpec(this, _stopRecordingDueToLimitReachedAudio, {
1574
1576
  writable: true,
1575
- value: void 0
1577
+ value: new Audio(STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND)
1576
1578
  });
1577
1579
  _classPrivateFieldInitSpec(this, _stream, {
1578
1580
  writable: true,
@@ -1598,6 +1600,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
1598
1600
  writable: true,
1599
1601
  value: false
1600
1602
  });
1603
+ _classPrivateFieldInitSpec(this, _showCountdown, {
1604
+ writable: true,
1605
+ value: true
1606
+ });
1601
1607
  _classPrivateFieldInitSpec(this, _mimeType, {
1602
1608
  writable: true,
1603
1609
  value: getSupportedMimeType()
@@ -1611,6 +1617,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1611
1617
  _defineProperty(this, "setAudioConfiguration", function (audio) {
1612
1618
  return _classPrivateFieldSet(_this, _audio, audio);
1613
1619
  });
1620
+ _defineProperty(this, "setShowCountdown", function (showCountdown) {
1621
+ return _classPrivateFieldSet(_this, _showCountdown, showCountdown);
1622
+ });
1614
1623
  _defineProperty(this, "setTimeLimit", function () {
1615
1624
  var timeLimit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : RECORDING_TIME_LIMIT_FREE_PLAN;
1616
1625
  return _classPrivateFieldSet(_this, _timeLimit, timeLimit);
@@ -1674,7 +1683,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
1674
1683
  error: SCREEN_RECORDER_ERROR.NoRecorder
1675
1684
  });
1676
1685
  };
1677
- _classPrivateFieldGet(_this, _countdownAndStartRecording).call(_this);
1686
+ if (_classPrivateFieldGet(_this, _showCountdown)) {
1687
+ _classPrivateFieldGet(_this, _startCountdown).call(_this);
1688
+ } else {
1689
+ _classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
1690
+ }
1678
1691
  case 19:
1679
1692
  case "end":
1680
1693
  return _context.stop();
@@ -1832,7 +1845,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1832
1845
  break;
1833
1846
  }
1834
1847
  _context2.prev = 13;
1835
- workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1848
+ workletUrl = IS_EXTENSION ?
1849
+ // eslint-disable-next-line no-undef
1850
+ chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1836
1851
  audioContext = new AudioContext();
1837
1852
  _context2.next = 18;
1838
1853
  return audioContext.audioWorklet.addModule(workletUrl);
@@ -1848,6 +1863,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1848
1863
  case 26:
1849
1864
  _context2.prev = 26;
1850
1865
  _context2.t4 = _context2["catch"](13);
1866
+ // eslint-disable-next-line no-console
1851
1867
  console.error("Failed to load audio worklet:", _context2.t4);
1852
1868
  case 29:
1853
1869
  if (!_classPrivateFieldGet(_this, _videoStream)) {
@@ -1968,7 +1984,59 @@ var ScreenRecorder = /*#__PURE__*/function () {
1968
1984
  }
1969
1985
  }
1970
1986
  });
1971
- _classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
1987
+ _classPrivateFieldInitSpec(this, _startMediaRecorder, {
1988
+ writable: true,
1989
+ value: function value() {
1990
+ _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1991
+ try {
1992
+ _classPrivateFieldGet(_this, _logger).info("starting mediaRecorder");
1993
+ if (!_classPrivateFieldGet(_this, _mediaRecorder)) {
1994
+ _classPrivateFieldGet(_this, _logger).info("mediaRecorder is not defined");
1995
+ _classPrivateFieldGet(_this, _store).setState({
1996
+ status: SCREEN_RECORDER_STATUS.idle,
1997
+ error: SCREEN_RECORDER_ERROR.FailedToStart
1998
+ });
1999
+ return;
2000
+ }
2001
+ if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
2002
+ _classPrivateFieldGet(_this, _logger).info("media stream ended, not starting mediaRecorder");
2003
+ _classPrivateFieldGet(_this, _store).setState({
2004
+ status: SCREEN_RECORDER_STATUS.idle,
2005
+ error: SCREEN_RECORDER_ERROR.FailedToStart
2006
+ });
2007
+ return;
2008
+ }
2009
+ _classPrivateFieldGet(_this, _store).setState({
2010
+ status: SCREEN_RECORDER_STATUS.recording
2011
+ });
2012
+ _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
2013
+ _classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
2014
+ _classPrivateFieldGet(_this, _startTimer).call(_this);
2015
+ } catch (error) {
2016
+ _classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
2017
+ _classPrivateFieldGet(_this, _store).setState({
2018
+ status: SCREEN_RECORDER_STATUS.idle,
2019
+ error: SCREEN_RECORDER_ERROR.FailedToStart
2020
+ });
2021
+
2022
+ // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
2023
+ if (_classPrivateFieldGet(_this, _mediaRecorder)) {
2024
+ _classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
2025
+ }
2026
+ if (_classPrivateFieldGet(_this, _mediaStream)) {
2027
+ _classPrivateFieldGet(_this, _stopAllStreams).call(_this);
2028
+ _classPrivateFieldSet(_this, _mediaStream, null);
2029
+ }
2030
+ _classPrivateFieldSet(_this, _stream, null);
2031
+ _classPrivateFieldSet(_this, _audioStream, null);
2032
+ _classPrivateFieldSet(_this, _micAudioStream, null);
2033
+ _classPrivateFieldSet(_this, _mediaRecorder, null);
2034
+ throw error;
2035
+ }
2036
+ }, HALF_A_SECOND_IN_MILLISECONDS));
2037
+ }
2038
+ });
2039
+ _classPrivateFieldInitSpec(this, _startCountdown, {
1972
2040
  writable: true,
1973
2041
  value: function value() {
1974
2042
  if (_classPrivateFieldGet(_this, _countdownTimerId)) return;
@@ -1987,55 +2055,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1987
2055
  }
1988
2056
  _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [0]);
1989
2057
  _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
1990
- _classPrivateFieldGet(_this, _store).setState({
1991
- status: SCREEN_RECORDER_STATUS.recording
1992
- });
1993
2058
  clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
1994
2059
  _classPrivateFieldSet(_this, _countdownTimerId, null);
1995
- _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1996
- try {
1997
- _classPrivateFieldGet(_this, _logger).info("starting mediaRecorder");
1998
- if (!_classPrivateFieldGet(_this, _mediaRecorder)) {
1999
- _classPrivateFieldGet(_this, _logger).info("mediaRecorder is not defined");
2000
- _classPrivateFieldGet(_this, _store).setState({
2001
- status: SCREEN_RECORDER_STATUS.idle,
2002
- error: SCREEN_RECORDER_ERROR.FailedToStart
2003
- });
2004
- return;
2005
- }
2006
- if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
2007
- _classPrivateFieldGet(_this, _logger).info("media stream ended, not starting mediaRecorder");
2008
- _classPrivateFieldGet(_this, _store).setState({
2009
- status: SCREEN_RECORDER_STATUS.idle,
2010
- error: SCREEN_RECORDER_ERROR.FailedToStart
2011
- });
2012
- return;
2013
- }
2014
- _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
2015
- _classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
2016
- _classPrivateFieldGet(_this, _startTimer).call(_this);
2017
- } catch (error) {
2018
- _classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
2019
- _classPrivateFieldGet(_this, _store).setState({
2020
- status: SCREEN_RECORDER_STATUS.idle,
2021
- error: SCREEN_RECORDER_ERROR.FailedToStart
2022
- });
2023
-
2024
- // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
2025
- if (_classPrivateFieldGet(_this, _mediaRecorder)) {
2026
- _classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
2027
- }
2028
- if (_classPrivateFieldGet(_this, _mediaStream)) {
2029
- _classPrivateFieldGet(_this, _stopAllStreams).call(_this);
2030
- _classPrivateFieldSet(_this, _mediaStream, null);
2031
- }
2032
- _classPrivateFieldSet(_this, _stream, null);
2033
- _classPrivateFieldSet(_this, _audioStream, null);
2034
- _classPrivateFieldSet(_this, _micAudioStream, null);
2035
- _classPrivateFieldSet(_this, _mediaRecorder, null);
2036
- throw error;
2037
- }
2038
- }, HALF_A_SECOND_IN_MILLISECONDS));
2060
+ _classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
2039
2061
  return {
2040
2062
  countdownTimeLeft: 0
2041
2063
  };
@@ -2081,7 +2103,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
2081
2103
  _classPrivateFieldGet(_this, _store).setState({
2082
2104
  showTimeLimitWarning: true
2083
2105
  });
2084
- _classPrivateFieldSet(_this, _stopRecordingDueToLimitReachedAudio, new Audio(STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND));
2085
2106
  return;
2086
2107
  }
2087
2108
  _classPrivateFieldGet(_this, _stopRecordingDueToLimitReachedAudio).play();
@@ -2111,11 +2132,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
2111
2132
  }, {
2112
2133
  key: "displaySurface",
2113
2134
  get: function get() {
2114
- var _classPrivateFieldGet17;
2115
- var _classPrivateFieldGet15 = (_classPrivateFieldGet17 = _classPrivateFieldGet(this, _mediaStream)) === null || _classPrivateFieldGet17 === void 0 ? void 0 : _classPrivateFieldGet17.getVideoTracks(),
2116
- _classPrivateFieldGet16 = _slicedToArray(_classPrivateFieldGet15, 1),
2117
- videoTrack = _classPrivateFieldGet16[0];
2118
- return videoTrack.getSettings().displaySurface;
2135
+ var _classPrivateFieldGet15, _classPrivateFieldGet16;
2136
+ var _ref5 = (_classPrivateFieldGet15 = (_classPrivateFieldGet16 = _classPrivateFieldGet(this, _mediaStream)) === null || _classPrivateFieldGet16 === void 0 ? void 0 : _classPrivateFieldGet16.getVideoTracks()) !== null && _classPrivateFieldGet15 !== void 0 ? _classPrivateFieldGet15 : [],
2137
+ _ref6 = _slicedToArray(_ref5, 1),
2138
+ videoTrack = _ref6[0];
2139
+ return videoTrack === null || videoTrack === void 0 ? void 0 : videoTrack.getSettings().displaySurface;
2119
2140
  }
2120
2141
  }, {
2121
2142
  key: "audioConfiguration",