@bigbinary/neeto-media-recorder 2.1.6-beta.3 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/constants.js CHANGED
@@ -20,9 +20,7 @@ var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
20
20
  var ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;
21
21
  var ONE_SECOND = 1;
22
22
  var UPLOAD_EVENT = {
23
- onComplete: "onComplete",
24
- onError: "onError",
25
- onProgress: "onProgress"
23
+ onComplete: "onComplete"
26
24
  };
27
25
  var UPLOAD_STATUS = {
28
26
  uploading: "uploading",
@@ -53,6 +51,8 @@ var SCREEN_RECORDER_ERROR = {
53
51
  NotAllowedError: "permission_denied",
54
52
  NotFoundError: "no_specified_media_found",
55
53
  NotReadableError: "media_in_use",
54
+ NotSupportedError: "not_supported_error",
55
+ InvalidStateError: "invalid_state_error",
56
56
  OverconstrainedError: "invalid_media_constraints",
57
57
  TypeError: "no_chrome_flags_set",
58
58
  None: "",
@@ -65,10 +65,9 @@ var SCREEN_RECORDER_EVENT = {
65
65
  onDiscard: "onDiscard",
66
66
  onDataAvailable: "onDataAvailable",
67
67
  onDiscardDuringCountdown: "onDiscardDuringCountdown",
68
- onRestart: "onRestart",
69
- onReUpload: "onReUpload"
68
+ onRestart: "onRestart"
70
69
  };
71
- var TOTAL_RETRIES = 15;
70
+ var TOTAL_RETRIES = 30;
72
71
  var INITIAL_RETRY_DELAY = 4000;
73
72
  var MAX_RETRY_DELAY = 16000;
74
73
  var DEFAULT_RETRY_CONFIG = {
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n onReUpload: \"onReUpload\",\n};\n\nexport const TOTAL_RETRIES = 15;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264: \"video/webm;codecs=h264\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","onError","onProgress","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","TOTAL_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","NETWORK_ERROR","TIMEOUT_ERROR","HAS_CHROME_NAMESPACE","chrome","_typeof","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","IS_SAFARI_EXTENSION","PERMISSIONS_HELP_DOC","MIME_TYPE","mp4","webmH264","START_RECORDING_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = { onComplete: \"onComplete\" };\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n NotSupportedError: \"not_supported_error\",\n InvalidStateError: \"invalid_state_error\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n};\n\nexport const TOTAL_RETRIES = 30;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264: \"video/webm;codecs=h264\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","NotSupportedError","InvalidStateError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","TOTAL_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","NETWORK_ERROR","TIMEOUT_ERROR","HAS_CHROME_NAMESPACE","chrome","_typeof","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","IS_SAFARI_EXTENSION","PERMISSIONS_HELP_DOC","MIME_TYPE","mp4","webmH264","START_RECORDING_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN"],"mappings":"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"}
package/core.js CHANGED
@@ -629,7 +629,7 @@ function _wrapNativeSuper(Class) {
629
629
  return _wrapNativeSuper(Class);
630
630
  }
631
631
 
632
- var TOTAL_RETRIES = 15;
632
+ var TOTAL_RETRIES = 30;
633
633
  var INITIAL_RETRY_DELAY = 4000;
634
634
  var MAX_RETRY_DELAY = 16000;
635
635
  var DEFAULT_RETRY_CONFIG = {
@@ -690,7 +690,7 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
690
690
  });
691
691
  case 4:
692
692
  if (!(remainingAttempts-- && !shouldCancelRetries)) {
693
- _context.next = 26;
693
+ _context.next = 24;
694
694
  break;
695
695
  }
696
696
  _context.prev = 5;
@@ -701,28 +701,26 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
701
701
  case 11:
702
702
  _context.prev = 11;
703
703
  _context.t0 = _context["catch"](5);
704
- logger.error("buildRetryableApi -> Failed to connect, remainingAttempts:", remainingAttempts);
705
704
  isRetryableStatus = isPresent(retryableStatuses) && retryableStatuses.includes((_error$response = _context.t0.response) === null || _error$response === void 0 ? void 0 : _error$response.status);
