@myinterview/widget-react 1.0.40 → 1.0.41

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.
Files changed (101) hide show
  1. package/dist/cjs/index.js +42608 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/types/App.d.ts +3 -0
  4. package/dist/cjs/types/components/CountDown.d.ts +6 -0
  5. package/dist/cjs/types/components/Counter.d.ts +8 -0
  6. package/dist/cjs/types/components/DeviceSelector.d.ts +11 -0
  7. package/dist/cjs/types/components/DeviceSelectorList.d.ts +9 -0
  8. package/dist/cjs/types/components/DeviceSelectorListNative.d.ts +6 -0
  9. package/dist/cjs/types/components/Error.d.ts +8 -0
  10. package/dist/cjs/types/components/ErrorBoundaries.d.ts +9 -0
  11. package/dist/cjs/types/components/Errors.d.ts +12 -0
  12. package/dist/cjs/types/components/Explanation.d.ts +7 -0
  13. package/dist/cjs/types/components/Footer.d.ts +2 -0
  14. package/dist/cjs/types/components/Header.d.ts +10 -0
  15. package/dist/cjs/types/components/InnerView.d.ts +15 -0
  16. package/dist/cjs/types/components/Main.d.ts +11 -0
  17. package/dist/cjs/types/components/OuterView.d.ts +8 -0
  18. package/dist/cjs/types/components/PermissionSteps.d.ts +6 -0
  19. package/dist/cjs/types/components/PracticeModeInfo.d.ts +2 -0
  20. package/dist/cjs/types/components/PreviewItem.d.ts +17 -0
  21. package/dist/cjs/types/components/PreviewList.d.ts +18 -0
  22. package/dist/cjs/types/components/Question.d.ts +9 -0
  23. package/dist/cjs/types/components/QuestionItem.d.ts +12 -0
  24. package/dist/cjs/types/components/QuestionsList.d.ts +11 -0
  25. package/dist/cjs/types/components/RecorderModal.d.ts +15 -0
  26. package/dist/cjs/types/components/Setup.d.ts +6 -0
  27. package/dist/cjs/types/components/SetupChecks.d.ts +14 -0
  28. package/dist/cjs/types/components/SliderModal.d.ts +8 -0
  29. package/dist/cjs/types/components/TopTips.d.ts +2 -0
  30. package/dist/cjs/types/components/Upload.d.ts +13 -0
  31. package/dist/cjs/types/components/VideoCamera.d.ts +30 -0
  32. package/dist/cjs/types/components/VideoQuestion.d.ts +10 -0
  33. package/dist/cjs/types/components/VideoTimeBar.d.ts +9 -0
  34. package/dist/cjs/types/components/WelcomePage.d.ts +16 -0
  35. package/dist/cjs/types/components/Widget.d.ts +6 -0
  36. package/dist/cjs/types/components/icons/ClockIcon.d.ts +2 -0
  37. package/dist/cjs/types/components/icons/Loading.d.ts +2 -0
  38. package/dist/cjs/types/components/icons/NoCameraMic.d.ts +2 -0
  39. package/dist/cjs/types/components/icons/PlayIcon.d.ts +6 -0
  40. package/dist/cjs/types/components/icons/Retake.d.ts +2 -0
  41. package/dist/cjs/types/components/icons/RotateScreenIcon.d.ts +2 -0
  42. package/dist/cjs/types/components/ui/Loader.d.ts +2 -0
  43. package/dist/cjs/types/components/ui/MicrophoneIndicator.d.ts +7 -0
  44. package/dist/cjs/types/components/ui/MinimizeButton.d.ts +6 -0
  45. package/dist/cjs/types/components/ui/PracticeMode.d.ts +2 -0
  46. package/dist/cjs/types/components/ui/Progress.d.ts +6 -0
  47. package/dist/cjs/types/components/ui/QuestionDuration.d.ts +6 -0
  48. package/dist/cjs/types/components/ui/QuestionNumber.d.ts +7 -0
  49. package/dist/cjs/types/components/ui/RecordingButton.d.ts +6 -0
  50. package/dist/cjs/types/components/ui/RotateScreen.d.ts +2 -0
  51. package/dist/cjs/types/components/ui/Signal.d.ts +9 -0
  52. package/dist/cjs/types/components/ui/StartNowButton.d.ts +6 -0
  53. package/dist/cjs/types/components/ui/StartRecordingButton.d.ts +10 -0
  54. package/dist/cjs/types/components/ui/StopRecordingButton.d.ts +7 -0
  55. package/dist/cjs/types/components/ui/UnsupportedModal.d.ts +6 -0
  56. package/dist/cjs/types/config/index.d.ts +7 -0
  57. package/dist/cjs/types/config/local.env.d.ts +6 -0
  58. package/dist/cjs/types/config/prod.env.d.ts +6 -0
  59. package/dist/cjs/types/config/staging.env.d.ts +6 -0
  60. package/dist/cjs/types/i18n/config.d.ts +1459 -0
  61. package/dist/cjs/types/index.d.ts +4 -0
  62. package/dist/cjs/types/interfaces/candidateInterface.d.ts +14 -0
  63. package/dist/cjs/types/interfaces/candidateSessionInterface.d.ts +83 -0
  64. package/dist/cjs/types/interfaces/companyInterface.d.ts +4 -0
  65. package/dist/cjs/types/interfaces/configInterface.d.ts +60 -0
  66. package/dist/cjs/types/interfaces/jobInterface.d.ts +32 -0
  67. package/dist/cjs/types/interfaces/microphoneInterface.d.ts +38 -0
  68. package/dist/cjs/types/interfaces/networkInterface.d.ts +9 -0
  69. package/dist/cjs/types/interfaces/previewInterface.d.ts +14 -0
  70. package/dist/cjs/types/interfaces/recorderInterface.d.ts +199 -0
  71. package/dist/cjs/types/interfaces/storageInterface.d.ts +29 -0
  72. package/dist/cjs/types/interfaces/uploaderInterface.d.ts +39 -0
  73. package/dist/cjs/types/interfaces/videoInterface.d.ts +55 -0
  74. package/dist/cjs/types/interfaces/widgetInterface.d.ts +213 -0
  75. package/dist/cjs/types/machines/acceleratorMachines/accUploaderMachine.d.ts +6 -0
  76. package/dist/cjs/types/machines/acceleratorMachines/accWidgetMachine.d.ts +6 -0
  77. package/dist/cjs/types/machines/acceleratorMachines/microphoneMachine.d.ts +6 -0
  78. package/dist/cjs/types/machines/acceleratorMachines/networkMachine.d.ts +5 -0
  79. package/dist/cjs/types/machines/acceleratorMachines/previewMachine.d.ts +6 -0
  80. package/dist/cjs/types/machines/acceleratorMachines/recorderMachineV2.d.ts +6 -0
  81. package/dist/cjs/types/machines/acceleratorMachines/storageMachine.d.ts +6 -0
  82. package/dist/cjs/types/reportWebVitals.d.ts +3 -0
  83. package/dist/cjs/types/services/axiosInstances.service.d.ts +4 -0
  84. package/dist/cjs/types/services/s3.service.d.ts +1 -0
  85. package/dist/cjs/types/services/session.service.d.ts +57 -0
  86. package/dist/cjs/types/services/speedTest.service.d.ts +2 -0
  87. package/dist/cjs/types/services/video.service.d.ts +7 -0
  88. package/dist/cjs/types/setupTests.d.ts +1 -0
  89. package/dist/cjs/types/utils/authToken.utils.d.ts +7 -0
  90. package/dist/cjs/types/utils/constants.utils.d.ts +13 -0
  91. package/dist/cjs/types/utils/debug.utils.d.ts +19 -0
  92. package/dist/cjs/types/utils/device.utils.d.ts +12 -0
  93. package/dist/cjs/types/utils/errors.utils.d.ts +9 -0
  94. package/dist/cjs/types/utils/formatters.utils.d.ts +5 -0
  95. package/dist/cjs/types/utils/languages.utils.d.ts +1 -0
  96. package/dist/cjs/types/utils/messages.utils.d.ts +16 -0
  97. package/dist/cjs/types/utils/practiceQuestions.utils.d.ts +2 -0
  98. package/dist/cjs/types/utils/recorderErrors.utils.d.ts +29 -0
  99. package/dist/cjs/types/utils/sentry.utils.d.ts +4 -0
  100. package/dist/cjs/types/utils/statusCodes.utils.d.ts +13 -0
  101. package/package.json +2 -1
