@bigbinary/neeto-media-recorder 2.5.6 → 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 +203 -141
- 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,99 +1097,99 @@ 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() {
|
|
1136
|
+
var forceAbort,
|
|
1137
|
+
recordingId,
|
|
1138
|
+
uploadId,
|
|
1139
|
+
_args2 = arguments;
|
|
1114
1140
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1115
1141
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1116
1142
|
case 0:
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
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;
|
|
1120
1147
|
break;
|
|
1121
1148
|
}
|
|
1122
|
-
|
|
1149
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> already aborting");
|
|
1123
1150
|
return _context2.abrupt("return");
|
|
1124
|
-
case
|
|
1125
|
-
|
|
1126
|
-
status: UPLOAD_STATUS.aborting
|
|
1127
|
-
});
|
|
1151
|
+
case 5:
|
|
1152
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.aborting);
|
|
1128
1153
|
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
1129
|
-
_context2.next =
|
|
1154
|
+
_context2.next = 9;
|
|
1130
1155
|
break;
|
|
1131
1156
|
}
|
|
1132
|
-
|
|
1157
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> not initialized");
|
|
1133
1158
|
return _context2.abrupt("return");
|
|
1134
|
-
case
|
|
1135
|
-
|
|
1159
|
+
case 9:
|
|
1160
|
+
recordingId = _classPrivateFieldGet(_this, _recordingId);
|
|
1161
|
+
uploadId = _classPrivateFieldGet(_this, _uploadId);
|
|
1162
|
+
_context2.next = 13;
|
|
1136
1163
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1137
|
-
case
|
|
1164
|
+
case 13:
|
|
1138
1165
|
_classPrivateFieldGet(_this, _abortController).abort();
|
|
1139
|
-
_context2.next =
|
|
1166
|
+
_context2.next = 16;
|
|
1140
1167
|
return abortUploadApi.create({
|
|
1141
|
-
recordingId:
|
|
1168
|
+
recordingId: recordingId,
|
|
1142
1169
|
payload: {
|
|
1143
|
-
uploadId:
|
|
1170
|
+
uploadId: uploadId,
|
|
1144
1171
|
isMp4: isMp4Supported()
|
|
1145
1172
|
}
|
|
1146
1173
|
});
|
|
1147
|
-
case
|
|
1148
|
-
|
|
1174
|
+
case 16:
|
|
1175
|
+
_classPrivateFieldGet(_this, _logger5).info("abortUpload -> abort successful");
|
|
1176
|
+
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onAbort);
|
|
1149
1177
|
_classPrivateFieldSet(_this, _unUploadedChunks, []);
|
|
1150
1178
|
_classPrivateFieldSet(_this, _partNumber, 1);
|
|
1151
1179
|
_classPrivateFieldSet(_this, _s3PartUploadPromises, []);
|
|
1152
|
-
|
|
1153
|
-
status: ""
|
|
1154
|
-
});
|
|
1180
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1155
1181
|
_classPrivateFieldSet(_this, _abortController, null);
|
|
1156
|
-
_context2.next =
|
|
1182
|
+
_context2.next = 28;
|
|
1157
1183
|
break;
|
|
1158
|
-
case
|
|
1159
|
-
_context2.prev =
|
|
1160
|
-
_context2.t0 = _context2["catch"](
|
|
1161
|
-
|
|
1162
|
-
case
|
|
1184
|
+
case 25:
|
|
1185
|
+
_context2.prev = 25;
|
|
1186
|
+
_context2.t0 = _context2["catch"](1);
|
|
1187
|
+
_classPrivateFieldGet(_this, _logger5).error(_context2.t0);
|
|
1188
|
+
case 28:
|
|
1163
1189
|
case "end":
|
|
1164
1190
|
return _context2.stop();
|
|
1165
1191
|
}
|
|
1166
|
-
}, _callee2, null, [[
|
|
1192
|
+
}, _callee2, null, [[1, 25]]);
|
|
1167
1193
|
})));
|
|
1168
1194
|
_defineProperty(this, "resetState", function () {
|
|
1169
1195
|
_classPrivateFieldSet(_this, _recordingId, "");
|
|
@@ -1175,9 +1201,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1175
1201
|
_classPrivateFieldSet(_this, _callbacks$1, {});
|
|
1176
1202
|
_classPrivateFieldSet(_this, _failedUpload, []);
|
|
1177
1203
|
_classPrivateFieldSet(_this, _uploadProgress, {});
|
|
1178
|
-
|
|
1179
|
-
status: ""
|
|
1180
|
-
});
|
|
1204
|
+
_classPrivateFieldSet(_this, _status2, "");
|
|
1181
1205
|
});
|
|
1182
1206
|
_defineProperty(this, "addCallback", function (event, callback) {
|
|
1183
1207
|
var _classPrivateFieldGet2;
|
|
@@ -1209,7 +1233,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1209
1233
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1210
1234
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1211
1235
|
case 0:
|
|
1212
|
-
|
|
1236
|
+
_classPrivateFieldGet(_this, _logger5).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
|
|
1213
1237
|
partNumber = _classPrivateFieldGet(_this, _partNumber);
|
|
1214
1238
|
mimeType = getSupportedMimeType();
|
|
1215
1239
|
_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber++, _this$partNumber));
|
|
@@ -1235,7 +1259,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1235
1259
|
case 8:
|
|
1236
1260
|
_yield$partPresignedU = _context3.sent;
|
|
1237
1261
|
presignedUrl = _yield$partPresignedU.presignedUrl;
|
|
1238
|
-
|
|
1262
|
+
_classPrivateFieldGet(_this, _logger5).info("Presigned url created for partNumber:", partNumber);
|
|
1239
1263
|
s3PartUploadPromise = s3Api.presignedUpload({
|
|
1240
1264
|
presignedUrl: presignedUrl,
|
|
1241
1265
|
blob: new Blob(chunks, {
|
|
@@ -1249,9 +1273,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1249
1273
|
uploaded: e.loaded,
|
|
1250
1274
|
total: e.total
|
|
1251
1275
|
};
|
|
1252
|
-
if (
|
|
1276
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1253
1277
|
var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
|
|
1254
|
-
|
|
1278
|
+
_classPrivateFieldGet(_this, _logger5).info("Upload Progress: ".concat(percentCompleted, "%"));
|
|
1255
1279
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
|
|
1256
1280
|
}
|
|
1257
1281
|
}
|
|
@@ -1265,11 +1289,9 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1265
1289
|
_context3.t0 = _context3["catch"](5);
|
|
1266
1290
|
// ignore if aborted
|
|
1267
1291
|
if (!axios.isCancel(_context3.t0)) {
|
|
1268
|
-
|
|
1269
|
-
if (
|
|
1270
|
-
|
|
1271
|
-
status: UPLOAD_STATUS.error
|
|
1272
|
-
});
|
|
1292
|
+
_classPrivateFieldGet(_this, _logger5).error("Failed to upload partNumber:", partNumber);
|
|
1293
|
+
if (_this.status === UPLOAD_STATUS.uploading) {
|
|
1294
|
+
_classPrivateFieldSet(_this, _status2, UPLOAD_STATUS.error);
|
|
1273
1295
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1274
1296
|
} else {
|
|
1275
1297
|
_classPrivateFieldGet(_this, _failedUpload).push(partNumber);
|
|
@@ -1295,14 +1317,12 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1295
1317
|
});
|
|
1296
1318
|
}
|
|
1297
1319
|
});
|
|
1298
|
-
|
|
1320
|
+
_classPrivateFieldGet(this, _logger5).info("Uploader initialized");
|
|
1299
1321
|
}
|
|
1300
|
-
|
|
1301
|
-
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
1302
1322
|
_createClass(MultipartS3Uploader, [{
|
|
1303
|
-
key: "
|
|
1323
|
+
key: "status",
|
|
1304
1324
|
get: function get() {
|
|
1305
|
-
return _classPrivateFieldGet(this,
|
|
1325
|
+
return _classPrivateFieldGet(this, _status);
|
|
1306
1326
|
}
|
|
1307
1327
|
}, {
|
|
1308
1328
|
key: "hasSufficientData",
|
|
@@ -1312,10 +1332,24 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1312
1332
|
}]);
|
|
1313
1333
|
return MultipartS3Uploader;
|
|
1314
1334
|
}();
|
|
1335
|
+
function _set_status(status) {
|
|
1336
|
+
_classPrivateFieldSet(this, _status, status);
|
|
1337
|
+
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
1338
|
+
}
|
|
1315
1339
|
function _get_isNotInitialized() {
|
|
1316
1340
|
return isEmpty(_classPrivateFieldGet(this, _uploadId) + _classPrivateFieldGet(this, _recordingId));
|
|
1317
1341
|
}
|
|
1318
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
|
+
};
|
|
1319
1353
|
|
|
1320
1354
|
function _arrayWithHoles(arr) {
|
|
1321
1355
|
if (Array.isArray(arr)) return arr;
|
|
@@ -1332,10 +1366,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
1332
1366
|
_n = !0,
|
|
1333
1367
|
_d = !1;
|
|
1334
1368
|
try {
|
|
1335
|
-
if (_x = (_i = _i.call(arr)).next, 0 === i)
|
|
1336
|
-
if (Object(_i) !== _i) return;
|
|
1337
|
-
_n = !1;
|
|
1338
|
-
} 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);
|
|
1339
1370
|
} catch (err) {
|
|
1340
1371
|
_d = !0, _e = err;
|
|
1341
1372
|
} finally {
|
|
@@ -1883,14 +1914,16 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1883
1914
|
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
1884
1915
|
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
1885
1916
|
} catch (error) {
|
|
1886
|
-
|
|
1917
|
+
logger.info("Failed to start mediaRecorder", error);
|
|
1887
1918
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1888
1919
|
status: SCREEN_RECORDER_STATUS.idle,
|
|
1889
|
-
error: SCREEN_RECORDER_ERROR
|
|
1920
|
+
error: SCREEN_RECORDER_ERROR.FailedToStart
|
|
1890
1921
|
});
|
|
1891
|
-
|
|
1922
|
+
|
|
1892
1923
|
// To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.
|
|
1893
|
-
_classPrivateFieldGet(_this, _mediaRecorder)
|
|
1924
|
+
if (_classPrivateFieldGet(_this, _mediaRecorder)) {
|
|
1925
|
+
_classPrivateFieldGet(_this, _mediaRecorder).onstop = noop;
|
|
1926
|
+
}
|
|
1894
1927
|
if (_classPrivateFieldGet(_this, _mediaStream)) {
|
|
1895
1928
|
_classPrivateFieldGet(_this, _mediaStream).getTracks().forEach(function (track) {
|
|
1896
1929
|
return track.stop();
|
|
@@ -1996,5 +2029,34 @@ var screenRecorder = new ScreenRecorder(true, {
|
|
|
1996
2029
|
displaySurface: DISPLAY_SURFACE.monitor
|
|
1997
2030
|
});
|
|
1998
2031
|
|
|
1999
|
-
|
|
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 };
|
|
2000
2062
|
//# sourceMappingURL=core.js.map
|