@bigbinary/neeto-media-recorder 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/core.js +146 -65
  2. package/core.js.map +1 -1
  3. package/package.json +2 -1
package/core.js CHANGED
@@ -519,6 +519,59 @@ try {
519
519
 
520
520
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
521
521
 
522
+ const byteToHex = [];
523
+ for (let i = 0; i < 256; ++i) {
524
+ byteToHex.push((i + 0x100).toString(16).slice(1));
525
+ }
526
+ function unsafeStringify(arr, offset = 0) {
527
+ return (byteToHex[arr[offset + 0]] +
528
+ byteToHex[arr[offset + 1]] +
529
+ byteToHex[arr[offset + 2]] +
530
+ byteToHex[arr[offset + 3]] +
531
+ '-' +
532
+ byteToHex[arr[offset + 4]] +
533
+ byteToHex[arr[offset + 5]] +
534
+ '-' +
535
+ byteToHex[arr[offset + 6]] +
536
+ byteToHex[arr[offset + 7]] +
537
+ '-' +
538
+ byteToHex[arr[offset + 8]] +
539
+ byteToHex[arr[offset + 9]] +
540
+ '-' +
541
+ byteToHex[arr[offset + 10]] +
542
+ byteToHex[arr[offset + 11]] +
543
+ byteToHex[arr[offset + 12]] +
544
+ byteToHex[arr[offset + 13]] +
545
+ byteToHex[arr[offset + 14]] +
546
+ byteToHex[arr[offset + 15]]).toLowerCase();
547
+ }
548
+
549
+ let getRandomValues;
550
+ const rnds8 = new Uint8Array(16);
551
+ function rng() {
552
+ if (!getRandomValues) {
553
+ if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
554
+ throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
555
+ }
556
+ getRandomValues = crypto.getRandomValues.bind(crypto);
557
+ }
558
+ return getRandomValues(rnds8);
559
+ }
560
+
561
+ const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
562
+ var native = { randomUUID };
563
+
564
+ function v4(options, buf, offset) {
565
+ if (native.randomUUID && !buf && !options) {
566
+ return native.randomUUID();
567
+ }
568
+ options = options || {};
569
+ const rnds = options.random || (options.rng || rng)();
570
+ rnds[6] = (rnds[6] & 0x0f) | 0x40;
571
+ rnds[8] = (rnds[8] & 0x3f) | 0x80;
572
+ return unsafeStringify(rnds);
573
+ }
574
+
522
575
  function _setPrototypeOf(o, p) {
523
576
  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
524
577
  o.__proto__ = p;
@@ -864,27 +917,6 @@ var isMp4Supported = function isMp4Supported() {
864
917
  return getSupportedMimeType() === MIME_TYPE$1.mp4;
865
918
  };
866
919
 
867
- /**
868
- * Due to the custom axios interceptor for s3Api,
869
- * it'll return false for cancelled requests instead of a cancelled error object.
870
- */
871
- var isNotCancelledRequest = function isNotCancelledRequest(resolvedResponse) {
872
- return typeof resolvedResponse !== "boolean";
873
- };
874
- var calculateUploadProgress = function calculateUploadProgress(uploadProgress) {
875
- var total = Object.values(uploadProgress).reduce(function (sum, part) {
876
- return sum + part.total;
877
- }, 0);
878
- var uploaded = Object.values(uploadProgress).reduce(function (sum, part) {
879
- return sum + part.uploaded;
880
- }, 0);
881
- return Math.round(uploaded * 100 / total);
882
- };
883
-
884
- 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; }
885
- 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; }
886
- function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
887
- function _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
888
920
  var createPrefixedLogger = function createPrefixedLogger(prefix) {
889
921
  return {
890
922
  info: function info() {
@@ -917,6 +949,28 @@ var createPrefixedLogger = function createPrefixedLogger(prefix) {
917
949
  }
918
950
  };
919
951
  };
952
+
953
+ /**
954
+ * Due to the custom axios interceptor for s3Api,
955
+ * it'll return false for cancelled requests instead of a cancelled error object.
956
+ */
957
+ var isNotCancelledRequest = function isNotCancelledRequest(resolvedResponse) {
958
+ return typeof resolvedResponse !== "boolean";
959
+ };
960
+ var calculateUploadProgress = function calculateUploadProgress(uploadProgress) {
961
+ var total = Object.values(uploadProgress).reduce(function (sum, part) {
962
+ return sum + part.total;
963
+ }, 0);
964
+ var uploaded = Object.values(uploadProgress).reduce(function (sum, part) {
965
+ return sum + part.uploaded;
966
+ }, 0);
967
+ return Math.round(uploaded * 100 / total);
968
+ };
969
+
970
+ 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; }
971
+ 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; }
972
+ function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
973
+ function _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
920
974
  var _recordingId = /*#__PURE__*/new WeakMap();
