@bigbinary/neeto-media-recorder 2.5.8 → 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.
- package/README.md +39 -11
- package/constants.js +2 -3
- package/constants.js.map +1 -1
- package/core.js +295 -147
- package/core.js.map +1 -1
- package/index.js +151 -149
- package/index.js.map +1 -1
- package/package.json +2 -1
package/core.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { isPresent, existsBy, isNotEmpty, isNot, noop } from '@bigbinary/neeto-cist';
|
|
3
3
|
import { RETRYABLE_ERRORS, MIME_TYPE as MIME_TYPE$1, UPLOAD_STATUS, UPLOAD_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, RECORDING_TIME_LIMIT_FREE_PLAN, 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';
|
|
4
|
+
import { useMultipartS3UploadStatus as useMultipartS3UploadStatus$1, getMultipartS3Uploader as getMultipartS3Uploader$1 } from '@bigbinary/neeto-media-recorder/core';
|
|
4
5
|
import { isNotNil, min, isNil, identity, isEmpty, pick, equals, not } from 'ramda';
|
|
5
6
|
import platform from 'platform';
|
|
6
|
-
import '@bigbinary/neeto-media-recorder/core';
|
|
7
7
|
import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
|
|
8
8
|
import { create as create$3 } from 'zustand';
|
|
9
|
+
import { useSyncExternalStore } from 'react';
|
|
9
10
|
|
|
10
11
|
function _arrayLikeToArray(arr, len) {
|
|
11
12
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -133,25 +134,6 @@ function _defineProperty(obj, key, value) {
|
|
|
133
134
|
return obj;
|
|
134
135
|
}
|
|
135
136
|
|
|
136
|
-
function _classApplyDescriptorGet(receiver, descriptor) {
|
|
137
|
-
if (descriptor.get) {
|
|
138
|
-
return descriptor.get.call(receiver);
|
|
139
|
-
}
|
|
140
|
-
return descriptor.value;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
|
144
|
-
if (!privateMap.has(receiver)) {
|
|
145
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
146
|
-
}
|
|
147
|
-
return privateMap.get(receiver);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function _classPrivateFieldGet(receiver, privateMap) {
|
|
151
|
-
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
|
|
152
|
-
return _classApplyDescriptorGet(receiver, descriptor);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
137
|
function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
156
138
|
if (descriptor.set) {
|
|
157
139
|
descriptor.set.call(receiver, value);
|
|
@@ -163,12 +145,31 @@ function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
|
163
145
|
}
|
|
164
146
|
}
|
|
165
147
|
|
|
148
|
+
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
|
149
|
+
if (!privateMap.has(receiver)) {
|
|
150
|
+
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
151
|
+
}
|
|
152
|
+
return privateMap.get(receiver);
|
|
153
|
+
}
|
|
154
|
+
|
|
166
155
|
function _classPrivateFieldSet(receiver, privateMap, value) {
|
|
167
156
|
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
|
|
168
157
|
_classApplyDescriptorSet(receiver, descriptor, value);
|
|
169
158
|
return value;
|
|
170
159
|
}
|
|
171
160
|
|
|
161
|
+
function _classApplyDescriptorGet(receiver, descriptor) {
|
|
162
|
+
if (descriptor.get) {
|
|
163
|
+
return descriptor.get.call(receiver);
|
|
164
|
+
}
|
|
165
|
+
return descriptor.value;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function _classPrivateFieldGet(receiver, privateMap) {
|
|
169
|
+
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
|
|
170
|
+
return _classApplyDescriptorGet(receiver, descriptor);
|
|
171
|
+
}
|
|
172
|
+
|
|
172
173
|
function getDefaultExportFromCjs (x) {
|
|
173
174
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
174
175
|
}
|
|
@@ -518,6 +519,59 @@ try {
|
|
|
518
519
|
|
|
519
520
|
var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
|
|
520
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
|
+
|
|
521
575
|
function _setPrototypeOf(o, p) {
|
|
522
576
|
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
523
577
|
o.__proto__ = p;
|
|
@@ -863,12 +917,37 @@ var isMp4Supported = function isMp4Supported() {
|
|
|
863
917
|
return getSupportedMimeType() === MIME_TYPE$1.mp4;
|
|
864
918
|
};
|
|
865
919
|
|
|
866
|
-
var
|
|
867
|
-
return
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
920
|
+
var createPrefixedLogger = function createPrefixedLogger(prefix) {
|
|
921
|
+
return {
|
|
922
|
+
info: function info() {
|
|
923
|
+
var _logger;
|
|
924
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
925
|
+
args[_key] = arguments[_key];
|
|
926
|
+
}
|
|
927
|
+
return (_logger = logger).info.apply(_logger, [prefix].concat(args));
|
|
928
|
+
},
|
|
929
|
+
error: function error() {
|
|
930
|
+
var _logger2;
|
|
931
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
932
|
+
args[_key2] = arguments[_key2];
|
|
933
|
+
}
|
|
934
|
+
return (_logger2 = logger).error.apply(_logger2, [prefix].concat(args));
|
|
935
|
+
},
|
|
936
|
+
warn: function warn() {
|
|
937
|
+
var _logger3;
|
|
938
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
939
|
+
args[_key3] = arguments[_key3];
|
|
940
|
+
}
|
|
941
|
+
return (_logger3 = logger).warn.apply(_logger3, [prefix].concat(args));
|
|
942
|
+
},
|
|
943
|
+
debug: function debug() {
|
|
944
|
+
var _logger4;
|
|
945
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
946
|
+
args[_key4] = arguments[_key4];
|
|
947
|
+
}
|
|
948
|
+
return (_logger4 = logger).debug.apply(_logger4, [prefix].concat(args));
|
|
949
|
+
}
|
|
950
|
+
};
|
|
872
951
|
};
|
|
873
952
|
|
|
874
953
|
/**
|
|
@@ -898,24 +977,31 @@ var _unUploadedChunks = /*#__PURE__*/new WeakMap();
|
|
|
898
977
|
var _partNumber = /*#__PURE__*/new WeakMap();
|
|
899
978
|
var _s3PartUploadPromises = /*#__PURE__*/new WeakMap();
|
|
900
979
|
var _callbacks$1 = /*#__PURE__*/new WeakMap();
|
|
901
|
-
var _store$1 = /*#__PURE__*/new WeakMap();
|
|
902
980
|
var _abortController = /*#__PURE__*/new WeakMap();
|
|
903
981
|
var _pendingS3ChunkUploads = /*#__PURE__*/new WeakMap();
|
|
904
982
|
var _completeUploadPromise = /*#__PURE__*/new WeakMap();
|
|
905
983
|
var _failedUpload = /*#__PURE__*/new WeakMap();
|
|
906
984
|
var _uploadProgress = /*#__PURE__*/new WeakMap();
|
|
985
|
+
var _status = /*#__PURE__*/new WeakMap();
|
|
986
|
+
var _id = /*#__PURE__*/new WeakMap();
|
|
987
|
+
var _logger$1 = /*#__PURE__*/new WeakMap();
|
|
988
|
+
var _status2 = /*#__PURE__*/new WeakMap();
|
|
907
989
|
var _fireCallbacks$1 = /*#__PURE__*/new WeakMap();
|
|
908
990
|
var _uploadChunkToS = /*#__PURE__*/new WeakMap();
|
|
909
991
|
var _getCurrentUnUploadedBlob = /*#__PURE__*/new WeakMap();
|
|
910
|
-
var
|
|
992
|
+
var _isRecordingNotSet = /*#__PURE__*/new WeakMap();
|
|
911
993
|
var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
912
994
|
function MultipartS3Uploader() {
|
|
913
995
|
var _this = this;
|
|
914
996
|
_classCallCheck(this, MultipartS3Uploader);
|
|
915
|
-
_classPrivateFieldInitSpec$1(this,
|
|
916
|
-
get:
|
|
997
|
+
_classPrivateFieldInitSpec$1(this, _isRecordingNotSet, {
|
|
998
|
+
get: _get_isRecordingNotSet,
|
|
917
999
|
set: void 0
|
|
918
1000
|
});
|
|
1001
|
+
_classPrivateFieldInitSpec$1(this, _status2, {
|
|
1002
|
+
get: void 0,
|
|
1003
|
+
set: _set_status
|
|
1004
|
+
});
|
|
919
1005
|
_defineProperty(this, "MIN_UPLOAD_CHUNK_SIZE", 5 * 1024 * 1024);
|
|
920
1006
|
_classPrivateFieldInitSpec$1(this, _recordingId, {
|
|
921
1007
|
writable: true,
|
|
@@ -941,10 +1027,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
941
1027
|
writable: true,
|
|
942
1028
|
value: {}
|
|
943
1029
|
});
|
|
944
|
-
_classPrivateFieldInitSpec$1(this, _store$1, {
|
|
945
|
-
writable: true,
|
|
946
|
-
value: void 0
|
|
947
|
-
});
|
|
948
1030
|
_classPrivateFieldInitSpec$1(this, _abortController, {
|
|
949
1031
|
writable: true,
|
|
950
1032
|
value: void 0
|
|
@@ -965,7 +1047,19 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
965
1047
|
writable: true,
|
|
966
1048
|
value: {}
|
|
967
1049
|
});
|
|
968
|
-
|
|
1050
|
+
_classPrivateFieldInitSpec$1(this, _status, {
|
|
1051
|
+
writable: true,
|
|
1052
|
+
value: ""
|
|
1053
|
+
});
|
|
1054
|
+
_classPrivateFieldInitSpec$1(this, _id, {
|
|
1055
|
+
writable: true,
|
|
1056
|
+
value: v4()
|
|
1057
|
+
});
|
|
1058
|
+
_classPrivateFieldInitSpec$1(this, _logger$1, {
|
|
1059
|
+
writable: true,
|
|
1060
|
+
value: createPrefixedLogger("[".concat(_classPrivateFieldGet(this, _id), "]"))
|
|
1061
|
+
});
|
|
1062
|
+
_defineProperty(this, "setRecording", function (recordingId, uploadId) {
|
|
969
1063
|
_classPrivateFieldSet(_this, _recordingId, recordingId);
|
|
970
1064
|
_classPrivateFieldSet(_this, _uploadId, uploadId);
|
|
971
1065
|
_classPrivateFieldSet(_this, _abortController, new AbortController());
|
|
@@ -974,8 +1068,8 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
974
1068
|
if (data.size > 0) {
|
|
975
1069
|
_classPrivateFieldGet(_this, _unUploadedChunks).push(data);
|
|
976
1070
|
}
|
|
977
|
-
if (_classPrivateFieldGet(_this,
|
|
978
|
-
|
|
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");
|
|
979
1073
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > _this.MIN_UPLOAD_CHUNK_SIZE) {
|
|
980
1074
|
var uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
981
1075
|
_classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
|
|
@@ -988,19 +1082,17 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
988
1082
|
while (1) switch (_context.prev = _context.next) {
|
|
989
1083
|
case 0:
|
|
990
1084
|
_context.prev = 0;
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
});
|
|
994
|
-
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
1085
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.uploading);
|
|
1086
|
+
if (!_classPrivateFieldGet(_this, _isRecordingNotSet)) {
|
|
995
1087
|
_context.next = 5;
|
|
996
1088
|
break;
|
|
997
1089
|
}
|
|
998
|
-
|
|
1090
|
+
_classPrivateFieldGet(_this, _logger$1).error("completeUpload -> not initialized");
|
|
999
1091
|
return _context.abrupt("return");
|
|
1000
1092
|
case 5:
|
|
1001
1093
|
// Upload last chunk; only if last chunk has data
|
|
1002
1094
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > 0) {
|
|
1003
|
-
|
|
1095
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> need to upload last chunk");
|
|
1004
1096
|
uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
1005
1097
|
_classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
|
|
1006
1098
|
}
|
|
@@ -1013,39 +1105,32 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1013
1105
|
* adding the new presignedUrl part upload to s3PartUploadPromises.
|
|
1014
1106
|
* This results in incorrect partNumbers.
|
|
1015
1107
|
*/
|
|
1016
|
-
|
|
1108
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> uploading all pending chunks...", _classPrivateFieldGet(_this, _pendingS3ChunkUploads).length);
|
|
1017
1109
|
_context.next = 9;
|
|
1018
1110
|
return Promise.all(_classPrivateFieldGet(_this, _pendingS3ChunkUploads));
|
|
1019
1111
|
case 9:
|
|
1020
|
-
|
|
1112
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> finishing part uploads...");
|
|
1021
1113
|
_context.next = 12;
|
|
1022
1114
|
return Promise.all(_classPrivateFieldGet(_this, _s3PartUploadPromises));
|
|
1023
1115
|
case 12:
|
|
1024
1116
|
resolvedS3PartUploadPromises = _context.sent;
|
|
1025
1117
|
if (!isNotEmpty(_classPrivateFieldGet(_this, _failedUpload))) {
|
|
1026
|
-
_context.next =
|
|
1118
|
+
_context.next = 18;
|
|
1027
1119
|
break;
|
|
1028
1120
|
}
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
status: UPLOAD_STATUS.error
|
|
1032
|
-
});
|
|
1121
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
|
|
1122
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1033
1123
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1034
|
-
_classPrivateFieldGet(_this, _store$1).setState({
|
|
1035
|
-
status: UPLOAD_STATUS.error
|
|
1036
|
-
});
|
|
1037
1124
|
return _context.abrupt("return");
|
|
1038
|
-
case
|
|
1125
|
+
case 18:
|
|
1039
1126
|
if (!(resolvedS3PartUploadPromises.length === 0)) {
|
|
1040
|
-
_context.next =
|
|
1127
|
+
_context.next = 22;
|
|
1041
1128
|
break;
|
|
1042
1129
|
}
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
status: UPLOAD_STATUS.insufficient_data
|
|
1046
|
-
});
|
|
1130
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> insufficient data");
|
|
1131
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.insufficient_data);
|
|
1047
1132
|
return _context.abrupt("return");
|
|
1048
|
-
case
|
|
1133
|
+
case 22:
|
|
1049
1134
|
parts = resolvedS3PartUploadPromises.filter(isNotCancelledRequest).map(function (resolvedResponse) {
|
|
1050
1135
|
return {
|
|
1051
1136
|
etag: resolvedResponse.headers.etag,
|
|
@@ -1054,7 +1139,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1054
1139
|
}).toSorted(function (a, b) {
|
|
1055
1140
|
return Number(a.partNumber) - Number(b.partNumber);
|
|
1056
1141
|
});
|
|
1057
|
-
|
|
1142
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> uploaded parts: ", parts);
|
|
1058
1143
|
_classPrivateFieldSet(_this, _completeUploadPromise, completeUploadApi.create({
|
|
1059
1144
|
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1060
1145
|
payload: {
|
|
@@ -1066,75 +1151,73 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1066
1151
|
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1067
1152
|
}
|
|
1068
1153
|
}));
|
|
1069
|
-
|
|
1070
|
-
_context.next =
|
|
1154
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> completing upload... ");
|
|
1155
|
+
_context.next = 28;
|
|
1071
1156
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1072
|
-
case
|
|
1073
|
-
|
|
1074
|
-
if (!(
|
|
1075
|
-
_context.next =
|
|
1157
|
+
case 28:
|
|
1158
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> upload completed");
|
|
1159
|
+
if (!(_this.status === UPLOAD_STATUS.aborting)) {
|
|
1160
|
+
_context.next = 32;
|
|
1076
1161
|
break;
|
|
1077
1162
|
}
|
|
1078
|
-
|
|
1163
|
+
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> upload was marked as aborted");
|
|
1079
1164
|
return _context.abrupt("return");
|
|
1080
|
-
case
|
|
1081
|
-
|
|
1082
|
-
status: UPLOAD_STATUS.completed
|
|
1083
|
-
});
|
|
1165
|
+
case 32:
|
|
1166
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.completed);
|
|
1084
1167
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onComplete);
|
|
1085
|
-
_context.next =
|
|
1168
|
+
_context.next = 39;
|
|
1086
1169
|
break;
|
|
1087
|
-
case
|
|
1088
|
-
_context.prev =
|
|
1170
|
+
case 36:
|
|
1171
|
+
_context.prev = 36;
|
|
1089
1172
|
_context.t0 = _context["catch"](0);
|
|
1090
1173
|
// ignore if aborted
|
|
1091
1174
|
if (!axios.isCancel(_context.t0)) {
|
|
1092
|
-
|
|
1093
|
-
status: UPLOAD_STATUS.error
|
|
1094
|
-
});
|
|
1175
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1095
1176
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1096
|
-
|
|
1177
|
+
_classPrivateFieldGet(_this, _logger$1).error(_context.t0);
|
|
1097
1178
|
}
|
|
1098
|
-
case
|
|
1099
|
-
_context.prev =
|
|
1179
|
+
case 39:
|
|
1180
|
+
_context.prev = 39;
|
|
1100
1181
|
_classPrivateFieldSet(_this, _completeUploadPromise, null);
|
|
1101
|
-
return _context.finish(
|
|
1102
|
-
case
|
|
1182
|
+
return _context.finish(39);
|
|
1183
|
+
case 42:
|
|
1103
1184
|
case "end":
|
|
1104
1185
|
return _context.stop();
|
|
1105
1186
|
}
|
|
1106
|
-
}, _callee, null, [[0,
|
|
1187
|
+
}, _callee, null, [[0, 36, 39, 42]]);
|
|
1107
1188
|
})));
|
|
1108
1189
|
_defineProperty(this, "abortUpload", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1109
|
-
var
|
|
1190
|
+
var forceAbort,
|
|
1191
|
+
recordingId,
|
|
1192
|
+
uploadId,
|
|
1193
|
+
_args2 = arguments;
|
|
1110
1194
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1111
1195
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1112
1196
|
case 0:
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1197
|
+
forceAbort = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : false;
|
|
1198
|
+
_context2.prev = 1;
|
|
1199
|
+
if (!(_this.status === UPLOAD_STATUS.aborting && !forceAbort)) {
|
|
1200
|
+
_context2.next = 5;
|
|
1116
1201
|
break;
|
|
1117
1202
|
}
|
|
1118
|
-
|
|
1203
|
+
_classPrivateFieldGet(_this, _logger$1).info("abortUpload -> already aborting");
|
|
1119
1204
|
return _context2.abrupt("return");
|
|
1120
|
-
case
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
1125
|
-
_context2.next = 8;
|
|
1205
|
+
case 5:
|
|
1206
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.aborting);
|
|
1207
|
+
if (!_classPrivateFieldGet(_this, _isRecordingNotSet)) {
|
|
1208
|
+
_context2.next = 9;
|
|
1126
1209
|
break;
|
|
1127
1210
|
}
|
|
1128
|
-
|
|
1211
|
+
_classPrivateFieldGet(_this, _logger$1).info("abortUpload -> not initialized");
|
|
1129
1212
|
return _context2.abrupt("return");
|
|
1130
|
-
case
|
|
1213
|
+
case 9:
|
|
1131
1214
|
recordingId = _classPrivateFieldGet(_this, _recordingId);
|
|
1132
1215
|
uploadId = _classPrivateFieldGet(_this, _uploadId);
|
|
1133
|
-
_context2.next =
|
|
1216
|
+
_context2.next = 13;
|
|
1134
1217
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1135
|
-
case
|
|
1218
|
+
case 13:
|
|
1136
1219
|
_classPrivateFieldGet(_this, _abortController).abort();
|
|
1137
|
-
_context2.next =
|
|
1220
|
+
_context2.next = 16;
|
|
1138
1221
|
return abortUploadApi.create({
|
|
1139
1222
|
recordingId: recordingId,
|
|
1140
1223
|
payload: {
|
|
@@ -1142,26 +1225,25 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1142
1225
|
isMp4: isMp4Supported()
|
|
1143
1226
|
}
|
|
1144
1227
|
});
|
|
1145
|
-
case
|
|
1146
|
-
|
|
1228
|
+
case 16:
|
|
1229
|
+
_classPrivateFieldGet(_this, _logger$1).info("abortUpload -> abort successful");
|
|
1230
|
+
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onAbort);
|
|
1147
1231
|
_classPrivateFieldSet(_this, _unUploadedChunks, []);
|
|
1148
1232
|
_classPrivateFieldSet(_this, _partNumber, 1);
|
|
1149
1233
|
_classPrivateFieldSet(_this, _s3PartUploadPromises, []);
|
|
1150
|
-
|
|
1151
|
-
status: ""
|
|
1152
|
-
});
|
|
1234
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1153
1235
|
_classPrivateFieldSet(_this, _abortController, null);
|
|
1154
|
-
_context2.next =
|
|
1236
|
+
_context2.next = 28;
|
|
1155
1237
|
break;
|
|
1156
|
-
case
|
|
1157
|
-
_context2.prev =
|
|
1158
|
-
_context2.t0 = _context2["catch"](
|
|
1159
|
-
|
|
1160
|
-
case
|
|
1238
|
+
case 25:
|
|
1239
|
+
_context2.prev = 25;
|
|
1240
|
+
_context2.t0 = _context2["catch"](1);
|
|
1241
|
+
_classPrivateFieldGet(_this, _logger$1).error(_context2.t0);
|
|
1242
|
+
case 28:
|
|
1161
1243
|
case "end":
|
|
1162
1244
|
return _context2.stop();
|
|
1163
1245
|
}
|
|
1164
|
-
}, _callee2, null, [[
|
|
1246
|
+
}, _callee2, null, [[1, 25]]);
|
|
1165
1247
|
})));
|
|
1166
1248
|
_defineProperty(this, "resetState", function () {
|
|
1167
1249
|
_classPrivateFieldSet(_this, _recordingId, "");
|
|
@@ -1173,9 +1255,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1173
1255
|
_classPrivateFieldSet(_this, _callbacks$1, {});
|
|
1174
1256
|
_classPrivateFieldSet(_this, _failedUpload, []);
|
|
1175
1257
|
_classPrivateFieldSet(_this, _uploadProgress, {});
|
|
1176
|
-
|
|
1177
|
-
status: ""
|
|
1178
|
-
});
|
|
1258
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1179
1259
|
});
|
|
1180
1260
|
_defineProperty(this, "addCallback", function (event, callback) {
|
|
1181
1261
|
var _classPrivateFieldGet2;
|
|
@@ -1207,7 +1287,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1207
1287
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1208
1288
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1209
1289
|
case 0:
|
|
1210
|
-
|
|
1290
|
+
_classPrivateFieldGet(_this, _logger$1).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
|
|
1211
1291
|
partNumber = _classPrivateFieldGet(_this, _partNumber);
|
|
1212
1292
|
mimeType = getSupportedMimeType();
|
|
1213
1293
|
_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber++, _this$partNumber));
|
|
@@ -1233,7 +1313,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1233
1313
|
case 8:
|
|
1234
1314
|
_yield$partPresignedU = _context3.sent;
|
|
1235
1315
|
presignedUrl = _yield$partPresignedU.presignedUrl;
|
|
1236
|
-
|
|
1316
|
+
_classPrivateFieldGet(_this, _logger$1).info("Presigned url created for partNumber:", partNumber);
|
|
1237
1317
|
s3PartUploadPromise = s3Api.presignedUpload({
|
|
1238
1318
|
presignedUrl: presignedUrl,
|
|
1239
1319
|
blob: new Blob(chunks, {
|
|
@@ -1247,9 +1327,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1247
1327
|
uploaded: e.loaded,
|
|
1248
1328
|
total: e.total
|
|
1249
1329
|
};
|
|
1250
|
-
if (
|
|
1330
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1251
1331
|
var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
|
|
1252
|
-
|
|
1332
|
+
_classPrivateFieldGet(_this, _logger$1).info("Upload Progress: ".concat(percentCompleted, "%"));
|
|
1253
1333
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
|
|
1254
1334
|
}
|
|
1255
1335
|
}
|
|
@@ -1263,11 +1343,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1263
1343
|
_context3.t0 = _context3["catch"](5);
|
|
1264
1344
|
// ignore if aborted
|
|
1265
1345
|
if (!axios.isCancel(_context3.t0)) {
|
|
1266
|
-
|
|
1267
|
-
if (
|
|
1268
|
-
|
|
1269
|
-
status: UPLOAD_STATUS.error
|
|
1270
|
-
});
|
|
1346
|
+
_classPrivateFieldGet(_this, _logger$1).error("Failed to upload partNumber:", partNumber);
|
|
1347
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1348
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1271
1349
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1272
1350
|
} else {
|
|
1273
1351
|
_classPrivateFieldGet(_this, _failedUpload).push(partNumber);
|
|
@@ -1293,14 +1371,12 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1293
1371
|
});
|
|
1294
1372
|
}
|
|
1295
1373
|
});
|
|
1296
|
-
|
|
1374
|
+
_classPrivateFieldGet(this, _logger$1).info("Uploader initialized");
|
|
1297
1375
|
}
|
|
1298
|
-
|
|
1299
|
-
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
1300
1376
|
_createClass(MultipartS3Uploader, [{
|
|
1301
|
-
key: "
|
|
1377
|
+
key: "status",
|
|
1302
1378
|
get: function get() {
|
|
1303
|
-
return _classPrivateFieldGet(this,
|
|
1379
|
+
return _classPrivateFieldGet(this, _status);
|
|
1304
1380
|
}
|
|
1305
1381
|
}, {
|
|
1306
1382
|
key: "hasSufficientData",
|
|
@@ -1310,10 +1386,24 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1310
1386
|
}]);
|
|
1311
1387
|
return MultipartS3Uploader;
|
|
1312
1388
|
}();
|
|
1313
|
-
function
|
|
1389
|
+
function _set_status(status) {
|
|
1390
|
+
_classPrivateFieldSet(this, _status, status);
|
|
1391
|
+
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
1392
|
+
}
|
|
1393
|
+
function _get_isRecordingNotSet() {
|
|
1314
1394
|
return isEmpty(_classPrivateFieldGet(this, _uploadId) + _classPrivateFieldGet(this, _recordingId));
|
|
1315
1395
|
}
|
|
1316
1396
|
var multipartS3Uploader = new MultipartS3Uploader();
|
|
1397
|
+
var getMultipartS3Uploader = function getMultipartS3Uploader() {
|
|
1398
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1399
|
+
_ref3$initialize = _ref3.initialize,
|
|
1400
|
+
initialize = _ref3$initialize === void 0 ? false : _ref3$initialize;
|
|
1401
|
+
if (!multipartS3Uploader || initialize) {
|
|
1402
|
+
multipartS3Uploader = new MultipartS3Uploader();
|
|
1403
|
+
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
1404
|
+
}
|
|
1405
|
+
return multipartS3Uploader;
|
|
1406
|
+
};
|
|
1317
1407
|
|
|
1318
1408
|
function _arrayWithHoles(arr) {
|
|
1319
1409
|
if (Array.isArray(arr)) return arr;
|
|
@@ -1387,6 +1477,7 @@ var _video = /*#__PURE__*/new WeakMap();
|
|
|
1387
1477
|
var _mediaRecorder = /*#__PURE__*/new WeakMap();
|
|
1388
1478
|
var _mediaStream = /*#__PURE__*/new WeakMap();
|
|
1389
1479
|
var _store = /*#__PURE__*/new WeakMap();
|
|
1480
|
+
var _logger = /*#__PURE__*/new WeakMap();
|
|
1390
1481
|
var _mediaChunks = /*#__PURE__*/new WeakMap();
|
|
1391
1482
|
var _callbacks = /*#__PURE__*/new WeakMap();
|
|
1392
1483
|
var _lastTimerUpdatedAt = /*#__PURE__*/new WeakMap();
|
|
@@ -1434,6 +1525,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1434
1525
|
writable: true,
|
|
1435
1526
|
value: void 0
|
|
1436
1527
|
});
|
|
1528
|
+
_classPrivateFieldInitSpec(this, _logger, {
|
|
1529
|
+
writable: true,
|
|
1530
|
+
value: createPrefixedLogger("[ScreenRecorder]")
|
|
1531
|
+
});
|
|
1437
1532
|
_classPrivateFieldInitSpec(this, _mediaChunks, {
|
|
1438
1533
|
writable: true,
|
|
1439
1534
|
value: []
|
|
@@ -1522,25 +1617,27 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1522
1617
|
case 0:
|
|
1523
1618
|
_classPrivateFieldGet(_this, _store).setState(pick(["error"], initialState));
|
|
1524
1619
|
if (_classPrivateFieldGet(_this, _mediaStream)) {
|
|
1525
|
-
_context.next =
|
|
1620
|
+
_context.next = 5;
|
|
1526
1621
|
break;
|
|
1527
1622
|
}
|
|
1528
|
-
|
|
1623
|
+
_classPrivateFieldGet(_this, _logger).info("acquiring media stream");
|
|
1624
|
+
_context.next = 5;
|
|
1529
1625
|
return _classPrivateFieldGet(_this, _acquireMediaStream).call(_this);
|
|
1530
|
-
case
|
|
1626
|
+
case 5:
|
|
1531
1627
|
if (!(_classPrivateFieldGet(_this, _mediaStream) && isStreamEnded(_classPrivateFieldGet(_this, _mediaStream)))) {
|
|
1532
|
-
_context.next =
|
|
1628
|
+
_context.next = 9;
|
|
1533
1629
|
break;
|
|
1534
1630
|
}
|
|
1535
|
-
|
|
1631
|
+
_classPrivateFieldGet(_this, _logger).info("media stream ended, acquiring media stream again");
|
|
1632
|
+
_context.next = 9;
|
|
1536
1633
|
return _classPrivateFieldGet(_this, _acquireMediaStream).call(_this);
|
|
1537
|
-
case
|
|
1634
|
+
case 9:
|
|
1538
1635
|
if (!(!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream)))) {
|
|
1539
|
-
_context.next =
|
|
1636
|
+
_context.next = 11;
|
|
1540
1637
|
break;
|
|
1541
1638
|
}
|
|
1542
1639
|
return _context.abrupt("return");
|
|
1543
|
-
case
|
|
1640
|
+
case 11:
|
|
1544
1641
|
options = getMediaRecorderOptions();
|
|
1545
1642
|
_classPrivateFieldSet(_this, _mediaChunks, []);
|
|
1546
1643
|
_classPrivateFieldSet(_this, _mediaRecorder, new MediaRecorder(_classPrivateFieldGet(_this, _mediaStream), options));
|
|
@@ -1554,7 +1651,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1554
1651
|
});
|
|
1555
1652
|
};
|
|
1556
1653
|
_classPrivateFieldGet(_this, _countdownAndStartRecording).call(_this);
|
|
1557
|
-
case
|
|
1654
|
+
case 19:
|
|
1558
1655
|
case "end":
|
|
1559
1656
|
return _context.stop();
|
|
1560
1657
|
}
|
|
@@ -1793,7 +1890,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1793
1890
|
error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
|
|
1794
1891
|
status: SCREEN_RECORDER_STATUS.idle
|
|
1795
1892
|
});
|
|
1796
|
-
} else if (!
|
|
1893
|
+
} else if (!_classPrivateFieldGet(_this, _mediaStream) || isStreamEnded(_classPrivateFieldGet(_this, _mediaStream))) {
|
|
1797
1894
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1798
1895
|
error: SCREEN_RECORDER_ERROR[_context2.t1.name],
|
|
1799
1896
|
status: SCREEN_RECORDER_STATUS.idle
|
|
@@ -1831,7 +1928,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1831
1928
|
writable: true,
|
|
1832
1929
|
value: function value(_ref2) {
|
|
1833
1930
|
var data = _ref2.data;
|
|
1834
|
-
|
|
1931
|
+
_classPrivateFieldGet(_this, _logger).info("received data in onRecordingActive");
|
|
1835
1932
|
if (data.size <= 0) return;
|
|
1836
1933
|
_classPrivateFieldGet(_this, _mediaChunks).push(data);
|
|
1837
1934
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onDataAvailable, [data]);
|
|
@@ -1840,7 +1937,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1840
1937
|
_classPrivateFieldInitSpec(this, _onRecordingStop, {
|
|
1841
1938
|
writable: true,
|
|
1842
1939
|
value: function value() {
|
|
1843
|
-
|
|
1940
|
+
_classPrivateFieldGet(_this, _logger).info("stopping recording in onRecordingStop");
|
|
1844
1941
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1845
1942
|
status: SCREEN_RECORDER_STATUS.stopped
|
|
1846
1943
|
});
|
|
@@ -1858,6 +1955,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1858
1955
|
_classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
|
|
1859
1956
|
writable: true,
|
|
1860
1957
|
value: function value() {
|
|
1958
|
+
if (_classPrivateFieldGet(_this, _countdownTimerId)) return;
|
|
1861
1959
|
_classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
|
|
1862
1960
|
_classPrivateFieldGet(_this, _store).setState(function (_ref3) {
|
|
1863
1961
|
var countdownTimeLeft = _ref3.countdownTimeLeft;
|
|
@@ -1873,19 +1971,40 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1873
1971
|
status: SCREEN_RECORDER_STATUS.recording
|
|
1874
1972
|
});
|
|
1875
1973
|
clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
|
|
1974
|
+
_classPrivateFieldSet(_this, _countdownTimerId, null);
|
|
1876
1975
|
_classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
|
|
1877
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
|
+
}
|
|
1878
1994
|
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
1995
|
+
_classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
|
|
1879
1996
|
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
1880
1997
|
} catch (error) {
|
|
1881
|
-
|
|
1998
|
+
_classPrivateFieldGet(_this, _logger).info("Failed to start mediaRecorder", error);
|
|
1882
1999
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1883
2000
|
status: SCREEN_RECORDER_STATUS.idle,
|
|
1884
|
-
error: SCREEN_RECORDER_ERROR
|
|
2001
|
+
error: SCREEN_RECORDER_ERROR.FailedToStart
|
|
1885
2002
|
});
|
|
1886
|
-
|
|
2003
|
+
|
|
1887
2004
|
// To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
|
|
1888
|
-
_classPrivateFieldGet(_this, _mediaRecorder)
|
|
2005
|
+
if (_classPrivateFieldGet(_this, _mediaRecorder)) {
|
|
2006
|
+
_classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
|
|
2007
|
+
}
|
|
1889
2008
|
if (_classPrivateFieldGet(_this, _mediaStream)) {
|
|
1890
2009
|
_classPrivateFieldGet(_this, _mediaStream).getTracks().forEach(function (track) {
|
|
1891
2010
|
return track.stop();
|
|
@@ -1991,5 +2110,34 @@ var screenRecorder = new ScreenRecorder(true, {
|
|
|
1991
2110
|
displaySurface: DISPLAY_SURFACE.monitor
|
|
1992
2111
|
});
|
|
1993
2112
|
|
|
1994
|
-
|
|
2113
|
+
var listeners = new Set();
|
|
2114
|
+
var subscribe = function subscribe(listener) {
|
|
2115
|
+
listeners.add(listener);
|
|
2116
|
+
return function () {
|
|
2117
|
+
return listeners["delete"](listener);
|
|
2118
|
+
};
|
|
2119
|
+
};
|
|
2120
|
+
var triggerStatusChange = function triggerStatusChange() {
|
|
2121
|
+
listeners.forEach(function (listener) {
|
|
2122
|
+
return listener();
|
|
2123
|
+
});
|
|
2124
|
+
};
|
|
2125
|
+
var getSnapshot = function getSnapshot() {
|
|
2126
|
+
return getMultipartS3Uploader$1().status;
|
|
2127
|
+
};
|
|
2128
|
+
var useMultipartS3UploadStatus = function useMultipartS3UploadStatus() {
|
|
2129
|
+
var status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
2130
|
+
return {
|
|
2131
|
+
status: status,
|
|
2132
|
+
isStatus: function isStatus() {
|
|
2133
|
+
for (var _len = arguments.length, statuses = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2134
|
+
statuses[_key] = arguments[_key];
|
|
2135
|
+
}
|
|
2136
|
+
return statuses.includes(status);
|
|
2137
|
+
}
|
|
2138
|
+
};
|
|
2139
|
+
};
|
|
2140
|
+
useMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;
|
|
2141
|
+
|
|
2142
|
+
export { getMultipartS3Uploader, screenRecorder, useMultipartS3UploadStatus };
|
|
1995
2143
|
//# sourceMappingURL=core.js.map
|