706
705
  isRetryableError = isRetryableStatus || _context.t0.message === NETWORK_ERROR || _context.t0.code === TIMEOUT_ERROR;
707
706
  if (!(isRetryableError && remainingAttempts > 0)) {
708
- _context.next = 23;
707
+ _context.next = 21;
709
708
  break;
710
709
  }
711
- logger.info("buildRetryableApi -> Failed to connect, retry in:", retryDelay);
712
- _context.next = 20;
710
+ _context.next = 18;
713
711
  return sleep(retryDelay);
714
- case 20:
712
+ case 18:
715
713
  retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);
716
- _context.next = 24;
714
+ _context.next = 22;
717
715
  break;
718
- case 23:
716
+ case 21:
719
717
  throw _context.t0;
720
- case 24:
718
+ case 22:
721
719
  _context.next = 4;
722
720
  break;
723
- case 26:
721
+ case 24:
724
722
  throw new RetryError("Request cancelled or request retries exhausted");
725
- case 27:
723
+ case 25:
726
724
  case "end":
727
725
  return _context.stop();
728
726
  }
@@ -808,15 +806,6 @@ var prepareStore$1 = function prepareStore() {
808
806
  var isNotCancelledRequest = function isNotCancelledRequest(resolvedResponse) {
809
807
  return typeof resolvedResponse !== "boolean";
810
808
  };
811
- var calculateUploadProgress = function calculateUploadProgress(uploadProgress) {
812
- var total = Object.values(uploadProgress).reduce(function (sum, part) {
813
- return sum + part.total;
814
- }, 0);
815
- var uploaded = Object.values(uploadProgress).reduce(function (sum, part) {
816
- return sum + part.uploaded;
817
- }, 0);
818
- return Math.round(uploaded * 100 / total);
819
- };
820
809
 
821
810
  function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
822
811
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -832,8 +821,6 @@ var _store$1 = /*#__PURE__*/new WeakMap();
832
821
  var _abortController = /*#__PURE__*/new WeakMap();
833
822
  var _pendingS3ChunkUploads = /*#__PURE__*/new WeakMap();
834
823
  var _completeUploadPromise = /*#__PURE__*/new WeakMap();
835
- var _failedUpload = /*#__PURE__*/new WeakMap();
836
- var _uploadProgress = /*#__PURE__*/new WeakMap();
837
824
  var _fireCallbacks$1 = /*#__PURE__*/new WeakMap();
838
825
  var _uploadChunkToS = /*#__PURE__*/new WeakMap();
839
826
  var _getCurrentUnUploadedBlob = /*#__PURE__*/new WeakMap();
@@ -887,14 +874,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
887
874
  writable: true,
888
875
  value: void 0
889
876
  });
