@bigbinary/neeto-media-recorder 1.2.0 → 1.3.0

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
@@ -78,6 +78,10 @@ var IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
78
78
  var IS_SAFARI = platform.name === "Safari";
79
79
  var IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;
80
80
  var PERMISSIONS_HELP_DOC = "https://neetorecordhelp.neetokb.com/p/a-10efcfd7";
81
+ var MIME_TYPE = {
82
+ mp4: "video/mp4",
83
+ webmH264: "video/webm;codecs=h264"
84
+ };
81
85
 
82
- export { DEFAULT_RETRY_CONFIG, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, NETWORK_ERROR, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RETRIABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, TIMEOUT_ERROR, TOTAL_RETRIES, UPLOAD_EVENT, UPLOAD_STATUS };
86
+ export { DEFAULT_RETRY_CONFIG, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIME_TYPE, NETWORK_ERROR, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RETRIABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, TIMEOUT_ERROR, TOTAL_RETRIES, UPLOAD_EVENT, UPLOAD_STATUS };
83
87
  //# sourceMappingURL=constants.js.map
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;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_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};\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 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};\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"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","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","AbortError","NotAllowedError","NotFoundError","NotReadableError","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"],"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;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_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};\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 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};\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"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","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","AbortError","NotAllowedError","NotFoundError","NotReadableError","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"],"mappings":"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"}
package/core.js CHANGED
@@ -522,6 +522,113 @@ try {
522
522
 
523
523
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
524
524
 
525
+ function _setPrototypeOf(o, p) {
526
+ _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
527
+ o.__proto__ = p;
528
+ return o;
529
+ };
530
+ return _setPrototypeOf(o, p);
531
+ }
532
+
533
+ function _inherits(subClass, superClass) {
534
+ if (typeof superClass !== "function" && superClass !== null) {
535
+ throw new TypeError("Super expression must either be null or a function");
536
+ }
537
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
538
+ constructor: {
539
+ value: subClass,
540
+ writable: true,
541
+ configurable: true
542
+ }
543
+ });
544
+ Object.defineProperty(subClass, "prototype", {
545
+ writable: false
546
+ });
547
+ if (superClass) _setPrototypeOf(subClass, superClass);
548
+ }
549
+
550
+ function _assertThisInitialized(self) {
551
+ if (self === void 0) {
552
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
553
+ }
554
+ return self;
555
+ }
556
+
557
+ function _possibleConstructorReturn(self, call) {
558
+ if (call && (_typeof$1(call) === "object" || typeof call === "function")) {
559
+ return call;
560
+ } else if (call !== void 0) {
561
+ throw new TypeError("Derived constructors may only return object or undefined");
562
+ }
563
+ return _assertThisInitialized(self);
564
+ }
565
+
566
+ function _getPrototypeOf(o) {
567
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
568
+ return o.__proto__ || Object.getPrototypeOf(o);
569
+ };
570
+ return _getPrototypeOf(o);
571
+ }
572
+
573
+ function _isNativeFunction(fn) {
574
+ return Function.toString.call(fn).indexOf("[native code]") !== -1;
575
+ }
576
+
577
+ function _isNativeReflectConstruct$1() {
578
+ if (typeof Reflect === "undefined" || !Reflect.construct) return false;
579
+ if (Reflect.construct.sham) return false;
580
+ if (typeof Proxy === "function") return true;
581
+ try {
582
+ Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
583
+ return true;
584
+ } catch (e) {
585
+ return false;
586
+ }
587
+ }
588
+
589
+ function _construct(Parent, args, Class) {
590
+ if (_isNativeReflectConstruct$1()) {
591
+ _construct = Reflect.construct.bind();
592
+ } else {
593
+ _construct = function _construct(Parent, args, Class) {
594
+ var a = [null];
595
+ a.push.apply(a, args);
596
+ var Constructor = Function.bind.apply(Parent, a);
597
+ var instance = new Constructor();
598
+ if (Class) _setPrototypeOf(instance, Class.prototype);
599
+ return instance;
600
+ };
601
+ }
602
+ return _construct.apply(null, arguments);
603
+ }
604
+
605
+ function _wrapNativeSuper(Class) {
606
+ var _cache = typeof Map === "function" ? new Map() : undefined;
607
+ _wrapNativeSuper = function _wrapNativeSuper(Class) {
608
+ if (Class === null || !_isNativeFunction(Class)) return Class;
609
+ if (typeof Class !== "function") {
610
+ throw new TypeError("Super expression must either be null or a function");
611
+ }
612
+ if (typeof _cache !== "undefined") {
613
+ if (_cache.has(Class)) return _cache.get(Class);
614
+ _cache.set(Class, Wrapper);
615
+ }
616
+ function Wrapper() {
617
+ return _construct(Class, arguments, _getPrototypeOf(this).constructor);
618
+ }
619
+ Wrapper.prototype = Object.create(Class.prototype, {
620
+ constructor: {
621
+ value: Wrapper,
622
+ enumerable: false,
623
+ writable: true,
624
+ configurable: true
625
+ }
626
+ });
627
+ return _setPrototypeOf(Wrapper, Class);
628
+ };
629
+ return _wrapNativeSuper(Class);
630
+ }
631
+
525
632
  var TOTAL_RETRIES = 30;
