@bigbinary/neeto-media-recorder 2.5.7 → 2.5.8-beta
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 +38 -10
- package/constants.js +2 -3
- package/constants.js.map +1 -1
- package/core.js +199 -140
- package/core.js.map +1 -1
- package/index.js +151 -156
- package/index.js.map +1 -1
- package/package.json +7 -7
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;
|
|
@@ -89,11 +90,11 @@ function _toPrimitive(input, hint) {
|
|
|
89
90
|
if (_typeof$1(input) !== "object" || input === null) return input;
|
|
90
91
|
var prim = input[Symbol.toPrimitive];
|
|
91
92
|
if (prim !== undefined) {
|
|
92
|
-
var res = prim.call(input, hint
|
|
93
|
+
var res = prim.call(input, hint);
|
|
93
94
|
if (_typeof$1(res) !== "object") return res;
|
|
94
95
|
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
95
96
|
}
|
|
96
|
-
return (
|
|
97
|
+
return (String )(input);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
function _toPropertyKey(arg) {
|
|
@@ -112,7 +113,6 @@ function _defineProperties(target, props) {
|
|
|
112
113
|
}
|
|
113
114
|
function _createClass(Constructor, protoProps, staticProps) {
|
|
114
115
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
115
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
116
116
|
Object.defineProperty(Constructor, "prototype", {
|
|
117
117
|
writable: false
|
|
118
118
|
});
|
|
@@ -134,25 +134,6 @@ function _defineProperty(obj, key, value) {
|
|
|
134
134
|
return obj;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
function _classApplyDescriptorGet(receiver, descriptor) {
|
|
138
|
-
if (descriptor.get) {
|
|
139
|
-
return descriptor.get.call(receiver);
|
|
140
|
-
}
|
|
141
|
-
return descriptor.value;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
|
145
|
-
if (!privateMap.has(receiver)) {
|
|
146
|
-
throw new TypeError("attempted to " + action + " private field on non-instance");
|
|
147
|
-
}
|
|
148
|
-
return privateMap.get(receiver);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
function _classPrivateFieldGet(receiver, privateMap) {
|
|
152
|
-
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
|
|
153
|
-
return _classApplyDescriptorGet(receiver, descriptor);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
137
|
function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
157
138
|
if (descriptor.set) {
|
|
158
139
|
descriptor.set.call(receiver, value);
|
|
@@ -164,12 +145,31 @@ function _classApplyDescriptorSet(receiver, descriptor, value) {
|
|
|
164
145
|
}
|
|
165
146
|
}
|
|
166
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
|
+
|
|
167
155
|
function _classPrivateFieldSet(receiver, privateMap, value) {
|
|
168
156
|
var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
|
|
169
157
|
_classApplyDescriptorSet(receiver, descriptor, value);
|
|
170
158
|
return value;
|
|
171
159
|
}
|
|
172
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
|
+
|
|
173
173
|
function getDefaultExportFromCjs (x) {
|
|
174
174
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
175
175
|
}
|
|
@@ -178,8 +178,6 @@ var regeneratorRuntime$1 = {exports: {}};
|
|
|
178
178
|
|
|
179
179
|
var _typeof = {exports: {}};
|
|
180
180
|
|
|
181
|
-
_typeof.exports;
|
|
182
|
-
|
|
183
181
|
(function (module) {
|
|
184
182
|
function _typeof(obj) {
|
|
185
183
|
"@babel/helpers - typeof";
|
|
@@ -195,8 +193,6 @@ _typeof.exports;
|
|
|
195
193
|
|
|
196
194
|
var _typeofExports = _typeof.exports;
|
|
197
195
|
|
|
198
|
-
regeneratorRuntime$1.exports;
|
|
199
|
-
|
|
200
196
|
(function (module) {
|
|
201
197
|
var _typeof = _typeofExports["default"];
|
|
202
198
|
function _regeneratorRuntime() {
|
|
@@ -868,14 +864,6 @@ var isMp4Supported = function isMp4Supported() {
|
|
|
868
864
|
return getSupportedMimeType() === MIME_TYPE$1.mp4;
|
|
869
865
|
};
|
|
870
866
|
|
|
871
|
-
var prepareStore$1 = function prepareStore() {
|
|
872
|
-
return create$3(withImmutableActions(function () {
|
|
873
|
-
return {
|
|
874
|
-
status: ""
|
|
875
|
-
};
|
|
876
|
-
}));
|
|
877
|
-
};
|
|
878
|
-
|
|
879
867
|
/**
|
|
880
868
|
* Due to the custom axios interceptor for s3Api,
|
|
881
869
|
* it'll return false for cancelled requests instead of a cancelled error object.
|
|
@@ -897,18 +885,53 @@ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
897
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; }
|
|
898
886
|
function _classPrivateFieldInitSpec$1(obj, privateMap, value) { _checkPrivateRedeclaration$1(obj, privateMap); privateMap.set(obj, value); }
|
|
899
887
|
function _checkPrivateRedeclaration$1(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
888
|
+
var createPrefixedLogger = function createPrefixedLogger(prefix) {
|
|
889
|
+
return {
|
|
890
|
+
info: function info() {
|
|
891
|
+
var _logger;
|
|
892
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
893
|
+
args[_key] = arguments[_key];
|
|
894
|
+
}
|
|
895
|
+
return (_logger = logger).info.apply(_logger, [prefix].concat(args));
|
|
896
|
+
},
|
|
897
|
+
error: function error() {
|
|
898
|
+
var _logger2;
|
|
899
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
900
|
+
args[_key2] = arguments[_key2];
|
|
901
|
+
}
|
|
902
|
+
return (_logger2 = logger).error.apply(_logger2, [prefix].concat(args));
|
|
903
|
+
},
|
|
904
|
+
warn: function warn() {
|
|
905
|
+
var _logger3;
|
|
906
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
907
|
+
args[_key3] = arguments[_key3];
|
|
908
|
+
}
|
|
909
|
+
return (_logger3 = logger).warn.apply(_logger3, [prefix].concat(args));
|
|
910
|
+
},
|
|
911
|
+
debug: function debug() {
|
|
912
|
+
var _logger4;
|
|
913
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
914
|
+
args[_key4] = arguments[_key4];
|
|
915
|
+
}
|
|
916
|
+
return (_logger4 = logger).debug.apply(_logger4, [prefix].concat(args));
|
|
917
|
+
}
|
|
918
|
+
};
|
|
919
|
+
};
|
|
900
920
|
var _recordingId = /*#__PURE__*/new WeakMap();
|
|
901
921
|
var _uploadId = /*#__PURE__*/new WeakMap();
|
|
902
922
|
var _unUploadedChunks = /*#__PURE__*/new WeakMap();
|
|
903
923
|
var _partNumber = /*#__PURE__*/new WeakMap();
|
|
904
924
|
var _s3PartUploadPromises = /*#__PURE__*/new WeakMap();
|
|
905
925
|
var _callbacks$1 = /*#__PURE__*/new WeakMap();
|
|
906
|
-
var _store$1 = /*#__PURE__*/new WeakMap();
|
|
907
926
|
var _abortController = /*#__PURE__*/new WeakMap();
|
|
908
927
|
var _pendingS3ChunkUploads = /*#__PURE__*/new WeakMap();
|
|
909
928
|
var _completeUploadPromise = /*#__PURE__*/new WeakMap();
|
|
910
929
|
var _failedUpload = /*#__PURE__*/new WeakMap();
|
|
911
930
|
var _uploadProgress = /*#__PURE__*/new WeakMap();
|
|
931
|
+
var _status = /*#__PURE__*/new WeakMap();
|
|
932
|
+
var _id = /*#__PURE__*/new WeakMap();
|
|
933
|
+
var _logger5 = /*#__PURE__*/new WeakMap();
|
|
934
|
+
var _status2 = /*#__PURE__*/new WeakMap();
|
|
912
935
|
var _fireCallbacks$1 = /*#__PURE__*/new WeakMap();
|
|
913
936
|
var _uploadChunkToS = /*#__PURE__*/new WeakMap();
|
|
914
937
|
var _getCurrentUnUploadedBlob = /*#__PURE__*/new WeakMap();
|
|
@@ -921,6 +944,10 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
921
944
|
get: _get_isNotInitialized,
|
|
922
945
|
set: void 0
|
|
923
946
|
});
|
|
947
|
+
_classPrivateFieldInitSpec$1(this, _status2, {
|
|
948
|
+
get: void 0,
|
|
949
|
+
set: _set_status
|
|
950
|
+
});
|
|
924
951
|
_defineProperty(this, "MIN_UPLOAD_CHUNK_SIZE", 5 * 1024 * 1024);
|
|
925
952
|
_classPrivateFieldInitSpec$1(this, _recordingId, {
|
|
926
953
|
writable: true,
|
|
@@ -946,10 +973,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
946
973
|
writable: true,
|
|
947
974
|
value: {}
|
|
948
975
|
});
|
|
949
|
-
_classPrivateFieldInitSpec$1(this, _store$1, {
|
|
950
|
-
writable: true,
|
|
951
|
-
value: void 0
|
|
952
|
-
});
|
|
953
976
|
_classPrivateFieldInitSpec$1(this, _abortController, {
|
|
954
977
|
writable: true,
|
|
955
978
|
value: void 0
|
|
@@ -970,6 +993,18 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
970
993
|
writable: true,
|
|
971
994
|
value: {}
|
|
972
995
|
});
|
|
996
|
+
_classPrivateFieldInitSpec$1(this, _status, {
|
|
997
|
+
writable: true,
|
|
998
|
+
value: ""
|
|
999
|
+
});
|
|
1000
|
+
_classPrivateFieldInitSpec$1(this, _id, {
|
|
1001
|
+
writable: true,
|
|
1002
|
+
value: crypto.randomUUID()
|
|
1003
|
+
});
|
|
1004
|
+
_classPrivateFieldInitSpec$1(this, _logger5, {
|
|
1005
|
+
writable: true,
|
|
1006
|
+
value: createPrefixedLogger("[".concat(_classPrivateFieldGet(this, _id), "]"))
|
|
1007
|
+
});
|
|
973
1008
|
_defineProperty(this, "initialize", function (recordingId, uploadId) {
|
|
974
1009
|
_classPrivateFieldSet(_this, _recordingId, recordingId);
|
|
975
1010
|
_classPrivateFieldSet(_this, _uploadId, uploadId);
|
|
@@ -980,7 +1015,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
980
1015
|
_classPrivateFieldGet(_this, _unUploadedChunks).push(data);
|
|
981
1016
|
}
|
|
982
1017
|
if (_classPrivateFieldGet(_this, _isNotInitialized)) return;
|
|
983
|
-
|
|
1018
|
+
_classPrivateFieldGet(_this, _logger5).info("Current unuploaded data size is ", _classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size / 1024 / 1024, "MB");
|
|
984
1019
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > _this.MIN_UPLOAD_CHUNK_SIZE) {
|
|
985
1020
|
var uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
986
1021
|
_classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
|
|
@@ -993,19 +1028,17 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
993
1028
|
while (1) switch (_context.prev = _context.next) {
|
|
994
1029
|
case 0:
|
|
995
1030
|
_context.prev = 0;
|
|
996
|
-
|
|
997
|
-
status: UPLOAD_STATUS.uploading
|
|
998
|
-
});
|
|
1031
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.uploading);
|
|
999
1032
|
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
1000
1033
|
_context.next = 5;
|
|
1001
1034
|
break;
|
|
1002
1035
|
}
|
|
1003
|
-
|
|
1036
|
+
_classPrivateFieldGet(_this, _logger5).error("completeUpload -> not initialized");
|
|
1004
1037
|
return _context.abrupt("return");
|
|
1005
1038
|
case 5:
|
|
1006
1039
|
// Upload last chunk; only if last chunk has data
|
|
1007
1040
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > 0) {
|
|
1008
|
-
|
|
1041
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> need to upload last chunk");
|
|
1009
1042
|
uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
1010
1043
|
_classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
|
|
1011
1044
|
}
|
|
@@ -1018,39 +1051,32 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1018
1051
|
* adding the new presignedUrl part upload to s3PartUploadPromises.
|
|
1019
1052
|
* This results in incorrect partNumbers.
|
|
1020
1053
|
*/
|
|
1021
|
-
|
|
1054
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> uploading all pending chunks...", _classPrivateFieldGet(_this, _pendingS3ChunkUploads).length);
|
|
1022
1055
|
_context.next = 9;
|
|
1023
1056
|
return Promise.all(_classPrivateFieldGet(_this, _pendingS3ChunkUploads));
|
|
1024
1057
|
case 9:
|
|
1025
|
-
|
|
1058
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> finishing part uploads...");
|
|
1026
1059
|
_context.next = 12;
|
|
1027
1060
|
return Promise.all(_classPrivateFieldGet(_this, _s3PartUploadPromises));
|
|
1028
1061
|
case 12:
|
|
1029
1062
|
resolvedS3PartUploadPromises = _context.sent;
|
|
1030
1063
|
if (!isNotEmpty(_classPrivateFieldGet(_this, _failedUpload))) {
|
|
1031
|
-
_context.next =
|
|
1064
|
+
_context.next = 18;
|
|
1032
1065
|
break;
|
|
1033
1066
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
status: UPLOAD_STATUS.error
|
|
1037
|
-
});
|
|
1067
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
|
|
1068
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1038
1069
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1039
|
-
_classPrivateFieldGet(_this, _store$1).setState({
|
|
1040
|
-
status: UPLOAD_STATUS.error
|
|
1041
|
-
});
|
|
1042
1070
|
return _context.abrupt("return");
|
|
1043
|
-
case
|
|
1071
|
+
case 18:
|
|
1044
1072
|
if (!(resolvedS3PartUploadPromises.length === 0)) {
|
|
1045
|
-
_context.next =
|
|
1073
|
+
_context.next = 22;
|
|
1046
1074
|
break;
|
|
1047
1075
|
}
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
status: UPLOAD_STATUS.insufficient_data
|
|
1051
|
-
});
|
|
1076
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> insufficient data");
|
|
1077
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.insufficient_data);
|
|
1052
1078
|
return _context.abrupt("return");
|
|
1053
|
-
case
|
|
1079
|
+
case 22:
|
|
1054
1080
|
parts = resolvedS3PartUploadPromises.filter(isNotCancelledRequest).map(function (resolvedResponse) {
|
|
1055
1081
|
return {
|
|
1056
1082
|
etag: resolvedResponse.headers.etag,
|
|
@@ -1059,7 +1085,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1059
1085
|
}).toSorted(function (a, b) {
|
|
1060
1086
|
return Number(a.partNumber) - Number(b.partNumber);
|
|
1061
1087
|
});
|
|
1062
|
-
|
|
1088
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> uploaded parts: ", parts);
|
|
1063
1089
|
_classPrivateFieldSet(_this, _completeUploadPromise, completeUploadApi.create({
|
|
1064
1090
|
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1065
1091
|
payload: {
|
|
@@ -1071,75 +1097,73 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1071
1097
|
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1072
1098
|
}
|
|
1073
1099
|
}));
|
|
1074
|
-
|
|
1075
|
-
_context.next =
|
|
1100
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> completing upload... ");
|
|
1101
|
+
_context.next = 28;
|
|
1076
1102
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1077
|
-
case
|
|
1078
|
-
|
|
1079
|
-
if (!(
|
|
1080
|
-
_context.next =
|
|
1103
|
+
case 28:
|
|
1104
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> upload completed");
|
|
1105
|
+
if (!(_this.status === UPLOAD_STATUS.aborting)) {
|
|
1106
|
+
_context.next = 32;
|
|
1081
1107
|
break;
|
|
1082
1108
|
}
|
|
1083
|
-
|
|
1109
|
+
_classPrivateFieldGet(_this, _logger5).info("completeUpload -> upload was marked as aborted");
|
|
1084
1110
|
return _context.abrupt("return");
|
|
1085
|
-
case
|
|
1086
|
-
|
|
1087
|
-
status: UPLOAD_STATUS.completed
|
|
1088
|
-
});
|
|
1111
|
+
case 32:
|
|
1112
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.completed);
|
|
1089
1113
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onComplete);
|
|
1090
|
-
_context.next =
|
|
1114
|
+
_context.next = 39;
|
|
1091
1115
|
break;
|
|
1092
|
-
case
|
|
1093
|
-
_context.prev =
|
|
1116
|
+
case 36:
|
|
1117
|
+
_context.prev = 36;
|
|
1094
1118
|
_context.t0 = _context["catch"](0);
|
|
1095
1119
|
// ignore if aborted
|
|
1096
1120
|
if (!axios.isCancel(_context.t0)) {
|
|
1097
|
-
|
|
1098
|
-
status: UPLOAD_STATUS.error
|
|
1099
|
-
});
|
|
1121
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1100
1122
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1101
|
-
|
|
1123
|
+
_classPrivateFieldGet(_this, _logger5).error(_context.t0);
|
|
1102
1124
|
}
|
|
1103
|
-
case
|
|
1104
|
-
_context.prev =
|
|
1125
|
+
case 39:
|
|
1126
|
+
_context.prev = 39;
|
|
1105
1127
|
_classPrivateFieldSet(_this, _completeUploadPromise, null);
|
|
1106
|
-
return _context.finish(
|
|
1107
|
-
case
|
|
1128
|
+
return _context.finish(39);
|
|
1129
|
+
case 42:
|
|
1108
1130
|
case "end":
|
|
1109
1131
|
return _context.stop();
|
|
1110
1132
|
}
|
|
1111
|
-
}, _callee, null, [[0,
|
|
1133
|
+
}, _callee, null, [[0, 36, 39, 42]]);
|
|
1112
1134
|
})));
|
|
1113
1135
|
_defineProperty(this, "abortUpload", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1114
|
-
var
|
|
1136
|
+
var forceAbort,
|
|
1137
|
+
recordingId,
|
|
1138
|
+
uploadId,
|
|
1139
|
+
_args2 = arguments;
|
|
1115
1140
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1116
1141
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1117
1142
|
case 0:
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1143
|
+
forceAbort = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : false;
|
|
1144
|
+
_context2.prev = 1;
|
|
1145
|
+
if (!(_this.status === UPLOAD_STATUS.aborting && !forceAbort)) {
|
|
1146
|
+
_context2.next = 5;
|
|
1121
1147
|
break;
|
|
1122
1148
|
}
|
|
1123
|
-
|
|
1149
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> already aborting");
|
|
1124
1150
|
return _context2.abrupt("return");
|
|
1125
|
-
case
|
|
1126
|
-
|
|
1127
|
-
status: UPLOAD_STATUS.aborting
|
|
1128
|
-
});
|
|
1151
|
+
case 5:
|
|
1152
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.aborting);
|
|
1129
1153
|
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
1130
|
-
_context2.next =
|
|
1154
|
+
_context2.next = 9;
|
|
1131
1155
|
break;
|
|
1132
1156
|
}
|
|
1133
|
-
|
|
1157
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> not initialized");
|
|
1134
1158
|
return _context2.abrupt("return");
|
|
1135
|
-
case
|
|
1159
|
+
case 9:
|
|
1136
1160
|
recordingId = _classPrivateFieldGet(_this, _recordingId);
|
|
1137
1161
|
uploadId = _classPrivateFieldGet(_this, _uploadId);
|
|
1138
|
-
_context2.next =
|
|
1162
|
+
_context2.next = 13;
|
|
1139
1163
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1140
|
-
case
|
|
1164
|
+
case 13:
|
|
1141
1165
|
_classPrivateFieldGet(_this, _abortController).abort();
|
|
1142
|
-
_context2.next =
|
|
1166
|
+
_context2.next = 16;
|
|
1143
1167
|
return abortUploadApi.create({
|
|
1144
1168
|
recordingId: recordingId,
|
|
1145
1169
|
payload: {
|
|
@@ -1147,26 +1171,25 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1147
1171
|
isMp4: isMp4Supported()
|
|
1148
1172
|
}
|
|
1149
1173
|
});
|
|
1150
|
-
case
|
|
1151
|
-
|
|
1174
|
+
case 16:
|
|
1175
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> abort successful");
|
|
1176
|
+
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onAbort);
|
|
1152
1177
|
_classPrivateFieldSet(_this, _unUploadedChunks, []);
|
|
1153
1178
|
_classPrivateFieldSet(_this, _partNumber, 1);
|
|
1154
1179
|
_classPrivateFieldSet(_this, _s3PartUploadPromises, []);
|
|
1155
|
-
|
|
1156
|
-
status: ""
|
|
1157
|
-
});
|
|
1180
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1158
1181
|
_classPrivateFieldSet(_this, _abortController, null);
|
|
1159
|
-
_context2.next =
|
|
1182
|
+
_context2.next = 28;
|
|
1160
1183
|
break;
|
|
1161
|
-
case
|
|
1162
|
-
_context2.prev =
|
|
1163
|
-
_context2.t0 = _context2["catch"](
|
|
1164
|
-
|
|
1165
|
-
case
|
|
1184
|
+
case 25:
|
|
1185
|
+
_context2.prev = 25;
|
|
1186
|
+
_context2.t0 = _context2["catch"](1);
|
|
1187
|
+
_classPrivateFieldGet(_this, _logger5).error(_context2.t0);
|
|
1188
|
+
case 28:
|
|
1166
1189
|
case "end":
|
|
1167
1190
|
return _context2.stop();
|
|
1168
1191
|
}
|
|
1169
|
-
}, _callee2, null, [[
|
|
1192
|
+
}, _callee2, null, [[1, 25]]);
|
|
1170
1193
|
})));
|
|
1171
1194
|
_defineProperty(this, "resetState", function () {
|
|
1172
1195
|
_classPrivateFieldSet(_this, _recordingId, "");
|
|
@@ -1178,9 +1201,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1178
1201
|
_classPrivateFieldSet(_this, _callbacks$1, {});
|
|
1179
1202
|
_classPrivateFieldSet(_this, _failedUpload, []);
|
|
1180
1203
|
_classPrivateFieldSet(_this, _uploadProgress, {});
|
|
1181
|
-
|
|
1182
|
-
status: ""
|
|
1183
|
-
});
|
|
1204
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1184
1205
|
});
|
|
1185
1206
|
_defineProperty(this, "addCallback", function (event, callback) {
|
|
1186
1207
|
var _classPrivateFieldGet2;
|
|
@@ -1212,7 +1233,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1212
1233
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1213
1234
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1214
1235
|
case 0:
|
|
1215
|
-
|
|
1236
|
+
_classPrivateFieldGet(_this, _logger5).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
|
|
1216
1237
|
partNumber = _classPrivateFieldGet(_this, _partNumber);
|
|
1217
1238
|
mimeType = getSupportedMimeType();
|
|
1218
1239
|
_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber++, _this$partNumber));
|
|
@@ -1238,7 +1259,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1238
1259
|
case 8:
|
|
1239
1260
|
_yield$partPresignedU = _context3.sent;
|
|
1240
1261
|
presignedUrl = _yield$partPresignedU.presignedUrl;
|
|
1241
|
-
|
|
1262
|
+
_classPrivateFieldGet(_this, _logger5).info("Presigned url created for partNumber:", partNumber);
|
|
1242
1263
|
s3PartUploadPromise = s3Api.presignedUpload({
|
|
1243
1264
|
presignedUrl: presignedUrl,
|
|
1244
1265
|
blob: new Blob(chunks, {
|
|
@@ -1252,9 +1273,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1252
1273
|
uploaded: e.loaded,
|
|
1253
1274
|
total: e.total
|
|
1254
1275
|
};
|
|
1255
|
-
if (
|
|
1276
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1256
1277
|
var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
|
|
1257
|
-
|
|
1278
|
+
_classPrivateFieldGet(_this, _logger5).info("Upload Progress: ".concat(percentCompleted, "%"));
|
|
1258
1279
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
|
|
1259
1280
|
}
|
|
1260
1281
|
}
|
|
@@ -1268,11 +1289,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1268
1289
|
_context3.t0 = _context3["catch"](5);
|
|
1269
1290
|
// ignore if aborted
|
|
1270
1291
|
if (!axios.isCancel(_context3.t0)) {
|
|
1271
|
-
|
|
1272
|
-
if (
|
|
1273
|
-
|
|
1274
|
-
status: UPLOAD_STATUS.error
|
|
1275
|
-
});
|
|
1292
|
+
_classPrivateFieldGet(_this, _logger5).error("Failed to upload partNumber:", partNumber);
|
|
1293
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1294
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1276
1295
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1277
1296
|
} else {
|
|
1278
1297
|
_classPrivateFieldGet(_this, _failedUpload).push(partNumber);
|
|
@@ -1298,14 +1317,12 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1298
1317
|
});
|
|
1299
1318
|
}
|
|
1300
1319
|
});
|
|
1301
|
-
|
|
1320
|
+
_classPrivateFieldGet(this, _logger5).info("Uploader initialized");
|
|
1302
1321
|
}
|
|
1303
|
-
|
|
1304
|
-
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
1305
1322
|
_createClass(MultipartS3Uploader, [{
|
|
1306
|
-
key: "
|
|
1323
|
+
key: "status",
|
|
1307
1324
|
get: function get() {
|
|
1308
|
-
return _classPrivateFieldGet(this,
|
|
1325
|
+
return _classPrivateFieldGet(this, _status);
|
|
1309
1326
|
}
|
|
1310
1327
|
}, {
|
|
1311
1328
|
key: "hasSufficientData",
|
|
@@ -1315,10 +1332,24 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1315
1332
|
}]);
|
|
1316
1333
|
return MultipartS3Uploader;
|
|
1317
1334
|
}();
|
|
1335
|
+
function _set_status(status) {
|
|
1336
|
+
_classPrivateFieldSet(this, _status, status);
|
|
1337
|
+
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
1338
|
+
}
|
|
1318
1339
|
function _get_isNotInitialized() {
|
|
1319
1340
|
return isEmpty(_classPrivateFieldGet(this, _uploadId) + _classPrivateFieldGet(this, _recordingId));
|
|
1320
1341
|
}
|
|
1321
1342
|
var multipartS3Uploader = new MultipartS3Uploader();
|
|
1343
|
+
var getMultipartS3Uploader = function getMultipartS3Uploader() {
|
|
1344
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1345
|
+
_ref3$initialize = _ref3.initialize,
|
|
1346
|
+
initialize = _ref3$initialize === void 0 ? false : _ref3$initialize;
|
|
1347
|
+
if (!multipartS3Uploader || initialize) {
|
|
1348
|
+
multipartS3Uploader = new MultipartS3Uploader();
|
|
1349
|
+
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
1350
|
+
}
|
|
1351
|
+
return multipartS3Uploader;
|
|
1352
|
+
};
|
|
1322
1353
|
|
|
1323
1354
|
function _arrayWithHoles(arr) {
|
|
1324
1355
|
if (Array.isArray(arr)) return arr;
|
|
@@ -1335,10 +1366,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
1335
1366
|
_n = !0,
|
|
1336
1367
|
_d = !1;
|
|
1337
1368
|
try {
|
|
1338
|
-
if (_x = (_i = _i.call(arr)).next, 0 === i)
|
|
1339
|
-
if (Object(_i) !== _i) return;
|
|
1340
|
-
_n = !1;
|
|
1341
|
-
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
1369
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) ; else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
1342
1370
|
} catch (err) {
|
|
1343
1371
|
_d = !0, _e = err;
|
|
1344
1372
|
} finally {
|
|
@@ -1886,14 +1914,16 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1886
1914
|
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
1887
1915
|
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
1888
1916
|
} catch (error) {
|
|
1889
|
-
|
|
1917
|
+
logger.info("Failed to start mediaRecorder", error);
|
|
1890
1918
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1891
1919
|
status: SCREEN_RECORDER_STATUS.idle,
|
|
1892
|
-
error: SCREEN_RECORDER_ERROR
|
|
1920
|
+
error: SCREEN_RECORDER_ERROR.FailedToStart
|
|
1893
1921
|
});
|
|
1894
|
-
|
|
1922
|
+
|
|
1895
1923
|
// To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
|
|
1896
|
-
_classPrivateFieldGet(_this, _mediaRecorder)
|
|
1924
|
+
if (_classPrivateFieldGet(_this, _mediaRecorder)) {
|
|
1925
|
+
_classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
|
|
1926
|
+
}
|
|
1897
1927
|
if (_classPrivateFieldGet(_this, _mediaStream)) {
|
|
1898
1928
|
_classPrivateFieldGet(_this, _mediaStream).getTracks().forEach(function (track) {
|
|
1899
1929
|
return track.stop();
|
|
@@ -1999,5 +2029,34 @@ var screenRecorder = new ScreenRecorder(true, {
|
|
|
1999
2029
|
displaySurface: DISPLAY_SURFACE.monitor
|
|
2000
2030
|
});
|
|
2001
2031
|
|
|
2002
|
-
|
|
2032
|
+
var listeners = new Set();
|
|
2033
|
+
var subscribe = function subscribe(listener) {
|
|
2034
|
+
listeners.add(listener);
|
|
2035
|
+
return function () {
|
|
2036
|
+
return listeners["delete"](listener);
|
|
2037
|
+
};
|
|
2038
|
+
};
|
|
2039
|
+
var triggerStatusChange = function triggerStatusChange() {
|
|
2040
|
+
listeners.forEach(function (listener) {
|
|
2041
|
+
return listener();
|
|
2042
|
+
});
|
|
2043
|
+
};
|
|
2044
|
+
var getSnapshot = function getSnapshot() {
|
|
2045
|
+
return getMultipartS3Uploader$1().status;
|
|
2046
|
+
};
|
|
2047
|
+
var useMultipartS3UploadStatus = function useMultipartS3UploadStatus() {
|
|
2048
|
+
var status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
2049
|
+
return {
|
|
2050
|
+
status: status,
|
|
2051
|
+
isStatus: function isStatus() {
|
|
2052
|
+
for (var _len = arguments.length, statuses = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
2053
|
+
statuses[_key] = arguments[_key];
|
|
2054
|
+
}
|
|
2055
|
+
return statuses.includes(status);
|
|
2056
|
+
}
|
|
2057
|
+
};
|
|
2058
|
+
};
|
|
2059
|
+
useMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;
|
|
2060
|
+
|
|
2061
|
+
export { getMultipartS3Uploader, screenRecorder, useMultipartS3UploadStatus };
|
|
2003
2062
|
//# sourceMappingURL=core.js.map
|