890
- _classPrivateFieldInitSpec$1(this, _failedUpload, {
891
- writable: true,
892
- value: []
893
- });
894
- _classPrivateFieldInitSpec$1(this, _uploadProgress, {
895
- writable: true,
896
- value: {}
897
- });
898
877
  _defineProperty(this, "initialize", function (recordingId, uploadId) {
899
878
  _classPrivateFieldSet(_this, _recordingId, recordingId);
900
879
  _classPrivateFieldSet(_this, _uploadId, uploadId);
@@ -929,7 +908,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
929
908
  case 4:
930
909
  // Upload last chunk; only if last chunk has data
931
910
  if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > 0) {
932
- logger.info("completeUpload -> need to upload last chunk");
933
911
  uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
934
912
  _classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
935
913
  }
@@ -942,36 +920,22 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
942
920
  * adding the new presignedUrl part upload to s3PartUploadPromises.
943
921
  * This results in incorrect partNumbers.
944
922
  */
945
- logger.info("completeUpload -> uploading all pending chunks...", _classPrivateFieldGet(_this, _pendingS3ChunkUploads).length);
946
- _context.next = 8;
923
+ _context.next = 7;
947
924
  return Promise.all(_classPrivateFieldGet(_this, _pendingS3ChunkUploads));
948
- case 8:
949
- logger.info("completeUpload -> finishing part uploads...");
950
- _context.next = 11;
925
+ case 7:
926
+ _context.next = 9;
951
927
  return Promise.all(_classPrivateFieldGet(_this, _s3PartUploadPromises));
952
- case 11:
928
+ case 9:
953
929
  resolvedS3PartUploadPromises = _context.sent;
954
- if (!isNotEmpty(_classPrivateFieldGet(_this, _failedUpload))) {
955
- _context.next = 17;
956
- break;
957
- }
958
- logger.info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
959
- _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
960
- _classPrivateFieldGet(_this, _store$1).setState({
961
- status: UPLOAD_STATUS.error
962
- });
963
- return _context.abrupt("return");
964
- case 17:
965
930
  if (!(resolvedS3PartUploadPromises.length === 0)) {
966
- _context.next = 21;
931
+ _context.next = 13;
967
932
  break;
968
933
  }
969
- logger.info("completeUpload -> insufficient data");
970
934
  _classPrivateFieldGet(_this, _store$1).setState({
971
935
  status: UPLOAD_STATUS.insufficient_data
972
936
  });
973
937
  return _context.abrupt("return");
974
- case 21:
938
+ case 13:
975
939
  parts = resolvedS3PartUploadPromises.filter(isNotCancelledRequest).map(function (resolvedResponse) {
976
940
  return {
977
941
  etag: resolvedResponse.headers.etag,
@@ -980,7 +944,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
980
944
  }).toSorted(function (a, b) {
981
945
  return Number(a.partNumber) - Number(b.partNumber);
982
946
  });
983
- logger.info("completeUpload -> uploaded parts: ", parts);
984
947
  _classPrivateFieldSet(_this, _completeUploadPromise, completeUploadApi.create({
985
948
  recordingId: _classPrivateFieldGet(_this, _recordingId),
986
949
  payload: {
@@ -991,44 +954,34 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
991
954
  signal: _classPrivateFieldGet(_this, _abortController).signal
992
955
  }
993
956
  }));
994
- logger.info("completeUpload -> completing upload... ");
995
- _context.next = 27;
957
+ _context.next = 17;
996
958
  return _classPrivateFieldGet(_this, _completeUploadPromise);
997
- case 27:
998
- logger.info("completeUpload -> upload completed");
959
+ case 17:
999
960
  if (!(_classPrivateFieldGet(_this, _store$1).getState().status === UPLOAD_STATUS.aborting)) {
1000
- _context.next = 31;
961
+ _context.next = 19;
1001
962
  break;
1002
963
  }
1003
- logger.info("completeUpload -> upload was marked as aborted");
1004
964
  return _context.abrupt("return");
1005
- case 31:
965
+ case 19:
1006
966
  _classPrivateFieldGet(_this, _store$1).setState({
1007
967
  status: UPLOAD_STATUS.completed
1008
968
  });
1009
969
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onComplete);
1010
- _context.next = 38;
970
+ _context.next = 26;
1011
971
  break;
1012
- case 35:
1013
- _context.prev = 35;
972
+ case 23:
973
+ _context.prev = 23;
1014
974
  _context.t0 = _context["catch"](0);
1015
- // ignore if aborted
1016
- if (!axios.isCancel(_context.t0)) {
1017
- _classPrivateFieldGet(_this, _store$1).setState({
1018
- status: UPLOAD_STATUS.error
1019
- });
1020
- _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
1021
- logger.error(_context.t0);
1022
- }
1023
- case 38:
1024
- _context.prev = 38;
975
+ logger.error(_context.t0);
976
+ case 26:
977
+ _context.prev = 26;
1025
978
  _classPrivateFieldSet(_this, _completeUploadPromise, null);
1026
- return _context.finish(38);
1027
- case 41:
979
+ return _context.finish(26);
980
+ case 29:
1028
981
  case "end":
1029
982
  return _context.stop();
1030
983
  }