526
633
  var INITIAL_RETRY_DELAY = 4000;
527
634
  var MAX_RETRY_DELAY = 16000;
@@ -538,6 +645,10 @@ var TIMEOUT_ERROR = "ECONNABORTED";
538
645
  var HAS_CHROME_NAMESPACE = (typeof chrome === "undefined" ? "undefined" : _typeof$1(chrome)) === "object";
539
646
  HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
540
647
  platform.name === "Safari";
648
+ var MIME_TYPE = {
649
+ mp4: "video/mp4",
650
+ webmH264: "video/webm;codecs=h264"
651
+ };
541
652
 
542
653
  var sleep = function sleep(delay) {
543
654
  return new Promise(function (resolve) {
@@ -545,6 +656,17 @@ var sleep = function sleep(delay) {
545
656
  });
546
657
  };
547
658
 
659
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
660
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
661
+ var RetryError = /*#__PURE__*/function (_Error) {
662
+ _inherits(RetryError, _Error);
663
+ var _super = _createSuper(RetryError);
664
+ function RetryError(message) {
665
+ _classCallCheck(this, RetryError);
666
+ return _super.call(this, message);
667
+ }
668
+ return _createClass(RetryError);
669
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
548
670
  var buildRetryableApi = function buildRetryableApi(apiConnector) {
549
671
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_RETRY_CONFIG,
550
672
  _ref$retries = _ref.retries,
@@ -554,48 +676,54 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
554
676
  retryableStatuses = _ref.retryableStatuses;
555
677
  return /*#__PURE__*/function () {
556
678
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(apiConnectorArgs) {
557
- var remainingAttempts, _error$response, isRetryableStatus, isRetryableError;
679
+ var _config$signal;
680
+ var _apiConnectorArgs$con, config, remainingAttempts, shouldCancelRetries, _error$response, isRetryableStatus, isRetryableError;
558
681
  return _regeneratorRuntime.wrap(function _callee$(_context) {
559
682
  while (1) switch (_context.prev = _context.next) {
560
683
  case 0:
684
+ _apiConnectorArgs$con = apiConnectorArgs.config, config = _apiConnectorArgs$con === void 0 ? null : _apiConnectorArgs$con;
561
685
  remainingAttempts = retries + 1;
562
- case 1:
563
- if (!remainingAttempts--) {
564
- _context.next = 21;
686
+ shouldCancelRetries = false;
687
+ config === null || config === void 0 ? void 0 : (_config$signal = config.signal) === null || _config$signal === void 0 ? void 0 : _config$signal.addEventListener("abort", function () {
688
+ shouldCancelRetries = true;
689
+ });
690
+ case 4:
691
+ if (!(remainingAttempts-- && !shouldCancelRetries)) {
692
+ _context.next = 24;
565
693
  break;
566
694
  }
567
- _context.prev = 2;
568
- _context.next = 5;
695
+ _context.prev = 5;
696
+ _context.next = 8;
569
697
  return apiConnector(apiConnectorArgs);
570
- case 5:
571
- return _context.abrupt("return", _context.sent);
572
698
  case 8:
573
- _context.prev = 8;
574
- _context.t0 = _context["catch"](2);
699
+ return _context.abrupt("return", _context.sent);
700
+ case 11:
701
+ _context.prev = 11;
702
+ _context.t0 = _context["catch"](5);
575
703
  isRetryableStatus = isPresent(retryableStatuses) && retryableStatuses.includes((_error$response = _context.t0.response) === null || _error$response === void 0 ? void 0 : _error$response.status);
576
704
  isRetryableError = isRetryableStatus || _context.t0.message === NETWORK_ERROR || _context.t0.code === TIMEOUT_ERROR;
577
705
  if (!(isRetryableError && remainingAttempts > 0)) {
578
- _context.next = 18;
706
+ _context.next = 21;
579
707
  break;
580
708
  }
581
- _context.next = 15;
709
+ _context.next = 18;
582
710
  return sleep(retryDelay);
583
- case 15:
584
- retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);
585
- _context.next = 19;
586
- break;
587
711
  case 18:
588
- throw _context.t0;
589
- case 19:
590
- _context.next = 1;
712
+ retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);
713
+ _context.next = 22;
591
714
  break;
592
715
  case 21:
593
- return _context.abrupt("return", null);
716
+ throw _context.t0;
594
717
  case 22:
718
+ _context.next = 4;
719
+ break;
720
+ case 24:
721
+ throw new RetryError("Request cancelled or request retries exhausted");
722
+ case 25:
595
723
  case "end":
596
724
  return _context.stop();
597
725
  }
598
- }, _callee, null, [[2, 8]]);
726
+ }, _callee, null, [[5, 11]]);
599
727
  }));