921
975
  var _uploadId = /*#__PURE__*/new WeakMap();
922
976
  var _unUploadedChunks = /*#__PURE__*/new WeakMap();
@@ -930,18 +984,18 @@ var _failedUpload = /*#__PURE__*/new WeakMap();
930
984
  var _uploadProgress = /*#__PURE__*/new WeakMap();
931
985
  var _status = /*#__PURE__*/new WeakMap();
932
986
  var _id = /*#__PURE__*/new WeakMap();
933
- var _logger5 = /*#__PURE__*/new WeakMap();
987
+ var _logger$1 = /*#__PURE__*/new WeakMap();
934
988
  var _status2 = /*#__PURE__*/new WeakMap();
935
989
  var _fireCallbacks$1 = /*#__PURE__*/new WeakMap();
936
990
  var _uploadChunkToS = /*#__PURE__*/new WeakMap();
937
991
  var _getCurrentUnUploadedBlob = /*#__PURE__*/new WeakMap();
938
- var _isRecordingSet = /*#__PURE__*/new WeakMap();
992
+ var _isRecordingNotSet = /*#__PURE__*/new WeakMap();
939
993
  var MultipartS3Uploader = /*#__PURE__*/function () {
940
994
  function MultipartS3Uploader() {
941
995
  var _this = this;
942
996
  _classCallCheck(this, MultipartS3Uploader);
943
- _classPrivateFieldInitSpec$1(this, _isRecordingSet, {
944
- get: _get_isRecordingSet,
997
+ _classPrivateFieldInitSpec$1(this, _isRecordingNotSet, {
998
+ get: _get_isRecordingNotSet,
945
999
  set: void 0
946
1000
  });
947
1001
  _classPrivateFieldInitSpec$1(this, _status2, {
@@ -999,9 +1053,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
999
1053
  });
1000
1054
  _classPrivateFieldInitSpec$1(this, _id, {
1001
1055
  writable: true,
1002
- value: crypto.randomUUID()
1056
+ value: v4()
1003
1057
  });
1004
- _classPrivateFieldInitSpec$1(this, _logger5, {
1058
+ _classPrivateFieldInitSpec$1(this, _logger$1, {
1005
1059
  writable: true,
1006
1060
  value: createPrefixedLogger("[".concat(_classPrivateFieldGet(this, _id), "]"))
1007
1061
  });
@@ -1014,8 +1068,8 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1014
1068
  if (data.size > 0) {
1015
1069
  _classPrivateFieldGet(_this, _unUploadedChunks).push(data);
1016
1070
  }
1017
- if (_classPrivateFieldGet(_this, _isRecordingSet)) return;
1018
- _classPrivateFieldGet(_this, _logger5).info("Current unuploaded data size is ", _classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size / 1024 / 1024, "MB");
1071
+ if (_classPrivateFieldGet(_this, _isRecordingNotSet)) return;
1072
+ _classPrivateFieldGet(_this, _logger$1).info("Current unuploaded data size is ", _classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size / 1024 / 1024, "MB");
1019
1073
  if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > _this.MIN_UPLOAD_CHUNK_SIZE) {
1020
1074
  var uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
1021
1075
  _classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
@@ -1029,16 +1083,16 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1029
1083
  case 0:
1030
1084
  _context.prev = 0;
1031
1085
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.uploading);
1032
- if (!_classPrivateFieldGet(_this, _isRecordingSet)) {
1086
+ if (!_classPrivateFieldGet(_this, _isRecordingNotSet)) {
1033
1087
  _context.next = 5;
1034
1088
  break;
1035
1089
  }
1036
- _classPrivateFieldGet(_this, _logger5).error("completeUpload -> not initialized");
1090
+ _classPrivateFieldGet(_this, _logger$1).error("completeUpload -> not initialized");
1037
1091
  return _context.abrupt("return");
1038
1092
  case 5:
1039
1093
  // Upload last chunk; only if last chunk has data
1040
1094
  if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > 0) {
1041
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> need to upload last chunk");
1095
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> need to upload last chunk");
1042
1096
  uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
1043
1097
  _classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
1044
1098
  }
@@ -1051,11 +1105,11 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1051
1105
  * adding the new presignedUrl part upload to s3PartUploadPromises.
1052
1106
  * This results in incorrect partNumbers.
1053
1107
  */
1054
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> uploading all pending chunks...", _classPrivateFieldGet(_this, _pendingS3ChunkUploads).length);
1108
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> uploading all pending chunks...", _classPrivateFieldGet(_this, _pendingS3ChunkUploads).length);
1055
1109
  _context.next = 9;
1056
1110
  return Promise.all(_classPrivateFieldGet(_this, _pendingS3ChunkUploads));
1057
1111
  case 9:
1058
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> finishing part uploads...");
1112
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> finishing part uploads...");
1059
1113
  _context.next = 12;
1060
1114
  return Promise.all(_classPrivateFieldGet(_this, _s3PartUploadPromises));
1061
1115
  case 12:
@@ -1064,7 +1118,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1064
1118
  _context.next = 18;
1065
1119
  break;
1066
1120
  }
1067
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
1121
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
1068
1122
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
1069
1123
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
1070
1124
  return _context.abrupt("return");
@@ -1073,7 +1127,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1073
1127
  _context.next = 22;
1074
1128
  break;
1075
1129
  }
1076
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> insufficient data");
1130
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> insufficient data");
1077
1131
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.insufficient_data);
1078
1132
  return _context.abrupt("return");
1079
1133
  case 22:
@@ -1085,7 +1139,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1085
1139
  }).toSorted(function (a, b) {
1086
1140
  return Number(a.partNumber) - Number(b.partNumber);
1087
1141
  });