@@ -0,0 +1,4 @@
1
+ import { Widget, getToken } from './components/Widget';
2
+ import { IWidgetConfig, IClientWidgetConfig } from './interfaces/configInterface';
3
+ export { Widget, getToken };
4
+ export type { IWidgetConfig, IClientWidgetConfig };
@@ -0,0 +1,14 @@
1
+ export interface ICandidate {
2
+ candidate_id?: string;
3
+ email: string;
4
+ username?: string;
5
+ phone?: string;
6
+ video_id?: string;
7
+ redirectUrl?: string;
8
+ additionalData?: object;
9
+ disableResume?: boolean;
10
+ reapply?: boolean;
11
+ enableNotifications?: boolean;
12
+ apiKey?: string;
13
+ company_id?: string;
14
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @author tht7 ( tht7 )
3
+ * @date 10/07/12022 6:48 pm
4
+ */
5
+ declare global {
6
+ interface Window {
7
+ candidateSession?: ICandidateSession;
8
+ }
9
+ }
10
+ export declare const enum CandidateSessionError {
11
+ NO_CANDIDATE_FOUND = "NO_CANDIDATE_FOUND",
12
+ NO_JOB_FOUND = "NO_JOB_FOUND",
13
+ DEADLINE_EXPIRED = "DEADLINE_EXPIRED",
14
+ NO_AUDIO = "NO_AUDIO",
15
+ NO_VIDEO = "NO_VIDEO",
16
+ PERMISSIONS_BLOCKED = "PERMISSIONS_BLOCKED",
17
+ JOB_INACTIVE = "JOB_INACTIVE",
18
+ SUBSCRIPTION_PAUSED = "SUBSCRIPTION_PAUSED",
19
+ SUBSCRIPTION_CANCELLED = "SUBSCRIPTION_CANCELLED",
20
+ INTERVIEW_ALREADY_COMPLETED = "INTERVIEW_ALREADY_COMPLETED",
21
+ MEDIA_RECORDER_ERROR = "MEDIA_RECORDER_ERROR"
22
+ }
23
+ export declare const enum CandidateSessionWarnings {
24
+ LOW_LIGHT = "LOW_LIGHT",
25
+ LOW_VOLUME = "LOW_VOLUME",
26
+ SLOW_CONNECTION = "SLOW_CONNECTION",
27
+ NO_INTERNET = "NO_INTERNET",
28
+ NotAllowedError = "NotAllowedError",
29
+ NotFoundError = "NotFoundError",
30
+ NotReadableError = "NotReadableError",
31
+ OverconstrainedError = "OverconstrainedError",
32
+ SecurityError = "SecurityError"
33
+ }
34
+ export declare type CandidateSessionSourceType = 'direct' | 'email' | 'sms' | 'email_reminder' | 'sms_reminder';
35
+ export declare const enum CandidateSessionSourceMap {
36
+ direct_start_inter = "direct",
37
+ reminder_start_inter = "email_reminder",
38
+ reminder_sms_start_inter = "sms_reminder",
39
+ email_start_inter = "email",
40
+ sms_start_inter = "sms"
41
+ }
42
+ export interface ICandidateSession {
43
+ session_id: string;
44
+ duration: number;
45
+ error?: keyof typeof CandidateSessionError;
46
+ warnings?: (keyof typeof CandidateSessionWarnings)[];
47
+ reload_count: number;
48
+ files_uploaded_count: number;
49
+ widget_version: string;
50
+ company_id: string;
51
+ apiKey: string;
52
+ job_id?: string;
53
+ candidate_id?: string;
54
+ video_id?: string;
55
+ email?: string;
56
+ source?: CandidateSessionSourceType;
57
+ userAgent?: string;
58
+ ip?: string;
59
+ candidate_location?: string;
60
+ first_interaction?: Date;
61
+ form_filled?: Date;
62
+ document_uploaded?: Date;
63
+ top_tips_shown?: Date;
64
+ top_tips_clicked?: Date;
65
+ top_tips_positive_rating?: boolean;
66
+ widget_shown?: Date;
67
+ widget_practiced?: Date;
68
+ widget_camera_setup?: Date;
69
+ widget_microphone_setup?: Date;
70
+ widget_slow_internet_setup?: Date;
71
+ widget_high_internet_setup?: Date;
72
+ widget_medium_internet_setup?: Date;
73
+ widget_start_click_setup?: Date;
74
+ widget_change_camera_setup?: Date;
75
+ widget_change_mic_setup?: Date;
76
+ widget_exit?: Date;
77
+ widget_retake_count: number;
78
+ widget_submitted?: Date;
79
+ widget_completed?: Date;
80
+ page_closed: Date;
81
+ createdAt: Date;
82
+ updatedAt: Date;
83
+ }
@@ -0,0 +1,4 @@
1
+ export interface ICompany {
2
+ name: string;
3
+ shouldShowWaterMark: boolean;
4
+ }
@@ -0,0 +1,60 @@
1
+ import { CSSProperties } from 'react';
2
+ import { ICandidate } from './candidateInterface';
3
+ import { ICompany } from './companyInterface';
4
+ import { IClientJob, IClientQuestion, IJob, IQuestion } from './jobInterface';
5
+ import { IVideo } from './videoInterface';
6
+ export declare type IMessageType = 'completed' | 'deadline' | 'applied' | 'inactiveJob';
7
+ export interface IOnFinish {
8
+ redirectUrl?: string;
9
+ video_id: string;
10
+ }
11
+ export interface IOnError {
12
+ messageType: IMessageType;
13
+ }
14
+ export declare type IEnv = 'dev' | 'staging' | 'production' | 'development' | 'local';
15
+ interface IConfig {
16
+ auth: string;
17
+ onWidgetClicked?: () => void;
18
+ onFinish?: (data: IOnFinish) => void;
19
+ onError?: (data: IOnError) => void;
20
+ onWidgetClose?: () => void;
21
+ openAnimation?: boolean;
22
+ debug?: boolean;
23
+ practiceQuestions?: IQuestion[];
24
+ overlay?: string;
25
+ introVideo?: string;
26
+ welcomeTitle?: string;
27
+ welcomeText?: string;
28
+ env?: IEnv;
29
+ minimizable?: boolean;
30
+ hideHeader?: boolean;
31
+ hideIntercom?: boolean;
32
+ }
33
+ export declare type IClientConfig = Omit<IConfig, 'practiceQuestions'> & {
34
+ practiceQuestions?: IClientQuestion[];
35
+ };
36
+ export interface IWidgetConfig {
37
+ video?: IVideo;
38
+ candidate: ICandidate;
39
+ job?: IJob;
40
+ company?: ICompany;
41
+ config: IConfig;
42
+ disabled?: boolean;
43
+ buttonText?: string;
44
+ buttonStyle?: CSSProperties;
45
+ }
46
+ export declare type IClientWidgetConfig = Omit<IWidgetConfig, 'job' | 'config'> & {
47
+ job: IClientJob;
48
+ config: IClientConfig;
49
+ };
50
+ export interface IWidgetConfigResponse {
51
+ video: IVideo;
52
+ candidate: ICandidate;
53
+ job: IJob;
54
+ }
55
+ export interface IWidgetConfigRequest {
56
+ video?: IVideo;
57
+ candidate?: ICandidate;
58
+ job?: IJob;
59
+ }
60
+ export {};
@@ -0,0 +1,32 @@
1
+ export interface IQuestion {
2
+ question: string;
3
+ numOfRetakes: number;
4
+ partDuration: number;
5
+ thinkingTime: number;
6
+ timeLimit?: number;
7
+ videoQuestion?: string;
8
+ description?: string;
9
+ }
10
+ export declare type IClientQuestion = Omit<IQuestion, 'numOfRetakes' | 'partDuration' | 'thinkingTime'> & {
11
+ attempts?: number;
12
+ duration?: number;
13
+ thinkingTime?: number;
14
+ };
15
+ export interface IJob {
16
+ language?: string;
17
+ transcriptLanguage?: string;
18
+ title?: string;
19
+ company?: string;
20
+ job_id?: string;
21
+ logo?: string;
22
+ questions?: IQuestion[];
23
+ old_jobID?: string;
24
+ termsUrl?: string;
25
+ privacyUrl?: string;
26
+ apiKey?: string;
27
+ company_id?: string;
28
+ jobID?: string;
29
+ }
30
+ export declare type IClientJob = Omit<IJob, 'questions'> & {
31
+ questions?: IClientQuestion[];
32
+ };
@@ -0,0 +1,38 @@
1
+ export interface InitialState {
2
+ mediaStream: MediaStream | null;
3
+ micData: number;
4
+ retakes: number;
5
+ }
6
+ export declare const enum STATES {
7
+ INACTIVE = "inactive",
8
+ ACTIVE = "active",
9
+ NOT_RECEIVING_DATA = "notReceivingData",
10
+ RECEIVING_DATA = "receivingData",
11
+ DATA_CHECK = "dataCheck"
12
+ }
13
+ export declare const enum ACTIONS {
14
+ CONSOLE_LOG = "consoleLog",
15
+ SET_MEDIA_STREAM = "setMediaStream",
16
+ UPDATE_MIC = "updateMic",
17
+ UPDATE_RETAKES = "UPDATE_RETAKES",
18
+ CLEAN_RETAKES = "CLEAN_RETAKES",
19
+ SENTRY = "sentry"
20
+ }
21
+ export declare const enum EVENTS {
22
+ UNMUTE = "UNMUTE",
23
+ MUTE = "MUTE",
24
+ ON_SET_MEDIA_STREAM = "ON_SET_MEDIA_STREAM",
25
+ SEND_DATA = "SEND_DATA",
26
+ MIC_CHECK = "MIC_CHECK",
27
+ SEND_ERROR = "SEND_ERROR",
28
+ UPDATE_RETAKES = "UPDATE_RETAKES",
29
+ CLEAN_RETAKES = "CLEAN_RETAKES"
30
+ }
31
+ export declare const enum SERVICES {
32
+ CHECK_MICROPHONE_LEVEL = "checkMicrophoneLevel"
33
+ }
34
+ export declare const enum GUARDS {
35
+ IS_MEDIA_STREAM_AVAILABLE = "isMediaStreamAvailable",
36
+ IS_MIC_NOT_RECEIVING_DATA = "isMicNotReceivingData",
37
+ IS_MIC_RECEIVING_DATA = "isMicReceivingData"
38
+ }
@@ -0,0 +1,9 @@
1
+ export declare const enum STATES {
2
+ READY = "ready"
3
+ }
4
+ export declare const enum ACTIONS {
5
+ SET_CONNECTION = "setConnection"
6
+ }
7
+ export declare const enum EVENTS {
8
+ CONNECTION_CHANGED = "CONNECTION_CHANGED"
9
+ }
@@ -0,0 +1,14 @@
1
+ export interface PreviewInterface {
2
+ videosUrls: string[];
3
+ }
4
+ export declare const enum STATES {
5
+ IDLE = "idle",
6
+ ERROR = "error",
7
+ FINISH = "finish"
8
+ }
9
+ export declare const enum EVENTS {
10
+ TAKES_RECEIVED = "TAKES_RECEIVED"
11
+ }
12
+ export declare const enum ACTIONS {
13
+ SET_TAKES = "setTakes"
14
+ }
@@ -0,0 +1,199 @@
1
+ import { ActorRef, DoneInvokeEvent } from 'xstate';
2
+ import { RefObject } from 'react';
3
+ export declare const enum SPEED_TEST_LEVEL {
4
+ LOW = 0,
5
+ MEDIUM = 1,
6
+ HIGH = 2
7
+ }
8
+ export declare type mediaDeviceType = 'video' | 'audio';
9
+ declare type ConstrainProps = {
10
+ video: {
11
+ width: {
12
+ min?: number;
13
+ ideal?: number;
14
+ max: number;
15
+ };
16
+ aspectRatio?: number;
17
+ };
18
+ audio: boolean;
19
+ };
20
+ interface FacingMode {
21
+ exact: string;
22
+ }
23
+ export interface RecorderInterface {
24
+ facingMode: FacingMode;
25
+ microphoneRef: ActorRef<DoneInvokeEvent<any>> | null;
26
+ mediaStream?: MediaStream;
27
+ mediaRecorder?: MediaRecorder;
28
+ videoDevices: MediaDeviceInfo[];
29
+ audioDevices: MediaDeviceInfo[];
30
+ selectedVideoDevice?: MediaDeviceInfo;
31
+ selectedAudioDevice?: MediaDeviceInfo;
32
+ mimeType: string;
33
+ mimeTypes: string[];
34
+ isMobile: boolean;
35
+ isSafeMode: boolean;
36
+ isAutoStart: boolean;
37
+ speedTestLevel: SPEED_TEST_LEVEL;
38
+ constraint: ConstrainProps;
39
+ videoRef: RefObject<HTMLVideoElement>;
40
+ videoBitsPerSecond: number;
41
+ countdown: number;
42
+ recordingTime: number;
43
+ durations: number;
44
+ isMicError: boolean;
45
+ }
46
+ export declare const enum MIME_TYPES {
47
+ WEBM = "video/webm",
48
+ MP4 = "video/mp4"
49
+ }
50
+ export declare const enum STATES {
51
+ INIT = "init",
52
+ IDLE = "idle",
53
+ RECORDING = "recording",
54
+ WAITING = "waiting",
55
+ ERROR = "error",
56
+ INIT_RECORDER = "initRecorder",
57
+ COUNT_DOWN = "countDown",
58
+ COLLECTING_BLOBS = "collectingBlobs",
59
+ RECORDER_TIMER = "recorderTimer",
60
+ RECORDER_SENDING_BLOBS = "recorderSendingBlobs"
61
+ }
62
+ export declare const enum ACTIONS {
63
+ SESSION_EVENT = "SESSION_EVENT",
64
+ SENTRY = "SENTRY",
65
+ CONSOLE_LOG = "CONSOLE_LOG",
66
+ REMOVE_MIC_ERROR = "REMOVE_MIC_ERROR",
67
+ PAUSE_MEDIA_RECORDER = "PAUSE_MEDIA_RECORDER",
68
+ RESUME_MEDIA_RECORDER = "RESUME_MEDIA_RECORDER",
69
+ SEND_CURRENT_TAKE = "SEND_CURRENT_TAKE",
70
+ STOP_MICROPHONE_MACHINE = "STOP_MICROPHONE_MACHINE",
71
+ STOP_MEDIA_RECORDER = "STOP_MEDIA_RECORDER",
72
+ DISABLED_AUTO_START = "DISABLED_AUTO_START",
73
+ SET_AUTO_START = "SET_AUTO_START",
74
+ UPDATE_RECORDING_TIME = "UPDATE_RECORDING_TIME",
75
+ UPDATE_COUNT_DOWN = "UPDATE_COUNT_DOWN",
76
+ SET_MIC_MACHINE = "INIT_MIC_MACHINE",
77
+ SEND_MEDIA_STREAM_TO_MIC_MACHINE = "SET_MEDIA_STREAM_TO_MIC_MACHINE",
78
+ SET_MEDIA_STREAM_CORE = "SET_MEDIA_STREAM_CORE",
79
+ STOP_MEDIA_STREAM = "STOP_MEDIA_STREAM",
80
+ SET_MIME_TYPE = "SET_MIME_TYPE",
81
+ SET_SAFE_MODE = "SET_SAFE_MODE",
82
+ SEND_ERROR_TO_PARENT = "SEND_ERROR_TO_PARENT",
83
+ SEND_SUCCESS_TO_PARENT = "SEND_SUCCESS_TO_PARENT",
84
+ CHANGE_VIDEO_DEVICE = "CHANGE_VIDEO_DEVICE",
85
+ CHANGE_AUDIO_DEVICE = "CHANGE_AUDIO_DEVICE",
86
+ SET_QUESTION_PARAMS = "SET_QUESTION_PARAMS",
87
+ UPDATE_CONSTRAINT = "UPDATE_CONSTRAINT",
88
+ UPDATE_AUDIO_AND_VIDEO_DEVICES = "UPDATE_AUDIO_AND_VIDEO_DEVICES",
89
+ SET_FORCE_START = "SET_FORCE_START",
90
+ RESET_MACHINE = "RESET_MACHINE",
91
+ UPDATE_MACHINE_FOR_NEW_QUESTION = "UPDATE_MACHINE_FOR_NEW_QUESTION",
92
+ SET_MEDIA_RECORDER = "SET_MEDIA_RECORDER",
93
+ SET_MIC_ERROR = "SET_MIC_ERROR"
94
+ }
95
+ export declare const enum EVENTS {
96
+ CHANGE_VIDEO_DEVICE = "CHANGE_VIDEO_DEVICE",
97
+ CHANGE_AUDIO_DEVICE = "CHANGE_AUDIO_DEVICE",
98
+ START_RECORDING = "START_RECORDING",
99
+ SET_QUESTION_PARAMS = "SET_QUESTION_PARAMS",
100
+ SPEED_TEST_RESULT_UPDATED = "SPEED_TEST_RESULT_UPDATED",
101
+ RECORDER_DEVICE_ERROR = "RECORDER_DEVICE_ERROR",
102
+ UPDATE_DEVICES_LIST = "UPDATE_DEVICES_LIST",
103
+ UPDATE_CURRENT_DEVICE = "UPDATE_CURRENT_DEVICE",
104
+ RECORDING_UPDATE_TIMER = "RECORDING_UPDATE_TIMER",
105
+ UPDATE_TIMER = "UPDATE_TIMER",
106
+ FORCE_START = "FORCE_START",
107
+ STOP_RECORDING = "STOP_RECORDING",
108
+ SET_MEDIA_RECORDER = "SET_MEDIA_RECORDER",
109
+ SEND_CURRENT_TAKE = "SEND_CURRENT_TAKE",
110
+ RE_INIT = "RE_INIT",
111
+ RETRY = "RETRY",
112
+ MIC_DATA_RECEIVED = "MIC_DATA_RECEIVED",
113
+ PAUSE_MEDIA_RECORDER = "PAUSE_MEDIA_RECORDER"
114
+ }
115
+ export declare const enum SERVICES {
116
+ GET_MEDIA_STREAM = "getMediaStream",
117
+ GET_MEDIA_RECORDER = "getMediaRecorder"
118
+ }
119
+ export declare const enum GUARDS {
120
+ IS_TIME_TO_STOP_RECORDING = "isTimeToStopRecording",
121
+ IS_RECORDER_ACTIVE = "isRecorderActive",
122
+ IS_TIME_TO_START_RECORDING = "isTimeToStartRecording",
123
+ NO_SOUND_FROM_MIC_MACHINE = "noSoundFromMicMachine",
124
+ IS_NOT_ALLOWED_ERROR = "isNotAllowedError",
125
+ IS_ERROR_WITH_WRONG_PARAMS = "isErrorWithWrongParams",
126
+ IS_AUTO_START = "isAutoStart",
127
+ IS_QUALITY_CHANGED = "isQualityChanged",
128
+ IS_VIDEO_CORRUPTED = "isVideoCorrupted"
129
+ }
130
+ export declare const mediaConstrains: {
131
+ hd: {
132
+ video: {
133
+ width: {
134
+ min: number;
135
+ ideal: number;
136
+ max: number;
137
+ };
138
+ };
139
+ audio: boolean;
140
+ };
141
+ vga: {
142
+ video: {
143
+ width: {
144
+ max: number;
145
+ ideal: number;
146
+ };
147
+ };
148
+ audio: boolean;
149
+ };
150
+ qvga: {
151
+ video: {
152
+ width: {
153
+ min: number;
154
+ ideal: number;
155
+ max: number;
156
+ };
157
+ aspectRatio: number;
158
+ };
159
+ audio: boolean;
160
+ };
161
+ mobile: {
162
+ video: {
163
+ width: {
164
+ min: number;
165
+ ideal: number;
166
+ max: number;
167
+ };
168
+ aspectRatio: number;
169
+ };
170
+ audio: boolean;
171
+ };
172
+ mobile2: {
173
+ video: {
174
+ width: {
175
+ min: number;
176
+ ideal: number;
177
+ max: number;
178
+ };
179
+ aspectRatio: number;
180
+ };
181
+ audio: boolean;
182
+ };
183
+ mobile3: {
184
+ video: {
185
+ width: {
186
+ min: number;
187
+ ideal: number;
188
+ max: number;
189
+ };
190
+ aspectRatio: number;
191
+ };
192
+ audio: boolean;
193
+ };
194
+ noVideo: {
195
+ video: boolean;
196
+ audio: boolean;
197
+ };
198
+ };
199
+ export {};
@@ -0,0 +1,29 @@
1
+ export interface ITakeObj {
2
+ file: File[];
3
+ objectUrl: string;
4
+ }
5
+ interface IFilesQuestion {
6
+ [questionNumber: number]: ITakeObj[];
7
+ }
8
+ export interface InitialState {
9
+ questions: IFilesQuestion;
10
+ practice: IFilesQuestion;
11
+ }
12
+ export declare const enum EVENTS {
13
+ STORE_TAKE = "STORE_TAKE",
14
+ GET_TAKE = "GET_TAKE",
15
+ GET_TAKES = "GET_TAKES",
16
+ REMOVE_TAKES = "REMOVE_TAKES"
17
+ }
18
+ export declare const enum ACTIONS {
19
+ CONSOLE_LOG = "consoleLog",
20
+ STORE_TAKE = "storeTake",
21
+ SEND_TAKE = "sendTake",
22
+ SEND_TAKES = "sendTakes",
23
+ REMOVE_TAKES = "removeTakes"
24
+ }
25
+ export declare const enum TAKE_TYPES {
26
+ QUESTION = "question",
27
+ PRACTICE = "practice"
28
+ }
29
+ export {};
@@ -0,0 +1,39 @@
1
+ import { IVideoFile } from './videoInterface';
2
+ interface ILastUploadChunkl {
3
+ loaded: number;
4
+ timeStamp: number;
5
+ }
6
+ export interface InitialState {
7
+ isConnected: boolean;
8
+ currentQuestion: number | null;
9
+ file: File | null;
10
+ signedUrl: string;
11
+ uploadSpeed: number;
12
+ lastUploadChunk: ILastUploadChunkl;
13
+ videoId: string;
14
+ videoFile: IVideoFile;
15
+ }
16
+ export declare const enum STATES {
17
+ IDLE = "idle",
18
+ UPLOADING = "uploading",
19
+ GET_SIGNED_URL = "getSignedUrl",
20
+ UPLOAD_TO_S3 = "uploadToS3",
21
+ UPLOADED = "uploaded",
22
+ FINISHED = "finished"
23
+ }
24
+ export declare const enum ACTIONS {
25
+ SET_UPLOADED = "setUploaded",
26
+ CONSOLE_LOG = "consoleLog",
27
+ SET_CONNECTION = "setConnection",
28
+ SET_SIGNED_URL = "setSignedUrl",
29
+ SET_VIDEO_FILE = "setVideoFile",
30
+ INITIAL_UPLOAD_TIMESTAMP = "initialUploadTimestamp",
31
+ UPDATE_UPLOAD_SPEED = "updateUploadSpeed",
32
+ SEND_UPLOAD_PROGRESS = "sendUploadProgress",
33
+ UPDATE_PARENT = "updateParent",
34
+ SENTRY = "sentry"
35
+ }
36
+ export declare const enum GUARDS {
37
+ CAN_UPLOAD = "canUplaod"
38
+ }
39
+ export {};
@@ -0,0 +1,55 @@
1
+ export interface IVideoPlatformOS {
2
+ architecture: number;
3
+ family: string;
4
+ version: string;
5
+ }
6
+ export interface IVideoPlatform {
7
+ description: string;
8
+ layout: string;
9
+ manufacturer: string;
10
+ name: string;
11
+ prerelease: string;
12
+ product: string;
13
+ ua: string;
14
+ version: string;
15
+ os: IVideoPlatformOS;
16
+ }
17
+ export interface IVideoFile {
18
+ completed: boolean;
19
+ uploaded: boolean;
20
+ filename: string;
21
+ retakes: number;
22
+ started: boolean;
23
+ videoLength?: number;
24
+ uploadUrl?: string;
25
+ question?: string;
26
+ selectedTake?: number;
27
+ }
28
+ export interface IVideo {
29
+ video_id?: string;
30
+ bandwidth?: string;
31
+ clicked?: boolean;
32
+ started?: boolean;
33
+ completed?: boolean;
34
+ uploaded?: boolean;
35
+ jobID?: string;
36
+ platform?: IVideoPlatform;
37
+ quality?: string;
38
+ referrer?: string;
39
+ cvUrl?: string;
40
+ videos?: IVideoFile[];
41
+ processTime?: number;
42
+ files?: string[];
43
+ personalInfo?: Record<string, string>;
44
+ language?: string;
45
+ gdprTimestamp?: string;
46
+ tracking?: {
47
+ reminder: number;
48
+ source: number;
49
+ };
50
+ }
51
+ export declare const enum VIDEO_STATUS {
52
+ INCOMPLETED = 0,
53
+ COMPLETED = 1,
54
+ UPLOADED = 2
55
+ }