@bigbinary/neeto-media-recorder 2.7.7 → 2.7.9
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 +5 -2
- package/constants.js.map +1 -1
- package/core.js +135 -38
- package/core.js.map +1 -1
- package/index.js +61 -27
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +4 -2
package/constants.js
CHANGED
|
@@ -19,6 +19,7 @@ var TWO_HUNDRED_MILLISECONDS = 200;
|
|
|
19
19
|
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
|
+
var COUNTDOWN_TIME = 3;
|
|
22
23
|
var UPLOAD_EVENT = {
|
|
23
24
|
onComplete: "onComplete",
|
|
24
25
|
onError: "onError",
|
|
@@ -59,7 +60,8 @@ var SCREEN_RECORDER_ERROR = {
|
|
|
59
60
|
None: "",
|
|
60
61
|
NoRecorder: "recorder_error",
|
|
61
62
|
UnSupportedBrowser: "unsupported_browser",
|
|
62
|
-
FailedToStart: "failed_to_start"
|
|
63
|
+
FailedToStart: "failed_to_start",
|
|
64
|
+
InsufficientData: "insufficient_data"
|
|
63
65
|
};
|
|
64
66
|
var SCREEN_RECORDER_EVENT = {
|
|
65
67
|
onStart: "onStart",
|
|
@@ -99,6 +101,7 @@ var MIME_TYPE = {
|
|
|
99
101
|
webmH264: "video/webm;codecs=h264"
|
|
100
102
|
};
|
|
101
103
|
var START_RECORDING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3";
|
|
104
|
+
var COUNTDOWN_TICK_SOUND = "https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3";
|
|
102
105
|
var STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3";
|
|
103
106
|
var RECORDING_LIMIT_REACHED_WARNING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3";
|
|
104
107
|
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
@@ -107,5 +110,5 @@ var RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours
|
|
|
107
110
|
var MIC_NOT_WORKING_ALERT_TIME = 15;
|
|
108
111
|
var MIC_NOT_WORKING_SILENCE_TIMEOUT = MIC_NOT_WORKING_ALERT_TIME * 1000;
|
|
109
112
|
|
|
110
|
-
export { DEFAULT_RETRY_CONFIG, HALF_A_SECOND_IN_MILLISECONDS, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIC_NOT_WORKING_ALERT_TIME, MIC_NOT_WORKING_SILENCE_TIMEOUT, MIME_TYPE, NETWORK_ERROR, ONE_HOUR_IN_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RECORDING_LIMIT_REACHED_WARNING_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, RECORDING_TIME_LIMIT_PRO_PLAN, RETRYABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, TWO_HUNDRED_MILLISECONDS, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
113
|
+
export { COUNTDOWN_TICK_SOUND, COUNTDOWN_TIME, DEFAULT_RETRY_CONFIG, HALF_A_SECOND_IN_MILLISECONDS, HAS_CHROME_NAMESPACE, INITIAL_RETRY_DELAY, IS_EXTENSION, IS_SAFARI, IS_SAFARI_EXTENSION, MAX_RETRY_DELAY, MIC_NOT_WORKING_ALERT_TIME, MIC_NOT_WORKING_SILENCE_TIMEOUT, MIME_TYPE, NETWORK_ERROR, ONE_HOUR_IN_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, PERMISSIONS_HELP_DOC, RECORDING_LIMIT_REACHED_WARNING_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, RECORDING_TIME_LIMIT_PRO_PLAN, RETRYABLE_ERRORS, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, SCREEN_RECORDER_STATUS, START_RECORDING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, TIMEOUT_ERROR, TOTAL_RETRIES, TWO_HUNDRED_MILLISECONDS, UPLOAD_EVENT, UPLOAD_STATUS };
|
|
111
114
|
//# sourceMappingURL=constants.js.map
|
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":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","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\nexport const MIC_NOT_WORKING_ALERT_TIME = 15;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\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","MIC_NOT_WORKING_ALERT_TIME","MIC_NOT_WORKING_SILENCE_TIMEOUT"],"mappings":";;;AAAA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB,EAAE,yBAAyB,CAAC;AAC5B;AACA,EAAE,OAAO,OAAO,GAAG,UAAU,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE;AACpG,IAAI,OAAO,OAAO,CAAC,CAAC;AACpB,GAAG,GAAG,UAAU,CAAC,EAAE;AACnB,IAAI,OAAO,CAAC,IAAI,UAAU,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAC;AACxH,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAChB;;ACLA;IACaA,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAC;AAEnC,IAAMC,0BAA0B,GAAG,KAAI;AACvC,IAAMC,6BAA6B,GAAG,IAAG;AACzC,IAAMC,wBAAwB,GAAG,IAAG;AAE9BC,IAAAA,0BAA0B,GAAG,EAAE,GAAGH,2BAA0B;AAC5DI,IAAAA,wBAAwB,GAAG,EAAE,GAAGD,2BAA0B;AAEhE,IAAME,UAAU,GAAG,EAAC;AAEpB,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,UAAU,EAAE,YAAA;AACd,EAAC;AAEM,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,KAAK,EAAE,OAAA;AACT,EAAC;AAEM,IAAMC,sBAAsB,GAAG;AACpCC,EAAAA,aAAa,EAAE,eAAe;AAC9BC,EAAAA,iBAAiB,EAAE,mBAAmB;AACtCC,EAAAA,wBAAwB,EAAE,0BAA0B;AACpDC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,yBAAyB,EAAE,2BAA2B;AACtDC,EAAAA,mBAAmB,EAAE,qBAAqB;AAC1CC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,UAAU,EAAE,YAAY;AACxBC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAA;AACV,EAAC;AAEM,IAAMC,qBAAqB,GAAG;AACnCC,EAAAA,mBAAmB,EAAE,uBAAuB;AAC5CC,EAAAA,UAAU,EAAE,eAAe;AAC3BC,EAAAA,eAAe,EAAE,mBAAmB;AACpCC,EAAAA,aAAa,EAAE,0BAA0B;AACzCC,EAAAA,gBAAgB,EAAE,cAAc;AAChCC,EAAAA,oBAAoB,EAAE,2BAA2B;AACjDC,EAAAA,SAAS,EAAE,qBAAqB;AAChCC,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE,gBAAgB;AAC5BC,EAAAA,kBAAkB,EAAE,qBAAqB;AACzCC,EAAAA,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["node_modules/@babel/runtime/helpers/esm/typeof.js","src/constants.js"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","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 COUNTDOWN_TIME = 3;\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 InsufficientData: \"insufficient_data\",\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 COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.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\nexport const MIC_NOT_WORKING_ALERT_TIME = 15;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\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","COUNTDOWN_TIME","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","InsufficientData","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","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","RECORDING_TIME_LIMIT_PRO_PLAN","MIC_NOT_WORKING_ALERT_TIME","MIC_NOT_WORKING_SILENCE_TIMEOUT"],"mappings":"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","x_google_ignoreList":[0]}
|
package/core.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { isNotEmpty, existsBy, isNot, noop } from '@bigbinary/neeto-cist';
|
|
3
|
-
import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS
|
|
3
|
+
import { MIME_TYPE as MIME_TYPE$1, UPLOAD_EVENT, UPLOAD_STATUS, SCREEN_RECORDER_STATUS as SCREEN_RECORDER_STATUS$1, COUNTDOWN_TIME } from '@bigbinary/neeto-media-recorder/constants';
|
|
4
4
|
import { useMultipartS3UploadStatus as useMultipartS3UploadStatus$1, getMultipartS3Uploader as getMultipartS3Uploader$1 } from '@bigbinary/neeto-media-recorder/core';
|
|
5
|
-
import { isNotNil, min, isNil, identity, isEmpty, pick,
|
|
5
|
+
import { isNotNil, min, isNil, identity, isEmpty, pick, not } from 'ramda';
|
|
6
6
|
import platform from 'platform';
|
|
7
7
|
import withImmutableActions from '@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions';
|
|
8
8
|
import { create as create$3 } from 'zustand';
|
|
@@ -631,6 +631,57 @@ function _wrapNativeSuper(t) {
|
|
|
631
631
|
}, _wrapNativeSuper(t);
|
|
632
632
|
}
|
|
633
633
|
|
|
634
|
+
var ONE_SECOND_IN_MILLISECONDS = 1000;
|
|
635
|
+
var HALF_A_SECOND_IN_MILLISECONDS = 500;
|
|
636
|
+
var TWO_HUNDRED_MILLISECONDS = 200;
|
|
637
|
+
var ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;
|
|
638
|
+
var ONE_SECOND = 1;
|
|
639
|
+
var SCREEN_RECORDER_STATUS = {
|
|
640
|
+
media_aborted: "media_aborted",
|
|
641
|
+
permission_denied: "permission_denied",
|
|
642
|
+
no_specified_media_found: "no_specified_media_found",
|
|
643
|
+
media_in_use: "media_in_use",
|
|
644
|
+
invalid_media_constraints: "invalid_media_constraints",
|
|
645
|
+
no_chrome_flags_set: "no_chrome_flags_set",
|
|
646
|
+
recorder_error: "recorder_error",
|
|
647
|
+
idle: "idle",
|
|
648
|
+
acquiring_media: "acquiring_media",
|
|
649
|
+
media_acquired: "media_acquired",
|
|
650
|
+
restarting: "restarting",
|
|
651
|
+
recording: "recording",
|
|
652
|
+
stopping: "stopping",
|
|
653
|
+
stopped: "stopped",
|
|
654
|
+
paused: "paused"
|
|
655
|
+
};
|
|
656
|
+
var SCREEN_RECORDER_ERROR = {
|
|
657
|
+
MicPermissionDenied: "mic_permission_denied",
|
|
658
|
+
AbortError: "media_aborted",
|
|
659
|
+
NotAllowedError: "permission_denied",
|
|
660
|
+
NotFoundError: "no_specified_media_found",
|
|
661
|
+
NotReadableError: "media_in_use",
|
|
662
|
+
OverconstrainedError: "invalid_media_constraints",
|
|
663
|
+
TypeError: "no_chrome_flags_set",
|
|
664
|
+
None: "",
|
|
665
|
+
NoRecorder: "recorder_error",
|
|
666
|
+
UnSupportedBrowser: "unsupported_browser",
|
|
667
|
+
FailedToStart: "failed_to_start",
|
|
668
|
+
InsufficientData: "insufficient_data"
|
|
669
|
+
};
|
|
670
|
+
var SCREEN_RECORDER_EVENT = {
|
|
671
|
+
onStart: "onStart",
|
|
672
|
+
onStop: "onStop",
|
|
673
|
+
onDiscard: "onDiscard",
|
|
674
|
+
onDataAvailable: "onDataAvailable",
|
|
675
|
+
onDiscardDuringCountdown: "onDiscardDuringCountdown",
|
|
676
|
+
onRestart: "onRestart",
|
|
677
|
+
onReUpload: "onReUpload",
|
|
678
|
+
onReUploadFromDisk: "onReUploadFromDisk",
|
|
679
|
+
onPause: "onPause",
|
|
680
|
+
onResume: "onResume",
|
|
681
|
+
onCountdownStart: "onCountdownStart",
|
|
682
|
+
onCountdown: "onCountDown",
|
|
683
|
+
onCountdownEnd: "onCountdownEnd"
|
|
684
|
+
};
|
|
634
685
|
var TOTAL_RETRIES = 15;
|
|
635
686
|
var INITIAL_RETRY_DELAY = 4000;
|
|
636
687
|
var MAX_RETRY_DELAY = 16000;
|
|
@@ -640,12 +691,17 @@ var DEFAULT_RETRY_CONFIG = {
|
|
|
640
691
|
retryableStatuses: []
|
|
641
692
|
};
|
|
642
693
|
var HAS_CHROME_NAMESPACE = (typeof chrome === "undefined" ? "undefined" : _typeof$1(chrome)) === "object";
|
|
643
|
-
HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
|
|
694
|
+
var IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);
|
|
644
695
|
platform.name === "Safari";
|
|
645
696
|
var MIME_TYPE = {
|
|
646
697
|
mp4: "video/mp4",
|
|
647
698
|
webmH264: "video/webm;codecs=h264"
|
|
648
699
|
};
|
|
700
|
+
var START_RECORDING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3";
|
|
701
|
+
var COUNTDOWN_TICK_SOUND = "https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3";
|
|
702
|
+
var STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3";
|
|
703
|
+
var RECORDING_LIMIT_REACHED_WARNING_SOUND = "https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3";
|
|
704
|
+
var RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes
|
|
649
705
|
|
|
650
706
|
var sleep = function sleep(delay) {
|
|
651
707
|
return new Promise(function (resolve) {
|
|
@@ -1449,10 +1505,10 @@ var DISPLAY_SURFACE = {
|
|
|
1449
1505
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
1450
1506
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1451
1507
|
var initialState = {
|
|
1452
|
-
status: SCREEN_RECORDER_STATUS.idle,
|
|
1508
|
+
status: SCREEN_RECORDER_STATUS$1.idle,
|
|
1453
1509
|
error: "",
|
|
1454
1510
|
elapsedTime: 0,
|
|
1455
|
-
countdownTimeLeft:
|
|
1511
|
+
countdownTimeLeft: COUNTDOWN_TIME,
|
|
1456
1512
|
showTimeLimitWarning: false
|
|
1457
1513
|
};
|
|
1458
1514
|
var prepareStore = function prepareStore() {
|
|
@@ -1482,6 +1538,7 @@ var _lastTimerUpdatedAt = /*#__PURE__*/new WeakMap();
|
|
|
1482
1538
|
var _timerId = /*#__PURE__*/new WeakMap();
|
|
1483
1539
|
var _countdownTimerId = /*#__PURE__*/new WeakMap();
|
|
1484
1540
|
var _startRecordingAudio = /*#__PURE__*/new WeakMap();
|
|
1541
|
+
var _countdownTickAudio = /*#__PURE__*/new WeakMap();
|
|
1485
1542
|
var _recordingLimitWarningAudio = /*#__PURE__*/new WeakMap();
|
|
1486
1543
|
var _stopRecordingDueToLimitReachedAudio = /*#__PURE__*/new WeakMap();
|
|
1487
1544
|
var _stream = /*#__PURE__*/new WeakMap();
|
|
@@ -1492,7 +1549,9 @@ var _startRecordingTimeoutID = /*#__PURE__*/new WeakMap();
|
|
|
1492
1549
|
var _enableNoiseCancellation = /*#__PURE__*/new WeakMap();
|
|
1493
1550
|
var _showCountdown = /*#__PURE__*/new WeakMap();
|
|
1494
1551
|
var _mimeType = /*#__PURE__*/new WeakMap();
|
|
1552
|
+
var _dataReceiving = /*#__PURE__*/new WeakMap();
|
|
1495
1553
|
var _stopAllStreams = /*#__PURE__*/new WeakMap();
|
|
1554
|
+
var _playCountdownBeep = /*#__PURE__*/new WeakMap();
|
|
1496
1555
|
var _checkCompatibility = /*#__PURE__*/new WeakMap();
|
|
1497
1556
|
var _acquireMediaStream = /*#__PURE__*/new WeakMap();
|
|
1498
1557
|
var _fireCallbacks = /*#__PURE__*/new WeakMap();
|
|
@@ -1560,6 +1619,10 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1560
1619
|
writable: true,
|
|
1561
1620
|
value: new Audio(START_RECORDING_SOUND)
|
|
1562
1621
|
});
|
|
1622
|
+
_classPrivateFieldInitSpec(this, _countdownTickAudio, {
|
|
1623
|
+
writable: true,
|
|
1624
|
+
value: new Audio(COUNTDOWN_TICK_SOUND)
|
|
1625
|
+
});
|
|
1563
1626
|
_classPrivateFieldInitSpec(this, _recordingLimitWarningAudio, {
|
|
1564
1627
|
writable: true,
|
|
1565
1628
|
value: new Audio(RECORDING_LIMIT_REACHED_WARNING_SOUND)
|
|
@@ -1600,9 +1663,16 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1600
1663
|
writable: true,
|
|
1601
1664
|
value: getSupportedMimeType()
|
|
1602
1665
|
});
|
|
1666
|
+
_classPrivateFieldInitSpec(this, _dataReceiving, {
|
|
1667
|
+
writable: true,
|
|
1668
|
+
value: false
|
|
1669
|
+
});
|
|
1603
1670
|
_defineProperty(this, "getAudioStream", function () {
|
|
1604
1671
|
return _classPrivateFieldGet(_this, _audioStream);
|
|
1605
1672
|
});
|
|
1673
|
+
_defineProperty(this, "hasData", function () {
|
|
1674
|
+
return _classPrivateFieldGet(_this, _dataReceiving);
|
|
1675
|
+
});
|
|
1606
1676
|
_defineProperty(this, "setEnableNoiseCancellation", function (value) {
|
|
1607
1677
|
return _classPrivateFieldSet(_this, _enableNoiseCancellation, value);
|
|
1608
1678
|
});
|
|
@@ -1638,6 +1708,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1638
1708
|
_defineProperty(this, "removeAllCallbacksByEvent", function (event) {
|
|
1639
1709
|
delete _classPrivateFieldGet(_this, _callbacks)[event];
|
|
1640
1710
|
});
|
|
1711
|
+
_defineProperty(this, "setError", function (error) {
|
|
1712
|
+
_classPrivateFieldGet(_this, _store).setState({
|
|
1713
|
+
error: error
|
|
1714
|
+
});
|
|
1715
|
+
});
|
|
1641
1716
|
_defineProperty(this, "startRecording", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
1642
1717
|
var options;
|
|
1643
1718
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
@@ -1692,6 +1767,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1692
1767
|
_defineProperty(this, "stopRecording", function () {
|
|
1693
1768
|
var _classPrivateFieldGet4;
|
|
1694
1769
|
if (_classPrivateFieldGet(_this, _mediaRecorder) === undefined) {
|
|
1770
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> stopRecording. mediaRecorder undefined");
|
|
1695
1771
|
/**
|
|
1696
1772
|
* If the permission is denied and "Stop sharing" overlay is clicked
|
|
1697
1773
|
*/
|
|
@@ -1699,6 +1775,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1699
1775
|
return;
|
|
1700
1776
|
}
|
|
1701
1777
|
if (((_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet4 === void 0 ? void 0 : _classPrivateFieldGet4.state) === "inactive") {
|
|
1778
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> stopRecording. mediaRecorder state inactive");
|
|
1702
1779
|
// When recording is stopped from the 'Stop Sharing' overlay
|
|
1703
1780
|
// before it even starts, i.e during the countdown.
|
|
1704
1781
|
// Or if the recording is stopped before startRecordingTimeoutID timeout executes
|
|
@@ -1719,6 +1796,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1719
1796
|
_defineProperty(this, "pauseRecording", function () {
|
|
1720
1797
|
var _classPrivateFieldGet5;
|
|
1721
1798
|
if (((_classPrivateFieldGet5 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.state) === "recording") {
|
|
1799
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> pauseRecording.");
|
|
1722
1800
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1723
1801
|
status: SCREEN_RECORDER_STATUS.paused
|
|
1724
1802
|
});
|
|
@@ -1729,6 +1807,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1729
1807
|
_defineProperty(this, "resumeRecording", function () {
|
|
1730
1808
|
var _classPrivateFieldGet6;
|
|
1731
1809
|
if (((_classPrivateFieldGet6 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.state) === "paused") {
|
|
1810
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> resumeRecording.");
|
|
1732
1811
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1733
1812
|
status: SCREEN_RECORDER_STATUS.recording
|
|
1734
1813
|
});
|
|
@@ -1739,6 +1818,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1739
1818
|
_defineProperty(this, "discardRecording", function () {
|
|
1740
1819
|
var _classPrivateFieldGet7;
|
|
1741
1820
|
if (((_classPrivateFieldGet7 = _classPrivateFieldGet(_this, _mediaRecorder)) === null || _classPrivateFieldGet7 === void 0 ? void 0 : _classPrivateFieldGet7.state) === "inactive") return;
|
|
1821
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> discardRecording.");
|
|
1742
1822
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1743
1823
|
status: SCREEN_RECORDER_STATUS.stopping
|
|
1744
1824
|
});
|
|
@@ -1751,6 +1831,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1751
1831
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onDiscard);
|
|
1752
1832
|
});
|
|
1753
1833
|
_defineProperty(this, "restartRecording", function () {
|
|
1834
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> restartRecording.");
|
|
1754
1835
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1755
1836
|
status: SCREEN_RECORDER_STATUS.stopping
|
|
1756
1837
|
});
|
|
@@ -1763,14 +1844,17 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1763
1844
|
_this.startRecording();
|
|
1764
1845
|
});
|
|
1765
1846
|
_defineProperty(this, "resetState", function () {
|
|
1847
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> resetState.");
|
|
1766
1848
|
_classPrivateFieldSet(_this, _mediaChunks, []);
|
|
1767
1849
|
_classPrivateFieldSet(_this, _callbacks, {});
|
|
1850
|
+
_classPrivateFieldSet(_this, _dataReceiving, false);
|
|
1768
1851
|
clearInterval(_classPrivateFieldGet(_this, _timerId));
|
|
1769
1852
|
clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
|
|
1770
1853
|
_classPrivateFieldGet(_this, _store).getState().resetState();
|
|
1771
1854
|
_classPrivateFieldGet(_this, _checkCompatibility).call(_this);
|
|
1772
1855
|
});
|
|
1773
1856
|
_defineProperty(this, "revokePermissions", function () {
|
|
1857
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> revokePermissions.");
|
|
1774
1858
|
if (!_classPrivateFieldGet(_this, _mediaRecorder)) return;
|
|
1775
1859
|
_classPrivateFieldGet(_this, _mediaRecorder).onstop = null;
|
|
1776
1860
|
_classPrivateFieldGet(_this, _stopAllStreams).call(_this);
|
|
@@ -1779,6 +1863,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1779
1863
|
writable: true,
|
|
1780
1864
|
value: function value() {
|
|
1781
1865
|
var _classPrivateFieldGet8, _classPrivateFieldGet9, _classPrivateFieldGet10, _classPrivateFieldGet11, _classPrivateFieldGet12, _classPrivateFieldGet13;
|
|
1866
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> stopAllStreams.");
|
|
1782
1867
|
_classPrivateFieldGet(_this, _mediaStream) && ((_classPrivateFieldGet8 = _classPrivateFieldGet(_this, _mediaStream)) === null || _classPrivateFieldGet8 === void 0 ? void 0 : _classPrivateFieldGet8.getTracks().forEach(function (track) {
|
|
1783
1868
|
return track.stop();
|
|
1784
1869
|
}));
|
|
@@ -1793,6 +1878,13 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1793
1878
|
});
|
|
1794
1879
|
}
|
|
1795
1880
|
});
|
|
1881
|
+
_classPrivateFieldInitSpec(this, _playCountdownBeep, {
|
|
1882
|
+
writable: true,
|
|
1883
|
+
value: function value() {
|
|
1884
|
+
_classPrivateFieldGet(_this, _countdownTickAudio).currentTime = 0;
|
|
1885
|
+
_classPrivateFieldGet(_this, _countdownTickAudio).play();
|
|
1886
|
+
}
|
|
1887
|
+
});
|
|
1796
1888
|
_classPrivateFieldInitSpec(this, _checkCompatibility, {
|
|
1797
1889
|
writable: true,
|
|
1798
1890
|
value: function value() {
|
|
@@ -1813,70 +1905,71 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1813
1905
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
1814
1906
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1815
1907
|
case 0:
|
|
1908
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> acquireMediaStream.");
|
|
1816
1909
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1817
1910
|
status: SCREEN_RECORDER_STATUS.acquiring_media
|
|
1818
1911
|
});
|
|
1819
|
-
_context2.prev =
|
|
1912
|
+
_context2.prev = 2;
|
|
1820
1913
|
if (!_classPrivateFieldGet(_this, _audio)) {
|
|
1821
|
-
_context2.next =
|
|
1914
|
+
_context2.next = 30;
|
|
1822
1915
|
break;
|
|
1823
1916
|
}
|
|
1824
1917
|
_context2.t0 = _classPrivateFieldSet;
|
|
1825
1918
|
_context2.t1 = _this;
|
|
1826
1919
|
_context2.t2 = _micAudioStream;
|
|
1827
|
-
_context2.next =
|
|
1920
|
+
_context2.next = 9;
|
|
1828
1921
|
return window.navigator.mediaDevices.getUserMedia({
|
|
1829
1922
|
audio: _classPrivateFieldGet(_this, _audio) ? _objectSpread({
|
|
1830
1923
|
echoCancellation: false
|
|
1831
1924
|
}, _classPrivateFieldGet(_this, _audio)) : false
|
|
1832
1925
|
});
|
|
1833
|
-
case
|
|
1926
|
+
case 9:
|
|
1834
1927
|
_context2.t3 = _context2.sent;
|
|
1835
1928
|
(0, _context2.t0)(_context2.t1, _context2.t2, _context2.t3);
|
|
1836
1929
|
audioStream = addGainNode(_classPrivateFieldGet(_this, _micAudioStream), 1.75); // Increase volume by 50%
|
|
1837
1930
|
_classPrivateFieldSet(_this, _audioStream, audioStream);
|
|
1838
1931
|
if (!_classPrivateFieldGet(_this, _enableNoiseCancellation)) {
|
|
1839
|
-
_context2.next =
|
|
1932
|
+
_context2.next = 30;
|
|
1840
1933
|
break;
|
|
1841
1934
|
}
|
|
1842
|
-
_context2.prev =
|
|
1935
|
+
_context2.prev = 14;
|
|
1843
1936
|
workletUrl = IS_EXTENSION ?
|
|
1844
1937
|
// eslint-disable-next-line no-undef
|
|
1845
1938
|
chrome.runtime.getURL("public/NoiseSuppressorWorklet.js") : "NoiseSuppressorWorklet.js";
|
|
1846
1939
|
audioContext = new AudioContext();
|
|
1847
|
-
_context2.next =
|
|
1940
|
+
_context2.next = 19;
|
|
1848
1941
|
return audioContext.audioWorklet.addModule(workletUrl);
|
|
1849
|
-
case
|
|
1942
|
+
case 19:
|
|
1850
1943
|
audioStreamSource = audioContext.createMediaStreamSource(audioStream);
|
|
1851
1944
|
destinationStream = audioContext.createMediaStreamDestination();
|
|
1852
1945
|
noiseSuppressorNode = new AudioWorkletNode(audioContext, "nn-suppressor-processor");
|
|
1853
1946
|
audioStreamSource.connect(noiseSuppressorNode);
|
|
1854
1947
|
noiseSuppressorNode.connect(destinationStream);
|
|
1855
1948
|
_classPrivateFieldSet(_this, _audioStream, destinationStream.stream);
|
|
1856
|
-
_context2.next =
|
|
1949
|
+
_context2.next = 30;
|
|
1857
1950
|
break;
|
|
1858
|
-
case
|
|
1859
|
-
_context2.prev =
|
|
1860
|
-
_context2.t4 = _context2["catch"](
|
|
1951
|
+
case 27:
|
|
1952
|
+
_context2.prev = 27;
|
|
1953
|
+
_context2.t4 = _context2["catch"](14);
|
|
1861
1954
|
// eslint-disable-next-line no-console
|
|
1862
1955
|
console.error("Failed to load audio worklet:", _context2.t4);
|
|
1863
|
-
case
|
|
1956
|
+
case 30:
|
|
1864
1957
|
if (!_classPrivateFieldGet(_this, _videoStream)) {
|
|
1865
|
-
_context2.next =
|
|
1958
|
+
_context2.next = 34;
|
|
1866
1959
|
break;
|
|
1867
1960
|
}
|
|
1868
1961
|
stream = _classPrivateFieldGet(_this, _videoStream);
|
|
1869
|
-
_context2.next =
|
|
1962
|
+
_context2.next = 37;
|
|
1870
1963
|
break;
|
|
1871
|
-
case
|
|
1872
|
-
_context2.next =
|
|
1964
|
+
case 34:
|
|
1965
|
+
_context2.next = 36;
|
|
1873
1966
|
return window.navigator.mediaDevices.getDisplayMedia({
|
|
1874
1967
|
video: _classPrivateFieldGet(_this, _video) || true,
|
|
1875
1968
|
audio: true
|
|
1876
1969
|
});
|
|
1877
|
-
case 35:
|
|
1878
|
-
stream = _context2.sent;
|
|
1879
1970
|
case 36:
|
|
1971
|
+
stream = _context2.sent;
|
|
1972
|
+
case 37:
|
|
1880
1973
|
// Event triggered when the user clicks on the stop sharing overlay button
|
|
1881
1974
|
stream.getVideoTracks()[0].addEventListener("ended", function () {
|
|
1882
1975
|
_this.stopRecording();
|
|
@@ -1907,11 +2000,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1907
2000
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1908
2001
|
status: SCREEN_RECORDER_STATUS.media_acquired
|
|
1909
2002
|
});
|
|
1910
|
-
_context2.next =
|
|
2003
|
+
_context2.next = 49;
|
|
1911
2004
|
break;
|
|
1912
|
-
case
|
|
1913
|
-
_context2.prev =
|
|
1914
|
-
_context2.t5 = _context2["catch"](
|
|
2005
|
+
case 46:
|
|
2006
|
+
_context2.prev = 46;
|
|
2007
|
+
_context2.t5 = _context2["catch"](2);
|
|
1915
2008
|
if (_classPrivateFieldGet(_this, _audio) && !_classPrivateFieldGet(_this, _audioStream)) {
|
|
1916
2009
|
_classPrivateFieldGet(_this, _store).setState({
|
|
1917
2010
|
error: SCREEN_RECORDER_ERROR.MicPermissionDenied,
|
|
@@ -1923,11 +2016,11 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1923
2016
|
status: SCREEN_RECORDER_STATUS.idle
|
|
1924
2017
|
});
|
|
1925
2018
|
}
|
|
1926
|
-
case
|
|
2019
|
+
case 49:
|
|
1927
2020
|
case "end":
|
|
1928
2021
|
return _context2.stop();
|
|
1929
2022
|
}
|
|
1930
|
-
}, _callee2, null, [[
|
|
2023
|
+
}, _callee2, null, [[2, 46], [14, 27]]);
|
|
1931
2024
|
}));
|
|
1932
2025
|
function value() {
|
|
1933
2026
|
return _value.apply(this, arguments);
|
|
@@ -1948,6 +2041,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1948
2041
|
_classPrivateFieldInitSpec(this, _onRecordingStart, {
|
|
1949
2042
|
writable: true,
|
|
1950
2043
|
value: function value() {
|
|
2044
|
+
_classPrivateFieldGet(_this, _logger).info("screenRecorder -> onRecordingStart.");
|
|
1951
2045
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onStart);
|
|
1952
2046
|
}
|
|
1953
2047
|
});
|
|
@@ -1957,6 +2051,7 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
1957
2051
|
var data = _ref2.data;
|
|
1958
2052
|
_classPrivateFieldGet(_this, _logger).info("received data in onRecordingActive");
|
|
1959
2053
|
if (data.size <= 0) return;
|
|
2054
|
+
_classPrivateFieldSet(_this, _dataReceiving, true);
|
|
1960
2055
|
_classPrivateFieldGet(_this, _mediaChunks).push(data);
|
|
1961
2056
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onDataAvailable, [data]);
|
|
1962
2057
|
}
|
|
@@ -2001,9 +2096,6 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
2001
2096
|
});
|
|
2002
2097
|
return;
|
|
2003
2098
|
}
|
|
2004
|
-
_classPrivateFieldGet(_this, _store).setState({
|
|
2005
|
-
status: SCREEN_RECORDER_STATUS.recording
|
|
2006
|
-
});
|
|
2007
2099
|
_classPrivateFieldGet(_this, _mediaRecorder).start(5000);
|
|
2008
2100
|
_classPrivateFieldGet(_this, _logger).info("started mediaRecorder");
|
|
2009
2101
|
_classPrivateFieldGet(_this, _startTimer).call(_this);
|
|
@@ -2039,20 +2131,25 @@ var ScreenRecorder = /*#__PURE__*/function () {
|
|
|
2039
2131
|
_classPrivateFieldSet(_this, _countdownTimerId, setInterval(function () {
|
|
2040
2132
|
_classPrivateFieldGet(_this, _store).setState(function (_ref3) {
|
|
2041
2133
|
var countdownTimeLeft = _ref3.countdownTimeLeft;
|
|
2042
|
-
if (equals(countdownTimeLeft, ONE_SECOND) && !_classPrivateFieldGet(_this, _videoStream)) {
|
|
2043
|
-
_classPrivateFieldGet(_this, _startRecordingAudio).play();
|
|
2044
|
-
}
|
|
2045
2134
|
if (countdownTimeLeft - ONE_SECOND > 0) {
|
|
2046
2135
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [countdownTimeLeft - ONE_SECOND]);
|
|
2136
|
+
_classPrivateFieldGet(_this, _playCountdownBeep).call(_this);
|
|
2047
2137
|
return {
|
|
2048
2138
|
countdownTimeLeft: countdownTimeLeft - ONE_SECOND
|
|
2049
2139
|
};
|
|
2050
2140
|
}
|
|
2051
2141
|
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdown, [0]);
|
|
2052
|
-
_classPrivateFieldGet(_this,
|
|
2142
|
+
_classPrivateFieldGet(_this, _playCountdownBeep).call(_this);
|
|
2143
|
+
setTimeout(function () {
|
|
2144
|
+
_classPrivateFieldGet(_this, _startRecordingAudio).play();
|
|
2145
|
+
_classPrivateFieldGet(_this, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
|
|
2146
|
+
_classPrivateFieldGet(_this, _store).setState({
|
|
2147
|
+
status: SCREEN_RECORDER_STATUS.recording
|
|
2148
|
+
});
|
|
2149
|
+
_classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
|
|
2150
|
+
}, ONE_SECOND_IN_MILLISECONDS);
|
|
2053
2151
|
clearInterval(_classPrivateFieldGet(_this, _countdownTimerId));
|
|
2054
2152
|
_classPrivateFieldSet(_this, _countdownTimerId, null);
|
|
2055
|
-
_classPrivateFieldGet(_this, _startMediaRecorder).call(_this);
|
|
2056
2153
|
return {
|
|
2057
2154
|
countdownTimeLeft: 0
|
|
2058
2155
|
};
|