1088
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> uploaded parts: ", parts);
1142
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> uploaded parts: ", parts);
1089
1143
  _classPrivateFieldSet(_this, _completeUploadPromise, completeUploadApi.create({
1090
1144
  recordingId: _classPrivateFieldGet(_this, _recordingId),
1091
1145
  payload: {
@@ -1097,16 +1151,16 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1097
1151
  signal: _classPrivateFieldGet(_this, _abortController).signal
1098
1152
  }
1099
1153
  }));
1100
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> completing upload... ");
1154
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> completing upload... ");
1101
1155
  _context.next = 28;
1102
1156
  return _classPrivateFieldGet(_this, _completeUploadPromise);
1103
1157
  case 28:
1104
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> upload completed");
1158
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> upload completed");
1105
1159
  if (!(_this.status === UPLOAD_STATUS.aborting)) {
1106
1160
  _context.next = 32;
1107
1161
  break;
1108
1162
  }
1109
- _classPrivateFieldGet(_this, _logger5).info("completeUpload -> upload was marked as aborted");
1163
+ _classPrivateFieldGet(_this, _logger$1).info("completeUpload -> upload was marked as aborted");
1110
1164
  return _context.abrupt("return");
1111
1165
  case 32:
1112
1166
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.completed);
@@ -1120,7 +1174,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1120
1174
  if (!axios.isCancel(_context.t0)) {
1121
1175
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
1122
1176
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
1123
- _classPrivateFieldGet(_this, _logger5).error(_context.t0);
1177
+ _classPrivateFieldGet(_this, _logger$1).error(_context.t0);
1124
1178
  }
1125
1179
  case 39:
1126
1180
  _context.prev = 39;
@@ -1146,15 +1200,15 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1146
1200
  _context2.next = 5;
