@bigbinary/neeto-media-recorder 2.1.6-beta.2 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants.js +4 -5
- package/constants.js.map +1 -1
- package/core.js +102 -170
- package/core.js.map +1 -1
- package/index.js +21 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +3 -1
package/constants.js
CHANGED
|
@@ -20,9 +20,7 @@ var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
|
20
20
|
var ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;
|
|
21
21
|
var ONE_SECOND = 1;
|
|
22
22
|
var UPLOAD_EVENT = {
|
|
23
|
-
onComplete: "onComplete"
|
|
24
|
-
onError: "onError",
|
|
25
|
-
onProgress: "onProgress"
|
|
23
|
+
onComplete: "onComplete"
|
|
26
24
|
};
|
|
27
25
|
var UPLOAD_STATUS = {
|
|
28
26
|
uploading: "uploading",
|
|
@@ -53,6 +51,8 @@ var SCREEN_RECORDER_ERROR = {
|
|
|
53
51
|
NotAllowedError: "permission_denied",
|
|
54
52
|
NotFoundError: "no_specified_media_found",
|
|
55
53
|
NotReadableError: "media_in_use",
|
|
54
|
+
NotSupportedError: "not_supported_error",
|
|
55
|
+
InvalidStateError: "invalid_state_error",
|
|
56
56
|
OverconstrainedError: "invalid_media_constraints",
|
|
57
57
|
TypeError: "no_chrome_flags_set",
|
|
58
58
|
None: "",
|
|
@@ -65,8 +65,7 @@ var SCREEN_RECORDER_EVENT = {
|
|
|
65
65
|
onDiscard: "onDiscard",
|
|
66
66
|
onDataAvailable: "onDataAvailable",
|
|
67
67
|
onDiscardDuringCountdown: "onDiscardDuringCountdown",
|
|
68
|
-
onRestart: "onRestart"
|
|
69
|
-
onReUpload: "onReUpload"
|
|
68
|
+
onRestart: "onRestart"
|
|
70
69
|
};
|
|
71
70
|
var TOTAL_RETRIES = 30;
|
|
72
71
|
var INITIAL_RETRY_DELAY = 4000;
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = {
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRIABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const UPLOAD_EVENT = { onComplete: \"onComplete\" };\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n NotSupportedError: \"not_supported_error\",\n InvalidStateError: \"invalid_state_error\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n};\n\nexport const TOTAL_RETRIES = 30;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264: \"video/webm;codecs=h264\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n"],"names":["RETRIABLE_ERRORS","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_HOUR_IN_MILLISECONDS","ONE_SECOND","UPLOAD_EVENT","onComplete","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","NotSupportedError","InvalidStateError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","TOTAL_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","NETWORK_ERROR","TIMEOUT_ERROR","HAS_CHROME_NAMESPACE","chrome","_typeof","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","IS_SAFARI_EXTENSION","PERMISSIONS_HELP_DOC","MIME_TYPE","mp4","webmH264","START_RECORDING_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN"],"mappings":"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"}
|
package/core.js
CHANGED
|
@@ -690,7 +690,7 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
|
|
|
690
690
|
});
|
|
691
691
|
case 4:
|
|
692
692
|
if (!(remainingAttempts-- && !shouldCancelRetries)) {
|
|
693
|
-
_context.next =
|
|
693
|
+
_context.next = 24;
|
|
694
694
|
break;
|
|
695
695
|
}
|
|
696
696
|
_context.prev = 5;
|
|
@@ -701,28 +701,26 @@ var buildRetryableApi = function buildRetryableApi(apiConnector) {
|
|
|
701
701
|
case 11:
|
|
702
702
|
_context.prev = 11;
|
|
703
703
|
_context.t0 = _context["catch"](5);
|
|
704
|
-
logger.error("buildRetryableApi -> Failed to connect, remainingAttempts:", remainingAttempts);
|
|
705
704
|
isRetryableStatus = isPresent(retryableStatuses) && retryableStatuses.includes((_error$response = _context.t0.response) === null || _error$response === void 0 ? void 0 : _error$response.status);
|
|
706
705
|
isRetryableError = isRetryableStatus || _context.t0.message === NETWORK_ERROR || _context.t0.code === TIMEOUT_ERROR;
|
|
707
706
|
if (!(isRetryableError && remainingAttempts > 0)) {
|
|
708
|
-
_context.next =
|
|
707
|
+
_context.next = 21;
|
|
709
708
|
break;
|
|
710
709
|
}
|
|
711
|
-
|
|
712
|
-
_context.next = 20;
|
|
710
|
+
_context.next = 18;
|
|
713
711
|
return sleep(retryDelay);
|
|
714
|
-
case
|
|
712
|
+
case 18:
|
|
715
713
|
retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);
|
|
716
|
-
_context.next =
|
|
714
|
+
_context.next = 22;
|
|
717
715
|
break;
|
|
718
|
-
case
|
|
716
|
+
case 21:
|
|
719
717
|
throw _context.t0;
|
|
720
|
-
case
|
|
718
|
+
case 22:
|
|
721
719
|
_context.next = 4;
|
|
722
720
|
break;
|
|
723
|
-
case
|
|
721
|
+
case 24:
|
|
724
722
|
throw new RetryError("Request cancelled or request retries exhausted");
|
|
725
|
-
case
|
|
723
|
+
case 25:
|
|
726
724
|
case "end":
|
|
727
725
|
return _context.stop();
|
|
728
726
|
}
|
|
@@ -808,15 +806,6 @@ var prepareStore$1 = function prepareStore() {
|
|
|
808
806
|
var isNotCancelledRequest = function isNotCancelledRequest(resolvedResponse) {
|
|
809
807
|
return typeof resolvedResponse !== "boolean";
|
|
810
808
|
};
|
|
811
|
-
var calculateUploadProgress = function calculateUploadProgress(uploadProgress) {
|
|
812
|
-
var total = Object.values(uploadProgress).reduce(function (sum, part) {
|
|
813
|
-
return sum + part.total;
|
|
814
|
-
}, 0);
|
|
815
|
-
var uploaded = Object.values(uploadProgress).reduce(function (sum, part) {
|
|
816
|
-
return sum + part.uploaded;
|
|
817
|
-
}, 0);
|
|
818
|
-
return Math.round(uploaded * 100 / total);
|
|
819
|
-
};
|
|
820
809
|
|
|
821
810
|
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
822
811
|
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; }
|
|
@@ -832,8 +821,6 @@ var _store$1 = /*#__PURE__*/new WeakMap();
|
|
|
832
821
|
var _abortController = /*#__PURE__*/new WeakMap();
|
|
833
822
|
var _pendingS3ChunkUploads = /*#__PURE__*/new WeakMap();
|
|
834
823
|
var _completeUploadPromise = /*#__PURE__*/new WeakMap();
|
|
835
|
-
var _failedUpload = /*#__PURE__*/new WeakMap();
|
|
836
|
-
var _uploadProgress = /*#__PURE__*/new WeakMap();
|
|
837
824
|
var _fireCallbacks$1 = /*#__PURE__*/new WeakMap();
|
|
838
825
|
var _uploadChunkToS = /*#__PURE__*/new WeakMap();
|
|
839
826
|
var _getCurrentUnUploadedBlob = /*#__PURE__*/new WeakMap();
|
|
@@ -887,14 +874,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
887
874
|
writable: true,
|
|
888
875
|
value: void 0
|
|
889
876
|
});
|
|
890
|
-
_classPrivateFieldInitSpec$1(this, _failedUpload, {
|
|
891
|
-
writable: true,
|
|
892
|
-
value: []
|
|
893
|
-
});
|
|
894
|
-
_classPrivateFieldInitSpec$1(this, _uploadProgress, {
|
|
895
|
-
writable: true,
|
|
896
|
-
value: {}
|
|
897
|
-
});
|
|
898
877
|
_defineProperty(this, "initialize", function (recordingId, uploadId) {
|
|
899
878
|
_classPrivateFieldSet(_this, _recordingId, recordingId);
|
|
900
879
|
_classPrivateFieldSet(_this, _uploadId, uploadId);
|
|
@@ -904,10 +883,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
904
883
|
if (data.size > 0) {
|
|
905
884
|
_classPrivateFieldGet(_this, _unUploadedChunks).push(data);
|
|
906
885
|
}
|
|
907
|
-
if (_classPrivateFieldGet(_this, _isNotInitialized))
|
|
908
|
-
logger.info("upload push -> not initialized");
|
|
909
|
-
return;
|
|
910
|
-
}
|
|
886
|
+
if (_classPrivateFieldGet(_this, _isNotInitialized)) return;
|
|
911
887
|
logger.info("Current unuploaded data size is ", _classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size / 1024 / 1024, "MB");
|
|
912
888
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > _this.MIN_UPLOAD_CHUNK_SIZE) {
|
|
913
889
|
var uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
@@ -925,15 +901,13 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
925
901
|
status: UPLOAD_STATUS.uploading
|
|
926
902
|
});
|
|
927
903
|
if (!_classPrivateFieldGet(_this, _isNotInitialized)) {
|
|
928
|
-
_context.next =
|
|
904
|
+
_context.next = 4;
|
|
929
905
|
break;
|
|
930
906
|
}
|
|
931
|
-
logger.error("completeUpload -> not initialized");
|
|
932
907
|
return _context.abrupt("return");
|
|
933
|
-
case
|
|
908
|
+
case 4:
|
|
934
909
|
// Upload last chunk; only if last chunk has data
|
|
935
910
|
if (_classPrivateFieldGet(_this, _getCurrentUnUploadedBlob).call(_this).size > 0) {
|
|
936
|
-
logger.info("completeUpload -> need to upload last chunk");
|
|
937
911
|
uploadChunkToS3Promise = _classPrivateFieldGet(_this, _uploadChunkToS).call(_this, _classPrivateFieldGet(_this, _unUploadedChunks));
|
|
938
912
|
_classPrivateFieldGet(_this, _pendingS3ChunkUploads).push(uploadChunkToS3Promise);
|
|
939
913
|
}
|
|
@@ -946,36 +920,22 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
946
920
|
* adding the new presignedUrl part upload to s3PartUploadPromises.
|
|
947
921
|
* This results in incorrect partNumbers.
|
|
948
922
|
*/
|
|
949
|
-
|
|
950
|
-
_context.next = 9;
|
|
923
|
+
_context.next = 7;
|
|
951
924
|
return Promise.all(_classPrivateFieldGet(_this, _pendingS3ChunkUploads));
|
|
952
|
-
case
|
|
953
|
-
|
|
954
|
-
_context.next = 12;
|
|
925
|
+
case 7:
|
|
926
|
+
_context.next = 9;
|
|
955
927
|
return Promise.all(_classPrivateFieldGet(_this, _s3PartUploadPromises));
|
|
956
|
-
case
|
|
928
|
+
case 9:
|
|
957
929
|
resolvedS3PartUploadPromises = _context.sent;
|
|
958
|
-
if (!isNotEmpty(_classPrivateFieldGet(_this, _failedUpload))) {
|
|
959
|
-
_context.next = 18;
|
|
960
|
-
break;
|
|
961
|
-
}
|
|
962
|
-
logger.info("completeUpload -> chunks with these partNumbers failed:", _classPrivateFieldGet(_this, _failedUpload));
|
|
963
|
-
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
964
|
-
_classPrivateFieldGet(_this, _store$1).setState({
|
|
965
|
-
status: UPLOAD_STATUS.error
|
|
966
|
-
});
|
|
967
|
-
return _context.abrupt("return");
|
|
968
|
-
case 18:
|
|
969
930
|
if (!(resolvedS3PartUploadPromises.length === 0)) {
|
|
970
|
-
_context.next =
|
|
931
|
+
_context.next = 13;
|
|
971
932
|
break;
|
|
972
933
|
}
|
|
973
|
-
logger.info("completeUpload -> insufficient data");
|
|
974
934
|
_classPrivateFieldGet(_this, _store$1).setState({
|
|
975
935
|
status: UPLOAD_STATUS.insufficient_data
|
|
976
936
|
});
|
|
977
937
|
return _context.abrupt("return");
|
|
978
|
-
case
|
|
938
|
+
case 13:
|
|
979
939
|
parts = resolvedS3PartUploadPromises.filter(isNotCancelledRequest).map(function (resolvedResponse) {
|
|
980
940
|
return {
|
|
981
941
|
etag: resolvedResponse.headers.etag,
|
|
@@ -984,7 +944,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
984
944
|
}).toSorted(function (a, b) {
|
|
985
945
|
return Number(a.partNumber) - Number(b.partNumber);
|
|
986
946
|
});
|
|
987
|
-
logger.info("completeUpload -> uploaded parts: ", parts);
|
|
988
947
|
_classPrivateFieldSet(_this, _completeUploadPromise, completeUploadApi.create({
|
|
989
948
|
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
990
949
|
payload: {
|
|
@@ -995,41 +954,34 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
995
954
|
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
996
955
|
}
|
|
997
956
|
}));
|
|
998
|
-
|
|
999
|
-
_context.next = 28;
|
|
957
|
+
_context.next = 17;
|
|
1000
958
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
1001
|
-
case
|
|
1002
|
-
logger.info("completeUpload -> upload completed");
|
|
959
|
+
case 17:
|
|
1003
960
|
if (!(_classPrivateFieldGet(_this, _store$1).getState().status === UPLOAD_STATUS.aborting)) {
|
|
1004
|
-
_context.next =
|
|
961
|
+
_context.next = 19;
|
|
1005
962
|
break;
|
|
1006
963
|
}
|
|
1007
|
-
logger.info("completeUpload -> upload was marked as aborted");
|
|
1008
964
|
return _context.abrupt("return");
|
|
1009
|
-
case
|
|
965
|
+
case 19:
|
|
1010
966
|
_classPrivateFieldGet(_this, _store$1).setState({
|
|
1011
967
|
status: UPLOAD_STATUS.completed
|
|
1012
968
|
});
|
|
1013
969
|
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onComplete);
|
|
1014
|
-
_context.next =
|
|
970
|
+
_context.next = 26;
|
|
1015
971
|
break;
|
|
1016
|
-
case
|
|
1017
|
-
_context.prev =
|
|
972
|
+
case 23:
|
|
973
|
+
_context.prev = 23;
|
|
1018
974
|
_context.t0 = _context["catch"](0);
|
|
1019
|
-
_classPrivateFieldGet(_this, _store$1).setState({
|
|
1020
|
-
status: UPLOAD_STATUS.error
|
|
1021
|
-
});
|
|
1022
|
-
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onError);
|
|
1023
975
|
logger.error(_context.t0);
|
|
1024
|
-
case
|
|
1025
|
-
_context.prev =
|
|
976
|
+
case 26:
|
|
977
|
+
_context.prev = 26;
|
|
1026
978
|
_classPrivateFieldSet(_this, _completeUploadPromise, null);
|
|
1027
|
-
return _context.finish(
|
|
1028
|
-
case
|
|
979
|
+
return _context.finish(26);
|
|
980
|
+
case 29:
|
|
1029
981
|
case "end":
|
|
1030
982
|
return _context.stop();
|
|
1031
983
|
}
|
|
1032
|
-
}, _callee, null, [[0,
|
|
984
|
+
}, _callee, null, [[0, 23, 26, 29]]);
|
|
1033
985
|
})));
|
|
1034
986
|
_defineProperty(this, "abortUpload", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1035
987
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
@@ -1083,8 +1035,6 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1083
1035
|
_classPrivateFieldSet(_this, _partNumber, 1);
|
|
1084
1036
|
_classPrivateFieldSet(_this, _s3PartUploadPromises, []);
|
|
1085
1037
|
_classPrivateFieldSet(_this, _callbacks$1, {});
|
|
1086
|
-
_classPrivateFieldSet(_this, _failedUpload, []);
|
|
1087
|
-
_classPrivateFieldSet(_this, _uploadProgress, {});
|
|
1088
1038
|
_classPrivateFieldGet(_this, _store$1).setState({
|
|
1089
1039
|
status: ""
|
|
1090
1040
|
});
|
|
@@ -1114,36 +1064,26 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1114
1064
|
writable: true,
|
|
1115
1065
|
value: function () {
|
|
1116
1066
|
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(chunks) {
|
|
1117
|
-
var _this$partNumber;
|
|
1118
|
-
var partNumber, _yield$partPresignedU, presignedUrl, s3PartUploadPromise;
|
|
1067
|
+
var _this$partNumber, _this$partNumber2, _yield$partPresignedU, presignedUrl, s3PartUploadPromise;
|
|
1119
1068
|
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1120
1069
|
while (1) switch (_context3.prev = _context3.next) {
|
|
1121
1070
|
case 0:
|
|
1122
1071
|
logger.info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
_classPrivateFieldGet(_this, _uploadProgress)[partNumber] = {
|
|
1126
|
-
uploaded: 0,
|
|
1127
|
-
total: new Blob(chunks, {
|
|
1128
|
-
type: MIME_TYPE.webmH264
|
|
1129
|
-
}).size
|
|
1130
|
-
};
|
|
1131
|
-
_context3.prev = 4;
|
|
1132
|
-
_context3.next = 7;
|
|
1072
|
+
_context3.prev = 1;
|
|
1073
|
+
_context3.next = 4;
|
|
1133
1074
|
return partPresignedUrlApi.create({
|
|
1134
1075
|
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1135
1076
|
payload: {
|
|
1136
|
-
partNumber: partNumber,
|
|
1077
|
+
partNumber: (_classPrivateFieldSet(_this, _partNumber, (_this$partNumber = _classPrivateFieldGet(_this, _partNumber), _this$partNumber2 = _this$partNumber++, _this$partNumber)), _this$partNumber2),
|
|
1137
1078
|
uploadId: _classPrivateFieldGet(_this, _uploadId)
|
|
1138
1079
|
},
|
|
1139
1080
|
config: {
|
|
1140
1081
|
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1141
1082
|
}
|
|
1142
1083
|
});
|
|
1143
|
-
case
|
|
1084
|
+
case 4:
|
|
1144
1085
|
_yield$partPresignedU = _context3.sent;
|
|
1145
1086
|
presignedUrl = _yield$partPresignedU.presignedUrl;
|
|
1146
|
-
logger.info("Presigned url created for partNumber:", partNumber);
|
|
1147
1087
|
s3PartUploadPromise = s3Api.presignedUpload({
|
|
1148
1088
|
presignedUrl: presignedUrl,
|
|
1149
1089
|
blob: new Blob(chunks, {
|
|
@@ -1151,37 +1091,21 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1151
1091
|
}),
|
|
1152
1092
|
config: {
|
|
1153
1093
|
includeMetadataInResponse: true,
|
|
1154
|
-
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1155
|
-
onUploadProgress: function onUploadProgress(e) {
|
|
1156
|
-
_classPrivateFieldGet(_this, _uploadProgress)[partNumber] = {
|
|
1157
|
-
uploaded: e.loaded,
|
|
1158
|
-
total: e.total
|
|
1159
|
-
};
|
|
1160
|
-
if (_classPrivateFieldGet(_this, _store$1).getState().status === UPLOAD_STATUS.uploading) {
|
|
1161
|
-
var percentCompleted = calculateUploadProgress(_classPrivateFieldGet(_this, _uploadProgress));
|
|
1162
|
-
logger.info("Upload Progress: ".concat(percentCompleted, "%"));
|
|
1163
|
-
_classPrivateFieldGet(_this, _fireCallbacks$1).call(_this, UPLOAD_EVENT.onProgress, [percentCompleted]);
|
|
1164
|
-
}
|
|
1165
|
-
}
|
|
1094
|
+
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1166
1095
|
}
|
|
1167
1096
|
});
|
|
1168
|
-
s3PartUploadPromise.then(function () {
|
|
1169
|
-
logger.info("Chunk uploaded for partNumber:", partNumber);
|
|
1170
|
-
});
|
|
1171
1097
|
_classPrivateFieldGet(_this, _s3PartUploadPromises).push(s3PartUploadPromise);
|
|
1172
|
-
_context3.next =
|
|
1098
|
+
_context3.next = 13;
|
|
1173
1099
|
break;
|
|
1174
|
-
case
|
|
1175
|
-
_context3.prev =
|
|
1176
|
-
_context3.t0 = _context3["catch"](
|
|
1177
|
-
logger.error("Failed to upload partNumber:", partNumber);
|
|
1178
|
-
_classPrivateFieldGet(_this, _failedUpload).push(partNumber);
|
|
1100
|
+
case 10:
|
|
1101
|
+
_context3.prev = 10;
|
|
1102
|
+
_context3.t0 = _context3["catch"](1);
|
|
1179
1103
|
if (!axios.isCancel(_context3.t0)) logger.error(_context3.t0);
|
|
1180
|
-
case
|
|
1104
|
+
case 13:
|
|
1181
1105
|
case "end":
|
|
1182
1106
|
return _context3.stop();
|
|
1183
1107
|
}
|
|
1184
|
-
}, _callee3, null, [[
|
|
1108
|
+
}, _callee3, null, [[1, 10]]);
|
|
1185
1109
|
}));
|
|
1186
1110
|
function value(_x) {
|
|
1187
1111
|
return _value.apply(this, arguments);
|
|
@@ -1346,7 +1270,6 @@ var _recordingLimitWarningAudio = /*#__PURE__*/new WeakMap();
|
|
|
1346
1270
|
var _stopRecordingDueToLimitReachedAudio = /*#__PURE__*/new WeakMap();
|
|
1347
1271
|
var _stream = /*#__PURE__*/new WeakMap();
|
|
1348
1272
|
var _audioStream = /*#__PURE__*/new WeakMap();
|
|
1349
|
-
var _audioContext = /*#__PURE__*/new WeakMap();
|
|
1350
1273
|
var _timeLimit = /*#__PURE__*/new WeakMap();
|
|
1351
1274
|
var _startRecordingTimeoutID = /*#__PURE__*/new WeakMap();
|
|
1352
1275
|
var _enableNoiseCancellation = /*#__PURE__*/new WeakMap();
|
|
@@ -1424,10 +1347,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1424
1347
|
writable: true,
|
|
1425
1348
|
value: void 0
|
|
1426
1349
|
});
|
|
1427
|
-
_classPrivateFieldInitSpec(this, _audioContext, {
|
|
1428
|
-
writable: true,
|
|
1429
|
-
value: void 0
|
|
1430
|
-
});
|
|
1431
1350
|
_classPrivateFieldInitSpec(this, _timeLimit, {
|
|
1432
1351
|
writable: true,
|
|
1433
1352
|
value: RECORDING_TIME_LIMIT_FREE_PLAN
|
|
@@ -1657,56 +1576,56 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1657
1576
|
writable: true,
|
|
1658
1577
|
value: function () {
|
|
1659
1578
|
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
1660
|
-
var
|
|
1579
|
+
var stream, audioStream, workletUrl, audioContext, audioStreamSource, destinationStream, noiseSuppressorNode, finalStream, _audioContext, desktopAudio, microphoneAudio, combinedAudio;
|
|
1661
1580
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1662
1581
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1663
1582
|
case 0:
|
|
1664
1583
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1665
1584
|
status: SCREEN_RECORDER_STATUS.acquiring_media
|
|
1666
1585
|
});
|
|
1667
|
-
|
|
1668
|
-
_context2.prev = 2;
|
|
1586
|
+
_context2.prev = 1;
|
|
1669
1587
|
if (!_classPrivateFieldGet(_this, _audio)) {
|
|
1670
|
-
_context2.next =
|
|
1588
|
+
_context2.next = 24;
|
|
1671
1589
|
break;
|
|
1672
1590
|
}
|
|
1673
|
-
|
|
1674
|
-
_context2.prev = 5;
|
|
1675
|
-
workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
|
|
1676
|
-
_context2.next = 9;
|
|
1677
|
-
return _classPrivateFieldGet(_this, _audioContext).audioWorklet.addModule(workletUrl);
|
|
1678
|
-
case 9:
|
|
1679
|
-
isAudioWorkletLoaded = true;
|
|
1680
|
-
_context2.next = 15;
|
|
1681
|
-
break;
|
|
1682
|
-
case 12:
|
|
1683
|
-
_context2.prev = 12;
|
|
1684
|
-
_context2.t0 = _context2["catch"](5);
|
|
1685
|
-
console.error("Failed to load audio worklet:", _context2.t0);
|
|
1686
|
-
case 15:
|
|
1687
|
-
_context2.next = 17;
|
|
1591
|
+
_context2.next = 5;
|
|
1688
1592
|
return window.navigator.mediaDevices.getUserMedia({
|
|
1689
|
-
audio: _classPrivateFieldGet(_this, _audio) ?
|
|
1593
|
+
audio: _classPrivateFieldGet(_this, _audio) ? _objectSpread({
|
|
1594
|
+
echoCancellation: false
|
|
1595
|
+
}, _classPrivateFieldGet(_this, _audio)) : false
|
|
1690
1596
|
});
|
|
1691
|
-
case
|
|
1597
|
+
case 5:
|
|
1692
1598
|
audioStream = _context2.sent;
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
audioStreamSource.connect(noiseSuppressorNode);
|
|
1698
|
-
noiseSuppressorNode.connect(destinationStream);
|
|
1699
|
-
_classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
|
|
1700
|
-
} else {
|
|
1701
|
-
_classPrivateFieldSet(_this, _audioStream, audioStream);
|
|
1599
|
+
_classPrivateFieldSet(_this, _audioStream, audioStream);
|
|
1600
|
+
if (!_classPrivateFieldGet(_this, _enableNoiseCancellation)) {
|
|
1601
|
+
_context2.next = 24;
|
|
1602
|
+
break;
|
|
1702
1603
|
}
|
|
1703
|
-
|
|
1704
|
-
|
|
1604
|
+
_context2.prev = 8;
|
|
1605
|
+
workletUrl = IS_EXTENSION ? chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
|
|
1606
|
+
audioContext = new AudioContext();
|
|
1607
|
+
_context2.next = 13;
|
|
1608
|
+
return audioContext.audioWorklet.addModule(workletUrl);
|
|
1609
|
+
case 13:
|
|
1610
|
+
audioStreamSource = audioContext.createMediaStreamSource(audioStream);
|
|
1611
|
+
destinationStream = audioContext.createMediaStreamDestination();
|
|
1612
|
+
noiseSuppressorNode = new AudioWorkletNode(audioContext, "nn-suppressor-processor");
|
|
1613
|
+
audioStreamSource.connect(noiseSuppressorNode);
|
|
1614
|
+
noiseSuppressorNode.connect(destinationStream);
|
|
1615
|
+
_classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
|
|
1616
|
+
_context2.next = 24;
|
|
1617
|
+
break;
|
|
1618
|
+
case 21:
|
|
1619
|
+
_context2.prev = 21;
|
|
1620
|
+
_context2.t0 = _context2["catch"](8);
|
|
1621
|
+
console.error("Failed to load audio worklet:", _context2.t0);
|
|
1622
|
+
case 24:
|
|
1623
|
+
_context2.next = 26;
|
|
1705
1624
|
return window.navigator.mediaDevices.getDisplayMedia({
|
|
1706
1625
|
video: _classPrivateFieldGet(_this, _video) || true,
|
|
1707
1626
|
audio: true
|
|
1708
1627
|
});
|
|
1709
|
-
case
|
|
1628
|
+
case 26:
|
|
1710
1629
|
stream = _context2.sent;
|
|
1711
1630
|
// Event triggered when the user clicks on the stop sharing overlay button
|
|
1712
1631
|
stream.getVideoTracks()[0].addEventListener("ended", function () {
|
|
@@ -1715,10 +1634,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1715
1634
|
finalStream = new MediaStream();
|
|
1716
1635
|
if (_classPrivateFieldGet(_this, _audio) && _classPrivateFieldGet(_this, _audioStream)) {
|
|
1717
1636
|
if (isNotEmpty(stream.getAudioTracks())) {
|
|
1718
|
-
|
|
1719
|
-
desktopAudio =
|
|
1720
|
-
microphoneAudio =
|
|
1721
|
-
combinedAudio =
|
|
1637
|
+
_audioContext = new AudioContext();
|
|
1638
|
+
desktopAudio = _audioContext.createMediaStreamSource(stream);
|
|
1639
|
+
microphoneAudio = _audioContext.createMediaStreamSource(_classPrivateFieldGet(_this, _audioStream));
|
|
1640
|
+
combinedAudio = _audioContext.createMediaStreamDestination();
|
|
1722
1641
|
desktopAudio.connect(combinedAudio);
|
|
1723
1642
|
microphoneAudio.connect(combinedAudio);
|
|
1724
1643
|
combinedAudio.stream.getAudioTracks().forEach(function (track) {
|
|
@@ -1738,11 +1657,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1738
1657
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1739
1658
|
status: SCREEN_RECORDER_STATUS.media_acquired
|
|
1740
1659
|
});
|
|
1741
|
-
_context2.next =
|
|
1660
|
+
_context2.next = 39;
|
|
1742
1661
|
break;
|
|
1743
|
-
case
|
|
1744
|
-
_context2.prev =
|
|
1745
|
-
_context2.t1 = _context2["catch"](
|
|
1662
|
+
case 36:
|
|
1663
|
+
_context2.prev = 36;
|
|
1664
|
+
_context2.t1 = _context2["catch"](1);
|
|
1746
1665
|
if (_classPrivateFieldGet(_this, _audio) && !_classPrivateFieldGet(_this, _audioStream)) {
|
|
1747
1666
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1748
1667
|
error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
|
|
@@ -1754,11 +1673,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1754
1673
|
status: SCREEN_RECORDER_STATUS.idle
|
|
1755
1674
|
});
|
|
1756
1675
|
}
|
|
1757
|
-
case
|
|
1676
|
+
case 39:
|
|
1758
1677
|
case "end":
|
|
1759
1678
|
return _context2.stop();
|
|
1760
1679
|
}
|
|
1761
|
-
}, _callee2, null, [[
|
|
1680
|
+
}, _callee2, null, [[1, 36], [8, 21]]);
|
|
1762
1681
|
}));
|
|
1763
1682
|
function value() {
|
|
1764
1683
|
return _value.apply(this, arguments);
|
|
@@ -1811,7 +1730,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1811
1730
|
_classPrivateFieldInitSpec(this, _countdownAndStartRecording, {
|
|
1812
1731
|
writable: true,
|
|
1813
1732
|
value: function value() {
|
|
1814
|
-
if (_classPrivateFieldGet(_this, _mediaRecorder).state === "recording") return;
|
|
1815
1733
|
_classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
|
|
1816
1734
|
_classPrivateFieldGet(_this, _store).setState(function (_ref3) {
|
|
1817
1735
|
var countdownTimeLeft = _ref3.countdownTimeLeft;
|
|
@@ -1828,9 +1746,23 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1828
1746
|
});
|
|
1829
1747
|
clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
|
|
1830
1748
|
_classPrivateFieldSet(_this, _startRecordingTimeoutID, setTimeout(function () {
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1749
|
+
try {
|
|
1750
|
+
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
1751
|
+
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
1752
|
+
} catch (error) {
|
|
1753
|
+
_classPrivateFieldGet(_this, _store).setState({
|
|
1754
|
+
status: SCREEN_RECORDER_STATUS.idle,
|
|
1755
|
+
error: SCREEN_RECORDER_ERROR[error.name]
|
|
1756
|
+
});
|
|
1757
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onError, [error]);
|
|
1758
|
+
_classPrivateFieldGet(_this, _mediaStream).getVideoTracks()[0].stop();
|
|
1759
|
+
_classPrivateFieldGet(_this, _mediaStream).getAudioTracks()[0].stop();
|
|
1760
|
+
_classPrivateFieldSet(_this, _mediaStream, null);
|
|
1761
|
+
_classPrivateFieldSet(_this, _stream, null);
|
|
1762
|
+
_classPrivateFieldSet(_this, _audioStream, null);
|
|
1763
|
+
_classPrivateFieldSet(_this, _mediaRecorder, null);
|
|
1764
|
+
throw error;
|
|
1765
|
+
}
|
|
1834
1766
|
}, HALF_A_SECOND_IN_MILLISECONDS));
|
|
1835
1767
|
return {
|
|
1836
1768
|
countdownTimeLeft: 0
|