1031
- }, _callee, null, [[0, 35, 38, 41]]);
984
+ }, _callee, null, [[0, 23, 26, 29]]);
1032
985
  })));
1033
986
  _defineProperty(this, "abortUpload", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
1034
987
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
@@ -1082,8 +1035,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1082
1035
  _classPrivateFieldSet(_this, _partNumber, 1);
1083
1036
  _classPrivateFieldSet(_this, _s3PartUploadPromises, []);
1084
1037
  _classPrivateFieldSet(_this, _callbacks$1, {});
1085
- _classPrivateFieldSet(_this, _failedUpload, []);
1086
- _classPrivateFieldSet(_this, _uploadProgress, {});
1087
1038
  _classPrivateFieldGet(_this, _store$1).setState({
1088
1039
  status: ""
1089
1040
  });
@@ -1113,36 +1064,26 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1113
1064
  writable: true,
1114
1065
  value: function () {
1115
1066
  var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(chunks) {
1116
- var _this$partNumber;
1117
- var partNumber, _yield$partPresignedU, presignedUrl, s3PartUploadPromise;
1067
+ var _this$partNumber, _this$partNumber2, _yield$partPresignedU, presignedUrl, s3PartUploadPromise;
1118
1068
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1119
1069
  while (1) switch (_context3.prev = _context3.next) {
1120
1070
  case 0:
1121
1071
  logger.info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
1122
- partNumber = _classPrivateFieldGet(_this, _partNumber);
1123
- _classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber++, _this$partNumber));
1124
- _classPrivateFieldGet(_this, _uploadProgress)[partNumber] = {
1125
- uploaded: 0,
1126
- total: new Blob(chunks, {
1127
- type: MIME_TYPE.webmH264
1128
- }).size
1129
- };
1130
- _context3.prev = 4;
1131
- _context3.next = 7;
1072
+ _context3.prev = 1;
1073
+ _context3.next = 4;
1132
1074
  return partPresignedUrlApi.create({
1133
1075
  recordingId: _classPrivateFieldGet(_this, _recordingId),
1134
1076
  payload: {
1135
- partNumber: partNumber,
1077
+ partNumber: (_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber2 = _this$partNumber++, _this$partNumber)), _this$partNumber2),
1136
1078
  uploadId: _classPrivateFieldGet(_this, _uploadId)
1137
1079
  },
1138
1080
  config: {
1139
1081
  signal: _classPrivateFieldGet(_this, _abortController).signal
1140
1082
  }
1141
1083
  });
1142
- case 7:
1084
+ case 4:
1143
1085
  _yield$partPresignedU = _context3.sent;
1144
1086
  presignedUrl = _yield$partPresignedU.presignedUrl;
1145
- logger.info("Presigned url created for partNumber:", partNumber);
1146
1087
  s3PartUploadPromise = s3Api.presignedUpload({
1147
1088
  presignedUrl: presignedUrl,
1148
1089
  blob: new Blob(chunks, {
@@ -1150,40 +1091,21 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1150
1091
  }),
1151
1092
  config: {
1152
1093
  includeMetadataInResponse: true,
1153
- signal: _classPrivateFieldGet(_this, _abortController).signal,
1154
- onUploadProgress: function onUploadProgress(e) {
1155
- _classPrivateFieldGet(_this, _uploadProgress)[partNumber] = {
1156
- uploaded: e.loaded,
1157
- total: e.total
1158
- };
1159
- if (_classPrivateFieldGet(_this, _store$1).getState().status === UPLOAD_STATUS.uploading) {
1160
- var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
1161
- logger.info("Upload Progress: ".concat(percentCompleted, "%"));
1162
- _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
1163
- }
1164
- }
1094
+ signal: _classPrivateFieldGet(_this, _abortController).signal
1165
1095
  }
1166
1096
  });
1167
1097
  _classPrivateFieldGet(_this, _s3PartUploadPromises).push(s3PartUploadPromise);