1147
1201
  break;
1148
1202
  }
1149
- _classPrivateFieldGet(_this, _logger5).info("abortUpload -> already aborting");
1203
+ _classPrivateFieldGet(_this, _logger$1).info("abortUpload -> already aborting");
1150
1204
  return _context2.abrupt("return");
1151
1205
  case 5:
1152
1206
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.aborting);
1153
- if (!_classPrivateFieldGet(_this, _isRecordingSet)) {
1207
+ if (!_classPrivateFieldGet(_this, _isRecordingNotSet)) {
1154
1208
  _context2.next = 9;
1155
1209
  break;
1156
1210
  }
1157
- _classPrivateFieldGet(_this, _logger5).info("abortUpload -> not initialized");
1211
+ _classPrivateFieldGet(_this, _logger$1).info("abortUpload -> not initialized");
1158
1212
  return _context2.abrupt("return");
1159
1213
  case 9:
1160
1214
  recordingId = _classPrivateFieldGet(_this, _recordingId);
@@ -1172,7 +1226,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1172
1226
  }
1173
1227
  });
1174
1228
  case 16:
1175
- _classPrivateFieldGet(_this, _logger5).info("abortUpload -> abort successful");
1229
+ _classPrivateFieldGet(_this, _logger$1).info("abortUpload -> abort successful");
1176
1230
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onAbort);
1177
1231
  _classPrivateFieldSet(_this, _unUploadedChunks, []);
1178
1232
  _classPrivateFieldSet(_this, _partNumber, 1);
@@ -1184,7 +1238,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1184
1238
  case 25:
1185
1239
  _context2.prev = 25;
1186
1240
  _context2.t0 = _context2["catch"](1);
1187
- _classPrivateFieldGet(_this, _logger5).error(_context2.t0);
1241
+ _classPrivateFieldGet(_this, _logger$1).error(_context2.t0);
1188
1242
  case 28:
1189
1243
  case "end":
1190
1244
  return _context2.stop();
@@ -1233,7 +1287,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1233
1287
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
1234
1288
  while (1) switch (_context3.prev = _context3.next) {
1235
1289
  case 0:
1236
- _classPrivateFieldGet(_this, _logger5).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
1290
+ _classPrivateFieldGet(_this, _logger$1).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
1237
1291
  partNumber = _classPrivateFieldGet(_this, _partNumber);
1238
1292
  mimeType = getSupportedMimeType();
1239
1293
  _classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber++, _this$partNumber));
@@ -1259,7 +1313,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1259
1313
  case 8:
1260
1314
  _yield$partPresignedU = _context3.sent;
1261
1315
  presignedUrl = _yield$partPresignedU.presignedUrl;
1262
- _classPrivateFieldGet(_this, _logger5).info("Presigned url created for partNumber:", partNumber);
1316
+ _classPrivateFieldGet(_this, _logger$1).info("Presigned url created for partNumber:", partNumber);
1263
1317
  s3PartUploadPromise = s3Api.presignedUpload({
1264
1318
  presignedUrl: presignedUrl,
1265
1319
  blob: new Blob(chunks, {
@@ -1275,7 +1329,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1275
1329
  };
1276
1330
  if (_this.status === UPLOAD_STATUS.uploading) {
1277
1331
  var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
1278
- _classPrivateFieldGet(_this, _logger5).info("Upload Progress: ".concat(percentCompleted, "%"));
1332
+ _classPrivateFieldGet(_this, _logger$1).info("Upload Progress: ".concat(percentCompleted, "%"));
1279
1333
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
1280
1334
  }
1281
1335
  }
@@ -1289,7 +1343,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1289
1343
  _context3.t0 = _context3["catch"](5);
1290
1344
  // ignore if aborted
1291
1345
  if (!axios.isCancel(_context3.t0)) {
1292
- _classPrivateFieldGet(_this, _logger5).error("Failed to upload partNumber:", partNumber);
1346
+ _classPrivateFieldGet(_this, _logger$1).error("Failed to upload partNumber:", partNumber);
1293
1347
  if (_this.status === UPLOAD_STATUS.uploading) {
1294
1348
  _classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
1295
1349
  _classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
@@ -1317,7 +1371,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
1317
1371
  });
1318
1372
  }
1319
1373
  });
