easyproctor 0.0.89 → 1.0.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 CHANGED
@@ -219,12 +219,12 @@ const {
219
219
  });
220
220
  ```
221
221
 
222
- ## Release Note V 0.0.89
222
+ ## Release Note V 1.0.0
223
223
 
224
- - Adicionou o callback onChangeDevices
225
- - Adicionou a integração com a extensão do chrome
226
- - Adicionou o modal de checkDevices
227
- - Comentou o script do EBML
224
+ - Salvando informações da gravação de Áudio
225
+ - Adicionado mais eventos da Azure
226
+ - Correção de eventos da Azure
227
+ - Atualização da comunicação com a Extensão do Chrome
228
228
 
229
229
 
230
230
  ## License
package/esm/index.js CHANGED
@@ -18,13 +18,6 @@ var __copyProps = (to, from, except, desc) => {
18
18
  };
19
19
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
20
 
21
- // node_modules/form-data/lib/browser.js
22
- var require_browser = __commonJS({
23
- "node_modules/form-data/lib/browser.js"(exports, module) {
24
- module.exports = typeof self == "object" ? self.FormData : window.FormData;
25
- }
26
- });
27
-
28
21
  // src/plugins/mp3.js
29
22
  var require_mp3 = __commonJS({
30
23
  "src/plugins/mp3.js"(exports, module) {
@@ -14308,6 +14301,13 @@ var require_mp3 = __commonJS({
14308
14301
  }
14309
14302
  });
14310
14303
 
14304
+ // node_modules/form-data/lib/browser.js
14305
+ var require_browser = __commonJS({
14306
+ "node_modules/form-data/lib/browser.js"(exports, module) {
14307
+ module.exports = typeof self == "object" ? self.FormData : window.FormData;
14308
+ }
14309
+ });
14310
+
14311
14311
  // src/modules/checkPermissions.ts
14312
14312
  async function checkPermissions() {
14313
14313
  try {
@@ -14356,6 +14356,12 @@ async function enumarateDevices() {
14356
14356
  return devices;
14357
14357
  }
14358
14358
 
14359
+ // src/plugins/MicRecorder2.ts
14360
+ var MicRecorder = require_mp3();
14361
+ function createMicRecorder(config) {
14362
+ return new MicRecorder(config);
14363
+ }
14364
+
14359
14365
  // src/new-flow/proctoring/ProctoringSession.ts
14360
14366
  var ProctoringSession = class {
14361
14367
  constructor(id) {
@@ -14378,6 +14384,12 @@ var ProctoringSession = class {
14378
14384
  this.state = "Recording" /* Recording */;
14379
14385
  this.startedAt = new Date(Date.now());
14380
14386
  }
14387
+ pause() {
14388
+ this.state = "Paused" /* Paused */;
14389
+ }
14390
+ resume() {
14391
+ this.state = "Recording" /* Recording */;
14392
+ }
14381
14393
  stop() {
14382
14394
  this.state = "Ended" /* Ended */;
14383
14395
  this.sessionDuration = Date.now() - this.startedAt.getTime();
@@ -14399,22 +14411,78 @@ var ProctoringSession = class {
14399
14411
  }
14400
14412
  };
14401
14413
 
14414
+ // src/new-flow/recorders/AudioRecorder.ts
14415
+ var AudioRecorder = class {
14416
+ constructor() {
14417
+ this.blobs = [];
14418
+ }
14419
+ async startRecording() {
14420
+ this.recorder = createMicRecorder({
14421
+ bitRate: 128
14422
+ });
14423
+ this.recorder.start().catch((e) => {
14424
+ throw new Error("Error on Audio to Start Recording");
14425
+ });
14426
+ }
14427
+ async pauseRecording() {
14428
+ }
14429
+ async resumeRecording() {
14430
+ }
14431
+ async stopRecording() {
14432
+ if (!this.recorder)
14433
+ return;
14434
+ const response = await this.recorder.stop().getMp3().then(async ([buffer, blob]) => {
14435
+ return { buffer, blob };
14436
+ }).catch((e) => {
14437
+ alert("We could not retrieve your message");
14438
+ return void 0;
14439
+ });
14440
+ if (response) {
14441
+ this.blobs.push(response.blob);
14442
+ }
14443
+ }
14444
+ async saveOnSession(session) {
14445
+ session.addRecording({
14446
+ device: "",
14447
+ file: new File(this.blobs, `EP_${session.id}_audio_0.mp3`, {
14448
+ type: "audio/mp3"
14449
+ }),
14450
+ origin: "Mic" /* Mic */
14451
+ });
14452
+ }
14453
+ };
14454
+
14402
14455
  // src/plugins/recorder.ts
14403
- function recorder(stream, buffer) {
14456
+ function recorder(stream, buffer, audio = false) {
14404
14457
  let resolvePromise;
14405
- const options = {
14458
+ let options = {
14406
14459
  mimeType: "video/webm;codecs=vp9",
14407
14460
  videoBitsPerSecond: 128e3,
14408
14461
  audioBitsPerSecond: 64 * 1e3
14409
14462
  };
14463
+ if (audio) {
14464
+ options = {
14465
+ mimeType: "audio/webm",
14466
+ audioBitsPerSecond: 64 * 1e3
14467
+ };
14468
+ }
14410
14469
  const mediaRecorder = new MediaRecorder(stream, options);
14411
14470
  mediaRecorder.ondataavailable = (e) => {
14412
14471
  if (e.data.size > 0) {
14413
14472
  buffer.push(e.data);
14414
14473
  }
14474
+ if (audio && mediaRecorder.state == "inactive") {
14475
+ const blob = new Blob(buffer, { type: "audio/mpeg-3" });
14476
+ buffer = [blob];
14477
+ }
14415
14478
  resolvePromise && resolvePromise();
14416
14479
  };
14417
- mediaRecorder.start();
14480
+ function startRecording() {
14481
+ return new Promise((resolve) => {
14482
+ resolvePromise = resolve;
14483
+ mediaRecorder.start();
14484
+ });
14485
+ }
14418
14486
  function stopRecording() {
14419
14487
  return new Promise((resolve) => {
14420
14488
  if (mediaRecorder.state == "recording") {
@@ -14428,7 +14496,28 @@ function recorder(stream, buffer) {
14428
14496
  }
14429
14497
  });
14430
14498
  }
14431
- return stopRecording;
14499
+ function pauseRecording() {
14500
+ return new Promise((resolve) => {
14501
+ if (mediaRecorder.state == "recording") {
14502
+ mediaRecorder.pause();
14503
+ resolve();
14504
+ } else {
14505
+ resolve();
14506
+ }
14507
+ });
14508
+ }
14509
+ function resumeRecording() {
14510
+ return new Promise((resolve) => {
14511
+ console.log("Resumindo...");
14512
+ if (mediaRecorder.state == "paused") {
14513
+ mediaRecorder.resume();
14514
+ resolve();
14515
+ } else {
14516
+ resolve();
14517
+ }
14518
+ });
14519
+ }
14520
+ return { startRecording, stopRecording, pauseRecording, resumeRecording };
14432
14521
  }
14433
14522
 
14434
14523
  // src/new-flow/recorders/CameraRecorder.ts
@@ -14458,15 +14547,33 @@ var CameraRecorder = class {
14458
14547
  }
14459
14548
  };
14460
14549
  this.cameraStream = await navigator.mediaDevices.getUserMedia(constraints);
14461
- const stopRecording = recorder(this.cameraStream, this.blobs);
14550
+ const { startRecording, stopRecording, pauseRecording, resumeRecording } = recorder(this.cameraStream, this.blobs);
14551
+ this.recordingStart = startRecording;
14462
14552
  this.recordingStop = stopRecording;
14553
+ this.recordingPause = pauseRecording;
14554
+ this.recordingResume = resumeRecording;
14555
+ this.recordingStart();
14463
14556
  }
14464
14557
  async stopRecording() {
14465
14558
  await this.recordingStop();
14466
14559
  }
14560
+ async pauseRecording() {
14561
+ console.log("Pausing...");
14562
+ await this.recordingPause();
14563
+ console.log("Paused");
14564
+ }
14565
+ async resumeRecording() {
14566
+ console.log("Resuming...");
14567
+ await this.recordingResume();
14568
+ console.log("Resumed");
14569
+ }
14467
14570
  async saveOnSession(session) {
14571
+ const settings = this.cameraStream.getVideoTracks()[0].getSettings();
14572
+ const settingsAudio = this.cameraStream.getAudioTracks()[0].getSettings();
14468
14573
  session.addRecording({
14469
- device: "",
14574
+ device: `Audio
14575
+ Sample Rate: ${settingsAudio.sampleRate}
14576
+ Sample Size: ${settingsAudio.sampleSize}`,
14470
14577
  file: new File(this.blobs, `EP_${session.id}_camera_0.webm`, {
14471
14578
  type: "video/webm"
14472
14579
  }),
@@ -14485,6 +14592,7 @@ var PROCTORING_NOT_STARTED = "proctoring_not_started";
14485
14592
  var ScreenRecorder = class {
14486
14593
  constructor(options) {
14487
14594
  this.blobs = [];
14595
+ this.blobsFinal = [];
14488
14596
  this.options = options;
14489
14597
  }
14490
14598
  async startRecording() {
@@ -14515,8 +14623,14 @@ var ScreenRecorder = class {
14515
14623
  });
14516
14624
  throw NOT_SHARED_FIRST_SCREEN;
14517
14625
  }
14518
- const stopRecording = recorder(this.screenStream, this.blobs);
14626
+ const { startRecording, stopRecording } = recorder(this.screenStream, this.blobs);
14627
+ this.recordingStart = startRecording;
14519
14628
  this.recordingStop = stopRecording;
14629
+ this.recordingStart();
14630
+ }
14631
+ async pauseRecording() {
14632
+ }
14633
+ async resumeRecording() {
14520
14634
  }
14521
14635
  async stopRecording() {
14522
14636
  await this.recordingStop();
@@ -14660,12 +14774,14 @@ var DeviceChecker = class {
14660
14774
  width: this.videoOptions.width,
14661
14775
  height: this.videoOptions.height
14662
14776
  });
14777
+ this.audioRecorder = new AudioRecorder();
14663
14778
  this.screenRecorder = options.captureScreen ? new ScreenRecorder({
14664
14779
  allowOnlyFirstMonitor: options.allowOnlyFirstMonitor || options.allowOnlyFirstMonitor == void 0 ? true : false,
14665
14780
  onStopSharingScreenCallback: () => {
14666
14781
  }
14667
14782
  }) : void 0;
14668
14783
  await this.cameraRecorder.startRecording();
14784
+ await this.audioRecorder.startRecording();
14669
14785
  if (this.screenRecorder) {
14670
14786
  await this.screenRecorder.startRecording();
14671
14787
  }
@@ -14678,6 +14794,7 @@ var DeviceChecker = class {
14678
14794
  const checkDevices = document.querySelector("#checkDevices");
14679
14795
  checkDevices == null ? void 0 : checkDevices.remove();
14680
14796
  await this.cameraRecorder.stopRecording();
14797
+ await this.audioRecorder.stopRecording();
14681
14798
  if (this.screenRecorder) {
14682
14799
  await this.screenRecorder.stopRecording();
14683
14800
  }
@@ -14708,8 +14825,8 @@ var Extension = class {
14708
14825
  }, 1e3);
14709
14826
  });
14710
14827
  }
14711
- sendVerifyMsg() {
14712
- window.postMessage({ type: "easyproctor", func: "verifyExtensionEasyproctor" }, "*");
14828
+ sendVerifyMsg(link, token) {
14829
+ window.postMessage({ type: "easyproctor", func: "verifyExtensionEasyproctor", url: link, token }, "*");
14713
14830
  }
14714
14831
  verify(event) {
14715
14832
  if (event.source == window && event.data.sender && event.data.sender === "easyproctor-extension" && event.data.message_name && event.data.message_name === "progress") {
@@ -14727,7 +14844,6 @@ var Extension = class {
14727
14844
  }
14728
14845
  addEventListener() {
14729
14846
  window.addEventListener("message", (event) => this.verify(event));
14730
- setTimeout(() => this.sendVerifyMsg(), 5e3);
14731
14847
  }
14732
14848
  };
14733
14849
 
@@ -22772,8 +22888,10 @@ var trackers = {
22772
22888
  registerStart: (proctoringId, success, description) => registerCustomEvent(eventNames.START, { proctoringId, success, description }),
22773
22889
  registerFinish: (proctoringId, success, description) => registerCustomEvent(eventNames.FINISH, { proctoringId, success, description }),
22774
22890
  registerError: (proctoringId, description) => registerCustomEvent(eventNames.ERROR, { proctoringId, description }),
22775
- registerUploadVideo: (proctoringId, success, description, serviceType, uploadTime) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, success, description, serviceType, uploadTime }),
22776
- registerChangeDevice: (proctoringId, inOrOut, devicesChanged) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, inOrOut, devicesChanged })
22891
+ registerUpload: (proctoringId, success, description, serviceType, uploadTime) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, success, description, serviceType, uploadTime }),
22892
+ registerUploadFile: (proctoringId, description, fileType) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, description, fileType }),
22893
+ registerChangeDevice: (proctoringId, inOrOut, devicesChanged) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, inOrOut, devicesChanged }),
22894
+ registerStopSharingScreen: (proctoringId, description) => registerCustomEvent(eventNames.UPLOAD_VIDEO, { proctoringId, description })
22777
22895
  };
22778
22896
 
22779
22897
  // src/modules/onChangeDevices.ts
@@ -24607,10 +24725,12 @@ var BackendService = class {
24607
24725
  this.baseUrl = this.selectBaseUrl(options.type);
24608
24726
  }
24609
24727
  selectBaseUrl(type) {
24610
- if (type === "dev") {
24728
+ if (type === "dev" /* dev */) {
24611
24729
  return DEV_BASE_URL;
24612
- } else if (type === "homol") {
24730
+ } else if (type === "homol" /* homol */) {
24613
24731
  return HOMOL_BASE_URL;
24732
+ } else if (type === "prod" /* prod */) {
24733
+ return PROD_BASE_URL;
24614
24734
  } else {
24615
24735
  return PROD_BASE_URL;
24616
24736
  }
@@ -24631,6 +24751,8 @@ var BackendService = class {
24631
24751
  path: `/AzureKey/getInsights`,
24632
24752
  method: "GET",
24633
24753
  jwt: proctoringOptions.token
24754
+ }).catch((error) => {
24755
+ throw "N\xE3o foi poss\xEDvel realizar a requisi\xE7\xE3o, tente novamente mais tarde";
24634
24756
  });
24635
24757
  return insights2.data;
24636
24758
  }
@@ -24806,6 +24928,16 @@ var ProctoringRecorder = class {
24806
24928
  const startPromises = this.recorders.map((rec) => rec.startRecording());
24807
24929
  await Promise.all(startPromises);
24808
24930
  }
24931
+ async pauseAll() {
24932
+ this.session.pause();
24933
+ const pausePromises = this.recorders.map((rec) => rec.pauseRecording());
24934
+ await Promise.all(pausePromises);
24935
+ }
24936
+ async resumeAll() {
24937
+ this.session.resume();
24938
+ const resumePromises = this.recorders.map((rec) => rec.resumeRecording());
24939
+ await Promise.all(resumePromises);
24940
+ }
24809
24941
  async stopAll() {
24810
24942
  const stopPromises = this.recorders.map((rec) => rec.stopRecording());
24811
24943
  await Promise.all(stopPromises);
@@ -24821,8 +24953,9 @@ var ProctoringRecorder = class {
24821
24953
 
24822
24954
  // src/new-flow/proctoring/ProctoringUploader.ts
24823
24955
  var ProctoringUploader = class {
24824
- constructor(session, uploadServices) {
24956
+ constructor(session, proctoringId, uploadServices) {
24825
24957
  this.session = session;
24958
+ this.proctoringId = proctoringId;
24826
24959
  this.uploadServices = uploadServices;
24827
24960
  }
24828
24961
  async upload(token, progress) {
@@ -24879,6 +25012,18 @@ var ProctoringUploader = class {
24879
25012
  }
24880
25013
  }, token);
24881
25014
  if (result) {
25015
+ let fileType = "";
25016
+ if (rec.file.name.search("camera") !== -1) {
25017
+ fileType = "Camera";
25018
+ } else if (rec.file.name.search("screen") !== -1) {
25019
+ fileType = "Screen";
25020
+ } else if (rec.file.name.search("audio") !== -1) {
25021
+ fileType = "Audio";
25022
+ }
25023
+ trackers.registerUploadFile(this.proctoringId, `Upload File
25024
+ Name: ${rec.file.name}
25025
+ Type: ${rec.file.type}
25026
+ Size: ${rec.file.size}`, fileType);
24882
25027
  return result;
24883
25028
  }
24884
25029
  }
@@ -24901,6 +25046,16 @@ var AlertRecorder = class {
24901
25046
  window.addEventListener("focus", () => this.onReturnFocus());
24902
25047
  }
24903
25048
  }
25049
+ async pauseRecording() {
25050
+ window.removeEventListener("blur", () => this.onLostFocus());
25051
+ window.removeEventListener("focus", () => this.onReturnFocus());
25052
+ }
25053
+ async resumeRecording() {
25054
+ if (this.optionsProctoring.captureScreen) {
25055
+ window.addEventListener("blur", () => this.onLostFocus());
25056
+ window.addEventListener("focus", () => this.onReturnFocus());
25057
+ }
25058
+ }
24904
25059
  async stopRecording() {
24905
25060
  window.removeEventListener("blur", () => this.onLostFocus());
24906
25061
  window.removeEventListener("focus", () => this.onReturnFocus());
@@ -24930,49 +25085,6 @@ var AlertRecorder = class {
24930
25085
  }
24931
25086
  };
24932
25087
 
24933
- // src/plugins/MicRecorder2.ts
24934
- var MicRecorder = require_mp3();
24935
- function createMicRecorder(config) {
24936
- return new MicRecorder(config);
24937
- }
24938
-
24939
- // src/new-flow/recorders/AudioRecorder.ts
24940
- var AudioRecorder = class {
24941
- constructor() {
24942
- this.blobs = [];
24943
- }
24944
- async startRecording() {
24945
- this.recorder = createMicRecorder({
24946
- bitRate: 128
24947
- });
24948
- this.recorder.start().catch((e) => {
24949
- throw new Error("Error on Audio to Start Recording");
24950
- });
24951
- }
24952
- async stopRecording() {
24953
- if (!this.recorder)
24954
- return;
24955
- const response = await this.recorder.stop().getMp3().then(async ([buffer, blob]) => {
24956
- return { buffer, blob };
24957
- }).catch((e) => {
24958
- alert("We could not retrieve your message");
24959
- return void 0;
24960
- });
24961
- if (response) {
24962
- this.blobs.push(response.blob);
24963
- }
24964
- }
24965
- async saveOnSession(session) {
24966
- session.addRecording({
24967
- device: "",
24968
- file: new File(this.blobs, `EP_${session.id}_audio_0.mp3`, {
24969
- type: "audio/mp3"
24970
- }),
24971
- origin: "Mic" /* Mic */
24972
- });
24973
- }
24974
- };
24975
-
24976
25088
  // src/new-flow/repository/IndexDbSessionRepository.ts
24977
25089
  var IndexDbSessionRepository = class {
24978
25090
  constructor(dbName, storeName) {
@@ -25059,8 +25171,8 @@ var AwsUploadService = class {
25059
25171
  this.proctoringId = proctoringId;
25060
25172
  }
25061
25173
  async upload(data, token) {
25174
+ const { file, onProgress } = data;
25062
25175
  try {
25063
- const { file, onProgress } = data;
25064
25176
  const progressCallback = (e) => {
25065
25177
  const progress = e.loadedBytes / file.size * 100;
25066
25178
  onProgress && onProgress(Math.round(progress));
@@ -25084,8 +25196,11 @@ var AwsUploadService = class {
25084
25196
  uploaded
25085
25197
  };
25086
25198
  } catch (err) {
25087
- trackers.registerError(this.proctoringId, "Failed to upload to azure");
25088
- throw new Error("Failed to upload to azure");
25199
+ trackers.registerError(this.proctoringId, `Failed to upload to AWS
25200
+ File name: ${file.name}
25201
+ File type: ${file.type}
25202
+ File size: ${file.size}`);
25203
+ throw new Error("Failed to upload to AWS");
25089
25204
  }
25090
25205
  }
25091
25206
  };
@@ -25097,8 +25212,8 @@ var AzureUploadService = class {
25097
25212
  this.proctoringId = proctoringId;
25098
25213
  }
25099
25214
  async upload(data, token) {
25215
+ const { file, onProgress } = data;
25100
25216
  try {
25101
- const { file, onProgress } = data;
25102
25217
  const progressCallback = (e) => {
25103
25218
  const progress = e.loadedBytes / file.size * 100;
25104
25219
  onProgress && onProgress(Math.round(progress));
@@ -25121,7 +25236,10 @@ var AzureUploadService = class {
25121
25236
  uploaded
25122
25237
  };
25123
25238
  } catch (err) {
25124
- trackers.registerError(this.proctoringId, "Failed to upload to azure");
25239
+ trackers.registerError(this.proctoringId, `Failed to upload to Azure
25240
+ File name: ${file.name}
25241
+ File type: ${file.type}
25242
+ File size: ${file.size}`);
25125
25243
  throw new Error("Failed to upload to azure");
25126
25244
  }
25127
25245
  }
@@ -25145,6 +25263,8 @@ var Proctoring = class {
25145
25263
  this.state = "Stop" /* Stop */;
25146
25264
  this.serviceType = "Upload" /* Upload */;
25147
25265
  this.onStopSharingScreenCallback = () => {
25266
+ console.log("Stop sharing screen");
25267
+ trackers.registerStopSharingScreen(this.proctoringId, "Stop sharing screen");
25148
25268
  };
25149
25269
  this.onLostFocusCallback = () => {
25150
25270
  };
@@ -25200,6 +25320,8 @@ var Proctoring = class {
25200
25320
  async start(options = getDefaultProctoringOptions(), _videoOptions = {}) {
25201
25321
  this.extension = new Extension();
25202
25322
  this.extension.addEventListener();
25323
+ const baseURL = this.backend.selectBaseUrl(this.context.type);
25324
+ setTimeout(() => this.extension.sendVerifyMsg(baseURL, this.context.token), 5e3);
25203
25325
  const devices = await enumarateDevices();
25204
25326
  await this.repositoryDevices.save({ ...devices, id: "devices" });
25205
25327
  this.sessionOptions = options;
@@ -25221,19 +25343,20 @@ var Proctoring = class {
25221
25343
  }, this.sessionOptions.proctoringType);
25222
25344
  this.proctoringId = startResponse.id;
25223
25345
  this.proctoringSession = new ProctoringSession(this.proctoringId);
25224
- const allRecorders = this.createRecorders(options);
25346
+ this.allRecorders = this.createRecorders(options);
25225
25347
  await this.recorder.startAll();
25226
25348
  await this.repository.save(this.proctoringSession);
25227
25349
  trackers.registerStart(this.proctoringId, true, "");
25228
- startResponse.cameraStream = allRecorders.cameraRecorder.cameraStream;
25229
- if (allRecorders.screenRecorder) {
25230
- startResponse.screenStream = allRecorders.screenRecorder.screenStream;
25350
+ startResponse.cameraStream = this.allRecorders.cameraRecorder.cameraStream;
25351
+ if (this.allRecorders.screenRecorder) {
25352
+ startResponse.screenStream = this.allRecorders.screenRecorder.screenStream;
25231
25353
  }
25232
25354
  this.state = "Recording" /* Recording */;
25233
25355
  return startResponse;
25234
25356
  } catch (error) {
25235
25357
  await this.cancel();
25236
- trackers.registerStart(this.proctoringId, false, "" + error);
25358
+ trackers.registerStart(this.proctoringId, false, `Token: ${this.context.token}
25359
+ Error: ` + error);
25237
25360
  this.state = "Stop" /* Stop */;
25238
25361
  throw error;
25239
25362
  }
@@ -25255,13 +25378,13 @@ var Proctoring = class {
25255
25378
  let uploader;
25256
25379
  let uploaderServices;
25257
25380
  if (versionVerify() !== "1.0.0.0") {
25258
- uploader = new ProctoringUploader(this.proctoringSession, [
25381
+ uploader = new ProctoringUploader(this.proctoringSession, this.proctoringId, [
25259
25382
  new DownloadService(this.proctoringId)
25260
25383
  ]);
25261
25384
  uploaderServices = "Download";
25262
25385
  this.serviceType = "Download" /* Download */;
25263
25386
  } else {
25264
- uploader = new ProctoringUploader(this.proctoringSession, [
25387
+ uploader = new ProctoringUploader(this.proctoringSession, this.proctoringId, [
25265
25388
  new AzureUploadService(this.proctoringId, this.backend),
25266
25389
  new AwsUploadService(this.proctoringId, this.backend),
25267
25390
  new DownloadService(this.proctoringId)
@@ -25279,11 +25402,11 @@ var Proctoring = class {
25279
25402
  }
25280
25403
  if (!extensionSuccess || !this.extension.hasExtension) {
25281
25404
  await uploader.upload(this.context.token, options.onProgress).catch(async (error) => {
25282
- trackers.registerUploadVideo(this.proctoringSession.id, false, `upload error: ${error}
25405
+ trackers.registerUpload(this.proctoringSession.id, false, `upload error: ${error}
25283
25406
 
25284
25407
  Upload Services: ${uploaderServices}`, this.serviceType);
