@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 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":"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","x_google_ignoreList":[0]}
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, START_RECORDING_SOUND, RECORDING_LIMIT_REACHED_WARNING_SOUND, STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND, RECORDING_TIME_LIMIT_FREE_PLAN, SCREEN_RECORDER_ERROR, SCREEN_RECORDER_EVENT, HALF_A_SECOND_IN_MILLISECONDS, ONE_SECOND, ONE_SECOND_IN_MILLISECONDS, TWO_HUNDRED_MILLISECONDS, ONE_MINUTE_IN_MILLISECONDS, IS_EXTENSION } from '@bigbinary/neeto-media-recorder/constants';
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, equals, not } from 'ramda';
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: 3,
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 = 1;
1912
+ _context2.prev = 2;
1820
1913
  if (!_classPrivateFieldGet(_this, _audio)) {
1821
- _context2.next = 29;
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 = 8;
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 8:
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 = 29;
1932
+ _context2.next = 30;
1840
1933
  break;
1841
1934
  }
1842
- _context2.prev = 13;
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 = 18;
1940
+ _context2.next = 19;
1848
1941
  return audioContext.audioWorklet.addModule(workletUrl);
1849
- case 18:
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 = 29;
1949
+ _context2.next = 30;
1857
1950
  break;
1858
- case 26:
1859
- _context2.prev = 26;
1860
- _context2.t4 = _context2["catch"](13);
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 29:
1956
+ case 30:
1864
1957
  if (!_classPrivateFieldGet(_this, _videoStream)) {
1865
- _context2.next = 33;
1958
+ _context2.next = 34;
1866
1959
  break;
1867
1960
  }
1868
1961
  stream = _classPrivateFieldGet(_this, _videoStream);
1869
- _context2.next = 36;
1962
+ _context2.next = 37;
1870
1963
  break;
1871
- case 33:
1872
- _context2.next = 35;
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 = 48;
2003
+ _context2.next = 49;
1911
2004
  break;
1912
- case 45:
1913
- _context2.prev = 45;
1914
- _context2.t5 = _context2["catch"](1);
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 48:
2019
+ case 49:
1927
2020
  case "end":
1928
2021
  return _context2.stop();
1929
2022
  }
1930
- }, _callee2, null, [[1, 45], [13, 26]]);
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, _fireCallbacks).call(_this, SCREEN_RECORDER_EVENT.onCountdownEnd);
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
  };