1320
- _classPrivateFieldGet(this, _logger5).info("Uploader initialized");
1374
+ _classPrivateFieldGet(this, _logger$1).info("Uploader initialized");
1321
1375
  }
1322
1376
  _createClass(MultipartS3Uploader, [{
1323
1377
  key: "status",
@@ -1336,7 +1390,7 @@ function _set_status(status) {
1336
1390
  _classPrivateFieldSet(this, _status, status);
1337
1391
  useMultipartS3UploadStatus$1.triggerStatusChange();
1338
1392
  }
1339
- function _get_isRecordingSet() {
1393
+ function _get_isRecordingNotSet() {
1340
1394
  return isEmpty(_classPrivateFieldGet(this, _uploadId) + _classPrivateFieldGet(this, _recordingId));
1341
1395
  }
1342
1396
  var multipartS3Uploader = new MultipartS3Uploader();
@@ -1423,6 +1477,7 @@ var _video = /*#__PURE__*/new WeakMap();
1423
1477
  var _mediaRecorder = /*#__PURE__*/new WeakMap();
1424
1478
  var _mediaStream = /*#__PURE__*/new WeakMap();
1425
1479
  var _store = /*#__PURE__*/new WeakMap();
1480
+ var _logger = /*#__PURE__*/new WeakMap();
1426
1481
  var _mediaChunks = /*#__PURE__*/new WeakMap();
1427
1482
  var _callbacks = /*#__PURE__*/new WeakMap();
1428
1483
  var _lastTimerUpdatedAt = /*#__PURE__*/new WeakMap();
@@ -1470,6 +1525,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
1470
1525
  writable: true,
1471
1526
  value: void 0
1472
1527
  });
1528
+ _classPrivateFieldInitSpec(this, _logger, {
1529
+ writable: true,
1530
+ value: createPrefixedLogger("[ScreenRecorder]")
1531
+ });
1473
1532
  _classPrivateFieldInitSpec(this, _mediaChunks, {
1474
1533
  writable: true,
1475
1534
  value: []
@@ -1558,25 +1617,27 @@ var ScreenRecorder = /*#__PURE__*/function () {
1558
1617
  case 0:
1559
1618
  _classPrivateFieldGet(_this, _store).setState(pick(["error"], initialState));
1560
1619
  if (_classPrivateFieldGet(_this, _mediaStream)) {
1561
- _context.next = 4;
1620
+ _context.next = 5;
1562
1621
  break;
1563
1622
  }
1564
- _context.next = 4;
1623
+ _classPrivateFieldGet(_this, _logger).info("acquiring media stream");
1624
+ _context.next = 5;
1565
1625
  return _classPrivateFieldGet(_this, _acquireMediaStream).call(_this);
1566
- case 4:
1626
+ case 5:
1567
1627
  if (!(_classPrivateFieldGet(_this, _mediaStream) && isStreamEnded(_classPrivateFieldGet(_this, _mediaStream)))) {
1568
- _context.next = 7;
1628
+ _context.next = 9;
1569
1629
  break;
1570
1630
  }
1571
- _context.next = 7;
1631
+ _classPrivateFieldGet(_this, _logger).info("media stream ended, acquiring media stream again");
1632
+ _context.next = 9;
1572
1633
  return _classPrivateFieldGet(_this, _acquireMediaStream).call(_this);
1573
- case 7:
1634
+ case 9:
1574
1635
  if (!(!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream)))) {
1575
- _context.next = 9;
1636
+ _context.next = 11;
1576
1637
  break;
1577
1638
  }
1578
1639
  return _context.abrupt("return");
1579
- case 9:
1640
+ case 11:
1580
1641
  options = getMediaRecorderOptions();
1581
1642
  _classPrivateFieldSet(_this, _mediaChunks, []);
1582
1643
  _classPrivateFieldSet(_this, _mediaRecorder, new MediaRecorder(_classPrivateFieldGet(_this, _mediaStream), options));
@@ -1590,7 +1651,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1590
1651
  });
1591
1652
  };
