easyproctor-hml 2.5.0 → 2.5.1

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
@@ -264,6 +264,12 @@ const {
264
264
  });
265
265
  ```
266
266
 
267
+ ## Release Note V 2.3.3
268
+ - Correção do reset no startSession
269
+
270
+ ## Release Note V 2.3.2
271
+ - Melhorias no fluxo da câmera externa (reset e goToExternalCameraPositionStep)
272
+
267
273
  ## Release Note V 2.3.1
268
274
  - Implementação da funcionalidade de transmissão com câmera externa
269
275
 
package/esm/index.js CHANGED
@@ -18953,7 +18953,9 @@ Upload Services: ${uploaderServices}`,
18953
18953
  });
18954
18954
  if (this.appChecker) {
18955
18955
  const externalSessionId = this.appChecker.getExternalCameraSessionId();
18956
- await this.backend.externalCameraFinish(externalSessionId);
18956
+ if (externalSessionId != null) {
18957
+ await this.backend.externalCameraFinish(externalSessionId);
18958
+ }
18957
18959
  }
18958
18960
  this.state = "Stop" /* Stop */;
18959
18961
  } catch (error) {
package/index.js CHANGED
@@ -34202,7 +34202,9 @@ Upload Services: ${uploaderServices}`,
34202
34202
  });
34203
34203
  if (this.appChecker) {
34204
34204
  const externalSessionId = this.appChecker.getExternalCameraSessionId();
34205
- await this.backend.externalCameraFinish(externalSessionId);
34205
+ if (externalSessionId != null) {
34206
+ await this.backend.externalCameraFinish(externalSessionId);
34207
+ }
34206
34208
  }
34207
34209
  this.state = "Stop" /* Stop */;
34208
34210
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easyproctor-hml",
3
- "version": "2.5.0",
3
+ "version": "2.5.1",
4
4
  "description": "Modulo web de gravação do EasyProctor",
5
5
  "main": "./index.js",
6
6
  "module": "./esm/index.js",
@@ -322,6 +322,6 @@ Upload Services: ${n}`,this.serviceType),bi()!=="1.0.0.0"&&(r=new no(this.procto
322
322
  Upload Services: ${n}
323
323
  Upload backup for Safe Browser`,this.serviceType)}))}),L.registerUpload(this.proctoringSession.id,!0,`upload success
324
324
 
325
- Upload Services: ${n}`,this.serviceType)),this.proctoringSession.alerts.length>0&&await this.backend.saveAlerts(this.context,this.proctoringSession).catch(i=>{L.registerFinish(this.proctoringSession.id,!1,"save-screen error: "+i)}),await this.backend.finishAndSendUrls(this.context,this.sessionOptions).then(()=>{L.registerFinish(this.proctoringSession.id,!0,"")}).catch(i=>{L.registerFinish(this.proctoringSession.id,!1,"finish error: "+i)}),this.appChecker){let i=this.appChecker.getExternalCameraSessionId();await this.backend.externalCameraFinish(i)}this.state="Stop"}catch(r){throw await this.cancel(),L.registerFinish(this.proctoringId,!1,`Token: ${this.context.token}
325
+ Upload Services: ${n}`,this.serviceType)),this.proctoringSession.alerts.length>0&&await this.backend.saveAlerts(this.context,this.proctoringSession).catch(i=>{L.registerFinish(this.proctoringSession.id,!1,"save-screen error: "+i)}),await this.backend.finishAndSendUrls(this.context,this.sessionOptions).then(()=>{L.registerFinish(this.proctoringSession.id,!0,"")}).catch(i=>{L.registerFinish(this.proctoringSession.id,!1,"finish error: "+i)}),this.appChecker){let i=this.appChecker.getExternalCameraSessionId();i!=null&&await this.backend.externalCameraFinish(i)}this.state="Stop"}catch(r){throw await this.cancel(),L.registerFinish(this.proctoringId,!1,`Token: ${this.context.token}
326
326
  Error: `+r),this.state="Stop",r}}async verifyMultipleMonitors(t){if(!t.allowMultipleMonitors&&await Gi())throw L.registerError(this.proctoringId,"Multiplas telas detectadas!"),la}async verifyBrowser(){let t=await q0();if(t!=="chrome"&&t!=="firefox")throw L.registerBrowserNotSupported(this.proctoringId,`Browser n\xE3o suportado:
327
327
  Tentativa utilizando o browser ${t}`),Bg}async initConfig(t){try{let r=await this.backend.getParamsConfig(this.context);this.paramsConfig={...this.paramsConfig,...r,audioBehaviourParameters:{...this.paramsConfig.audioBehaviourParameters,...r.audioBehaviourParameters},imageBehaviourParameters:{...this.paramsConfig.imageBehaviourParameters,...r.imageBehaviourParameters},videoBehaviourParameters:{...this.paramsConfig.videoBehaviourParameters,...r.videoBehaviourParameters}},t&&(this.geolocation=await G0().then(n=>n).catch(n=>{throw n.message})),Tg(this.backend),this.sessionOptions?.useSpyScan&&(this.spyCam=new eo(this.context,{onRealtimeAlertsCallback:n=>this.onRealtimeAlertsCallback(n)}))}catch(r){throw this.proctoringId&&L.registerError(this.proctoringId,"Erro no initConfig!"),await this.cancel(),r}}async getServerDate(){let t=await this.backend.getServerHour(this.context.token).catch(n=>{L.registerError(this.proctoringId,"N\xE3o foi poss\xEDvel requisitar a data do servidor!")});return t?new Date(t.toString()):new Date}async pause(){if(this.state!=="Recording")throw L.registerError(this.proctoringId,"Proctoring n\xE3o iniciado!"),ha;await this.recorder.stopAll(),await this.recorder.saveAllOnSession(),await this.repository.save(this.proctoringSession),this.state="Paused"}async resume(){if(this.state!="Paused")throw ha;return await this.verifyBrowser(),await this.verifyMultipleMonitors(this.sessionOptions),await this.recorder.startAll(),this.proctoringSession.recordings=[],await this.repository.save(this.proctoringSession),this.state="Recording",{cameraStream:this.allRecorders.cameraRecorder.cameraStream,_screenStream:this.allRecorders.screenRecorder?.screenStream}}async startChallenge(t){if(!this.sessionOptions.useChallenge)throw new Error("useChallenge is set as false on start method");await this.extensionEasycatcher.checkExtensionInstalled().catch(n=>{throw new Error("EasyCatcher Extension is not installed")}),this.extensionEasycatcher.start();let r=Date.now()-this.sessionStartTime;await this.backend.startChallenge({proctoringId:this.proctoringId,templateId:t,start:r}).then(n=>{console.log(n),this.challengeId=n.id}).catch(n=>{throw L.registerError(this.proctoringId,"N\xE3o foi poss\xEDvel iniciar desafio!"),n}),this.isChallengeRunning=!0}async stopChallenge(){if(!this.isChallengeRunning)throw new Error("Challenge not started");try{let t=await this.extensionEasycatcher.getSessionData(),r=Date.now()-this.sessionStartTime;await this.backend.stopChallenge(this.challengeId,{end:r,data:t}).catch(n=>{L.registerError(this.proctoringId,"N\xE3o foi poss\xEDvel finalizar o desafio no backend!")}),this.isChallengeRunning=!1}catch(t){L.registerError(this.proctoringId,"Erro ao recuperar dados da extens\xE3o: "+t.message)}}};var Lc=class e{static{this.isModalOpen=!1}constructor(t){this.backend=new ft({type:t?.type||"prod",token:t.token})}async signInTerms(){if(e.isModalOpen)return Promise.reject();e.isModalOpen=!0;try{let t=await this.openModal();return new Promise(r=>{r(t)})}catch(t){return this.closeModal(),Promise.reject(t)}}openModal(){return new Promise((t,r)=>{let n=document.createElement("div");n.setAttribute("id","signTermModal");let o={backgroundColor:"rgba(0,0,0,0.4)",zIndex:"1000",position:"fixed",top:"0",left:"0",height:"100vh",width:"100%",display:"flex",alignItems:"center",justifyContent:"center"};this.applyStyles(n,o);let i=document.createElement("div"),s={backgroundColor:"#fff",zIndex:"1001",width:"850px",maxHeight:"95%",borderRadius:"10px",display:"flex",flexDirection:"column",alignItems:"center"};this.applyStyles(i,s);let a=document.createElement("h3");a.innerText="Termo de consentimento para coleta e uso de dados";let c={color:"rgba(0, 0, 0, .7)",fontWeight:"bold",fontSize:"20px",marginBottom:"15px",padding:"20px 0px",borderBottom:"2px solid rgba(0, 0, 0, .1)",width:"100%",textAlign:"center"};this.applyStyles(a,c),i.appendChild(a);let l=document.createElement("iframe"),h="https://docs.google.com/document/u/3/d/e/2PACX-1vRMgrLhDLyDP8BHmotfPDpwAFaDHqK-mA4eBJ0Cy1mDdvHcWLsx47H4otII_4qi4rhtSf6B0OO97e9c/pub";this.backend.signTermUrl().then(se=>{if(!se)throw new Error("N\xE3o foi poss\xEDvel obter o termo de consentimento");l.setAttribute("src",se)}).catch(()=>{l.setAttribute("src",h)});let d={width:"100%",height:"500px",border:"1px solid rgba(0, 0, 0, .1)",margin:"20px",borderRadius:"5px"};this.applyStyles(l,d),i.appendChild(l);let p=document.createElement("div"),b=document.createElement("input");b.setAttribute("type","checkbox"),b.setAttribute("id","termsCheckbox");let m=document.createElement("label");m.setAttribute("for","termsCheckbox"),m.innerText="Li e aceito os termos e condi\xE7\xF5es";let f={display:"flex",alignItems:"center",gap:"10px",margin:"20px",width:"100%",paddingLeft:"20px"};this.applyStyles(p,f),p.appendChild(b),p.appendChild(m),i.appendChild(p);let y=document.createElement("div"),w={width:"100%",display:"flex",alignItems:"center",justifyContent:"center",borderTop:"2px solid rgba(0, 0, 0, .1)"};this.applyStyles(y,w);let _=document.createElement("button");_.innerText="Cancelar";let x={width:"100%",height:"70px",backgroundColor:"#FFF",border:"none",color:"rgba(0, 0, 0, .7)",fontWeight:"bold",borderRadius:"10px",paddingTop:"5px",paddingBottom:"5px"};this.applyStyles(_,x),_.addEventListener("click",()=>{this.closeModal(),t(!1)});let B=document.createElement("span"),O={width:"3px",height:"70px",margin:"0px 2px",background:"rgba(0, 0, 0, .1)"};this.applyStyles(B,O);let R=document.createElement("button");R.innerText="Continuar",R.setAttribute("id","confirmBtn");let ue={width:"100%",height:"70px",backgroundColor:"#FFF",border:"none",color:"rgba(0, 0, 0, .7)",fontWeight:"bold",borderRadius:"10px",paddingTop:"5px",paddingBottom:"5px",disabled:!0,cursor:"not-allowed"};this.applyStyles(R,ue),R.disabled=!0,R.addEventListener("click",()=>{this.closeModal(),this.backend.signTerm().then(()=>{t(!0)})}),b.addEventListener("change",se=>{R.disabled=!se.target.checked,se.target.checked?(R.style.color="#007bff",R.style.cursor="pointer"):(R.style.color="rgba(0, 0, 0, .7)",R.style.cursor="not-allowed")}),y.appendChild(_),y.appendChild(B),y.appendChild(R),i.appendChild(y),n.appendChild(i),document.body.appendChild(n)})}async closeModal(){e.isModalOpen=!1,document.querySelector("#signTermModal")?.remove()}applyStyles(t,r){for(let[n,o]of Object.entries(r))t.style[n]=o}};function Eu(e,t="prod"){e.showConsole||(console.log=()=>{},console.warn=()=>{},console.error=()=>{});let r={type:t,clientId:e.clientId,examId:e.examId,token:e.token,credentials:e.credentials,showConsole:e.showConsole},n=new Mc(r),o=new pa(r),i=new Lc(r),s=new to,a=n.login.bind(n),c=n.start.bind(n),l=async Oi=>{let hr=o.getDeviceCheckResult();return hr&&n.setDeviceCheckData(hr),c(Oi)},h=n.finish.bind(n),d=n.startChallenge.bind(n),p=n.stopChallenge.bind(n),b=n.pause.bind(n),m=n.resume.bind(n),f=n.setOnFocusCallback.bind(n),y=n.setOnLostFocusCallback.bind(n),w=n.onChangeDevices.bind(n),_=n.setOnBufferSizeErrorCallback.bind(n),x=n.setOnStopSharingScreenCallback.bind(n),B=n.onRealtimeAlerts.bind(n),O=i.signInTerms.bind(i),R=o.checkDevices.bind(o),ue=n.appChecker.checkExternalCamera.bind(n.appChecker),se=n.appChecker.startSession.bind(n.appChecker),jr=n.appChecker.takePicture.bind(n.appChecker),Ri=n.appChecker.goToPositionGuide.bind(n.appChecker),Vr=n.appChecker.startTransmission.bind(n.appChecker),pn=o.runCheckDevicesFlow.bind(o),fn=o.changeSelectedDevice.bind(o),Di=s.takePicture.bind(s);return{login:a,start:l,finish:h,startChallenge:d,stopChallenge:p,onFocus:f,onLostFocus:y,onChangeDevices:w,onBufferSizeError:_,onRealtimeAlerts:B,checkDevices:R,runCheckDevicesFlow:pn,changeSelectedDevice:fn,capturePhoto:Di,enumarateDevices:St,checkPermissions:qi,checkIfhasMultipleMonitors:Gi,onStopSharingScreen:x,signInTerms:O,checkExternalCamera:ue,startExternalCameraSession:se,takeExternalCameraPicture:jr,goToExternalCameraPositionStep:Ri,startExternalCameraTransmission:Vr}}typeof window<"u"&&(window.useProctoring=Eu);})();