1168
- _context3.next = 17;
1098
+ _context3.next = 13;
1169
1099
  break;
1170
- case 14:
1171
- _context3.prev = 14;
1172
- _context3.t0 = _context3["catch"](4);
1173
- // ignore if aborted
1174
- if (!axios.isCancel(_context3.t0)) {
1175
- logger.error("Failed to upload partNumber:", partNumber);
1176
- if (_classPrivateFieldGet(_this, _store$1).getState().status === UPLOAD_STATUS.uploading) {
1177
- _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
1178
- } else {
1179
- _classPrivateFieldGet(_this, _failedUpload).push(partNumber);
1180
- }
1181
- }
1182
- case 17:
1100
+ case 10:
1101
+ _context3.prev = 10;
1102
+ _context3.t0 = _context3["catch"](1);
1103
+ if (!axios.isCancel(_context3.t0)) logger.error(_context3.t0);
1104
+ case 13:
1183
1105
  case "end":
1184
1106
  return _context3.stop();
1185
1107
  }
1186
- }, _callee3, null, [[4, 14]]);
1108
+ }, _callee3, null, [[1, 10]]);
1187
1109
  }));
1188
1110
  function value(_x) {
1189
1111
  return _value.apply(this, arguments);
@@ -1348,7 +1270,6 @@ var _recordingLimitWarningAudio = /*#__PURE__*/new WeakMap();
1348
1270
  var _stopRecordingDueToLimitReachedAudio = /*#__PURE__*/new WeakMap();
1349
1271
  var _stream = /*#__PURE__*/new WeakMap();
1350
1272
  var _audioStream = /*#__PURE__*/new WeakMap();
1351
- var _audioContext = /*#__PURE__*/new WeakMap();
1352
1273
  var _timeLimit = /*#__PURE__*/new WeakMap();
1353
1274
  var _startRecordingTimeoutID = /*#__PURE__*/new WeakMap();
1354
1275
  var _enableNoiseCancellation = /*#__PURE__*/new WeakMap();
@@ -1426,10 +1347,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
1426
1347
  writable: true,
1427
1348
  value: void 0
1428
1349
  });
