@bigbinary/neeto-media-recorder 2.6.14 → 2.6.16-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/constants.js +5 -1
- package/constants.js.map +1 -1
- package/core.js +91 -49
- package/core.js.map +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,8 +41,8 @@ This package exports four different sets of functions and components.
|
|
|
41
41
|
- `appName`: This prop is used to set the application name which will be used
|
|
42
42
|
in the permission denied messages. By default it will be set to
|
|
43
43
|
`globalProps.appName`
|
|
44
|
-
- `mimeType`: This prop is used to set the mime type of the recording. By
|
|
45
|
-
it will be set to `video/webm;codecs=h264`.
|
|
44
|
+
- `mimeType`: This prop is used to set the mime type of the recording. By
|
|
45
|
+
default it will be set to `video/webm;codecs=h264`.
|
|
46
46
|
|
|
47
47
|
### Utilities
|
|
48
48
|
|
|
@@ -113,6 +113,7 @@ const SCREEN_RECORDER_EVENT = {
|
|
|
113
113
|
onDiscardDuringCountdown: "onDiscardDuringCountdown",
|
|
114
114
|
onRestart: "onRestart",
|
|
115
115
|
onReUpload: "onReUpload",
|
|
116
|
+
onReUploadFromDisk: "onReUploadFromDisk",
|
|
116
117
|
onPause: "onPause",
|
|
117
118
|
onResume: "onResume",
|
|
118
119
|
};
|
|
@@ -219,6 +220,10 @@ import {
|
|
|
219
220
|
the audio device. Ref:
|
|
220
221
|
https://w3c.github.io/mediacapture-main/#dom-mediatracksupportedconstraints
|
|
221
222
|
|
|
223
|
+
- `videoStream` A write-only property which can be set by the client to set a
|
|
224
|
+
video stream, once set the screenRecorder will not acquire a new video
|
|
225
|
+
stream or request for permission to share the screen.
|
|
226
|
+
|
|
222
227
|
- #### getMultipartS3Uploader
|
|
223
228
|
|
|
224
229
|
It returns an instance of `MultipartS3Uploader` which handles the upload of
|
package/constants.js
CHANGED
|
@@ -69,8 +69,12 @@ var SCREEN_RECORDER_EVENT = {
|
|
|
69
69
|
onDiscardDuringCountdown: "onDiscardDuringCountdown",
|
|
70
70
|
onRestart: "onRestart",
|
|
71
71
|
onReUpload: "onReUpload",
|
|
72
|
+
onReUploadFromDisk: "onReUploadFromDisk",
|
|
72
73
|
onPause: "onPause",
|
|
73
|
-
onResume: "onResume"
|
|
74
|
+
onResume: "onResume",
|
|
75
|
+
onCountdownStart: "onCountdownStart",
|
|
76
|
+
onCountdown: "onCountDown",
|
|
77
|
+
onCountdownEnd: "onCountdownEnd"
|
|
74
78
|
};
|
|
75
79
|
var TOTAL_RETRIES = 15;
|
|
76
80
|
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 RETRYABLE_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 = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\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 OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\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 onReUpload: \"onReUpload\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n};\n\nexport const TOTAL_RETRIES = 15;\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":["RETRYABLE_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","onError","onProgress","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","error","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","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onPause","onResume","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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
|
|
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 RETRYABLE_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 = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\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 OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\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 onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\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":["RETRYABLE_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","onError","onProgress","UPLOAD_STATUS","uploading","completed","aborting","insufficient_data","error","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","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onReUploadFromDisk","onPause","onResume","onCountdownStart","onCountdown","onCountdownEnd","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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","x_google_ignoreList":[0]}
|
package/core.js
CHANGED
|
@@ -1086,6 +1086,20 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1086
1086
|
_classPrivateFieldSet(_this, _unUploadedChunks, []);
|
|
1087
1087
|
}
|
|
1088
1088
|
});
|
|
1089
|
+
_defineProperty(this, "completeUploadNotifyServer", function (parts, sessionLogs) {
|
|
1090
|
+
return completeUploadApi.create({
|
|
1091
|
+
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1092
|
+
payload: {
|
|
1093
|
+
parts: parts,
|
|
1094
|
+
uploadId: _classPrivateFieldGet(_this, _uploadId),
|
|
1095
|
+
isMp4: isMp4Supported(_classPrivateFieldGet(_this, _mimeType$1)),
|
|
1096
|
+
logs: sessionLogs
|
|
1097
|
+
},
|
|
1098
|
+
config: {
|
|
1099
|
+
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1100
|
+
}
|
|
1101
|
+
});
|
|
1102
|
+
});
|
|
1089
1103
|
_defineProperty(this, "completeUpload", /*#__PURE__*/function () {
|
|
1090
1104
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(sessionLogs) {
|
|
1091
1105
|
var uploadChunkToS3Promise, resolvedS3PartUploadPromises, parts;
|
|
@@ -1151,18 +1165,7 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1151
1165
|
return Number(a.partNumber) - Number(b.partNumber);
|
|
1152
1166
|
});
|
|
1153
1167
|
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> uploaded parts: ", parts);
|
|
1154
|
-
_classPrivateFieldSet(_this, _completeUploadPromise,
|
|
1155
|
-
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1156
|
-
payload: {
|
|
1157
|
-
parts: parts,
|
|
1158
|
-
uploadId: _classPrivateFieldGet(_this, _uploadId),
|
|
1159
|
-
isMp4: isMp4Supported(_classPrivateFieldGet(_this, _mimeType$1)),
|
|
1160
|
-
logs: sessionLogs
|
|
1161
|
-
},
|
|
1162
|
-
config: {
|
|
1163
|
-
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1164
|
-
}
|
|
1165
|
-
}));
|
|
1168
|
+
_classPrivateFieldSet(_this, _completeUploadPromise, _this.completeUploadNotifyServer(parts, sessionLogs));
|
|
1166
1169
|
_classPrivateFieldGet(_this, _logger$1).info("completeUpload -> completing upload... ");
|
|
1167
1170
|
_context.next = 28;
|
|
1168
1171
|
return _classPrivateFieldGet(_this, _completeUploadPromise);
|
|
@@ -1311,14 +1314,40 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1311
1314
|
}
|
|
1312
1315
|
}
|
|
1313
1316
|
});
|
|
1317
|
+
_defineProperty(this, "generatePreSignedUrl", /*#__PURE__*/function () {
|
|
1318
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(partNumber) {
|
|
1319
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
1320
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
1321
|
+
case 0:
|
|
1322
|
+
return _context3.abrupt("return", partPresignedUrlApi.create({
|
|
1323
|
+
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1324
|
+
payload: {
|
|
1325
|
+
partNumber: partNumber,
|
|
1326
|
+
uploadId: _classPrivateFieldGet(_this, _uploadId),
|
|
1327
|
+
isMp4: _classPrivateFieldGet(_this, _mimeType$1) === MIME_TYPE.mp4
|
|
1328
|
+
},
|
|
1329
|
+
config: {
|
|
1330
|
+
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1331
|
+
}
|
|
1332
|
+
}));
|
|
1333
|
+
case 1:
|
|
1334
|
+
case "end":
|
|
1335
|
+
return _context3.stop();
|
|
1336
|
+
}
|
|
1337
|
+
}, _callee3);
|
|
1338
|
+
}));
|
|
1339
|
+
return function (_x2) {
|
|
1340
|
+
return _ref3.apply(this, arguments);
|
|
1341
|
+
};
|
|
1342
|
+
}());
|
|
1314
1343
|
_classPrivateFieldInitSpec$1(this, _uploadChunkToS, {
|
|
1315
1344
|
writable: true,
|
|
1316
1345
|
value: function () {
|
|
1317
|
-
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1346
|
+
var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(chunks) {
|
|
1318
1347
|
var _this$partNumber;
|
|
1319
|
-
var partNumber, _yield$
|
|
1320
|
-
return _regeneratorRuntime.wrap(function
|
|
1321
|
-
while (1) switch (
|
|
1348
|
+
var partNumber, _yield$_this$generate, presignedUrl, s3PartUploadPromise;
|
|
1349
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
1350
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
1322
1351
|
case 0:
|
|
1323
1352
|
_classPrivateFieldGet(_this, _logger$1).info("Part ready to be uploaded: ", _classPrivateFieldGet(_this, _partNumber));
|
|
1324
1353
|
partNumber = _classPrivateFieldGet(_this, _partNumber);
|
|
@@ -1329,22 +1358,12 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1329
1358
|
type: _classPrivateFieldGet(_this, _mimeType$1)
|
|
1330
1359
|
}).size
|
|
1331
1360
|
};
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
return
|
|
1335
|
-
recordingId: _classPrivateFieldGet(_this, _recordingId),
|
|
1336
|
-
payload: {
|
|
1337
|
-
partNumber: partNumber,
|
|
1338
|
-
uploadId: _classPrivateFieldGet(_this, _uploadId),
|
|
1339
|
-
isMp4: _classPrivateFieldGet(_this, _mimeType$1) === MIME_TYPE.mp4
|
|
1340
|
-
},
|
|
1341
|
-
config: {
|
|
1342
|
-
signal: _classPrivateFieldGet(_this, _abortController).signal
|
|
1343
|
-
}
|
|
1344
|
-
});
|
|
1361
|
+
_context4.prev = 4;
|
|
1362
|
+
_context4.next = 7;
|
|
1363
|
+
return _this.generatePreSignedUrl(partNumber);
|
|
1345
1364
|
case 7:
|
|
1346
|
-
_yield$
|
|
1347
|
-
presignedUrl = _yield$
|
|
1365
|
+
_yield$_this$generate = _context4.sent;
|
|
1366
|
+
presignedUrl = _yield$_this$generate.presignedUrl;
|
|
1348
1367
|
_classPrivateFieldGet(_this, _logger$1).info("Presigned url created for partNumber:", partNumber);
|
|
1349
1368
|
s3PartUploadPromise = s3Api.presignedUpload({
|
|
1350
1369
|
presignedUrl: presignedUrl,
|
|
@@ -1373,19 +1392,19 @@ var MultipartS3Uploader = /*#__PURE__*/function () {
|
|
|
1373
1392
|
_classPrivateFieldGet(_this, _handleChunkUploadError).call(_this, error, partNumber);
|
|
1374
1393
|
});
|
|
1375
1394
|
_classPrivateFieldGet(_this, _s3PartUploadPromises).push(s3PartUploadPromise);
|
|
1376
|
-
|
|
1395
|
+
_context4.next = 17;
|
|
1377
1396
|
break;
|
|
1378
1397
|
case 14:
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
_classPrivateFieldGet(_this, _handleChunkUploadError).call(_this,
|
|
1398
|
+
_context4.prev = 14;
|
|
1399
|
+
_context4.t0 = _context4["catch"](4);
|
|
1400
|
+
_classPrivateFieldGet(_this, _handleChunkUploadError).call(_this, _context4.t0, partNumber);
|
|
1382
1401
|
case 17:
|
|
1383
1402
|
case "end":
|
|
1384
|
-
return
|
|
1403
|
+
return _context4.stop();
|
|
1385
1404
|
}
|
|
1386
|
-
},
|
|
1405
|
+
}, _callee4, null, [[4, 14]]);
|
|
1387
1406
|
}));
|
|
1388
|
-
function value(
|
|
1407
|
+
function value(_x3) {
|
|
1389
1408
|
return _value.apply(this, arguments);
|
|
1390
1409
|
}
|
|
1391
1410
|
return value;
|
|
@@ -1428,9 +1447,9 @@ function _get_isRecordingNotSet() {
|
|
|
1428
1447
|
}
|
|
1429
1448
|
var multipartS3Uploader = new MultipartS3Uploader();
|
|
1430
1449
|
var getMultipartS3Uploader = function getMultipartS3Uploader() {
|
|
1431
|
-
var
|
|
1432
|
-
|
|
1433
|
-
initialize =
|
|
1450
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1451
|
+
_ref4$initialize = _ref4.initialize,
|
|
1452
|
+
initialize = _ref4$initialize === void 0 ? false : _ref4$initialize;
|
|
1434
1453
|
if (!multipartS3Uploader || initialize) {
|
|
1435
1454
|
multipartS3Uploader = new MultipartS3Uploader();
|
|
1436
1455
|
useMultipartS3UploadStatus$1.triggerStatusChange();
|
|
@@ -1507,6 +1526,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
|
|
|
1507
1526
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
1508
1527
|
var _audio = /*#__PURE__*/new WeakMap();
|
|
1509
1528
|
var _video = /*#__PURE__*/new WeakMap();
|
|
1529
|
+
var _videoStream = /*#__PURE__*/new WeakMap();
|
|
1510
1530
|
var _mediaRecorder = /*#__PURE__*/new WeakMap();
|
|
1511
1531
|
var _mediaStream = /*#__PURE__*/new WeakMap();
|
|
1512
1532
|
var _store = /*#__PURE__*/new WeakMap();
|
|
@@ -1547,6 +1567,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1547
1567
|
writable: true,
|
|
1548
1568
|
value: void 0
|
|
1549
1569
|
});
|
|
1570
|
+
_classPrivateFieldInitSpec(this, _videoStream, {
|
|
1571
|
+
writable: true,
|
|
1572
|
+
value: void 0
|
|
1573
|
+
});
|
|
1550
1574
|
_classPrivateFieldInitSpec(this, _mediaRecorder, {
|
|
1551
1575
|
writable: true,
|
|
1552
1576
|
value: void 0
|
|
@@ -1884,13 +1908,22 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1884
1908
|
_context2.t0 = _context2["catch"](8);
|
|
1885
1909
|
console.error("Failed to load audio worklet:", _context2.t0);
|
|
1886
1910
|
case 24:
|
|
1887
|
-
|
|
1911
|
+
if (!_classPrivateFieldGet(_this, _videoStream)) {
|
|
1912
|
+
_context2.next = 28;
|
|
1913
|
+
break;
|
|
1914
|
+
}
|
|
1915
|
+
stream = _classPrivateFieldGet(_this, _videoStream);
|
|
1916
|
+
_context2.next = 31;
|
|
1917
|
+
break;
|
|
1918
|
+
case 28:
|
|
1919
|
+
_context2.next = 30;
|
|
1888
1920
|
return window.navigator.mediaDevices.getDisplayMedia({
|
|
1889
1921
|
video: _classPrivateFieldGet(_this, _video) || true,
|
|
1890
1922
|
audio: true
|
|
1891
1923
|
});
|
|
1892
|
-
case
|
|
1924
|
+
case 30:
|
|
1893
1925
|
stream = _context2.sent;
|
|
1926
|
+
case 31:
|
|
1894
1927
|
// Event triggered when the user clicks on the stop sharing overlay button
|
|
1895
1928
|
stream.getVideoTracks()[0].addEventListener("ended", function () {
|
|
1896
1929
|
_this.stopRecording();
|
|
@@ -1921,10 +1954,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1921
1954
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1922
1955
|
status: SCREEN_RECORDER_STATUS.media_acquired
|
|
1923
1956
|
});
|
|
1924
|
-
_context2.next =
|
|
1957
|
+
_context2.next = 43;
|
|
1925
1958
|
break;
|
|
1926
|
-
case
|
|
1927
|
-
_context2.prev =
|
|
1959
|
+
case 40:
|
|
1960
|
+
_context2.prev = 40;
|
|
1928
1961
|
_context2.t1 = _context2["catch"](1);
|
|
1929
1962
|
if (_classPrivateFieldGet(_this, _audio) && !_classPrivateFieldGet(_this, _audioStream)) {
|
|
1930
1963
|
_classPrivateFieldGet(_this, _store).setState({
|
|
@@ -1937,11 +1970,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1937
1970
|
status: SCREEN_RECORDER_STATUS.idle
|
|
1938
1971
|
});
|
|
1939
1972
|
}
|
|
1940
|
-
case
|
|
1973
|
+
case 43:
|
|
1941
1974
|
case "end":
|
|
1942
1975
|
return _context2.stop();
|
|
1943
1976
|
}
|
|
1944
|
-
}, _callee2, null, [[1,
|
|
1977
|
+
}, _callee2, null, [[1, 40], [8, 21]]);
|
|
1945
1978
|
}));
|
|
1946
1979
|
function value() {
|
|
1947
1980
|
return _value.apply(this, arguments);
|
|
@@ -1997,17 +2030,21 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1997
2030
|
writable: true,
|
|
1998
2031
|
value: function value() {
|
|
1999
2032
|
if (_classPrivateFieldGet(_this, _countdownTimerId)) return;
|
|
2033
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownStart);
|
|
2000
2034
|
_classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
|
|
2001
2035
|
_classPrivateFieldGet(_this, _store).setState(function (_ref3) {
|
|
2002
2036
|
var countdownTimeLeft = _ref3.countdownTimeLeft;
|
|
2003
|
-
if (equals(countdownTimeLeft, ONE_SECOND)) {
|
|
2037
|
+
if (equals(countdownTimeLeft, ONE_SECOND) && !_classPrivateFieldGet(_this, _videoStream)) {
|
|
2004
2038
|
_classPrivateFieldGet(_this, _startRecordingAudio).play();
|
|
2005
2039
|
}
|
|
2006
2040
|
if (countdownTimeLeft - ONE_SECOND > 0) {
|
|
2041
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [countdownTimeLeft - ONE_SECOND]);
|
|
2007
2042
|
return {
|
|
2008
2043
|
countdownTimeLeft: countdownTimeLeft - ONE_SECOND
|
|
2009
2044
|
};
|
|
2010
2045
|
}
|
|
2046
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [0]);
|
|
2047
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
|
|
2011
2048
|
_classPrivateFieldGet(_this, _store).setState({
|
|
2012
2049
|
status: SCREEN_RECORDER_STATUS.recording
|
|
2013
2050
|
});
|
|
@@ -2144,6 +2181,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
2144
2181
|
get: function get() {
|
|
2145
2182
|
return _classPrivateFieldGet(this, _audio);
|
|
2146
2183
|
}
|
|
2184
|
+
}, {
|
|
2185
|
+
key: "videoStream",
|
|
2186
|
+
set: function set(value) {
|
|
2187
|
+
_classPrivateFieldSet(this, _videoStream, value);
|
|
2188
|
+
}
|
|
2147
2189
|
}]);
|
|
2148
2190
|
return ScreenRecorder;
|
|
2149
2191
|
}();
|