25285
25408
  if (versionVerify() !== "1.0.0.0") {
25286
- uploader = new ProctoringUploader(this.proctoringSession, [
25409
+ uploader = new ProctoringUploader(this.proctoringSession, this.proctoringId, [
25287
25410
  new AzureUploadService(this.proctoringId, this.backend),
25288
25411
  new AwsUploadService(this.proctoringId, this.backend),
25289
25412
  new DownloadService(this.proctoringId)
@@ -25291,14 +25414,14 @@ Upload Services: ${uploaderServices}`, this.serviceType);
25291
25414
  uploaderServices = "Azure, AWS, Download";
25292
25415
  this.serviceType = "Upload" /* Upload */;
25293
25416
  await uploader.upload(this.context.token, options.onProgress).catch((error2) => {
25294
- trackers.registerUploadVideo(this.proctoringSession.id, false, `upload backup error: ${error2}
25417
+ trackers.registerUpload(this.proctoringSession.id, false, `upload backup error: ${error2}
25295
25418
 
25296
25419
  Upload Services: ${uploaderServices}
25297
25420
  Upload backup for Safe Browser`, this.serviceType);
25298
25421
  });
25299
25422
  }
25300
25423
  });
25301
- trackers.registerUploadVideo(this.proctoringSession.id, true, `upload success
25424
+ trackers.registerUpload(this.proctoringSession.id, true, `upload success
25302
25425
 
25303
25426
  Upload Services: ${uploaderServices}`, this.serviceType);
25304
25427
  }
@@ -25351,31 +25474,28 @@ Upload Services: ${uploaderServices}`, this.serviceType);
25351
25474
  await this.repository.save(this.proctoringSession);