1429
- _classPrivateFieldInitSpec(this, _audioContext, {
1430
- writable: true,
1431
- value: void 0
1432
- });
1433
1350
  _classPrivateFieldInitSpec(this, _timeLimit, {
1434
1351
  writable: true,
1435
1352
  value: RECORDING_TIME_LIMIT_FREE_PLAN
@@ -1659,56 +1576,56 @@ var ScreenRecorder = /*#__PURE__*/function () {
1659
1576
  writable: true,
1660
1577
  value: function () {
1661
1578
  var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
1662
- var isAudioWorkletLoaded, stream, workletUrl, audioStream, audioStreamSource, destinationStream, noiseSuppressorNode, finalStream, audioContext, desktopAudio, microphoneAudio, combinedAudio;
1579
+ var stream, audioStream, workletUrl, audioContext, audioStreamSource, destinationStream, noiseSuppressorNode, finalStream, _audioContext, desktopAudio, microphoneAudio, combinedAudio;
1663
1580
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
1664
1581
  while (1) switch (_context2.prev = _context2.next) {
1665
1582
  case 0:
1666
1583
  _classPrivateFieldGet(_this, _store).setState({
1667
1584
  status: SCREEN_RECORDER_STATUS.acquiring_media
1668
1585
  });
1669
- isAudioWorkletLoaded = false;
1670
- _context2.prev = 2;
1586
+ _context2.prev = 1;
1671
1587
  if (!_classPrivateFieldGet(_this, _audio)) {
1672
- _context2.next = 19;
1588
+ _context2.next = 24;
1673
1589
  break;
1674
1590
  }
1675
- _classPrivateFieldSet(_this, _audioContext, new AudioContext());
1676
- _context2.prev = 5;
1677
- workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1678
- _context2.next = 9;
1679
- return _classPrivateFieldGet(_this, _audioContext).audioWorklet.addModule(workletUrl);
1680
- case 9:
1681
- isAudioWorkletLoaded = true;
1682
- _context2.next = 15;
1683
- break;
1684
- case 12:
1685
- _context2.prev = 12;
1686
- _context2.t0 = _context2["catch"](5);
1687
- console.error("Failed to load audio worklet:", _context2.t0);
1688
- case 15:
1689
- _context2.next = 17;
1591
+ _context2.next = 5;
1690
1592
  return window.navigator.mediaDevices.getUserMedia({
1691
- audio: _classPrivateFieldGet(_this, _audio) ? _classPrivateFieldGet(_this, _audio) : false
1593
+ audio: _classPrivateFieldGet(_this, _audio) ? _objectSpread({
1594
+ echoCancellation: false
1595
+ }, _classPrivateFieldGet(_this, _audio)) : false
1692
1596
  });
1693
- case 17:
1597
+ case 5:
1694
1598
  audioStream = _context2.sent;
1695
- if (isAudioWorkletLoaded && _classPrivateFieldGet(_this, _enableNoiseCancellation)) {
1696
- audioStreamSource = _classPrivateFieldGet(_this, _audioContext).createMediaStreamSource(audioStream);
1697
- destinationStream = _classPrivateFieldGet(_this, _audioContext).createMediaStreamDestination();
1698
- noiseSuppressorNode = new AudioWorkletNode(_classPrivateFieldGet(_this, _audioContext), "nn-suppressor-processor");
1699
- audioStreamSource.connect(noiseSuppressorNode);
1700
- noiseSuppressorNode.connect(destinationStream);
1701
- _classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
1702
- } else {
1703
- _classPrivateFieldSet(_this, _audioStream, audioStream);
1599
+ _classPrivateFieldSet(_this, _audioStream, audioStream);
1600
+ if (!_classPrivateFieldGet(_this, _enableNoiseCancellation)) {
1601
+ _context2.next = 24;
1602
+ break;
1704
1603
  }
1705
- case 19:
1706
- _context2.next = 21;
1604
+ _context2.prev = 8;
1605
+ workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
1606
+ audioContext = new AudioContext();
1607
+ _context2.next = 13;
1608
+ return audioContext.audioWorklet.addModule(workletUrl);
1609
+ case 13:
1610
+ audioStreamSource = audioContext.createMediaStreamSource(audioStream);
1611
+ destinationStream = audioContext.createMediaStreamDestination();
1612
+ noiseSuppressorNode = new AudioWorkletNode(audioContext, "nn-suppressor-processor");
1613
+ audioStreamSource.connect(noiseSuppressorNode);
1614
+ noiseSuppressorNode.connect(destinationStream);
1615
+ _classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
1616
+ _context2.next = 24;
1617
+ break;
1618
+ case 21:
1619
+ _context2.prev = 21;
1620
+ _context2.t0 = _context2["catch"](8);
1621
+ console.error("Failed to load audio worklet:", _context2.t0);
1622
+ case 24:
1623
+ _context2.next = 26;
1707
1624
  return window.navigator.mediaDevices.getDisplayMedia({
1708
1625
  video: _classPrivateFieldGet(_this, _video) || true,
1709
1626
  audio: true
1710
1627
  });
1711
- case 21:
1628
+ case 26:
1712
1629
  stream = _context2.sent;
1713
1630
  // Event triggered when the user clicks on the stop sharing overlay button
1714
1631
  stream.getVideoTracks()[0].addEventListener("ended", function () {
@@ -1717,10 +1634,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
1717
1634
  finalStream = new MediaStream();
1718
1635
  if (_classPrivateFieldGet(_this, _audio) && _classPrivateFieldGet(_this, _audioStream)) {
1719
1636
  if (isNotEmpty(stream.getAudioTracks())) {
1720
- audioContext = new AudioContext();
1721
- desktopAudio = audioContext.createMediaStreamSource(stream);
1722
- microphoneAudio = audioContext.createMediaStreamSource(_classPrivateFieldGet(_this, _audioStream));
1723
- combinedAudio = audioContext.createMediaStreamDestination();
1637
+ _audioContext = new AudioContext();
1638
+ desktopAudio = _audioContext.createMediaStreamSource(stream);
1639
+ microphoneAudio = _audioContext.createMediaStreamSource(_classPrivateFieldGet(_this, _audioStream));
1640
+ combinedAudio = _audioContext.createMediaStreamDestination();
1724
1641
  desktopAudio.connect(combinedAudio);
1725
1642
  microphoneAudio.connect(combinedAudio);
1726
1643
  combinedAudio.stream.getAudioTracks().forEach(function (track) {
@@ -1740,11 +1657,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
1740
1657
  _classPrivateFieldGet(_this, _store).setState({
1741
1658
  status: SCREEN_RECORDER_STATUS.media_acquired
1742
1659
  });
1743
- _context2.next = 34;
1660
+ _context2.next = 39;
1744
1661
  break;
1745
- case 31:
1746
- _context2.prev = 31;
1747
- _context2.t1 = _context2["catch"](2);
1662
+ case 36:
1663
+ _context2.prev = 36;
1664
+ _context2.t1 = _context2["catch"](1);
1748
1665
  if (_classPrivateFieldGet(_this, _audio) && !_classPrivateFieldGet(_this, _audioStream)) {
1749
1666
  _classPrivateFieldGet(_this, _store).setState({
1750
1667
  error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
@@ -1756,11 +1673,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
1756
1673
  status: SCREEN_RECORDER_STATUS.idle
1757
1674
  });
1758
1675
  }
1759
- case 34:
1676
+ case 39:
1760
1677
  case "end":
1761
1678
  return _context2.stop();
1762
1679
  }
1763
- }, _callee2, null, [[2, 31], [5, 12]]);
1680
+ }, _callee2, null, [[1, 36], [8, 21]]);
1764
1681
  }));
1765
1682
  function value() {
1766
1683
  return _value.apply(this, arguments);
@@ -1813,7 +1730,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
1813
1730
  _classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
1814
1731
  writable: true,
1815
1732
  value: function value() {
1816
- if (_classPrivateFieldGet(_this, _mediaRecorder).state === "recording") return;
1817
1733
  _classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
1818
1734
  _classPrivateFieldGet(_this, _store).setState(function (_ref3) {
1819
1735
  var countdownTimeLeft = _ref3.countdownTimeLeft;
@@ -1830,9 +1746,23 @@ var ScreenRecorder = /*#__PURE__*/function () {
1830
1746
  });
1831
1747
  clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
1832
1748
  _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1833
- if (_classPrivateFieldGet(_this, _mediaRecorder).state === "recording") return;
1834
- _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
1835
- _classPrivateFieldGet(_this, _startTimer).call(_this);
1749
+ try {
1750
+ _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
1751
+ _classPrivateFieldGet(_this, _startTimer).call(_this);
1752
+ } catch (error) {
1753
+ _classPrivateFieldGet(_this, _store).setState({
1754
+ status: SCREEN_RECORDER_STATUS.idle,
1755
+ error: SCREEN_RECORDER_ERROR[error.name]
1756
+ });
1757
+ _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onError, [error]);
1758
+ _classPrivateFieldGet(_this, _mediaStream).getVideoTracks()[0].stop();
1759
+ _classPrivateFieldGet(_this, _mediaStream).getAudioTracks()[0].stop();
1760
+ _classPrivateFieldSet(_this, _mediaStream, null);
1761
+ _classPrivateFieldSet(_this, _stream, null);
1762
+ _classPrivateFieldSet(_this, _audioStream, null);
1763
+ _classPrivateFieldSet(_this, _mediaRecorder, null);
1764
+ throw error;
1765
+ }
1836
1766
  }, HALF_A_SECOND_IN_MILLISECONDS));
1837
1767
  return {
1838
1768
  countdownTimeLeft: 0