1592
1653
  _classPrivateFieldGet(_this, _countdownAndStartRecording).call(_this);
1593
- case 17:
1654
+ case 19:
1594
1655
  case "end":
1595
1656
  return _context.stop();
1596
1657
  }
@@ -1829,7 +1890,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1829
1890
  error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
1830
1891
  status: SCREEN_RECORDER_STATUS.idle
1831
1892
  });
1832
- } else if (!stream) {
1893
+ } else if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
1833
1894
  _classPrivateFieldGet(_this, _store).setState({
1834
1895
  error: SCREEN_RECORDER_ERROR[_context2.t1.name],
1835
1896
  status: SCREEN_RECORDER_STATUS.idle
@@ -1867,7 +1928,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1867
1928
  writable: true,
1868
1929
  value: function value(_ref2) {
1869
1930
  var data = _ref2.data;
1870
- logger.info("received data in onRecordingActive");
1931
+ _classPrivateFieldGet(_this, _logger).info("received data in onRecordingActive");
1871
1932
  if (data.size <= 0) return;
1872
1933
  _classPrivateFieldGet(_this, _mediaChunks).push(data);
1873
1934
  _classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onDataAvailable, [data]);
@@ -1876,7 +1937,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1876
1937
  _classPrivateFieldInitSpec(this, _onRecordingStop, {
1877
1938
  writable: true,
1878
1939
  value: function value() {
1879
- logger.info("stopping recording in onRecordingStop");
1940
+ _classPrivateFieldGet(_this, _logger).info("stopping recording in onRecordingStop");
1880
1941
  _classPrivateFieldGet(_this, _store).setState({
1881
1942
  status: SCREEN_RECORDER_STATUS.stopped
1882
1943
  });
@@ -1894,6 +1955,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
1894
1955
  _classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
1895
1956
  writable: true,
1896
1957
  value: function value() {
1958
+ if (_classPrivateFieldGet(_this, _countdownTimerId)) return;
1897
1959
  _classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
1898
1960
  _classPrivateFieldGet(_this, _store).setState(function (_ref3) {
1899
1961
  var countdownTimeLeft = _ref3.countdownTimeLeft;
@@ -1909,12 +1971,31 @@ var ScreenRecorder = /*#__PURE__*/function () {
1909
1971
  status: SCREEN_RECORDER_STATUS.recording
1910
1972
  });
1911
1973
  clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
1974
+ _classPrivateFieldSet(_this, _countdownTimerId, null);
1912
1975
  _classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
1913
1976
  try {
1977
+ _classPrivateFieldGet(_this, _logger).info("starting mediaRecorder");
1978
+ if (!_classPrivateFieldGet(_this, _mediaRecorder)) {
1979
+ _classPrivateFieldGet(_this, _logger).info("mediaRecorder is not defined");
1980
+ _classPrivateFieldGet(_this, _store).setState({
1981
+ status: SCREEN_RECORDER_STATUS.idle,
1982
+ error: SCREEN_RECORDER_ERROR.FailedToStart
1983
+ });
1984
+ return;
1985
+ }
1986
+ if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
1987
+ _classPrivateFieldGet(_this, _logger).info("media stream ended, not starting mediaRecorder");
1988
+ _classPrivateFieldGet(_this, _store).setState({
1989
+ status: SCREEN_RECORDER_STATUS.idle,
1990
+ error: SCREEN_RECORDER_ERROR.FailedToStart
1991
+ });
1992
+ return;
1993
+ }
1914
1994
  _classPrivateFieldGet(_this, _mediaRecorder).start(5000);
1995
+ _classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
1915
1996
  _classPrivateFieldGet(_this, _startTimer).call(_this);
1916
1997
  } catch (error) {
1917
- logger.info("Failed to start mediaRecorder", error);
1998
+ _classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
1918
1999
  _classPrivateFieldGet(_this, _store).setState({
1919
2000
  status: SCREEN_RECORDER_STATUS.idle,
1920
2001
  error: SCREEN_RECORDER_ERROR.FailedToStart