25352
25475
  this.state = "Paused" /* Paused */;
25353
25476
  }
25354
- async resume(options = getDefaultProctoringOptions(), examId, _videoOptions = {
25355
- width: 640,
25356
- height: 480
25357
- }) {
25477
+ async resume() {
25358
25478
  var _a2;
25359
25479
  if (this.state != "Paused" /* Paused */) {
25360
25480
  throw PROCTORING_NOT_STARTED;
25361
25481
  }
25362
25482
  await this.verifyMultipleMonitors(this.sessionOptions);
25363
- const allRecorders = this.createRecorders(options);
25483
+ const allRecorders = this.createRecorders(this.sessionOptions);
25364
25484
  await this.recorder.startAll();
25365
25485
  this.proctoringSession.recordings = [];
25366
25486
  await this.repository.save(this.proctoringSession);
25367
25487
  this.state = "Recording" /* Recording */;
25368
25488
  return {
25369
- cameraStream: allRecorders.cameraRecorder.cameraStream,
25370
- _screenStream: (_a2 = allRecorders.screenRecorder) == null ? void 0 : _a2.screenStream
25489
+ cameraStream: this.allRecorders.cameraRecorder.cameraStream,
25490
+ _screenStream: (_a2 = this.allRecorders.screenRecorder) == null ? void 0 : _a2.screenStream
25371
25491
  };
25372
25492
  }
25373
25493
  };
25374
25494
 
25375
25495
  // src/proctoring/useProctoring.ts
25376
- function useProctoring(proctoringOptions, homolConfig = "prod") {
25496
+ function useProctoring(proctoringOptions, enviromentConfig = "prod" /* prod */) {
25377
25497
  const proctoring = new Proctoring({
25378
- type: homolConfig,
25498
+ type: enviromentConfig,
25379
25499
  clientId: proctoringOptions.clientId,
25380
25500
  examId: proctoringOptions.examId,
25381
25501
  token: proctoringOptions.token
@@ -5,7 +5,7 @@ export declare class Extension {
5
5
  responseStart: boolean;
6
6
  onProgress: ProgressCallback;
7
7
  start(): Promise<boolean>;
8
- sendVerifyMsg(): void;
8
+ sendVerifyMsg(link: string, token: string): void;
9
9
  private verify;
10
10
  addEventListener(): void;
11
11
  }