easyproctor-hml 2.5.16 → 2.5.18
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/esm/index.js +49 -47
- package/index.js +49 -47
- package/interfaces/ParamsConfig.d.ts +0 -1
- package/new-flow/backend/BackendService.d.ts +1 -1
- package/new-flow/recorders/AlertRecorder.d.ts +0 -2
- package/package.json +1 -1
- package/proctoring/proctoring.d.ts +1 -0
- package/proctoring/useProctoring.d.ts +1 -1
- package/unpkg/easyproctor.min.js +24 -24
package/esm/index.js
CHANGED
|
@@ -11819,12 +11819,12 @@ var BackendService = class {
|
|
|
11819
11819
|
});
|
|
11820
11820
|
return result.data;
|
|
11821
11821
|
}
|
|
11822
|
-
async verifyFace(proctoringId2, faceImage) {
|
|
11822
|
+
async verifyFace(proctoringId2, faceImage, retry) {
|
|
11823
11823
|
const result = await this.makeRequestAxios({
|
|
11824
11824
|
path: `/Realtime/verify-face`,
|
|
11825
11825
|
method: "POST",
|
|
11826
11826
|
jwt: this.token,
|
|
11827
|
-
body: { "proctoringId": proctoringId2, "base64": faceImage }
|
|
11827
|
+
body: { "proctoringId": proctoringId2, "base64": faceImage, "retry": retry }
|
|
11828
11828
|
});
|
|
11829
11829
|
return result.data;
|
|
11830
11830
|
}
|
|
@@ -12700,7 +12700,6 @@ var CameraRecorder = class {
|
|
|
12700
12700
|
noiseLimit: 40
|
|
12701
12701
|
},
|
|
12702
12702
|
imageBehaviourParameters: {
|
|
12703
|
-
frames: 40,
|
|
12704
12703
|
useUploadImage: true,
|
|
12705
12704
|
uploadInterval: 20,
|
|
12706
12705
|
saveVideo: true
|
|
@@ -12712,7 +12711,6 @@ var CameraRecorder = class {
|
|
|
12712
12711
|
}
|
|
12713
12712
|
};
|
|
12714
12713
|
// private imageParams: ImageParameters = {
|
|
12715
|
-
// frames: 40,
|
|
12716
12714
|
// useUploadImage: true,
|
|
12717
12715
|
// uploadInterval: 20,
|
|
12718
12716
|
// saveVideo: true
|
|
@@ -15202,7 +15200,6 @@ var AlertRecorder = class {
|
|
|
15202
15200
|
// 1. LOST / RETURN FOCUS
|
|
15203
15201
|
this.handleLostFocus = () => {
|
|
15204
15202
|
if (this.getRelativeTime() > 1e4) {
|
|
15205
|
-
this.createAlert(25 /* FocusOff */, 3 /* Screen */, "Usu\xE1rio mudou de aba ou minimizou");
|
|
15206
15203
|
const alertPayload = {
|
|
15207
15204
|
begin: this.getRelativeTime(),
|
|
15208
15205
|
end: 0,
|
|
@@ -15287,19 +15284,15 @@ var AlertRecorder = class {
|
|
|
15287
15284
|
this.startTime = new Date(Date.now());
|
|
15288
15285
|
this.alerts = [];
|
|
15289
15286
|
this.attachListeners();
|
|
15290
|
-
this.startIdleChecker();
|
|
15291
15287
|
}
|
|
15292
15288
|
async pauseRecording() {
|
|
15293
15289
|
this.detachListeners();
|
|
15294
|
-
this.stopIdleChecker();
|
|
15295
15290
|
}
|
|
15296
15291
|
async resumeRecording() {
|
|
15297
15292
|
this.attachListeners();
|
|
15298
|
-
this.startIdleChecker();
|
|
15299
15293
|
}
|
|
15300
15294
|
async stopRecording() {
|
|
15301
15295
|
this.detachListeners();
|
|
15302
|
-
this.stopIdleChecker();
|
|
15303
15296
|
}
|
|
15304
15297
|
async saveOnSession(session) {
|
|
15305
15298
|
this.alerts.forEach((alert) => {
|
|
@@ -15314,9 +15307,6 @@ var AlertRecorder = class {
|
|
|
15314
15307
|
window.addEventListener("blur", this.handleLostFocus);
|
|
15315
15308
|
window.addEventListener("focus", this.handleReturnFocus);
|
|
15316
15309
|
window.addEventListener("resize", this.handleResize);
|
|
15317
|
-
window.addEventListener("mousemove", this.handleUserActivity);
|
|
15318
|
-
window.addEventListener("click", this.handleUserActivity);
|
|
15319
|
-
window.addEventListener("touchstart", this.handleUserActivity);
|
|
15320
15310
|
window.document.addEventListener("copy", this.handleCopy);
|
|
15321
15311
|
window.document.addEventListener("cut", this.handleCut);
|
|
15322
15312
|
window.document.addEventListener("paste", this.handlePaste);
|
|
@@ -15326,39 +15316,37 @@ var AlertRecorder = class {
|
|
|
15326
15316
|
window.removeEventListener("blur", this.handleLostFocus);
|
|
15327
15317
|
window.removeEventListener("focus", this.handleReturnFocus);
|
|
15328
15318
|
window.removeEventListener("resize", this.handleResize);
|
|
15329
|
-
window.removeEventListener("mousemove", this.handleUserActivity);
|
|
15330
|
-
window.removeEventListener("keydown", this.handleUserActivity);
|
|
15331
|
-
window.removeEventListener("click", this.handleUserActivity);
|
|
15332
|
-
window.removeEventListener("scroll", this.handleUserActivity);
|
|
15333
|
-
window.removeEventListener("touchstart", this.handleUserActivity);
|
|
15334
15319
|
window.document.removeEventListener("copy", this.handleCopy);
|
|
15335
15320
|
window.document.removeEventListener("cut", this.handleCut);
|
|
15336
15321
|
window.document.removeEventListener("paste", this.handlePaste);
|
|
15337
15322
|
}
|
|
15338
|
-
startIdleChecker() {
|
|
15339
|
-
|
|
15340
|
-
|
|
15341
|
-
|
|
15342
|
-
|
|
15343
|
-
|
|
15344
|
-
|
|
15345
|
-
|
|
15346
|
-
|
|
15347
|
-
|
|
15348
|
-
|
|
15349
|
-
|
|
15350
|
-
|
|
15351
|
-
|
|
15352
|
-
|
|
15353
|
-
|
|
15354
|
-
|
|
15355
|
-
}
|
|
15356
|
-
|
|
15357
|
-
|
|
15358
|
-
|
|
15359
|
-
|
|
15360
|
-
|
|
15361
|
-
|
|
15323
|
+
// private startIdleChecker() {
|
|
15324
|
+
// this.stopIdleChecker(); // Garante que não tenha duplicação
|
|
15325
|
+
// this.idleCheckInterval = setInterval(() => {
|
|
15326
|
+
// const idleTime = Date.now() - this.lastActivityTime;
|
|
15327
|
+
// if (idleTime > this.IDLE_THRESHOLD_MS) {
|
|
15328
|
+
// // Verifica se já não mandamos esse alerta recentemente para não floodar
|
|
15329
|
+
// const lastAlert = this.alerts[this.alerts.length - 1];
|
|
15330
|
+
// // Se o último alerta não foi de inatividade ou foi há muito tempo, cria novo
|
|
15331
|
+
// if (!lastAlert || lastAlert.alert !== AlertCategory.ForbiddenAction || (this.getRelativeTime() - lastAlert.begin > 5000)) {
|
|
15332
|
+
// const msg = "Usuário inativo por muito tempo";
|
|
15333
|
+
// // Assumindo ForbiddenAction ou outra categoria adequada
|
|
15334
|
+
// this.createAlert(AlertCategory.ForbiddenAction, AlertType.System, msg);
|
|
15335
|
+
// this.onRealtimeAlertCallback && this.onRealtimeAlertCallback({
|
|
15336
|
+
// status: 'ALERT',
|
|
15337
|
+
// description: msg,
|
|
15338
|
+
// type: 'user_idle'
|
|
15339
|
+
// });
|
|
15340
|
+
// }
|
|
15341
|
+
// }
|
|
15342
|
+
// }, 5000); // Checa a cada 5 segundos
|
|
15343
|
+
// }
|
|
15344
|
+
// private stopIdleChecker() {
|
|
15345
|
+
// if (this.idleCheckInterval) {
|
|
15346
|
+
// clearInterval(this.idleCheckInterval);
|
|
15347
|
+
// this.idleCheckInterval = null;
|
|
15348
|
+
// }
|
|
15349
|
+
// }
|
|
15362
15350
|
// 4. BACKGROUND EVENTS (Eventos disparados manualmente)
|
|
15363
15351
|
addBackgroundEvent(description, category = 200 /* System */) {
|
|
15364
15352
|
this.createAlert(category, 6 /* System */, description);
|
|
@@ -21806,7 +21794,6 @@ var Proctoring = class {
|
|
|
21806
21794
|
noiseLimit: 40
|
|
21807
21795
|
},
|
|
21808
21796
|
imageBehaviourParameters: {
|
|
21809
|
-
frames: 40,
|
|
21810
21797
|
useUploadImage: true,
|
|
21811
21798
|
uploadInterval: 20,
|
|
21812
21799
|
saveVideo: true
|
|
@@ -22137,11 +22124,23 @@ Navigator: ${JSON.stringify(_navigator2)}`
|
|
|
22137
22124
|
startResponse.screenStream = this.allRecorders.screenRecorder.screenStream;
|
|
22138
22125
|
}
|
|
22139
22126
|
this.state = "Recording" /* Recording */;
|
|
22140
|
-
|
|
22127
|
+
let verifyFirstFaceIntervalCount = 0;
|
|
22128
|
+
let verifyingFace = false;
|
|
22129
|
+
this.verifyFirstFaceInterval = setInterval(async () => {
|
|
22141
22130
|
if (this.sessionOptions.proctoringType === "REALTIME") {
|
|
22142
|
-
|
|
22131
|
+
if (verifyingFace) return;
|
|
22132
|
+
verifyingFace = true;
|
|
22133
|
+
verifyFirstFaceIntervalCount++;
|
|
22134
|
+
try {
|
|
22135
|
+
var response = await this.backend.verifyFace(this.proctoringId, await this.allRecorders.cameraRecorder.getCurrentImageBase64(), verifyFirstFaceIntervalCount > 5 ? false : true);
|
|
22136
|
+
verifyingFace = false;
|
|
22137
|
+
clearInterval(this.verifyFirstFaceInterval);
|
|
22138
|
+
} catch (error) {
|
|
22139
|
+
verifyingFace = false;
|
|
22140
|
+
return;
|
|
22141
|
+
}
|
|
22143
22142
|
}
|
|
22144
|
-
},
|
|
22143
|
+
}, 1500);
|
|
22145
22144
|
return startResponse;
|
|
22146
22145
|
} catch (error) {
|
|
22147
22146
|
console.log(error);
|
|
@@ -22279,6 +22278,9 @@ Upload Services: ${uploaderServices}`,
|
|
|
22279
22278
|
await this.backend.externalCameraFinish(externalSessionId);
|
|
22280
22279
|
}
|
|
22281
22280
|
}
|
|
22281
|
+
if (this.verifyFirstFaceInterval) {
|
|
22282
|
+
clearInterval(this.verifyFirstFaceInterval);
|
|
22283
|
+
}
|
|
22282
22284
|
this.state = "Stop" /* Stop */;
|
|
22283
22285
|
} catch (error) {
|
|
22284
22286
|
await this.cancel();
|
|
@@ -22666,12 +22668,12 @@ function useProctoring(proctoringOptions, enviromentConfig = "prod") {
|
|
|
22666
22668
|
const photo = new CapturePhoto();
|
|
22667
22669
|
const login = proctoring.login.bind(proctoring);
|
|
22668
22670
|
const originalStart = proctoring.start.bind(proctoring);
|
|
22669
|
-
const start = async (parameters2) => {
|
|
22671
|
+
const start = async (parameters2, videoOptions) => {
|
|
22670
22672
|
const deviceResult = checker.getDeviceCheckResult();
|
|
22671
22673
|
if (deviceResult) {
|
|
22672
22674
|
proctoring.setDeviceCheckData(deviceResult);
|
|
22673
22675
|
}
|
|
22674
|
-
return originalStart(parameters2);
|
|
22676
|
+
return originalStart(parameters2, videoOptions);
|
|
22675
22677
|
};
|
|
22676
22678
|
const finish = proctoring.finish.bind(proctoring);
|
|
22677
22679
|
const startChallenge = proctoring.startChallenge.bind(proctoring);
|
package/index.js
CHANGED
|
@@ -29916,12 +29916,12 @@ var BackendService = class {
|
|
|
29916
29916
|
});
|
|
29917
29917
|
return result.data;
|
|
29918
29918
|
}
|
|
29919
|
-
async verifyFace(proctoringId2, faceImage) {
|
|
29919
|
+
async verifyFace(proctoringId2, faceImage, retry) {
|
|
29920
29920
|
const result = await this.makeRequestAxios({
|
|
29921
29921
|
path: `/Realtime/verify-face`,
|
|
29922
29922
|
method: "POST",
|
|
29923
29923
|
jwt: this.token,
|
|
29924
|
-
body: { "proctoringId": proctoringId2, "base64": faceImage }
|
|
29924
|
+
body: { "proctoringId": proctoringId2, "base64": faceImage, "retry": retry }
|
|
29925
29925
|
});
|
|
29926
29926
|
return result.data;
|
|
29927
29927
|
}
|
|
@@ -30797,7 +30797,6 @@ var CameraRecorder = class {
|
|
|
30797
30797
|
noiseLimit: 40
|
|
30798
30798
|
},
|
|
30799
30799
|
imageBehaviourParameters: {
|
|
30800
|
-
frames: 40,
|
|
30801
30800
|
useUploadImage: true,
|
|
30802
30801
|
uploadInterval: 20,
|
|
30803
30802
|
saveVideo: true
|
|
@@ -30809,7 +30808,6 @@ var CameraRecorder = class {
|
|
|
30809
30808
|
}
|
|
30810
30809
|
};
|
|
30811
30810
|
// private imageParams: ImageParameters = {
|
|
30812
|
-
// frames: 40,
|
|
30813
30811
|
// useUploadImage: true,
|
|
30814
30812
|
// uploadInterval: 20,
|
|
30815
30813
|
// saveVideo: true
|
|
@@ -33299,7 +33297,6 @@ var AlertRecorder = class {
|
|
|
33299
33297
|
// 1. LOST / RETURN FOCUS
|
|
33300
33298
|
this.handleLostFocus = () => {
|
|
33301
33299
|
if (this.getRelativeTime() > 1e4) {
|
|
33302
|
-
this.createAlert(25 /* FocusOff */, 3 /* Screen */, "Usu\xE1rio mudou de aba ou minimizou");
|
|
33303
33300
|
const alertPayload = {
|
|
33304
33301
|
begin: this.getRelativeTime(),
|
|
33305
33302
|
end: 0,
|
|
@@ -33384,19 +33381,15 @@ var AlertRecorder = class {
|
|
|
33384
33381
|
this.startTime = new Date(Date.now());
|
|
33385
33382
|
this.alerts = [];
|
|
33386
33383
|
this.attachListeners();
|
|
33387
|
-
this.startIdleChecker();
|
|
33388
33384
|
}
|
|
33389
33385
|
async pauseRecording() {
|
|
33390
33386
|
this.detachListeners();
|
|
33391
|
-
this.stopIdleChecker();
|
|
33392
33387
|
}
|
|
33393
33388
|
async resumeRecording() {
|
|
33394
33389
|
this.attachListeners();
|
|
33395
|
-
this.startIdleChecker();
|
|
33396
33390
|
}
|
|
33397
33391
|
async stopRecording() {
|
|
33398
33392
|
this.detachListeners();
|
|
33399
|
-
this.stopIdleChecker();
|
|
33400
33393
|
}
|
|
33401
33394
|
async saveOnSession(session) {
|
|
33402
33395
|
this.alerts.forEach((alert) => {
|
|
@@ -33411,9 +33404,6 @@ var AlertRecorder = class {
|
|
|
33411
33404
|
window.addEventListener("blur", this.handleLostFocus);
|
|
33412
33405
|
window.addEventListener("focus", this.handleReturnFocus);
|
|
33413
33406
|
window.addEventListener("resize", this.handleResize);
|
|
33414
|
-
window.addEventListener("mousemove", this.handleUserActivity);
|
|
33415
|
-
window.addEventListener("click", this.handleUserActivity);
|
|
33416
|
-
window.addEventListener("touchstart", this.handleUserActivity);
|
|
33417
33407
|
window.document.addEventListener("copy", this.handleCopy);
|
|
33418
33408
|
window.document.addEventListener("cut", this.handleCut);
|
|
33419
33409
|
window.document.addEventListener("paste", this.handlePaste);
|
|
@@ -33423,39 +33413,37 @@ var AlertRecorder = class {
|
|
|
33423
33413
|
window.removeEventListener("blur", this.handleLostFocus);
|
|
33424
33414
|
window.removeEventListener("focus", this.handleReturnFocus);
|
|
33425
33415
|
window.removeEventListener("resize", this.handleResize);
|
|
33426
|
-
window.removeEventListener("mousemove", this.handleUserActivity);
|
|
33427
|
-
window.removeEventListener("keydown", this.handleUserActivity);
|
|
33428
|
-
window.removeEventListener("click", this.handleUserActivity);
|
|
33429
|
-
window.removeEventListener("scroll", this.handleUserActivity);
|
|
33430
|
-
window.removeEventListener("touchstart", this.handleUserActivity);
|
|
33431
33416
|
window.document.removeEventListener("copy", this.handleCopy);
|
|
33432
33417
|
window.document.removeEventListener("cut", this.handleCut);
|
|
33433
33418
|
window.document.removeEventListener("paste", this.handlePaste);
|
|
33434
33419
|
}
|
|
33435
|
-
startIdleChecker() {
|
|
33436
|
-
|
|
33437
|
-
|
|
33438
|
-
|
|
33439
|
-
|
|
33440
|
-
|
|
33441
|
-
|
|
33442
|
-
|
|
33443
|
-
|
|
33444
|
-
|
|
33445
|
-
|
|
33446
|
-
|
|
33447
|
-
|
|
33448
|
-
|
|
33449
|
-
|
|
33450
|
-
|
|
33451
|
-
|
|
33452
|
-
}
|
|
33453
|
-
|
|
33454
|
-
|
|
33455
|
-
|
|
33456
|
-
|
|
33457
|
-
|
|
33458
|
-
|
|
33420
|
+
// private startIdleChecker() {
|
|
33421
|
+
// this.stopIdleChecker(); // Garante que não tenha duplicação
|
|
33422
|
+
// this.idleCheckInterval = setInterval(() => {
|
|
33423
|
+
// const idleTime = Date.now() - this.lastActivityTime;
|
|
33424
|
+
// if (idleTime > this.IDLE_THRESHOLD_MS) {
|
|
33425
|
+
// // Verifica se já não mandamos esse alerta recentemente para não floodar
|
|
33426
|
+
// const lastAlert = this.alerts[this.alerts.length - 1];
|
|
33427
|
+
// // Se o último alerta não foi de inatividade ou foi há muito tempo, cria novo
|
|
33428
|
+
// if (!lastAlert || lastAlert.alert !== AlertCategory.ForbiddenAction || (this.getRelativeTime() - lastAlert.begin > 5000)) {
|
|
33429
|
+
// const msg = "Usuário inativo por muito tempo";
|
|
33430
|
+
// // Assumindo ForbiddenAction ou outra categoria adequada
|
|
33431
|
+
// this.createAlert(AlertCategory.ForbiddenAction, AlertType.System, msg);
|
|
33432
|
+
// this.onRealtimeAlertCallback && this.onRealtimeAlertCallback({
|
|
33433
|
+
// status: 'ALERT',
|
|
33434
|
+
// description: msg,
|
|
33435
|
+
// type: 'user_idle'
|
|
33436
|
+
// });
|
|
33437
|
+
// }
|
|
33438
|
+
// }
|
|
33439
|
+
// }, 5000); // Checa a cada 5 segundos
|
|
33440
|
+
// }
|
|
33441
|
+
// private stopIdleChecker() {
|
|
33442
|
+
// if (this.idleCheckInterval) {
|
|
33443
|
+
// clearInterval(this.idleCheckInterval);
|
|
33444
|
+
// this.idleCheckInterval = null;
|
|
33445
|
+
// }
|
|
33446
|
+
// }
|
|
33459
33447
|
// 4. BACKGROUND EVENTS (Eventos disparados manualmente)
|
|
33460
33448
|
addBackgroundEvent(description, category = 200 /* System */) {
|
|
33461
33449
|
this.createAlert(category, 6 /* System */, description);
|
|
@@ -37055,7 +37043,6 @@ var Proctoring = class {
|
|
|
37055
37043
|
noiseLimit: 40
|
|
37056
37044
|
},
|
|
37057
37045
|
imageBehaviourParameters: {
|
|
37058
|
-
frames: 40,
|
|
37059
37046
|
useUploadImage: true,
|
|
37060
37047
|
uploadInterval: 20,
|
|
37061
37048
|
saveVideo: true
|
|
@@ -37386,11 +37373,23 @@ Navigator: ${JSON.stringify(_navigator2)}`
|
|
|
37386
37373
|
startResponse.screenStream = this.allRecorders.screenRecorder.screenStream;
|
|
37387
37374
|
}
|
|
37388
37375
|
this.state = "Recording" /* Recording */;
|
|
37389
|
-
|
|
37376
|
+
let verifyFirstFaceIntervalCount = 0;
|
|
37377
|
+
let verifyingFace = false;
|
|
37378
|
+
this.verifyFirstFaceInterval = setInterval(async () => {
|
|
37390
37379
|
if (this.sessionOptions.proctoringType === "REALTIME") {
|
|
37391
|
-
|
|
37380
|
+
if (verifyingFace) return;
|
|
37381
|
+
verifyingFace = true;
|
|
37382
|
+
verifyFirstFaceIntervalCount++;
|
|
37383
|
+
try {
|
|
37384
|
+
var response = await this.backend.verifyFace(this.proctoringId, await this.allRecorders.cameraRecorder.getCurrentImageBase64(), verifyFirstFaceIntervalCount > 5 ? false : true);
|
|
37385
|
+
verifyingFace = false;
|
|
37386
|
+
clearInterval(this.verifyFirstFaceInterval);
|
|
37387
|
+
} catch (error) {
|
|
37388
|
+
verifyingFace = false;
|
|
37389
|
+
return;
|
|
37390
|
+
}
|
|
37392
37391
|
}
|
|
37393
|
-
},
|
|
37392
|
+
}, 1500);
|
|
37394
37393
|
return startResponse;
|
|
37395
37394
|
} catch (error) {
|
|
37396
37395
|
console.log(error);
|
|
@@ -37528,6 +37527,9 @@ Upload Services: ${uploaderServices}`,
|
|
|
37528
37527
|
await this.backend.externalCameraFinish(externalSessionId);
|
|
37529
37528
|
}
|
|
37530
37529
|
}
|
|
37530
|
+
if (this.verifyFirstFaceInterval) {
|
|
37531
|
+
clearInterval(this.verifyFirstFaceInterval);
|
|
37532
|
+
}
|
|
37531
37533
|
this.state = "Stop" /* Stop */;
|
|
37532
37534
|
} catch (error) {
|
|
37533
37535
|
await this.cancel();
|
|
@@ -37915,12 +37917,12 @@ function useProctoring(proctoringOptions, enviromentConfig = "prod") {
|
|
|
37915
37917
|
const photo = new CapturePhoto();
|
|
37916
37918
|
const login = proctoring.login.bind(proctoring);
|
|
37917
37919
|
const originalStart = proctoring.start.bind(proctoring);
|
|
37918
|
-
const start = async (parameters2) => {
|
|
37920
|
+
const start = async (parameters2, videoOptions) => {
|
|
37919
37921
|
const deviceResult = checker.getDeviceCheckResult();
|
|
37920
37922
|
if (deviceResult) {
|
|
37921
37923
|
proctoring.setDeviceCheckData(deviceResult);
|
|
37922
37924
|
}
|
|
37923
|
-
return originalStart(parameters2);
|
|
37925
|
+
return originalStart(parameters2, videoOptions);
|
|
37924
37926
|
};
|
|
37925
37927
|
const finish = proctoring.finish.bind(proctoring);
|
|
37926
37928
|
const startChallenge = proctoring.startChallenge.bind(proctoring);
|
|
@@ -39,7 +39,7 @@ export declare class BackendService {
|
|
|
39
39
|
stopChallenge(challengeId: string, body: any): Promise<any>;
|
|
40
40
|
startRealtimeAlert(body: any): Promise<any>;
|
|
41
41
|
stopRealtimeAlert(body: any): Promise<any>;
|
|
42
|
-
verifyFace(proctoringId: any, faceImage: any): Promise<any>;
|
|
42
|
+
verifyFace(proctoringId: any, faceImage: any, retry: boolean): Promise<any>;
|
|
43
43
|
getServerHour(token: string): Promise<string>;
|
|
44
44
|
private makeRequest;
|
|
45
45
|
makeRequestAxios<R>(data: {
|
|
@@ -28,8 +28,6 @@ export declare class AlertRecorder implements IRecorder {
|
|
|
28
28
|
private handleReturnFocus;
|
|
29
29
|
private handleResize;
|
|
30
30
|
private handleUserActivity;
|
|
31
|
-
private startIdleChecker;
|
|
32
|
-
private stopIdleChecker;
|
|
33
31
|
addBackgroundEvent(description: string, category?: AlertCategory): void;
|
|
34
32
|
private handleCopy;
|
|
35
33
|
private handleCut;
|
package/package.json
CHANGED
|
@@ -57,6 +57,7 @@ export declare class Proctoring {
|
|
|
57
57
|
private allRecorders;
|
|
58
58
|
private spyCam;
|
|
59
59
|
appChecker: ExternalCameraChecker;
|
|
60
|
+
private verifyFirstFaceInterval;
|
|
60
61
|
private onStopSharingScreenCallback;
|
|
61
62
|
setOnStopSharingScreenCallback(cb: () => void): void;
|
|
62
63
|
private setOnLostFocusAlertRecorderCallback;
|
|
@@ -3,7 +3,7 @@ import enumarateDevices from "../modules/enumarateDevices";
|
|
|
3
3
|
import { ProctoringContext } from "./proctoring";
|
|
4
4
|
export declare function useProctoring(proctoringOptions: ProctoringContext, enviromentConfig?: string): {
|
|
5
5
|
login: () => Promise<void>;
|
|
6
|
-
start: (parameters: any) => Promise<import("../dtos/StartProctoringResponse").default>;
|
|
6
|
+
start: (parameters: any, videoOptions: any) => Promise<import("../dtos/StartProctoringResponse").default>;
|
|
7
7
|
finish: (options?: import("./proctoring").ProctoringFinisherOptions) => Promise<void>;
|
|
8
8
|
startChallenge: (templateId: string) => Promise<void>;
|
|
9
9
|
stopChallenge: () => Promise<void>;
|