600
728
  return function (_x) {
601
729
  return _ref2.apply(this, arguments);
@@ -630,10 +758,11 @@ var completeUploadApi = {
630
758
 
631
759
  var create = function create(_ref) {
632
760
  var recordingId = _ref.recordingId,
633
- payload = _ref.payload;
761
+ payload = _ref.payload,
762
+ config = _ref.config;
634
763
  return axios.post("/api/v1/recordings/".concat(recordingId, "/part_presigned_url"), {
635
764
  partPresignedUrl: payload
636
- });
765
+ }, config);
637
766
  };
638
767
  var retryableCreate = buildRetryableApi(create);
639
768
  var partPresignedUrlApi = {
@@ -642,7 +771,7 @@ var partPresignedUrlApi = {
642
771
 
643
772
  var s3AxiosInstance = axios.create({
644
773
  headers: {
645
- "Content-Type": 'video/webm;codecs="h264"'
774
+ "Content-Type": MIME_TYPE.webmH264
646
775
  }
647
776
  });
648
777
  s3AxiosInstance.interceptors.response.use(identity, function (error) {
@@ -920,6 +1049,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
920
1049
  payload: {
921
1050
  partNumber: (_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber2 = _this$partNumber++, _this$partNumber)), _this$partNumber2),
922
1051
  uploadId: _classPrivateFieldGet(_this, _uploadId)
1052
+ },
1053
+ config: {
1054
+ signal: _classPrivateFieldGet(_this, _abortController).signal
923
1055
  }
924
1056
  });
925
1057
  case 4:
