@a4anthony/proctorkit-vue 0.1.5 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +176 -8
- package/dist/ProctoredAssessment.vue.d.ts +70 -2
- package/dist/ProctoredAssessment.vue.d.ts.map +1 -1
- package/dist/ProctoringDeviceSettings.vue.d.ts +27 -1
- package/dist/ProctoringDeviceSettings.vue.d.ts.map +1 -1
- package/dist/ProctoringSystemCheck.vue.d.ts +39 -11
- package/dist/ProctoringSystemCheck.vue.d.ts.map +1 -1
- package/dist/browser-face-detector.d.ts +59 -0
- package/dist/browser-face-detector.d.ts.map +1 -0
- package/dist/check-cards/system/DisplayPermissionDialog.vue.d.ts +24 -0
- package/dist/check-cards/system/DisplayPermissionDialog.vue.d.ts.map +1 -0
- package/dist/check-cards/system/DisplayRecovery.vue.d.ts +25 -0
- package/dist/check-cards/system/DisplayRecovery.vue.d.ts.map +1 -0
- package/dist/check-cards/system/SystemCheckCard.vue.d.ts +13 -1
- package/dist/check-cards/system/SystemCheckCard.vue.d.ts.map +1 -1
- package/dist/check-cards/system/display-progress-story.d.ts +468 -0
- package/dist/check-cards/system/display-progress-story.d.ts.map +1 -0
- package/dist/check-cards/system/display-recovery-story.d.ts +290 -0
- package/dist/check-cards/system/display-recovery-story.d.ts.map +1 -0
- package/dist/demo-runner/QuestionCard.vue.d.ts.map +1 -1
- package/dist/detect-face.d.ts +22 -95
- package/dist/detect-face.d.ts.map +1 -1
- package/dist/i18n/merge.d.ts.map +1 -1
- package/dist/index.d.ts +19 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9637 -2485
- package/dist/media-controls/AudioPlayer.vue.d.ts +43 -20
- package/dist/media-controls/AudioPlayer.vue.d.ts.map +1 -1
- package/dist/media-controls/AudioRecorder.vue.d.ts +171 -11
- package/dist/media-controls/AudioRecorder.vue.d.ts.map +1 -1
- package/dist/media-controls/RecorderUploadIndicator.vue.d.ts +17 -0
- package/dist/media-controls/RecorderUploadIndicator.vue.d.ts.map +1 -0
- package/dist/media-controls/VideoPlayer.vue.d.ts +36 -13
- package/dist/media-controls/VideoPlayer.vue.d.ts.map +1 -1
- package/dist/media-controls/VideoRecorder.vue.d.ts +90 -10
- package/dist/media-controls/VideoRecorder.vue.d.ts.map +1 -1
- package/dist/media-controls/audio-recorder-messages.d.ts +15 -0
- package/dist/media-controls/audio-recorder-messages.d.ts.map +1 -0
- package/dist/media-controls/local-media-playback-client.d.ts +2 -6
- package/dist/media-controls/local-media-playback-client.d.ts.map +1 -1
- package/dist/media-controls/local-media-recording-client.d.ts.map +1 -1
- package/dist/media-controls/media-recovery-story.d.ts +9 -0
- package/dist/media-controls/media-recovery-story.d.ts.map +1 -0
- package/dist/media-controls/storybook-mock-client.d.ts +2 -0
- package/dist/media-controls/storybook-mock-client.d.ts.map +1 -1
- package/dist/media-controls/types.d.ts +63 -7
- package/dist/media-controls/types.d.ts.map +1 -1
- package/dist/media-controls/ui-config.d.ts +2 -2
- package/dist/media-controls/ui-config.d.ts.map +1 -1
- package/dist/media-controls/useLiveInputCheck.d.ts +18 -0
- package/dist/media-controls/useLiveInputCheck.d.ts.map +1 -0
- package/dist/media-controls/useMediaClipRecorder.d.ts +90 -12
- package/dist/media-controls/useMediaClipRecorder.d.ts.map +1 -1
- package/dist/media-controls/useMediaFilePlayback.d.ts +8 -1
- package/dist/media-controls/useMediaFilePlayback.d.ts.map +1 -1
- package/dist/media-controls/useMinimumVisibleUpload.d.ts +18 -0
- package/dist/media-controls/useMinimumVisibleUpload.d.ts.map +1 -0
- package/dist/proctored-assessment/PreparationGate.vue.d.ts +16 -0
- package/dist/proctored-assessment/PreparationGate.vue.d.ts.map +1 -0
- package/dist/proctored-assessment/preparation-feedback.d.ts +7 -0
- package/dist/proctored-assessment/preparation-feedback.d.ts.map +1 -0
- package/dist/proctored-assessment/replay-failure-queue.d.ts +18 -0
- package/dist/proctored-assessment/replay-failure-queue.d.ts.map +1 -0
- package/dist/proctored-assessment/replay-failure-queue.test.d.ts +2 -0
- package/dist/proctored-assessment/replay-failure-queue.test.d.ts.map +1 -0
- package/dist/proctored-assessment/request-deadline.d.ts +1 -0
- package/dist/proctored-assessment/request-deadline.d.ts.map +1 -1
- package/dist/proctored-assessment/resume-microphone-route.d.ts +13 -0
- package/dist/proctored-assessment/resume-microphone-route.d.ts.map +1 -0
- package/dist/proctored-assessment/resume-microphone-route.test.d.ts +2 -0
- package/dist/proctored-assessment/resume-microphone-route.test.d.ts.map +1 -0
- package/dist/proctored-assessment/resume-probe.d.ts +13 -0
- package/dist/proctored-assessment/resume-probe.d.ts.map +1 -1
- package/dist/proctored-assessment/resume-speaker-confirmation.d.ts +27 -0
- package/dist/proctored-assessment/resume-speaker-confirmation.d.ts.map +1 -0
- package/dist/proctored-assessment/resume-speaker-route.d.ts +32 -0
- package/dist/proctored-assessment/resume-speaker-route.d.ts.map +1 -0
- package/dist/proctored-assessment/session-start.d.ts +2 -2
- package/dist/proctored-assessment/types.d.ts +14 -4
- package/dist/proctored-assessment/types.d.ts.map +1 -1
- package/dist/proctored-assessment/usePreparationRetryTiming.d.ts +13 -0
- package/dist/proctored-assessment/usePreparationRetryTiming.d.ts.map +1 -0
- package/dist/proctored-assessment/useResumeDisplayGuard.d.ts +20 -0
- package/dist/proctored-assessment/useResumeDisplayGuard.d.ts.map +1 -0
- package/dist/proctoring-client.d.ts +6 -2
- package/dist/proctoring-client.d.ts.map +1 -1
- package/dist/proctoring-system-check-contract.d.ts +2 -0
- package/dist/proctoring-system-check-contract.d.ts.map +1 -1
- package/dist/runtime-devices/DevicePickerItem.vue.d.ts +58 -0
- package/dist/runtime-devices/DevicePickerItem.vue.d.ts.map +1 -0
- package/dist/runtime-devices/PickerMessage.vue.d.ts +17 -0
- package/dist/runtime-devices/PickerMessage.vue.d.ts.map +1 -0
- package/dist/runtime-devices/ProctoringDevicePicker.vue.d.ts +89 -0
- package/dist/runtime-devices/ProctoringDevicePicker.vue.d.ts.map +1 -0
- package/dist/runtime-devices/device-picker-messages.d.ts +42 -0
- package/dist/runtime-devices/device-picker-messages.d.ts.map +1 -0
- package/dist/runtime-devices/microphone-attention.d.ts +48 -0
- package/dist/runtime-devices/microphone-attention.d.ts.map +1 -0
- package/dist/runtime-devices/microphone-check-messages.d.ts +13 -0
- package/dist/runtime-devices/microphone-check-messages.d.ts.map +1 -0
- package/dist/runtime-devices/runtime-device-activity.d.ts +16 -0
- package/dist/runtime-devices/runtime-device-activity.d.ts.map +1 -0
- package/dist/runtime-devices/runtime-device-selection.d.ts +11 -0
- package/dist/runtime-devices/runtime-device-selection.d.ts.map +1 -0
- package/dist/runtime-devices/useRuntimeDevice.d.ts +72 -0
- package/dist/runtime-devices/useRuntimeDevice.d.ts.map +1 -0
- package/dist/runtime-devices/useTrackLoss.d.ts +15 -0
- package/dist/runtime-devices/useTrackLoss.d.ts.map +1 -0
- package/dist/style.css +367 -14
- package/dist/text-answer/ProctoredTextarea.vue.d.ts +8 -1
- package/dist/text-answer/ProctoredTextarea.vue.d.ts.map +1 -1
- package/dist/text-answer/useProctoredText.d.ts +5 -2
- package/dist/text-answer/useProctoredText.d.ts.map +1 -1
- package/dist/ui/ProctoringAlert.vue.d.ts.map +1 -1
- package/dist/ui/ProctoringFileUpload.vue.d.ts +3 -3
- package/dist/ui/ProctoringFileUpload.vue.d.ts.map +1 -1
- package/dist/ui/ProctoringInput.vue.d.ts +3 -3
- package/dist/ui/ProctoringInput.vue.d.ts.map +1 -1
- package/dist/ui/ProctoringSelect.vue.d.ts +2 -2
- package/dist/ui/ProctoringSelect.vue.d.ts.map +1 -1
- package/dist/usePreflightCheck.d.ts +4 -3
- package/dist/usePreflightCheck.d.ts.map +1 -1
- package/dist/vision_bundle-8xEDyfqS.js +4160 -0
- package/dist/wizard/BrowserDisplayPermissionGuide.vue.d.ts +11 -0
- package/dist/wizard/BrowserDisplayPermissionGuide.vue.d.ts.map +1 -0
- package/dist/wizard/BrowserPermissionLocation.vue.d.ts +9 -0
- package/dist/wizard/BrowserPermissionLocation.vue.d.ts.map +1 -0
- package/dist/wizard/CameraStep.vue.d.ts +10 -1
- package/dist/wizard/CameraStep.vue.d.ts.map +1 -1
- package/dist/wizard/CandidateHeadshotField.vue.d.ts.map +1 -1
- package/dist/wizard/CandidateIntakeStep.vue.d.ts +3 -0
- package/dist/wizard/CandidateIntakeStep.vue.d.ts.map +1 -1
- package/dist/wizard/ChecklistShell.vue.d.ts +3 -0
- package/dist/wizard/ChecklistShell.vue.d.ts.map +1 -1
- package/dist/wizard/FinalStep.vue.d.ts +6 -2
- package/dist/wizard/FinalStep.vue.d.ts.map +1 -1
- package/dist/wizard/MediaDeviceSelect.vue.d.ts +11 -1
- package/dist/wizard/MediaDeviceSelect.vue.d.ts.map +1 -1
- package/dist/wizard/MicStep.vue.d.ts +24 -3
- package/dist/wizard/MicStep.vue.d.ts.map +1 -1
- package/dist/wizard/PermissionDeniedPanel.vue.d.ts +9 -4
- package/dist/wizard/PermissionDeniedPanel.vue.d.ts.map +1 -1
- package/dist/wizard/ResumeCheck.vue.d.ts +16 -2
- package/dist/wizard/ResumeCheck.vue.d.ts.map +1 -1
- package/dist/wizard/SpeakerStep.vue.d.ts +17 -4
- package/dist/wizard/SpeakerStep.vue.d.ts.map +1 -1
- package/dist/wizard/SystemStep.vue.d.ts +9 -0
- package/dist/wizard/SystemStep.vue.d.ts.map +1 -1
- package/dist/wizard/WizardShell.vue.d.ts +3 -3
- package/dist/wizard/WizardShell.vue.d.ts.map +1 -1
- package/dist/wizard/candidate-intake-draft.d.ts +9 -0
- package/dist/wizard/candidate-intake-draft.d.ts.map +1 -0
- package/dist/wizard/display-diagnostics.d.ts +21 -0
- package/dist/wizard/display-diagnostics.d.ts.map +1 -0
- package/dist/wizard/event-telemetry.d.ts +24 -0
- package/dist/wizard/event-telemetry.d.ts.map +1 -0
- package/dist/wizard/media-device-list.d.ts +8 -1
- package/dist/wizard/media-device-list.d.ts.map +1 -1
- package/dist/wizard/microphone-preflight-trace.d.ts +10 -0
- package/dist/wizard/microphone-preflight-trace.d.ts.map +1 -0
- package/dist/wizard/microphone-preflight-trace.test.d.ts +2 -0
- package/dist/wizard/microphone-preflight-trace.test.d.ts.map +1 -0
- package/dist/wizard/resume-check-stories/shared.d.ts +35 -11
- package/dist/wizard/resume-check-stories/shared.d.ts.map +1 -1
- package/dist/wizard/speaker-test-tone.d.ts +29 -4
- package/dist/wizard/speaker-test-tone.d.ts.map +1 -1
- package/dist/wizard/useCandidateIssues.d.ts +30 -0
- package/dist/wizard/useCandidateIssues.d.ts.map +1 -0
- package/dist/wizard/useCandidateIssues.test.d.ts +2 -0
- package/dist/wizard/useCandidateIssues.test.d.ts.map +1 -0
- package/dist/wizard/useLiveDisplayCheck.d.ts +8 -0
- package/dist/wizard/useLiveDisplayCheck.d.ts.map +1 -0
- package/dist/wizard/usePreflightTelemetry.d.ts +6 -26
- package/dist/wizard/usePreflightTelemetry.d.ts.map +1 -1
- package/dist/wizard/useWizardSteps.d.ts +10 -1
- package/dist/wizard/useWizardSteps.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { ProctoringClient } from "@a4anthony/proctorkit-sdk";
|
|
2
|
+
import { type LostTrackKind } from "../runtime-devices/useTrackLoss.js";
|
|
2
3
|
import type { MediaClipDataSink, MediaClipDroppedPayload, MediaClipErrorPayload, MediaClipMirrorErrorPayload, MediaClipStartedPayload, MediaClipStoppedPayload, MediaClipUploadedPayload } from "./types.js";
|
|
3
4
|
import { type MediaPartClasses, type MediaPartStyles, type ProctoringMediaTheme, type VideoRecorderPart, type VideoRecorderUi } from "./ui-config.js";
|
|
4
|
-
type VideoRecorderClient = Pick<ProctoringClient, "recordVideoClip"
|
|
5
|
+
type VideoRecorderClient = Pick<ProctoringClient, "recordVideoClip"> & Partial<Pick<ProctoringClient, "holdAudioForCapture">>;
|
|
5
6
|
type __VLS_Props = {
|
|
6
7
|
client?: VideoRecorderClient;
|
|
7
8
|
title?: string;
|
|
@@ -32,6 +33,11 @@ type __VLS_Props = {
|
|
|
32
33
|
* retried.
|
|
33
34
|
*/
|
|
34
35
|
allowedRetakes?: number | null;
|
|
36
|
+
/**
|
|
37
|
+
* Stable opaque identity for this recording. Filename-like values with an
|
|
38
|
+
* extension are accepted. Use a fresh value for each distinct retake.
|
|
39
|
+
*/
|
|
40
|
+
clipId?: string;
|
|
35
41
|
disabled?: boolean;
|
|
36
42
|
maxDurationMs?: number;
|
|
37
43
|
/** Include a microphone track in the clip. Default true. */
|
|
@@ -51,13 +57,17 @@ type __VLS_Props = {
|
|
|
51
57
|
stream?: MediaStream;
|
|
52
58
|
unavailableMessage?: string;
|
|
53
59
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
* `{ mimeType, durationMs, clipNumber }`; resolve when your upload
|
|
57
|
-
* succeeds, throw/reject when it fails.
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
60
|
+
* Deliver each finalized clip to your own backend as the primary upload.
|
|
61
|
+
* Receives video as a Blob plus
|
|
62
|
+
* `{ mimeType, durationMs, clipId, clipNumber }`; resolve when your upload
|
|
63
|
+
* succeeds, throw/reject when it fails. `uploaded` waits for this sink and
|
|
64
|
+
* reports `delivery: "client"`; a rejection remains retryable and does not
|
|
65
|
+
* become successful merely because the independent ProctorKit copy succeeds.
|
|
66
|
+
* With an active client, ProctorKit uploads in the background and never
|
|
67
|
+
* changes the candidate-facing result. In standalone mode ProctorKit is not used.
|
|
68
|
+
* The optional second callback argument exposes `reportProgress` and
|
|
69
|
+
* an unmount `signal`. Progress drives the circular indicator when
|
|
70
|
+
* `sendClip` is the primary delivery path; ProctorKit progress is not shown.
|
|
61
71
|
*/
|
|
62
72
|
sendClip?: MediaClipDataSink;
|
|
63
73
|
/**
|
|
@@ -78,7 +88,14 @@ type __VLS_Props = {
|
|
|
78
88
|
styles?: MediaPartStyles<VideoRecorderPart>;
|
|
79
89
|
unstyled?: boolean;
|
|
80
90
|
theme?: ProctoringMediaTheme;
|
|
91
|
+
/**
|
|
92
|
+
* Shown when the camera or microphone disconnects mid-take. `{device}` is
|
|
93
|
+
* replaced with "camera" or "microphone". The take is stopped and does not
|
|
94
|
+
* use up a retake.
|
|
95
|
+
*/
|
|
96
|
+
deviceLostMessage?: string;
|
|
81
97
|
};
|
|
98
|
+
declare function retryPrimaryUpload(): Promise<void>;
|
|
82
99
|
declare function toggleRecording(): Promise<void>;
|
|
83
100
|
declare var __VLS_1: {
|
|
84
101
|
recording: boolean;
|
|
@@ -103,16 +120,32 @@ declare var __VLS_1: {
|
|
|
103
120
|
recording: boolean;
|
|
104
121
|
starting: boolean;
|
|
105
122
|
stopping: boolean;
|
|
123
|
+
retrying: boolean;
|
|
124
|
+
retryable: boolean;
|
|
125
|
+
retryTarget: "client" | "canonical" | null;
|
|
126
|
+
mirrorUploading: boolean;
|
|
127
|
+
mirrorProgress: number | null;
|
|
128
|
+
mirrorFailure: {
|
|
129
|
+
kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
|
|
130
|
+
clipId: string;
|
|
131
|
+
clipNumber: number;
|
|
132
|
+
error: Error;
|
|
133
|
+
message: string;
|
|
134
|
+
} | null;
|
|
106
135
|
busyLabel: string | null;
|
|
136
|
+
uploadLabel: any;
|
|
107
137
|
uploadedLabel: string | null;
|
|
108
138
|
actionLabel: string;
|
|
109
139
|
actionDisabled: boolean;
|
|
110
140
|
showAction: boolean;
|
|
111
141
|
toggle: typeof toggleRecording;
|
|
112
|
-
|
|
142
|
+
retryUpload: typeof retryPrimaryUpload;
|
|
143
|
+
}, __VLS_40: {
|
|
113
144
|
clipNumber: number | null;
|
|
114
145
|
uploaded: {
|
|
115
146
|
kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
|
|
147
|
+
clipId: string;
|
|
148
|
+
delivery: "client" | "fallback" | "proctorkit" | "local";
|
|
116
149
|
clipNumber: number;
|
|
117
150
|
byteSize: number;
|
|
118
151
|
durationMs: number;
|
|
@@ -127,10 +160,27 @@ declare var __VLS_1: {
|
|
|
127
160
|
peakDb: number;
|
|
128
161
|
silentRatio: number;
|
|
129
162
|
lowVolumeRatio: number;
|
|
163
|
+
inputLiveness?: {
|
|
164
|
+
digitalSilenceRatio: number;
|
|
165
|
+
longestDigitalSilenceMs: number;
|
|
166
|
+
longestMutedMs: number;
|
|
167
|
+
suspendedMs: number;
|
|
168
|
+
noInput: boolean;
|
|
169
|
+
} | undefined;
|
|
170
|
+
} | undefined;
|
|
171
|
+
answerReference?: {
|
|
172
|
+
questionId: string;
|
|
173
|
+
answerFileName: string;
|
|
130
174
|
} | undefined;
|
|
175
|
+
fallbackSelection?: {
|
|
176
|
+
readonly source: "client_reported";
|
|
177
|
+
readonly selectedAt: string;
|
|
178
|
+
} | undefined;
|
|
179
|
+
contentSha256?: string | undefined;
|
|
131
180
|
} | null;
|
|
132
181
|
dropped: {
|
|
133
182
|
kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
|
|
183
|
+
clipId: string;
|
|
134
184
|
clipNumber: number;
|
|
135
185
|
code: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipDropCode;
|
|
136
186
|
reason: string;
|
|
@@ -145,6 +195,13 @@ declare var __VLS_1: {
|
|
|
145
195
|
peakDb: number;
|
|
146
196
|
silentRatio: number;
|
|
147
197
|
lowVolumeRatio: number;
|
|
198
|
+
inputLiveness?: {
|
|
199
|
+
digitalSilenceRatio: number;
|
|
200
|
+
longestDigitalSilenceMs: number;
|
|
201
|
+
longestMutedMs: number;
|
|
202
|
+
suspendedMs: number;
|
|
203
|
+
noInput: boolean;
|
|
204
|
+
} | undefined;
|
|
148
205
|
} | undefined;
|
|
149
206
|
} | null;
|
|
150
207
|
error: {
|
|
@@ -156,6 +213,19 @@ declare var __VLS_1: {
|
|
|
156
213
|
recording: boolean;
|
|
157
214
|
starting: boolean;
|
|
158
215
|
stopping: boolean;
|
|
216
|
+
retrying: boolean;
|
|
217
|
+
retryable: boolean;
|
|
218
|
+
retryTarget: "client" | "canonical" | null;
|
|
219
|
+
retryUpload: typeof retryPrimaryUpload;
|
|
220
|
+
mirrorUploading: boolean;
|
|
221
|
+
mirrorProgress: number | null;
|
|
222
|
+
mirrorFailure: {
|
|
223
|
+
kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
|
|
224
|
+
clipId: string;
|
|
225
|
+
clipNumber: number;
|
|
226
|
+
error: Error;
|
|
227
|
+
message: string;
|
|
228
|
+
} | null;
|
|
159
229
|
elapsedMs: number;
|
|
160
230
|
remainingMs: number;
|
|
161
231
|
maxDurationMs: number;
|
|
@@ -175,7 +245,7 @@ type __VLS_Slots = {} & {
|
|
|
175
245
|
} & {
|
|
176
246
|
controls?: (props: typeof __VLS_13) => any;
|
|
177
247
|
} & {
|
|
178
|
-
meta?: (props: typeof
|
|
248
|
+
meta?: (props: typeof __VLS_40) => any;
|
|
179
249
|
};
|
|
180
250
|
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
181
251
|
error: (payload: MediaClipErrorPayload) => any;
|
|
@@ -184,6 +254,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
184
254
|
uploaded: (payload: MediaClipUploadedPayload) => any;
|
|
185
255
|
dropped: (payload: MediaClipDroppedPayload) => any;
|
|
186
256
|
"clip-mirror-failed": (payload: MediaClipMirrorErrorPayload) => any;
|
|
257
|
+
deviceLost: (payload: {
|
|
258
|
+
kind: LostTrackKind;
|
|
259
|
+
clipId: string | null;
|
|
260
|
+
}) => any;
|
|
187
261
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
188
262
|
onError?: ((payload: MediaClipErrorPayload) => any) | undefined;
|
|
189
263
|
onStopped?: ((payload: MediaClipStoppedPayload) => any) | undefined;
|
|
@@ -191,6 +265,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
191
265
|
onUploaded?: ((payload: MediaClipUploadedPayload) => any) | undefined;
|
|
192
266
|
onDropped?: ((payload: MediaClipDroppedPayload) => any) | undefined;
|
|
193
267
|
"onClip-mirror-failed"?: ((payload: MediaClipMirrorErrorPayload) => any) | undefined;
|
|
268
|
+
onDeviceLost?: ((payload: {
|
|
269
|
+
kind: LostTrackKind;
|
|
270
|
+
clipId: string | null;
|
|
271
|
+
}) => any) | undefined;
|
|
194
272
|
}>, {
|
|
195
273
|
autoStart: boolean;
|
|
196
274
|
title: string;
|
|
@@ -198,6 +276,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
198
276
|
disabled: boolean;
|
|
199
277
|
audio: boolean;
|
|
200
278
|
maxDurationMs: number;
|
|
279
|
+
clipId: string;
|
|
201
280
|
stream: MediaStream;
|
|
202
281
|
videoBitrate: number;
|
|
203
282
|
stopLabel: string;
|
|
@@ -209,6 +288,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
209
288
|
unavailableMessage: string;
|
|
210
289
|
sendClip: MediaClipDataSink;
|
|
211
290
|
startRecording: boolean;
|
|
291
|
+
deviceLostMessage: string;
|
|
212
292
|
cameraDeviceId: string | null;
|
|
213
293
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
214
294
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoRecorder.vue.d.ts","sourceRoot":"","sources":["../../src/media-controls/VideoRecorder.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VideoRecorder.vue.d.ts","sourceRoot":"","sources":["../../src/media-controls/VideoRecorder.vue"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Copy for `<AudioRecorder>`'s microphone hints, shown below the recorder. */
|
|
2
|
+
export interface AudioRecorderMicrophoneMessages {
|
|
3
|
+
/** The microphone would not open, so the take did not start. */
|
|
4
|
+
unavailable: string;
|
|
5
|
+
/** A finished take was silent and the candidate may record again. */
|
|
6
|
+
silentTake: string;
|
|
7
|
+
/** A finished take was silent and no retake is left. */
|
|
8
|
+
silentTakeNoRetake: string;
|
|
9
|
+
/** During a take, with `liveInputHint`: no input for a few seconds. */
|
|
10
|
+
noInput: string;
|
|
11
|
+
/** Opens Device settings with only the microphone. */
|
|
12
|
+
checkMicrophone: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const DEFAULT_AUDIO_RECORDER_MICROPHONE_MESSAGES: AudioRecorderMicrophoneMessages;
|
|
15
|
+
//# sourceMappingURL=audio-recorder-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-recorder-messages.d.ts","sourceRoot":"","sources":["../../src/media-controls/audio-recorder-messages.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,0CAA0C,EAAE,+BAMxD,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
/**
|
|
3
|
-
* Local fallbacks for `<AudioPlayer>` / `<VideoPlayer>` used when no SDK
|
|
4
|
-
* client is supplied (docs examples, Storybook standalone stories,
|
|
5
|
-
* pre-session UIs). Same handle surface as the SDK helpers, no telemetry.
|
|
6
|
-
*/
|
|
1
|
+
import { type ProctoringClient } from "@a4anthony/proctorkit-sdk";
|
|
7
2
|
export type AudioPlaybackClient = Pick<ProctoringClient, "playAudioFile">;
|
|
8
3
|
export type VideoPlaybackClient = Pick<ProctoringClient, "playVideoFile">;
|
|
4
|
+
/** Standalone components use the SDK recovery engine without session telemetry. */
|
|
9
5
|
export declare function createLocalAudioPlaybackClient(): AudioPlaybackClient;
|
|
10
6
|
export declare function createLocalVideoPlaybackClient(): VideoPlaybackClient;
|
|
11
7
|
//# sourceMappingURL=local-media-playback-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-media-playback-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-playback-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"local-media-playback-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-playback-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAE1E,mFAAmF;AACnF,wBAAgB,8BAA8B,IAAI,mBAAmB,CAEpE;AAED,wBAAgB,8BAA8B,IAAI,mBAAmB,CAEpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-media-recording-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-recording-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"local-media-recording-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-recording-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAMnC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAoChF,wBAAgB,+BAA+B,IAAI,uBAAuB,CAgIzE;AAiCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CA4HzE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Controlled, permission-free previews of recovery controls. */
|
|
2
|
+
export declare function mediaRecoveryStory(kind: "audio" | "video", scenario: "primary-loading" | "fallback-loading" | "both-failed" | "retry-recovery"): {
|
|
3
|
+
render: () => {
|
|
4
|
+
setup(): () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}>;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=media-recovery-story.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-recovery-story.d.ts","sourceRoot":"","sources":["../../src/media-controls/media-recovery-story.ts"],"names":[],"mappings":"AASA,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,GAAG,gBAAgB;;;;;;EAqGpF"}
|
|
@@ -25,5 +25,7 @@ export declare function createTimeline(limit?: number): {
|
|
|
25
25
|
export declare function createMockProctoringClient(options: {
|
|
26
26
|
addEvent: (kind: string, detail: string, tone?: TimelineItem["tone"]) => void;
|
|
27
27
|
shouldDropUpload?: () => boolean;
|
|
28
|
+
uploadDelayMs?: () => number;
|
|
29
|
+
retryDelayMs?: () => number;
|
|
28
30
|
}): ProctoringClient;
|
|
29
31
|
//# sourceMappingURL=storybook-mock-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storybook-mock-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/storybook-mock-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,
|
|
1
|
+
{"version":3,"file":"storybook-mock-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/storybook-mock-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAIvB,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AASnC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACtC,CAAC;AAkHF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAUR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,YAAY,CAAC,MAAM,CAAC,CAGtB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAK;qBAIf,MAAM,UAAU,MAAM,SAAQ,YAAY,CAAC,MAAM,CAAC;;;YA/ItE,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;YAHhC,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;EAuJrC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B,GAAG,gBAAgB,CAsZnB"}
|
|
@@ -1,25 +1,60 @@
|
|
|
1
|
-
import type { AudioClipVolumeAnalysis, ClipDropCode, ClipStartErrorCode, SessionEvent } from "@a4anthony/proctorkit-sdk";
|
|
1
|
+
import type { AudioClipAnswerReference, AudioClipFallbackSelection, AudioClipVolumeAnalysis, ClipDropCode, ClipStartErrorCode, SessionEvent } from "@a4anthony/proctorkit-sdk";
|
|
2
2
|
export type MediaClipKind = "audio" | "video";
|
|
3
|
+
export type AudioClipProctoringFallback = AudioClipAnswerReference;
|
|
3
4
|
/** Stable codes re-exported from the SDK for the media event payloads. */
|
|
4
5
|
export type MediaClipDropCode = ClipDropCode;
|
|
5
6
|
export type MediaClipErrorCode = ClipStartErrorCode;
|
|
6
7
|
export interface MediaClipStartedPayload {
|
|
7
8
|
kind: MediaClipKind;
|
|
9
|
+
/** Stable opaque identity supplied by the host or generated by ProctorKit. */
|
|
10
|
+
clipId: string;
|
|
11
|
+
/** Provisional until the upload response allocates the canonical number. */
|
|
8
12
|
clipNumber: number;
|
|
9
13
|
}
|
|
10
14
|
export interface MediaClipStoppedPayload {
|
|
11
15
|
kind: MediaClipKind;
|
|
16
|
+
clipId: string;
|
|
17
|
+
/** Provisional until the upload response allocates the canonical number. */
|
|
12
18
|
clipNumber: number;
|
|
13
19
|
}
|
|
14
20
|
export interface MediaClipUploadedPayload {
|
|
15
21
|
kind: MediaClipKind;
|
|
22
|
+
clipId: string;
|
|
23
|
+
/**
|
|
24
|
+
* Destination that accepted the recording and caused this component result.
|
|
25
|
+
* `client` means the host-supplied `sendClip`; `proctorkit` means ProctorKit
|
|
26
|
+
* stored the clip; `local` is the standalone simulated result with no upload.
|
|
27
|
+
*/
|
|
28
|
+
delivery: "client" | "fallback" | "proctorkit" | "local";
|
|
29
|
+
/**
|
|
30
|
+
* Provisional for `delivery: "client"` or `"local"`; canonical and
|
|
31
|
+
* session-scoped for `delivery: "fallback"` or `"proctorkit"`. Use clipId
|
|
32
|
+
* as the stable key.
|
|
33
|
+
*/
|
|
16
34
|
clipNumber: number;
|
|
17
35
|
byteSize: number;
|
|
18
36
|
durationMs: number;
|
|
19
37
|
volumeAnalysis?: AudioClipVolumeAnalysis;
|
|
38
|
+
/** Present when ProctorKit durably stored the client answer mapping. */
|
|
39
|
+
answerReference?: AudioClipAnswerReference;
|
|
40
|
+
/** Present only after the server persisted the client-reported selection. */
|
|
41
|
+
fallbackSelection?: AudioClipFallbackSelection;
|
|
42
|
+
/** Content digest from the server's exact fallback-selection receipt. */
|
|
43
|
+
contentSha256?: string;
|
|
20
44
|
}
|
|
45
|
+
/** The narrowed payload emitted after a mapped ProctorKit fallback is durable. */
|
|
46
|
+
export type AudioClipFallbackUploadedPayload = MediaClipUploadedPayload & {
|
|
47
|
+
kind: "audio";
|
|
48
|
+
delivery: "fallback";
|
|
49
|
+
answerReference: AudioClipAnswerReference;
|
|
50
|
+
fallbackSelection: AudioClipFallbackSelection;
|
|
51
|
+
contentSha256: string;
|
|
52
|
+
};
|
|
53
|
+
/** Narrow a generic recorder upload event to the durable audio fallback contract. */
|
|
54
|
+
export declare function isAudioClipFallbackUploadedPayload(payload: MediaClipUploadedPayload): payload is AudioClipFallbackUploadedPayload;
|
|
21
55
|
export interface MediaClipDroppedPayload {
|
|
22
56
|
kind: MediaClipKind;
|
|
57
|
+
clipId: string;
|
|
23
58
|
clipNumber: number;
|
|
24
59
|
/** Stable, machine-readable classification of the drop. */
|
|
25
60
|
code: MediaClipDropCode;
|
|
@@ -52,26 +87,47 @@ export interface MediaPlaybackThrownErrorPayload {
|
|
|
52
87
|
message: string;
|
|
53
88
|
}
|
|
54
89
|
/**
|
|
55
|
-
* The finalized clip handed to a host-supplied
|
|
90
|
+
* The finalized clip handed to a host-supplied primary destination. Receives a Blob
|
|
56
91
|
* (drop straight into fetch/FormData or a presigned PUT) plus the
|
|
57
92
|
* metadata needed to associate it on the host's side. Resolve = the
|
|
58
|
-
*
|
|
93
|
+
* client delivery succeeded; reject/throw = it failed (see
|
|
59
94
|
* MediaClipMirrorErrorPayload).
|
|
60
95
|
*/
|
|
61
96
|
export interface MediaClipData {
|
|
62
97
|
blob: Blob;
|
|
63
98
|
mimeType: string;
|
|
64
99
|
durationMs: number;
|
|
100
|
+
clipId: string;
|
|
65
101
|
clipNumber: number;
|
|
102
|
+
/** Audio-only analysis when the recorder could calculate it. */
|
|
103
|
+
volumeAnalysis?: AudioClipVolumeAnalysis;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Optional controls supplied to a host `sendClip` implementation.
|
|
107
|
+
*
|
|
108
|
+
* Call `reportProgress` with a percentage from 0 to 100 when the transport
|
|
109
|
+
* exposes upload progress. Values outside that range are clamped by the
|
|
110
|
+
* recorder. If progress is never reported, the recorder keeps its internal
|
|
111
|
+
* indicator indeterminate. `signal` is aborted when the recorder unmounts;
|
|
112
|
+
* transports that support cancellation may observe it.
|
|
113
|
+
*/
|
|
114
|
+
export interface MediaClipSendContext {
|
|
115
|
+
reportProgress?: (percentage: number) => void;
|
|
116
|
+
signal?: AbortSignal;
|
|
66
117
|
}
|
|
67
|
-
export type MediaClipDataSink = (clip: MediaClipData) => Promise<unknown>;
|
|
68
118
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
|
|
119
|
+
* Host primary delivery for a finalized recording. The optional second
|
|
120
|
+
* argument is backward-compatible with existing one-argument sinks.
|
|
121
|
+
*/
|
|
122
|
+
export type MediaClipDataSink = (clip: MediaClipData, context?: MediaClipSendContext) => Promise<unknown>;
|
|
123
|
+
/**
|
|
124
|
+
* Emitted when a host-supplied `sendClip` rejects. The recording remains
|
|
125
|
+
* available for an exact-byte retry. The historical name is retained for
|
|
126
|
+
* compatibility even though `sendClip` is now the primary destination.
|
|
72
127
|
*/
|
|
73
128
|
export interface MediaClipMirrorErrorPayload {
|
|
74
129
|
kind: MediaClipKind;
|
|
130
|
+
clipId: string;
|
|
75
131
|
clipNumber: number;
|
|
76
132
|
error: Error;
|
|
77
133
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media-controls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media-controls/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ export type MediaPartClasses<TPart extends string> = Partial<Record<TPart, Media
|
|
|
5
5
|
export type MediaPartStyles<TPart extends string> = Partial<Record<TPart, CSSProperties>>;
|
|
6
6
|
export type AudioPlayerPart = "root" | "surface" | "content" | "icon" | "media" | "timeline" | "time" | "progress" | "buffered" | "elapsed" | "metadata" | "error" | "controls" | "action" | "meta";
|
|
7
7
|
export type VideoPlayerPart = "root" | "surface" | "viewport" | "media" | "buffering" | "bufferingIcon" | "timeline" | "time" | "progress" | "buffered" | "elapsed" | "metadata" | "error" | "controls" | "action" | "meta";
|
|
8
|
-
export type AudioRecorderPart = "root" | "waveform" | "waveformTrack" | "waveformBar" | "surface" | "content" | "icon" | "timeline" | "time" | "progress" | "elapsed" | "metadata" | "error" | "controls" | "status" | "action" | "meta";
|
|
9
|
-
export type VideoRecorderPart = "root" | "surface" | "viewport" | "media" | "placeholder" | "placeholderIcon" | "timeline" | "time" | "progress" | "elapsed" | "error" | "controls" | "status" | "action" | "meta";
|
|
8
|
+
export type AudioRecorderPart = "root" | "waveform" | "waveformTrack" | "waveformBar" | "surface" | "content" | "icon" | "timeline" | "time" | "progress" | "elapsed" | "metadata" | "error" | "controls" | "status" | "uploadProgressContainer" | "uploadProgress" | "uploadProgressLabel" | "uploadProgressIndicator" | "action" | "meta" | "microphoneHint" | "microphoneCheck";
|
|
9
|
+
export type VideoRecorderPart = "root" | "surface" | "viewport" | "media" | "placeholder" | "placeholderIcon" | "timeline" | "time" | "progress" | "elapsed" | "error" | "controls" | "status" | "uploadProgressContainer" | "uploadProgress" | "uploadProgressLabel" | "uploadProgressIndicator" | "action" | "meta";
|
|
10
10
|
export interface ProctoringMediaTheme {
|
|
11
11
|
colors?: {
|
|
12
12
|
brand?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/media-controls/ui-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACZ,MAAM,KAAK,CAAC;AAGb,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/media-controls/ui-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Ref } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* Live version of the SDK's passive input-liveness rule, for a take that is
|
|
4
|
+
* recording. `noInput` turns true while the input has stayed digitally silent
|
|
5
|
+
* (or muted) long enough to be worth a hint, and false again as soon as any
|
|
6
|
+
* input arrives. It reads the stream the recorder already holds; it never
|
|
7
|
+
* opens a microphone of its own.
|
|
8
|
+
*
|
|
9
|
+
* It is a hint signal only. The rule cannot tell a dead microphone from a
|
|
10
|
+
* noise-gated one, so nothing may block on it.
|
|
11
|
+
*/
|
|
12
|
+
export declare function useLiveInputCheck(options: {
|
|
13
|
+
stream: Ref<MediaStream | undefined>;
|
|
14
|
+
active: Ref<boolean>;
|
|
15
|
+
}): {
|
|
16
|
+
noInput: Ref<boolean, boolean>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useLiveInputCheck.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLiveInputCheck.d.ts","sourceRoot":"","sources":["../../src/media-controls/useLiveInputCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAM5D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CACtB;;EAwEA"}
|