@@ -928,7 +1060,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
928
1060
  s3PartUploadPromise = s3Api.presignedUpload({
929
1061
  presignedUrl: presignedUrl,
930
1062
  blob: new Blob(chunks, {
931
- type: 'video/webm;codecs="h264"'
1063
+ type: MIME_TYPE.webmH264
932
1064
  }),
933
1065
  config: {
934
1066
  includeMetadataInResponse: true,
@@ -958,7 +1090,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
958
1090
  writable: true,
959
1091
  value: function value() {
960
1092
  return new Blob(_classPrivateFieldGet(_this, _unUploadedChunks), {
961
- type: 'video/webm;codecs="h264"'
1093
+ type: MIME_TYPE.webmH264
962
1094
  });
963
1095
  }
964
1096
  });
@@ -1030,6 +1162,19 @@ var isStreamEnded = function isStreamEnded(mediaStream) {
1030
1162
  readyState: "ended"
1031
1163
  }, mediaStream.getTracks());
1032
1164
  };
1165
+ var getMediaRecorderOptions = function getMediaRecorderOptions() {
1166
+ // Required for safari
1167
+ if (MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {
1168
+ return {
1169
+ mimeType: MIME_TYPE.mp4
1170
+ };
1171
+ } else if (MediaRecorder.isTypeSupported(MIME_TYPE.webmH264)) {
1172
+ return {
1173
+ mimeType: MIME_TYPE.webmH264
1174
+ };
1175
+ }
1176
+ return {};
1177
+ };
1033
1178
 
1034
1179
  function ownKeys(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; }
1035
1180
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -1102,8 +1247,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1102
1247
  return _classPrivateFieldSet(_this, _audio, audio);
1103
1248
  });
1104
1249
  _defineProperty(this, "getWebmMediaBlob", function () {
1250
+ var _getMediaRecorderOpti, _getMediaRecorderOpti2;
1105
1251
  return new Blob(_classPrivateFieldGet(_this, _mediaChunks), {
1106
- type: 'video/webm;codecs="h264"'
1252
+ type: (_getMediaRecorderOpti = (_getMediaRecorderOpti2 = getMediaRecorderOptions()) === null || _getMediaRecorderOpti2 === void 0 ? void 0 : _getMediaRecorderOpti2.mimeType) !== null && _getMediaRecorderOpti !== void 0 ? _getMediaRecorderOpti : MIME_TYPE.webmH264
1107
1253
  });
1108
1254
  });
1109
1255
  _defineProperty(this, "addCallback", function (event, callback) {
@@ -1121,6 +1267,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1121
1267
  delete _classPrivateFieldGet(_this, _callbacks)[event];
1122
1268
  });
1123
1269
  _defineProperty(this, "startRecording", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
1270
+ var options;
1124
1271
  return _regeneratorRuntime.wrap(function _callee$(_context) {
1125
1272
  while (1) switch (_context.prev = _context.next) {
1126
1273
  case 0:
@@ -1145,8 +1292,9 @@ var ScreenRecorder = /*#__PURE__*/function () {
1145
1292
  }
1146
1293
  return _context.abrupt("return");
1147
1294
  case 9:
1295
+ options = getMediaRecorderOptions();
1148
1296
  _classPrivateFieldSet(_this, _mediaChunks, []);
1149
- _classPrivateFieldSet(_this, _mediaRecorder, new MediaRecorder(_classPrivateFieldGet(_this, _mediaStream)));
1297
+ _classPrivateFieldSet(_this, _mediaRecorder, new MediaRecorder(_classPrivateFieldGet(_this, _mediaStream), options));
1150
1298
  _classPrivateFieldGet(_this, _mediaRecorder).ondataavailable = _classPrivateFieldGet(_this, _onRecordingActive);
1151
1299
  _classPrivateFieldGet(_this, _mediaRecorder).onstart = _classPrivateFieldGet(_this, _onRecordingStart);
1152
1300
  _classPrivateFieldGet(_this, _mediaRecorder).onstop = _classPrivateFieldGet(_this, _onRecordingStop);
@@ -1157,7 +1305,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1157
1305
  });
1158
1306
  };
1159
1307
  _classPrivateFieldGet(_this, _countdownAndStartRecording).call(_this);
1160
- case 16:
1308
+ case 17:
1161
1309
  case "end":
1162
1310
  return _context.stop();
1163
1311
  }