santoid-sdk 5.3.0 → 7.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +251 -102
  3. package/api/AbstractService.d.ts +5 -4
  4. package/api/AbstractService.js +2 -5
  5. package/api/ApiFaceMatchService.d.ts +3 -4
  6. package/api/ApiLivenessSessionService.d.ts +27 -0
  7. package/api/ApiLivenessSessionService.js +30 -0
  8. package/api/ApiOcrService.d.ts +1 -0
  9. package/api/ApiTypificationService.d.ts +1 -1
  10. package/browser/index.js +1 -1
  11. package/client/core/commons/BaseCoreService.d.ts +3 -2
  12. package/client/core/commons/BaseCoreService.js +12 -6
  13. package/client/core/methods/faceMatch/Service.d.ts +0 -1
  14. package/client/core/methods/faceMatch/Service.js +0 -4
  15. package/client/core/methods/faceMatch/index.d.ts +1 -1
  16. package/client/core/methods/faceMatch/index.js +2 -2
  17. package/client/core/methods/ocr/Service.d.ts +3 -5
  18. package/client/core/methods/ocr/Service.js +0 -4
  19. package/client/core/methods/ocr/index.d.ts +1 -1
  20. package/client/core/methods/ocr/index.js +2 -2
  21. package/client/core/methods/typification/Service.d.ts +0 -1
  22. package/client/core/methods/typification/Service.js +0 -4
  23. package/client/core/methods/typification/index.d.ts +1 -1
  24. package/client/core/methods/typification/index.js +2 -3
  25. package/client/core/utils/types.d.ts +5 -1
  26. package/client/index.d.ts +2 -0
  27. package/client/index.js +2 -0
  28. package/client/liveness/index.d.ts +2 -1
  29. package/client/liveness/index.js +3 -1
  30. package/client/liveness/methods/livenessDetection/index.d.ts +8 -0
  31. package/client/liveness/methods/livenessDetection/index.js +8 -0
  32. package/client/liveness/methods/livenessSession/Service.d.ts +19 -0
  33. package/client/liveness/methods/livenessSession/Service.js +63 -0
  34. package/client/liveness/methods/livenessSession/index.d.ts +20 -0
  35. package/client/liveness/methods/livenessSession/index.js +44 -0
  36. package/client/liveness/methods/uploadIdentificationDocument/index.d.ts +2 -2
  37. package/client/liveness/utils/getNextFrame.d.ts +4 -1
  38. package/client/liveness/utils/getNextFrame.js +3 -2
  39. package/package.json +1 -1
  40. package/server/core/methods/faceMatch/Service.d.ts +1 -1
  41. package/server/core/methods/ocr/Service.d.ts +1 -1
  42. package/server/core/methods/typification/Service.d.ts +1 -1
  43. package/server/liveness/methods/uploadIdentificationDocument/index.d.ts +2 -2
  44. package/utils/constants.d.ts +5 -1
  45. package/utils/constants.js +6 -2
package/browser/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("SantoiDSDK",[],t):"object"==typeof exports?exports.SantoiDSDK=t():e.SantoiDSDK=t()}(this,(()=>(()=>{var e={373:function(e,t,r){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractService=void 0;const o=s(r(218)),n=r(661);t.AbstractService=class{constructor(e,t){this.options=e,this.serviceOptions=t}request(e){var t,r,{contentType:s="application/json",authToken:i=this.options.token,baseUrl:a=(null!==(t=this.options.customApiUrl)&&void 0!==t?t:n.API_GATEWAY_URL)}=void 0===e?{}:e;const c={baseURL:a,headers:{"Content-Type":s,Authorization:`Bearer ${i}`}};let l=this.options.domain;if(!this.options.domain&&this.options.token){const e=this.serviceOptions.tryDecodeJwt(this.options.token);l=null===(r=null==e?void 0:e.claims)||void 0===r?void 0:r.domain}return c.headers&&(l&&(c.headers.Domain=l),this.options.useBillingAccounts&&(c.headers.clientCredentials=!0)),o.default.create(c)}}},151:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiAsyncService=void 0;const s=r(373);class o extends s.AbstractService{constructor(e,...t){super(...t),this.resultsRoute=e.resultsRoute}async get(e){return(await this.request().get(`/api/v1/tracks/${this.options.track}/${this.resultsRoute}/`+e)).data}}t.ApiAsyncService=o},748:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiFaceMatchService=void 0;const s=r(151),o=r(951);class n extends s.ApiAsyncService{constructor(...e){super({resultsRoute:"face-async"},...e)}async faceMatch(e,t,r){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const s=new this.serviceOptions.FormDataClass;return s.append("track",this.options.track),s.append("deliveryFront","true"),s.append("sensitive_data_compliance","true"),s.append("imageFile1",e,"imageFile1.jpg"),t&&s.append("imageFile2",t,"imageFile2.jpg"),r&&s.append("customerRequestId",r),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/face-match-async",s)).data}))}async get(...e){return await super.get(...e)}}t.ApiFaceMatchService=n},926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiOcrService=void 0;const s=r(151),o=r(951);class n extends s.ApiAsyncService{constructor(...e){super({resultsRoute:"ocr-async"},...e)}async extract(e,t){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const r=new this.serviceOptions.FormDataClass;return r.append("imageFile",e,"imageFile.jpg"),r.append("track",this.options.track),r.append("template",this.options.template),r.append("customerRequestId",t),r.append("deliveryFront","true"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/ocr-async/ocr",r)).data}))}}t.ApiOcrService=n},456:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiTypificationService=void 0;const s=r(151),o=r(951);class n extends s.ApiAsyncService{constructor(...e){super({resultsRoute:"typification-async"},...e)}async predict(e,t){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const r=new this.serviceOptions.FormDataClass;return r.append("imageFile",e,"imageFile.jpg"),r.append("track",this.options.track),r.append("customerRequestId",t),r.append("deliveryFront","true"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/typification-async/predict",r)).data}))}}t.ApiTypificationService=n},135:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseCoreService=void 0;const s=r(551),o=r(620);t.BaseCoreService=class{constructor(e){this.results={status:null,results:null,loading:!1,error:null},this.cameraIsActive=!1,this.cameraIsSetup=!1,this.options=e}async initialize(e){var t;e?this.startProcessing(e):(null!==(t=this.options.startTheCameraImmediately)&&void 0!==t?t:void 0===this.options.startTheCameraImmediately)&&await this.startCamera()}async updateResults(e){var t,r;this.results=Object.assign(Object.assign({},this.results),e),await(null===(r=(t=this.options).onUpdate)||void 0===r?void 0:r.call(t,this.results))}async setupCamera(){this.frameGetControls=await(0,o.getDefaultFrameControls)(),this.cameraIsSetup=!0}async startCamera(){var e,t,r,o;try{if(this.cameraIsActive)throw new s.SDKError({message:"The camera has already been initialized",code:s.ECameraErrorCodes.ALREADY_STARTED,fatal:!1});if(this.results.loading)throw new s.SDKError({message:"Typification processing has already started",code:s.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.cameraIsSetup||await this.setupCamera(),this.frameGetControls.videoStream=await(null===(t=(e=this.frameGetControls).startGettingFrames)||void 0===t?void 0:t.call(e)),this.cameraIsActive=!0}catch(e){const t=e instanceof s.SDKError?e:new s.SDKError({message:"Camera initialization error",code:s.ECameraErrorCodes.INITIALIZATION_ERROR,fatal:!1,details:e});await(null===(o=(r=this.options).onError)||void 0===o?void 0:o.call(r,t))}}async stopCamera(){var e,t,r,o;try{if(!this.cameraIsActive)throw new s.SDKError({message:"Camera not initialized",code:s.ECameraErrorCodes.NOT_INITIALIZED,fatal:!1});await(null===(t=(e=this.frameGetControls).stopGettingFrames)||void 0===t?void 0:t.call(e)),this.cameraIsActive=!1}catch(e){const t=e instanceof s.SDKError?e:new s.SDKError({message:"Error during camera shutdown",code:s.ECameraErrorCodes.SHUTDOWN_ERROR,fatal:!1,details:e});await(null===(o=(r=this.options).onError)||void 0===o?void 0:o.call(r,t))}}async captureImage({startProcessing:e=!0}={}){var t,r;const o=await(null===(r=(t=this.frameGetControls).getNextFrame)||void 0===r?void 0:r.call(t));if(o)return e&&(await this.stopCamera(),await this.startProcessing(o)),o;throw new s.SDKError({message:"Cannot capture image",code:s.ECameraErrorCodes.CANNOT_CAPTURE_IMAGE,fatal:!1})}async waitForResults(e){let t=!1;return await new Promise(((r,s)=>{const o=setInterval((async()=>{var n,i,a,c;try{null===(i=(n=this.options).onClearInterval)||void 0===i||i.call(n,o);const s=await this.service.get(e);if("validation"===(null==s?void 0:s.status)&&!t)return await(null===(c=(a=this.options).onValidationRequested)||void 0===c?void 0:c.call(a,{track:this.options.track,requestId:s.id})),void(t=!0);if("error"===(null==s?void 0:s.status))throw new Error("Não foi possível processar os resultados do Upload de Documentos");if("processed"===(null==s?void 0:s.status)&&s.fileURL){const e=await fetch(s.fileURL),t=await e.json();t&&(clearInterval(o),r(t))}}catch(e){clearInterval(o),s(e)}}),5e3)}))}}},474:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceMatchService=void 0;const s=r(877),o=r(551),n=r(616),i=r(748),a=r(135);class c extends a.BaseCoreService{constructor(e){super(e),this.selectedFile1=void 0,this.selectedFile2=void 0,this.service=new i.ApiFaceMatchService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}async initialize(e,t){var r;e?this.startProcessing(e,t):(null!==(r=this.options.startTheCameraImmediately)&&void 0!==r?r:void 0===this.options.startTheCameraImmediately)&&await this.startCamera()}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}async captureFirstImage({startProcessing:e=!0}={}){const t=await super.captureImage({startProcessing:!1});return this.selectedFile1=t,e&&(await this.stopCamera(),await this.startProcessing(this.selectedFile1)),t}async captureSecondImage({startProcessing:e=!0}={}){if(!this.selectedFile1)throw new o.SDKError({message:"Select the first image before selecting the second",code:o.EFaceMatchErrorCodes.FIRST_IMAGE_NOT_SELECTED,fatal:!1});const t=await super.captureImage({startProcessing:!1});return this.selectedFile2=t,e&&(await this.stopCamera(),await this.startProcessing(this.selectedFile1,this.selectedFile2)),t}async startProcessing(e,t){var r,n,i,a,c,l,u;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(r=this.results)||void 0===r?void 0:r.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:l}=await this.service.faceMatch(e,t,`sdk-ocr-${(0,s.v4)()}`),u=await this.waitForResultsFaceMatch(l);this.updateResults({status:"success",results:u,loading:!1,error:null}),null===(i=(n=this.options).onSuccess)||void 0===i||i.call(n,u),null===(c=(a=this.options).onEnd)||void 0===c||c.call(a)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}async waitForResultsFaceMatch(e){return await new Promise(((t,r)=>{const s=setInterval((async()=>{var o,n,i,a;try{null===(n=(o=this.options).onClearInterval)||void 0===n||n.call(o,s);const r=await this.service.get(e);if("error"===(null==r?void 0:r.status)||"error_connector"===(null==r?void 0:r.status))throw new Error("Não foi possível processar os resultados do FaceMatch");if("processed"===(null==r?void 0:r.status)&&r.fileURL){const e=await fetch(r.fileURL);let o=await e.json();o=Object.assign(Object.assign({},o),{fileImage1:null!==(i=r.fileImage1)&&void 0!==i?i:"",fileImage2:null!==(a=r.fileImage2)&&void 0!==a?a:""}),o&&(clearInterval(s),t(o))}}catch(e){clearInterval(s),r(new Error(e))}}),5e3)}))}}t.FaceMatchService=c},927:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.faceMatch=void 0;const s=r(551),o=r(474);t.faceMatch=async function(e,t,r){var n,i;try{const s=new o.FaceMatchService(e);return await s.initialize(t,r),await(null===(i=(n=s.options).onStart)||void 0===i?void 0:i.call(n,{videoStream:s.getVideoStream()})),{startCamera:async()=>{await s.startCamera()},stopCamera:async()=>{await s.stopCamera()},captureFirstImage:async(...e)=>await s.captureFirstImage(...e),captureSecondImage:async(...e)=>await s.captureSecondImage(...e),getVideoStream:()=>s.getVideoStream(),sendFiles:async(...e)=>{await s.startProcessing(...e)}}}catch(e){throw new s.SDKError({message:"Error while starting SDK",code:s.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},577:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OcrService=void 0;const s=r(877),o=r(551),n=r(616),i=r(926),a=r(135);class c extends a.BaseCoreService{constructor(e){super(e),this.service=new i.ApiOcrService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}async startProcessing(e){var t,r,n,i,a,c,l;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(t=this.results)||void 0===t?void 0:t.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:c}=await this.service.extract(e,`sdk-ocr-${(0,s.v4)()}`),l=await this.waitForResults(c);this.updateResults({status:"success",results:l,loading:!1,error:null}),null===(n=(r=this.options).onSuccess)||void 0===n||n.call(r,l),null===(a=(i=this.options).onEnd)||void 0===a||a.call(i)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(l=(c=this.options).onError)||void 0===l?void 0:l.call(c,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}}t.OcrService=c},168:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ocr=void 0;const s=r(551),o=r(577);t.ocr=async function(e,t){var r,n;try{const s=new o.OcrService(e);return await s.initialize(t),await(null===(n=(r=s.options).onStart)||void 0===n?void 0:n.call(r,{videoStream:s.getVideoStream()})),{startCamera:async()=>{await s.startCamera()},stopCamera:async()=>{await s.stopCamera()},captureImage:async()=>await s.captureImage(),getVideoStream:()=>s.getVideoStream(),sendFile:async e=>{await s.startProcessing(e)}}}catch(e){throw new s.SDKError({message:"Error while starting SDK",code:s.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},983:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypificationService=void 0;const s=r(877),o=r(551),n=r(616),i=r(456),a=r(135);class c extends a.BaseCoreService{constructor(e){super(e),this.service=new i.ApiTypificationService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}async startProcessing(e){var t,r,n,i,a,c,l;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(t=this.results)||void 0===t?void 0:t.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:c}=await this.service.predict(e,`sdk-typification-${(0,s.v4)()}`),l=await this.waitForResults(c);this.updateResults({status:"success",results:l,loading:!1,error:null}),null===(n=(r=this.options).onSuccess)||void 0===n||n.call(r,l),null===(a=(i=this.options).onEnd)||void 0===a||a.call(i)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(l=(c=this.options).onError)||void 0===l?void 0:l.call(c,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}}t.TypificationService=c},344:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typification=void 0;const s=r(551),o=r(983);t.typification=async function(e,t){var r,n;try{const s=new o.TypificationService(e);return await s.initialize(t),await(null===(n=(r=s.options).onStart)||void 0===n?void 0:n.call(r,{videoStream:s.getVideoStream()})),{startCamera:async()=>{await s.startCamera()},stopCamera:async()=>{await s.stopCamera()},captureImage:async()=>await s.captureImage(),getVideoStream:()=>s.getVideoStream(),sendFile:async e=>{await s.startProcessing(e)}}}catch(e){throw console.error(e),new s.SDKError({message:"Error while starting SDK",code:s.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},122:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.insertUploadIdentificationDocument=void 0;const s=r(661);t.insertUploadIdentificationDocument=function(e,t){var r,o,n;const i=t?document.querySelector(t):document.body;if(!i)throw new Error("Cannot find target element");const a=document.createElement("iframe");a.style.overflow="hidden",a.style.border="0",a.setAttribute("width",null!==(r=e.width)&&void 0!==r?r:"100%"),a.setAttribute("height",null!==(o=e.height)&&void 0!==o?o:"550px"),a.setAttribute("scrolling","no"),a.setAttribute("allow","camera; microphone; clipboard-read; clipboard-write");let c=`${null!==(n=e.customAppUrl)&&void 0!==n?n:s.APPLICATION_URL}/share/domains/${e.domain}/tracks/${e.track}/flow/${e.flow}/embedded`;e.token&&(c+=`?accessToken=${e.token}`),a.setAttribute("src",c),i.appendChild(a)}},42:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LivenessDetectionService=void 0;const s=r(551),o=r(620),n=r(951),i=r(661);t.LivenessDetectionService=class{constructor(e,t){this.frameGetControls={},this.currentStep="front",this.pauseSendingFramesToWebSocket=!1,this.websocketClosedBySDK=!1,this.validationSuccess=!1,this.canSendNextBytes=!0,this.endCalled=!1,this.cancelSendingFramesToWebsocket=void 0,this.successFrames={front:void 0,right:void 0,left:void 0,up:void 0,bottom:void 0},this.options=e,this.abstractWebSocket=t}async onWebSocketMessage(e){var t,r,o,i,a,c,l,u;const d=e.data,p=JSON.parse(d);return(null==p?void 0:p.validation)&&this.currentStep&&(this.successFrames[this.currentStep]=this.lastSentBytes),(null==p?void 0:p.next_step)&&!p.error&&(this.currentStep=p.next_step,await(null===(r=(t=this.options).onNextStep)||void 0===r?void 0:r.call(t,p.next_step)),await(null===(i=(o=this.options)[`on${(0,n.capitalizeFirstLetter)(p.next_step)}Step`])||void 0===i?void 0:i.call(o))),p&&(this.canSendNextBytes=!!(null==p?void 0:p.can_send_next_bytes)),(null==p?void 0:p.success)&&(this.successFrames.bottom=this.lastSentBytes,this.validationSuccess=!0,await(null===(c=(a=this.options).onSuccess)||void 0===c?void 0:c.call(a,{livenessId:p.livenessId,successFrames:this.successFrames})),await this.stopLivenessDetection()),(null==p?void 0:p.error)&&await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,new s.SDKError({message:"Wrong position",code:s.ELivenessDetectionErrorCodes.WRONG_POSITION,fatal:!1}))),p}async stopLivenessDetection(){var e,t,r,s,o;await(0,n.waitFor)((()=>!!this.cancelSendingFramesToWebsocket)),null===(e=this.cancelSendingFramesToWebsocket)||void 0===e||e.call(this),await(null===(r=(t=this.frameGetControls).stopGettingFrames)||void 0===r?void 0:r.call(t)),this.abstractWebSocket.disconnectFromWebSocket(),this.endCalled||(await(null===(o=(s=this.options).onEnd)||void 0===o?void 0:o.call(s)),this.endCalled=!0),this.websocketClosedBySDK=!0}async sendFramesToWebSocket(){var e,t;try{if(this.canSendNextBytes&&!this.pauseSendingFramesToWebSocket){const r=await(null===(t=(e=this.frameGetControls).getNextFrame)||void 0===t?void 0:t.call(e));r&&(this.abstractWebSocket.send(r),this.lastSentBytes=r,this.canSendNextBytes=!1)}}catch(e){await this.stopLivenessDetection()}}async onConnect(){var e,t,r,s,a,c,l,u,d,p;try{if(this.options.getNextFrame)this.frameGetControls.startGettingFrames=this.options.startGettingFrames,this.frameGetControls.getNextFrame=this.options.getNextFrame,this.frameGetControls.stopGettingFrames=this.options.stopGettingFrames,this.frameGetControls.videoStream=await(null===(t=(e=this.options).startGettingFrames)||void 0===t?void 0:t.call(e));else{const e=await(0,o.getDefaultFrameControls)();this.frameGetControls.startGettingFrames=e.startGettingFrames,this.frameGetControls.getNextFrame=e.getNextFrame,this.frameGetControls.stopGettingFrames=e.stopGettingFrames,this.frameGetControls.videoStream=await(null===(s=(r=this.frameGetControls).startGettingFrames)||void 0===s?void 0:s.call(r))}await(null===(c=(a=this.options).onStart)||void 0===c?void 0:c.call(a,{videoStream:this.getVideoStream()})),await(null===(u=(l=this.options).onNextStep)||void 0===u?void 0:u.call(l,"front")),await(null===(p=(d=this.options).onFrontStep)||void 0===p?void 0:p.call(d)),this.cancelSendingFramesToWebsocket=(0,n.callAsyncFunctionEveryXSeconds)((async()=>{await this.sendFramesToWebSocket()}),i.SEND_FRAMES_INTERVAL_MS)}catch(e){await this.onError()}}async onError(){var e,t;this.validationSuccess||(await(null===(t=(e=this.options).onError)||void 0===t?void 0:t.call(e,new s.SDKError({message:"Internal Error",code:s.EDefaultErrorCodes.INTERNAL_ERROR,fatal:!1}))),await this.stopLivenessDetection())}resumeGettingFrames(){this.pauseSendingFramesToWebSocket=!1}pauseGettingFrames(){this.pauseSendingFramesToWebSocket=!0}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}}},234:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.livenessDetection=void 0;const s=r(42),o=r(551),n=r(706),i=r(616);t.livenessDetection=function(e){var t;try{const r=new n.AbstractWebSocket({WebSocketClass:null!==(t=e.CustomWebSocketClass)&&void 0!==t?t:WebSocket,decodeJwt:i.decodeJwt},e);r.startConnection();const o=new s.LivenessDetectionService(e,r);return r.waitForWebSocketConnection().then((()=>{o.onConnect()})).catch((()=>{o.onError()})),r.addListener("message",(e=>{o.onWebSocketMessage(e)})),r.addListener("error",(()=>{o.onError()})),r.addListener("close",(()=>{o.onError()})),{getVideoStream:()=>o.getVideoStream(),stopLivenessDetection:async()=>{await o.stopLivenessDetection()},resumeGettingFrames:()=>{o.resumeGettingFrames()},pauseGettingFrames:()=>{o.pauseGettingFrames()}}}catch(e){throw new o.SDKError({message:"Error while starting SDK",code:o.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0})}}},171:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UploadIdentificationDocumentService=void 0;const s=r(456),o=r(748),n=r(551),i=r(877),a=r(616);t.UploadIdentificationDocumentService=class{constructor(e,t){this.results={uploadedDocument:null,typification:{status:null,results:null,loading:!1,error:null},liveness:{status:null,results:null,loading:!1,error:null},faceMatch:{status:null,results:null,loading:!1,error:null}},this.options=e,this.internalOptions=t,this.typificationService=new s.ApiTypificationService(e,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt}),this.faceMatchService=new o.ApiFaceMatchService(e,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt})}getResults(){return this.results}async updateResults(e){var t,r,s,o,n,i;this.results=Object.assign(Object.assign({},this.results),e),await(null===(r=(t=this.options).onUpdate)||void 0===r?void 0:r.call(t,this.results)),e.faceMatch||this.tryStartFaceMatch(),Object.entries(this.results).every((([e,t])=>"uploadedDocument"===e||!!t.results))&&(await(null===(o=(s=this.options).onSuccess)||void 0===o?void 0:o.call(s,this.results)),await(null===(i=(n=this.options).onEnd)||void 0===i?void 0:i.call(n)))}updateUploadedDocument(e){this.results.uploadedDocument=e}async waitForResults(e){let t=!1;return await new Promise(((r,s)=>{const o=setInterval((async()=>{var n,i,a,c;try{null===(i=(n=this.options).onClearInterval)||void 0===i||i.call(n,o);const l=await this.typificationService.get(e);if("validation"!==(null==l?void 0:l.status)||t){if("error"===(null==l?void 0:l.status))clearInterval(o),s(new Error("Não foi possível processar os resultados do Upload de Documentos"));else if("processed"===(null==l?void 0:l.status)&&l.fileURL){const e=await fetch(l.fileURL),t=await e.json();t&&(clearInterval(o),r(t))}}else await(null===(c=(a=this.options).onValidationRequested)||void 0===c?void 0:c.call(a,{track:this.options.track,requestId:l.id})),t=!0}catch(e){clearInterval(o),s(new Error(e))}}),5e3)}))}async waitForResultsFaceMatch(e){return await new Promise(((t,r)=>{const s=setInterval((async()=>{var o,n,i,a;try{null===(n=(o=this.options).onClearInterval)||void 0===n||n.call(o,s);const c=await this.faceMatchService.get(e);if("error"===(null==c?void 0:c.status)||"error_connector"===(null==c?void 0:c.status))clearInterval(s),r(new Error("Não foi possível processar os resultados do FaceMatch"));else if("processed"===(null==c?void 0:c.status)&&c.fileURL){const e=await fetch(c.fileURL);let r=await e.json();r=Object.assign(Object.assign({},r),{fileImage1:null!==(i=c.fileImage1)&&void 0!==i?i:"",fileImage2:null!==(a=c.fileImage2)&&void 0!==a?a:""}),r&&(clearInterval(s),t(r))}}catch(e){clearInterval(s),r(new Error(e))}}),5e3)}))}async startDocumentUpload(e){var t,r;try{this.updateResults({typification:{status:null,results:null,loading:!0,error:null}}),this.updateUploadedDocument(e);const{requestId:t}=await this.typificationService.predict(e,`sdk-typification-${(0,i.v4)()}`),r=await this.waitForResults(t);this.updateResults({typification:{status:"success",results:r,loading:!1,error:null}})}catch(e){const s=new n.SDKError({message:"Error during document upload/analysis",code:n.EUploadIdentificationDocumentErrorCodes.DOCUMENT_ANALYSIS_ERROR,fatal:!1,details:e});await(null===(r=(t=this.options).onError)||void 0===r?void 0:r.call(t,s)),this.updateResults({typification:{status:"error",results:null,loading:!1,error:s}})}}startLivenessDetection(e){var t,r;const s=Object.assign(Object.assign({},this.options.livenessDetectionOptions),e);this.updateResults({liveness:{results:null,status:null,loading:!0,error:null}});try{return this.internalOptions.livenessDetection(Object.assign(Object.assign({domain:this.options.domain,customId:this.options.customId,customWebSocketUrl:this.options.customWebSocketUrl,token:this.options.token,track:this.options.track},s),{onSuccess:async e=>{var t;await(null===(t=null==s?void 0:s.onSuccess)||void 0===t?void 0:t.call(s,e)),this.updateResults({liveness:{status:"success",results:e,loading:!1,error:null}})},onError:async e=>{var t,r,o;await(null===(t=null==s?void 0:s.onError)||void 0===t?void 0:t.call(s,e)),await(null===(o=(r=this.options).onError)||void 0===o?void 0:o.call(r,e)),this.updateResults({liveness:{status:"error",results:null,loading:"wrong-position"===(null==e?void 0:e.code),error:null!=e?e:null}})}}))}catch(e){const s=new n.SDKError({message:"Error during liveness detection",code:n.EUploadIdentificationDocumentErrorCodes.LIVENESS_DETECTION_ERROR,fatal:!1,details:e});null===(r=(t=this.options).onError)||void 0===r||r.call(t,s),this.updateResults({liveness:{status:"error",results:null,loading:!1,error:s}})}}async startFaceMatch(e,t){var r,s;try{this.updateResults({faceMatch:{status:null,results:null,loading:!0,error:null}});const{requestId:r}=await this.faceMatchService.faceMatch(e,t,`sdk-facematch-${(0,i.v4)()}`),s=await this.waitForResultsFaceMatch(r);this.updateResults({faceMatch:{results:s,status:"success",loading:!1,error:null}})}catch(e){const t=new n.SDKError({message:"Error when comparing the face with the document",code:n.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_ERROR,fatal:!1,details:e});await(null===(s=(r=this.options).onError)||void 0===s?void 0:s.call(r,t)),this.updateResults({faceMatch:{results:null,status:"error",loading:!1,error:t}})}}async tryStartFaceMatch(){var e,t,r;!this.results.uploadedDocument||!(null===(e=this.results.liveness.results)||void 0===e?void 0:e.successFrames.front)||this.results.faceMatch.loading||this.results.liveness.loading||this.results.typification.loading?await(null===(r=(t=this.options).onError)||void 0===r?void 0:r.call(t,new n.SDKError({message:"Unavailable faces",code:n.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_UNAVAILABLE_FACES_ERROR,fatal:!1}))):await this.startFaceMatch(this.results.uploadedDocument,this.results.liveness.results.successFrames.front)}startAll(e,t){this.startDocumentUpload(e),this.startLivenessDetection(t)}}},604:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uploadIdentificationDocument=void 0;const s=r(171),o=r(234);t.uploadIdentificationDocument=function(e){const t=new s.UploadIdentificationDocumentService(e,{livenessDetection:o.livenessDetection});return{startDocumentUpload:async(...e)=>{await t.startDocumentUpload(...e)},startLivenessDetection:(...e)=>t.startLivenessDetection(...e),startFaceComparison:async(...e)=>{await t.tryStartFaceMatch(...e)},startAll:(...e)=>{t.startAll(...e)},getResults:(...e)=>t.getResults(...e)}}},620:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDefaultFrameControls=void 0,t.getDefaultFrameControls=async function(){let e,t,r,s;return{startGettingFrames:async function(){return e&&t&&r||(e=await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:"environment"}}),t=document.createElement("video"),t.setAttribute("autoplay","true"),t.style.transform="scale(-1, 1)",t.style.position="absolute",t.style.left="-99999px",document.body.appendChild(t),t.srcObject=e,r=document.createElement("canvas"),s=r.getContext("2d")),e},getNextFrame:async function(){if(r&&t)return r.width=t.videoWidth,r.height=t.videoHeight,null==s||s.drawImage(t,0,0,r.width,r.height),await new Promise(((e,t)=>{r?r.toBlob((t=>{e(t)})):e(null)}));throw new Error("Cannot found video element")},stopGettingFrames:function(){t&&(document.body.removeChild(t),t=void 0),r&&(r=void 0),s&&(s=void 0),e&&(null==e||e.getTracks().forEach((e=>{e.stop()})),e=void 0)}}}},616:(e,t)=>{"use strict";function r(e){const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=decodeURIComponent(window.atob(t).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(r)}Object.defineProperty(t,"__esModule",{value:!0}),t.tryDecodeJwt=t.decodeJwt=void 0,t.decodeJwt=r,t.tryDecodeJwt=function(e){try{return r(e)}catch(e){return null}}},661:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_RETRY_TIME_STEP=t.DEFAULT_NUMBER_OF_RETRIES=t.SEND_FRAMES_INTERVAL_MS=t.APPLICATION_URL=t.API_GATEWAY_URL=t.WEBSOCKET_BASE_URL=void 0,t.WEBSOCKET_BASE_URL="wss://santoid-liveness-w4ynos5dlq-ue.a.run.app/api/v1/liveness/ws",t.API_GATEWAY_URL="https://api.santoid.com.br",t.APPLICATION_URL="https://app.santoid.com.br",t.SEND_FRAMES_INTERVAL_MS=100,t.DEFAULT_NUMBER_OF_RETRIES=5,t.DEFAULT_RETRY_TIME_STEP=1e3},551:(e,t)=>{"use strict";var r,s,o,n,i,a;Object.defineProperty(t,"__esModule",{value:!0}),t.SDKError=t.EProcessingErrorCodes=t.ECameraErrorCodes=t.EFaceMatchErrorCodes=t.EUploadIdentificationDocumentErrorCodes=t.ELivenessDetectionErrorCodes=t.EDefaultErrorCodes=void 0,function(e){e.INITIALIZATION_ERROR="initialization-error",e.INTERNAL_ERROR="internal-error"}(r||(t.EDefaultErrorCodes=r={})),function(e){e.WRONG_POSITION="liveness-detection/wrong-position"}(s||(t.ELivenessDetectionErrorCodes=s={})),function(e){e.FACE_MATCH_ERROR="upload-identification-document/face-match-error",e.FACE_MATCH_UNAVAILABLE_FACES_ERROR="upload-identification-document/face-match-unavailable-faces-error",e.DOCUMENT_ANALYSIS_ERROR="upload-identification-document/document-analysis-error",e.LIVENESS_DETECTION_ERROR="upload-identification-document/liveness-detection-error"}(o||(t.EUploadIdentificationDocumentErrorCodes=o={})),function(e){e.FIRST_IMAGE_NOT_SELECTED="face-match/first-image-not-selected"}(n||(t.EFaceMatchErrorCodes=n={})),function(e){e.INITIALIZATION_ERROR="camera/initialization-error",e.IS_RUNNING="camera/is-running",e.ALREADY_STARTED="camera/already-started",e.NOT_INITIALIZED="camera/not-initialized",e.CANNOT_CAPTURE_IMAGE="camera/cannot-capture-image",e.SHUTDOWN_ERROR="camera/shutdown-error"}(i||(t.ECameraErrorCodes=i={})),function(e){e.PROCESSING_ERROR="processing/processing-error",e.ALREADY_STARTED="processing/already-started"}(a||(t.EProcessingErrorCodes=a={}));class c extends Error{constructor({message:e,code:t,fatal:r,details:s}){super(e),this.code=t,this.fatal=r,this.details=s}}t.SDKError=c},951:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.retryAsyncFunctionXTimes=t.callAsyncFunctionEveryXSeconds=t.waitFor=t.wait=t.capitalizeFirstLetter=void 0;const s=r(218),o=r(661);async function n(e){await new Promise((t=>{e()?t():setTimeout((()=>{n(e).then(t)}),500)}))}function i(e){var t;return e instanceof s.AxiosError&&(503===(null===(t=e.response)||void 0===t?void 0:t.status)||"Network Error"===e.message)}t.capitalizeFirstLetter=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},t.wait=async e=>{await new Promise((t=>{setTimeout(t,e)}))},t.waitFor=n,t.callAsyncFunctionEveryXSeconds=function e(t,r,s={stop:!1}){const o={timerEnd:!1};return setTimeout((()=>{o.timerEnd=!0}),r),t().then((async()=>{await n((()=>o.timerEnd)),s.stop||e(t,r,s)})),function(){s.stop=!0}},t.retryAsyncFunctionXTimes=async function e(r,s=i,n=o.DEFAULT_NUMBER_OF_RETRIES,a=1e3,c=o.DEFAULT_RETRY_TIME_STEP){try{return await r()}catch(o){if(s(o)&&n>0)return await(0,t.wait)(a),await e(r,s,n-1,a+c,c);throw o}}},706:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractWebSocket=void 0;const s=r(661);t.AbstractWebSocket=class{constructor(e,t){this.classOptions=e,this.sdkOptions=t}startConnection(){var e,t;const r=this.classOptions.decodeJwt(this.sdkOptions.token),o={x_endpoint_api_userinfo:this.sdkOptions.token,domain:null!==(e=this.sdkOptions.domain)&&void 0!==e?e:r.claims.domain,track:this.sdkOptions.track};this.sdkOptions.customId&&(o.customerRequestId=this.sdkOptions.customId),this.sdkOptions.useBillingAccounts&&(o.clientCredentials=!0);const n=Object.entries(o).map((e=>e.join("="))).join("&");this.websocket=new this.classOptions.WebSocketClass(`${null!==(t=this.sdkOptions.customWebSocketUrl)&&void 0!==t?t:s.WEBSOCKET_BASE_URL}?${n}`)}async waitForWebSocketConnection(){if(await new Promise((e=>{const t=setInterval((()=>{[3,1].includes(this.websocket.readyState)&&(clearInterval(t),e())}),5)})),3===this.websocket.readyState)throw new Error("Cannot connect to server")}disconnectFromWebSocket(){var e,t;[2,3].includes(this.websocket.readyState)||null===(t=(e=this.websocket).close)||void 0===t||t.call(e)}get readyState(){return this.websocket.readyState}addListener(e,t){var r,s;this.websocket.on?this.websocket.on(e,t):null===(s=(r=this.websocket).addEventListener)||void 0===s||s.call(r,e,t)}send(e){this.websocket.send(e)}}},877:(e,t,r)=>{var s=r(570),o=r(358),n=o;n.v1=s,n.v4=o,e.exports=n},327:e=>{for(var t=[],r=0;r<256;++r)t[r]=(r+256).toString(16).substr(1);e.exports=function(e,r){var s=r||0,o=t;return[o[e[s++]],o[e[s++]],o[e[s++]],o[e[s++]],"-",o[e[s++]],o[e[s++]],"-",o[e[s++]],o[e[s++]],"-",o[e[s++]],o[e[s++]],"-",o[e[s++]],o[e[s++]],o[e[s++]],o[e[s++]],o[e[s++]],o[e[s++]]].join("")}},217:e=>{var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(t){var r=new Uint8Array(16);e.exports=function(){return t(r),r}}else{var s=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),s[t]=e>>>((3&t)<<3)&255;return s}}},570:(e,t,r)=>{var s,o,n=r(217),i=r(327),a=0,c=0;e.exports=function(e,t,r){var l=t&&r||0,u=t||[],d=(e=e||{}).node||s,p=void 0!==e.clockseq?e.clockseq:o;if(null==d||null==p){var h=n();null==d&&(d=s=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==p&&(p=o=16383&(h[6]<<8|h[7]))}var f=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=f-a+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(p=p+1&16383),(v<0||f>a)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=f,c=m,o=p;var g=(1e4*(268435455&(f+=122192928e5))+m)%4294967296;u[l++]=g>>>24&255,u[l++]=g>>>16&255,u[l++]=g>>>8&255,u[l++]=255&g;var y=f/4294967296*1e4&268435455;u[l++]=y>>>8&255,u[l++]=255&y,u[l++]=y>>>24&15|16,u[l++]=y>>>16&255,u[l++]=p>>>8|128,u[l++]=255&p;for(var E=0;E<6;++E)u[l+E]=d[E];return t||i(u)}},358:(e,t,r)=>{var s=r(217),o=r(327);e.exports=function(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var a=0;a<16;++a)t[n+a]=i[a];return t||o(i)}},218:(e,t,r)=>{"use strict";function s(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:n}=Object,i=(a=Object.create(null),e=>{const t=o.call(e);return a[t]||(a[t]=t.slice(8,-1).toLowerCase())});var a;const c=e=>(e=e.toLowerCase(),t=>i(t)===e),l=e=>t=>typeof t===e,{isArray:u}=Array,d=l("undefined"),p=c("ArrayBuffer"),h=l("string"),f=l("function"),m=l("number"),v=e=>null!==e&&"object"==typeof e,g=e=>{if("object"!==i(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},y=c("Date"),E=c("File"),w=c("Blob"),S=c("FileList"),b=c("URLSearchParams");function R(e,t,{allOwnKeys:r=!1}={}){if(null==e)return;let s,o;if("object"!=typeof e&&(e=[e]),u(e))for(s=0,o=e.length;s<o;s++)t.call(null,e[s],s,e);else{const o=r?Object.getOwnPropertyNames(e):Object.keys(e),n=o.length;let i;for(s=0;s<n;s++)i=o[s],t.call(null,e[i],i,e)}}function O(e,t){t=t.toLowerCase();const r=Object.keys(e);let s,o=r.length;for(;o-- >0;)if(s=r[o],t===s.toLowerCase())return s;return null}const C="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:r.g,A=e=>!d(e)&&e!==C,D=(_="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>_&&e instanceof _);var _;const T=c("HTMLFormElement"),F=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),I=c("RegExp"),N=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),s={};R(r,((r,o)=>{let n;!1!==(n=t(r,o,e))&&(s[o]=n||r)})),Object.defineProperties(e,s)},P="abcdefghijklmnopqrstuvwxyz",L="0123456789",j={DIGIT:L,ALPHA:P,ALPHA_DIGIT:P+P.toUpperCase()+L},U=c("AsyncFunction");var k={isArray:u,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&f(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||f(e.append)&&("formdata"===(t=i(e))||"object"===t&&f(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:h,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:g,isUndefined:d,isDate:y,isFile:E,isBlob:w,isRegExp:I,isFunction:f,isStream:e=>v(e)&&f(e.pipe),isURLSearchParams:b,isTypedArray:D,isFileList:S,forEach:R,merge:function e(){const{caseless:t}=A(this)&&this||{},r={},s=(s,o)=>{const n=t&&O(r,o)||o;g(r[n])&&g(s)?r[n]=e(r[n],s):g(s)?r[n]=e({},s):u(s)?r[n]=s.slice():r[n]=s};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&R(arguments[e],s);return r},extend:(e,t,r,{allOwnKeys:o}={})=>(R(t,((t,o)=>{r&&f(t)?e[o]=s(t,r):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,s)=>{e.prototype=Object.create(t.prototype,s),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,s)=>{let o,i,a;const c={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],s&&!s(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==r&&n(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:i,kindOfTest:c,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;const s=e.indexOf(t,r);return-1!==s&&s===r},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{const r=(e&&e[Symbol.iterator]).call(e);let s;for(;(s=r.next())&&!s.done;){const r=s.value;t.call(e,r[0],r[1])}},matchAll:(e,t)=>{let r;const s=[];for(;null!==(r=e.exec(t));)s.push(r);return s},isHTMLForm:T,hasOwnProperty:F,hasOwnProp:F,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,r)=>{if(f(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const s=e[r];f(s)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(e,t)=>{const r={},s=e=>{e.forEach((e=>{r[e]=!0}))};return u(e)?s(e):s(String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:O,global:C,isContextDefined:A,ALPHABET:j,generateString:(e=16,t=j.ALPHA_DIGIT)=>{let r="";const{length:s}=t;for(;e--;)r+=t[Math.random()*s|0];return r},isSpecCompliantForm:function(e){return!!(e&&f(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),r=(e,s)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[s]=e;const o=u(e)?[]:{};return R(e,((e,t)=>{const n=r(e,s+1);!d(n)&&(o[t]=n)})),t[s]=void 0,o}}return e};return r(e,0)},isAsyncFn:U,isThenable:e=>e&&(v(e)||f(e))&&f(e.then)&&f(e.catch)};function x(e,t,r,s,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),s&&(this.request=s),o&&(this.response=o)}k.inherits(x,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:k.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const M=x.prototype,B={};function G(e){return k.isPlainObject(e)||k.isArray(e)}function K(e){return k.endsWith(e,"[]")?e.slice(0,-2):e}function W(e,t,r){return e?e.concat(t).map((function(e,t){return e=K(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{B[e]={value:e}})),Object.defineProperties(x,B),Object.defineProperty(M,"isAxiosError",{value:!0}),x.from=(e,t,r,s,o,n)=>{const i=Object.create(M);return k.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),x.call(i,e.message,t,r,s,o),i.cause=e,i.name=e.name,n&&Object.assign(i,n),i};const q=k.toFlatObject(k,{},null,(function(e){return/^is[A-Z]/.test(e)}));function V(e,t,r){if(!k.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const s=(r=k.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!k.isUndefined(t[e])}))).metaTokens,o=r.visitor||l,n=r.dots,i=r.indexes,a=(r.Blob||"undefined"!=typeof Blob&&Blob)&&k.isSpecCompliantForm(t);if(!k.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(k.isDate(e))return e.toISOString();if(!a&&k.isBlob(e))throw new x("Blob is not supported. Use a Buffer instead.");return k.isArrayBuffer(e)||k.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,r,o){let a=e;if(e&&!o&&"object"==typeof e)if(k.endsWith(r,"{}"))r=s?r:r.slice(0,-2),e=JSON.stringify(e);else if(k.isArray(e)&&function(e){return k.isArray(e)&&!e.some(G)}(e)||(k.isFileList(e)||k.endsWith(r,"[]"))&&(a=k.toArray(e)))return r=K(r),a.forEach((function(e,s){!k.isUndefined(e)&&null!==e&&t.append(!0===i?W([r],s,n):null===i?r:r+"[]",c(e))})),!1;return!!G(e)||(t.append(W(o,r,n),c(e)),!1)}const u=[],d=Object.assign(q,{defaultVisitor:l,convertValue:c,isVisitable:G});if(!k.isObject(e))throw new TypeError("data must be an object");return function e(r,s){if(!k.isUndefined(r)){if(-1!==u.indexOf(r))throw Error("Circular reference detected in "+s.join("."));u.push(r),k.forEach(r,(function(r,n){!0===(!(k.isUndefined(r)||null===r)&&o.call(t,r,k.isString(n)?n.trim():n,s,d))&&e(r,s?s.concat(n):[n])})),u.pop()}}(e),t}function z(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function J(e,t){this._pairs=[],e&&V(e,this,t)}const H=J.prototype;function $(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Y(e,t,r){if(!t)return e;const s=r&&r.encode||$,o=r&&r.serialize;let n;if(n=o?o(t,r):k.isURLSearchParams(t)?t.toString():new J(t,r).toString(s),n){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}H.append=function(e,t){this._pairs.push([e,t])},H.toString=function(e){const t=e?function(t){return e.call(this,t,z)}:z;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var X=class{constructor(){this.handlers=[]}use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){k.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Z={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Q={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:J,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"==typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&"undefined"!=typeof window&&"undefined"!=typeof document})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};function ee(e){function t(e,r,s,o){let n=e[o++];const i=Number.isFinite(+n),a=o>=e.length;return n=!n&&k.isArray(s)?s.length:n,a?(k.hasOwnProp(s,n)?s[n]=[s[n],r]:s[n]=r,!i):(s[n]&&k.isObject(s[n])||(s[n]=[]),t(e,r,s[n],o)&&k.isArray(s[n])&&(s[n]=function(e){const t={},r=Object.keys(e);let s;const o=r.length;let n;for(s=0;s<o;s++)n=r[s],t[n]=e[n];return t}(s[n])),!i)}if(k.isFormData(e)&&k.isFunction(e.entries)){const r={};return k.forEachEntry(e,((e,s)=>{t(function(e){return k.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),s,r,0)})),r}return null}const te={transitional:Z,adapter:["xhr","http"],transformRequest:[function(e,t){const r=t.getContentType()||"",s=r.indexOf("application/json")>-1,o=k.isObject(e);if(o&&k.isHTMLForm(e)&&(e=new FormData(e)),k.isFormData(e))return s&&s?JSON.stringify(ee(e)):e;if(k.isArrayBuffer(e)||k.isBuffer(e)||k.isStream(e)||k.isFile(e)||k.isBlob(e))return e;if(k.isArrayBufferView(e))return e.buffer;if(k.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let n;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return V(e,new Q.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,s){return Q.isNode&&k.isBuffer(e)?(this.append(t,e.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=k.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return V(n?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||s?(t.setContentType("application/json",!1),function(e,t,r){if(k.isString(e))try{return(0,JSON.parse)(e),k.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||te.transitional,r=t&&t.forcedJSONParsing,s="json"===this.responseType;if(e&&k.isString(e)&&(r&&!this.responseType||s)){const r=!(t&&t.silentJSONParsing)&&s;try{return JSON.parse(e)}catch(e){if(r){if("SyntaxError"===e.name)throw x.from(e,x.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Q.classes.FormData,Blob:Q.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};k.forEach(["delete","get","head","post","put","patch"],(e=>{te.headers[e]={}}));var re=te;const se=k.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),oe=Symbol("internals");function ne(e){return e&&String(e).trim().toLowerCase()}function ie(e){return!1===e||null==e?e:k.isArray(e)?e.map(ie):String(e)}function ae(e,t,r,s,o){return k.isFunction(s)?s.call(this,t,r):(o&&(t=r),k.isString(t)?k.isString(s)?-1!==t.indexOf(s):k.isRegExp(s)?s.test(t):void 0:void 0)}class ce{constructor(e){e&&this.set(e)}set(e,t,r){const s=this;function o(e,t,r){const o=ne(t);if(!o)throw new Error("header name must be a non-empty string");const n=k.findKey(s,o);(!n||void 0===s[n]||!0===r||void 0===r&&!1!==s[n])&&(s[n||t]=ie(e))}const n=(e,t)=>k.forEach(e,((e,r)=>o(e,r,t)));return k.isPlainObject(e)||e instanceof this.constructor?n(e,t):k.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?n((e=>{const t={};let r,s,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),r=e.substring(0,o).trim().toLowerCase(),s=e.substring(o+1).trim(),!r||t[r]&&se[r]||("set-cookie"===r?t[r]?t[r].push(s):t[r]=[s]:t[r]=t[r]?t[r]+", "+s:s)})),t})(e),t):null!=e&&o(t,e,r),this}get(e,t){if(e=ne(e)){const r=k.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=r.exec(e);)t[s[1]]=s[2];return t}(e);if(k.isFunction(t))return t.call(this,e,r);if(k.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ne(e)){const r=k.findKey(this,e);return!(!r||void 0===this[r]||t&&!ae(0,this[r],r,t))}return!1}delete(e,t){const r=this;let s=!1;function o(e){if(e=ne(e)){const o=k.findKey(r,e);!o||t&&!ae(0,r[o],o,t)||(delete r[o],s=!0)}}return k.isArray(e)?e.forEach(o):o(e),s}clear(e){const t=Object.keys(this);let r=t.length,s=!1;for(;r--;){const o=t[r];e&&!ae(0,this[o],o,e,!0)||(delete this[o],s=!0)}return s}normalize(e){const t=this,r={};return k.forEach(this,((s,o)=>{const n=k.findKey(r,o);if(n)return t[n]=ie(s),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}(o):String(o).trim();i!==o&&delete t[o],t[i]=ie(s),r[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return k.forEach(this,((r,s)=>{null!=r&&!1!==r&&(t[s]=e&&k.isArray(r)?r.join(", "):r)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);return t.forEach((e=>r.set(e))),r}static accessor(e){const t=(this[oe]=this[oe]={accessors:{}}).accessors,r=this.prototype;function s(e){const s=ne(e);t[s]||(function(e,t){const r=k.toCamelCase(" "+t);["get","set","has"].forEach((s=>{Object.defineProperty(e,s+r,{value:function(e,r,o){return this[s].call(this,t,e,r,o)},configurable:!0})}))}(r,e),t[s]=!0)}return k.isArray(e)?e.forEach(s):s(e),this}}ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),k.reduceDescriptors(ce.prototype,(({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[r]=e}}})),k.freezeMethods(ce);var le=ce;function ue(e,t){const r=this||re,s=t||r,o=le.from(s.headers);let n=s.data;return k.forEach(e,(function(e){n=e.call(r,n,o.normalize(),t?t.status:void 0)})),o.normalize(),n}function de(e){return!(!e||!e.__CANCEL__)}function pe(e,t,r){x.call(this,null==e?"canceled":e,x.ERR_CANCELED,t,r),this.name="CanceledError"}k.inherits(pe,x,{__CANCEL__:!0});var he=Q.isStandardBrowserEnv?{write:function(e,t,r,s,o,n){const i=[];i.push(e+"="+encodeURIComponent(t)),k.isNumber(r)&&i.push("expires="+new Date(r).toGMTString()),k.isString(s)&&i.push("path="+s),k.isString(o)&&i.push("domain="+o),!0===n&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function fe(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var me=Q.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let r;function s(r){let s=r;return e&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return r=s(window.location.href),function(e){const t=k.isString(e)?s(e):e;return t.protocol===r.protocol&&t.host===r.host}}():function(){return!0};function ve(e,t){let r=0;const s=function(e,t){e=e||10;const r=new Array(e),s=new Array(e);let o,n=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=s[i];o||(o=c),r[n]=a,s[n]=c;let u=i,d=0;for(;u!==n;)d+=r[u++],u%=e;if(n=(n+1)%e,n===i&&(i=(i+1)%e),c-o<t)return;const p=l&&c-l;return p?Math.round(1e3*d/p):void 0}}(50,250);return o=>{const n=o.loaded,i=o.lengthComputable?o.total:void 0,a=n-r,c=s(a);r=n;const l={loaded:n,total:i,progress:i?n/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&n<=i?(i-n)/c:void 0,event:o};l[t?"download":"upload"]=!0,e(l)}}const ge={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,r){let s=e.data;const o=le.from(e.headers).normalize(),n=e.responseType;let i,a;function c(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}k.isFormData(s)&&(Q.isStandardBrowserEnv||Q.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.getContentType(/^\s*multipart\/form-data/)?k.isString(a=o.getContentType())&&o.setContentType(a.replace(/^\s*(multipart\/form-data);+/,"$1")):o.setContentType("multipart/form-data"));let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+r))}const u=fe(e.baseURL,e.url);function d(){if(!l)return;const s=le.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,r){const s=r.config.validateStatus;r.status&&s&&!s(r.status)?t(new x("Request failed with status code "+r.status,[x.ERR_BAD_REQUEST,x.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):e(r)}((function(e){t(e),c()}),(function(e){r(e),c()}),{data:n&&"text"!==n&&"json"!==n?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:s,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),Y(u,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=d:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(d)},l.onabort=function(){l&&(r(new x("Request aborted",x.ECONNABORTED,e,l)),l=null)},l.onerror=function(){r(new x("Network Error",x.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const s=e.transitional||Z;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new x(t,s.clarifyTimeoutError?x.ETIMEDOUT:x.ECONNABORTED,e,l)),l=null},Q.isStandardBrowserEnv){const t=(e.withCredentials||me(u))&&e.xsrfCookieName&&he.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===s&&o.setContentType(null),"setRequestHeader"in l&&k.forEach(o.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),k.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),n&&"json"!==n&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",ve(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",ve(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{l&&(r(!t||t.type?new pe(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(u);p&&-1===Q.protocols.indexOf(p)?r(new x("Unsupported protocol "+p+":",x.ERR_BAD_REQUEST,e)):l.send(s||null)}))}};k.forEach(ge,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const ye=e=>`- ${e}`,Ee=e=>k.isFunction(e)||null===e||!1===e;var we=e=>{e=k.isArray(e)?e:[e];const{length:t}=e;let r,s;const o={};for(let n=0;n<t;n++){let t;if(r=e[n],s=r,!Ee(r)&&(s=ge[(t=String(r)).toLowerCase()],void 0===s))throw new x(`Unknown adapter '${t}'`);if(s)break;o[t||"#"+n]=s}if(!s){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new x("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(ye).join("\n"):" "+ye(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return s};function Se(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new pe(null,e)}function be(e){return Se(e),e.headers=le.from(e.headers),e.data=ue.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),we(e.adapter||re.adapter)(e).then((function(t){return Se(e),t.data=ue.call(e,e.transformResponse,t),t.headers=le.from(t.headers),t}),(function(t){return de(t)||(Se(e),t&&t.response&&(t.response.data=ue.call(e,e.transformResponse,t.response),t.response.headers=le.from(t.response.headers))),Promise.reject(t)}))}const Re=e=>e instanceof le?e.toJSON():e;function Oe(e,t){t=t||{};const r={};function s(e,t,r){return k.isPlainObject(e)&&k.isPlainObject(t)?k.merge.call({caseless:r},e,t):k.isPlainObject(t)?k.merge({},t):k.isArray(t)?t.slice():t}function o(e,t,r){return k.isUndefined(t)?k.isUndefined(e)?void 0:s(void 0,e,r):s(e,t,r)}function n(e,t){if(!k.isUndefined(t))return s(void 0,t)}function i(e,t){return k.isUndefined(t)?k.isUndefined(e)?void 0:s(void 0,e):s(void 0,t)}function a(r,o,n){return n in t?s(r,o):n in e?s(void 0,r):void 0}const c={url:n,method:n,data:n,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>o(Re(e),Re(t),!0)};return k.forEach(Object.keys(Object.assign({},e,t)),(function(s){const n=c[s]||o,i=n(e[s],t[s],s);k.isUndefined(i)&&n!==a||(r[s]=i)})),r}const Ce={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Ce[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const Ae={};Ce.transitional=function(e,t,r){function s(e,t){return"[Axios v1.5.1] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,o,n)=>{if(!1===e)throw new x(s(o," has been removed"+(t?" in "+t:"")),x.ERR_DEPRECATED);return t&&!Ae[o]&&(Ae[o]=!0,console.warn(s(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,n)}};var De={assertOptions:function(e,t,r){if("object"!=typeof e)throw new x("options must be an object",x.ERR_BAD_OPTION_VALUE);const s=Object.keys(e);let o=s.length;for(;o-- >0;){const n=s[o],i=t[n];if(i){const t=e[n],r=void 0===t||i(t,n,e);if(!0!==r)throw new x("option "+n+" must be "+r,x.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new x("Unknown option "+n,x.ERR_BAD_OPTION)}},validators:Ce};const _e=De.validators;class Te{constructor(e){this.defaults=e,this.interceptors={request:new X,response:new X}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Oe(this.defaults,t);const{transitional:r,paramsSerializer:s,headers:o}=t;void 0!==r&&De.assertOptions(r,{silentJSONParsing:_e.transitional(_e.boolean),forcedJSONParsing:_e.transitional(_e.boolean),clarifyTimeoutError:_e.transitional(_e.boolean)},!1),null!=s&&(k.isFunction(s)?t.paramsSerializer={serialize:s}:De.assertOptions(s,{encode:_e.function,serialize:_e.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let n=o&&k.merge(o.common,o[t.method]);o&&k.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=le.concat(n,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let u,d=0;if(!a){const e=[be.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),u=e.length,l=Promise.resolve(t);d<u;)l=l.then(e[d++],e[d++]);return l}u=i.length;let p=t;for(d=0;d<u;){const e=i[d++],t=i[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{l=be.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=c.length;d<u;)l=l.then(c[d++],c[d++]);return l}getUri(e){return Y(fe((e=Oe(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}k.forEach(["delete","get","head","options"],(function(e){Te.prototype[e]=function(t,r){return this.request(Oe(r||{},{method:e,url:t,data:(r||{}).data}))}})),k.forEach(["post","put","patch"],(function(e){function t(t){return function(r,s,o){return this.request(Oe(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:s}))}}Te.prototype[e]=t(),Te.prototype[e+"Form"]=t(!0)}));var Fe=Te;class Ie{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const r=this;this.promise.then((e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null})),this.promise.then=e=>{let t;const s=new Promise((e=>{r.subscribe(e),t=e})).then(e);return s.cancel=function(){r.unsubscribe(t)},s},e((function(e,s,o){r.reason||(r.reason=new pe(e,s,o),t(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Ie((function(t){e=t})),cancel:e}}}var Ne=Ie;const Pe={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Pe).forEach((([e,t])=>{Pe[t]=e}));var Le=Pe;const je=function e(t){const r=new Fe(t),o=s(Fe.prototype.request,r);return k.extend(o,Fe.prototype,r,{allOwnKeys:!0}),k.extend(o,r,null,{allOwnKeys:!0}),o.create=function(r){return e(Oe(t,r))},o}(re);je.Axios=Fe,je.CanceledError=pe,je.CancelToken=Ne,je.isCancel=de,je.VERSION="1.5.1",je.toFormData=V,je.AxiosError=x,je.Cancel=je.CanceledError,je.all=function(e){return Promise.all(e)},je.spread=function(e){return function(t){return e.apply(null,t)}},je.isAxiosError=function(e){return k.isObject(e)&&!0===e.isAxiosError},je.mergeConfig=Oe,je.AxiosHeaders=le,je.formToJSON=e=>ee(k.isHTMLForm(e)?new FormData(e):e),je.getAdapter=we,je.HttpStatusCode=Le,je.default=je,e.exports=je}},t={};function r(s){var o=t[s];if(void 0!==o)return o.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,r),n.exports}r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var s={};return(()=>{"use strict";var e=s;const t=r(234),o=r(604),n=r(122),i=r(344),a=r(927),c=r(168);class l{}l.livenessDetection=t.livenessDetection,l.uploadIdentificationDocument=o.uploadIdentificationDocument,l.insertUploadIdentificationDocument=n.insertUploadIdentificationDocument,l.typification=i.typification,l.ocr=c.ocr,l.faceMatch=a.faceMatch,e.default=l})(),s.default})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("SantoiDSDK",[],t):"object"==typeof exports?exports.SantoiDSDK=t():e.SantoiDSDK=t()}(this,(()=>(()=>{var e={373:function(e,t,s){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractService=void 0;const o=r(s(218)),n=s(661);t.AbstractService=class{constructor(e,t){this.options=e,this.serviceOptions=t}request(e){var t,s,{contentType:r="application/json",authToken:i=this.options.token,baseUrl:a=(null!==(t=this.options.customApiUrl)&&void 0!==t?t:n.API_GATEWAY_URL),extraHeaders:c}=void 0===e?{}:e;const l={baseURL:a,headers:Object.assign({"Content-Type":r,Authorization:`Bearer ${i}`},c)};let u=this.options.domain;if(!this.options.domain&&this.options.token){const e=this.serviceOptions.tryDecodeJwt(this.options.token);u=null===(s=null==e?void 0:e.claims)||void 0===s?void 0:s.domain}return l.headers&&(u&&(l.headers.Domain=u),this.options.useBillingAccounts&&(l.headers.clientCredentials=!0)),o.default.create(l)}}},151:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiAsyncService=void 0;const r=s(373);class o extends r.AbstractService{constructor(e,...t){super(...t),this.resultsRoute=e.resultsRoute}async get(e){return(await this.request().get(`/api/v1/tracks/${this.options.track}/${this.resultsRoute}/`+e)).data}}t.ApiAsyncService=o},748:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiFaceMatchService=void 0;const r=s(151),o=s(951);class n extends r.ApiAsyncService{constructor(...e){super({resultsRoute:"face-async"},...e)}async faceMatch(e,t,s){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const r=new this.serviceOptions.FormDataClass;return r.append("track",this.options.track),r.append("deliveryFront","true"),r.append("sensitive_data_compliance","true"),r.append("imageFile1",e,"imageFile1.jpg"),t&&r.append("imageFile2",t,"imageFile2.jpg"),s&&r.append("customerRequestId",s),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/face-match-async",r)).data}))}async get(...e){return await super.get(...e)}}t.ApiFaceMatchService=n},275:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiLivenessSessionService=void 0;const r=s(373),o=s(661);class n extends r.AbstractService{get baseLivenessUrl(){var e;return null!==(e=this.options.customApiUrl)&&void 0!==e?e:o.LIVENESS_API_URL}livenessRequest(){var e;return this.request({baseUrl:this.baseLivenessUrl,extraHeaders:{"x-endpoint-api-userinfo":null!==(e=this.options.token)&&void 0!==e?e:""}})}async createSession(e){return(await this.livenessRequest().post("/api/v2/liveness/session",{track:this.options.track,customerRequestId:e})).data}async getSessionResults(e){return(await this.livenessRequest().get(`/api/v2/liveness/session/${e}`,{params:this.options.track?{track:this.options.track}:void 0})).data}}t.ApiLivenessSessionService=n},926:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiOcrService=void 0;const r=s(151),o=s(951);class n extends r.ApiAsyncService{constructor(...e){super({resultsRoute:"ocr-async"},...e)}async extract(e,t){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const s=new this.serviceOptions.FormDataClass;return s.append("imageFile",e,"imageFile.jpg"),s.append("track",this.options.track),s.append("template",this.options.template),s.append("customerRequestId",t),s.append("deliveryFront","true"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/ocr-async/ocr",s)).data}))}}t.ApiOcrService=n},456:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiTypificationService=void 0;const r=s(151),o=s(951);class n extends r.ApiAsyncService{constructor(...e){super({resultsRoute:"typification-async"},...e)}async predict(e,t){return await(0,o.retryAsyncFunctionXTimes)((async()=>{const s=new this.serviceOptions.FormDataClass;return s.append("imageFile",e,"imageFile.jpg"),s.append("track",this.options.track),s.append("customerRequestId",t),s.append("deliveryFront","true"),(await this.request({contentType:"multipart/form-data"}).post("/api/v1/typification-async/predict",s)).data}))}}t.ApiTypificationService=n},135:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseCoreService=void 0;const r=s(551),o=s(620);t.BaseCoreService=class{constructor(e){this.results={status:null,results:null,loading:!1,error:null},this.cameraIsActive=!1,this.cameraIsSetup=!1,this.options=e}async initialize(e){var t;e?this.startProcessing(e):(null!==(t=this.options.startTheCameraImmediately)&&void 0!==t?t:void 0===this.options.startTheCameraImmediately)&&await this.startCamera()}async updateResults(e){var t,s;this.results=Object.assign(Object.assign({},this.results),e),await(null===(s=(t=this.options).onUpdate)||void 0===s?void 0:s.call(t,this.results))}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}async setupCamera(){this.frameGetControls=await(0,o.getDefaultFrameControls)(),this.cameraIsSetup=!0}async startCamera(e){var t,s,o,n,i,a;try{if(this.cameraIsActive)throw new r.SDKError({message:"The camera has already been initialized",code:r.ECameraErrorCodes.ALREADY_STARTED,fatal:!1});if(this.results.loading)throw new r.SDKError({message:"Typification processing has already started",code:r.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.cameraIsSetup||await this.setupCamera(),this.frameGetControls.videoStream=await(null===(s=(t=this.frameGetControls).startGettingFrames)||void 0===s?void 0:s.call(t,e)),await(null===(n=(o=this.options).onCameraStart)||void 0===n?void 0:n.call(o,{videoStream:this.getVideoStream()})),this.cameraIsActive=!0}catch(e){const t=e instanceof r.SDKError?e:new r.SDKError({message:"Camera initialization error",code:r.ECameraErrorCodes.INITIALIZATION_ERROR,fatal:!1,details:e});await(null===(a=(i=this.options).onError)||void 0===a?void 0:a.call(i,t))}}async stopCamera(){var e,t,s,o,n,i;try{if(!this.cameraIsActive)throw new r.SDKError({message:"Camera not initialized",code:r.ECameraErrorCodes.NOT_INITIALIZED,fatal:!1});await(null===(t=(e=this.frameGetControls).stopGettingFrames)||void 0===t?void 0:t.call(e)),await(null===(o=(s=this.options).onCameraStop)||void 0===o?void 0:o.call(s)),this.cameraIsActive=!1}catch(e){const t=e instanceof r.SDKError?e:new r.SDKError({message:"Error during camera shutdown",code:r.ECameraErrorCodes.SHUTDOWN_ERROR,fatal:!1,details:e});await(null===(i=(n=this.options).onError)||void 0===i?void 0:i.call(n,t))}}async captureImage({startProcessing:e=!0}={}){var t,s;const o=await(null===(s=(t=this.frameGetControls).getNextFrame)||void 0===s?void 0:s.call(t));if(o)return e&&(await this.stopCamera(),await this.startProcessing(o)),o;throw new r.SDKError({message:"Cannot capture image",code:r.ECameraErrorCodes.CANNOT_CAPTURE_IMAGE,fatal:!1})}async waitForResults(e){let t=!1;return await new Promise(((s,r)=>{const o=setInterval((async()=>{var n,i,a,c;try{null===(i=(n=this.options).onClearInterval)||void 0===i||i.call(n,o);const r=await this.service.get(e);if("validation"===(null==r?void 0:r.status)&&!t)return await(null===(c=(a=this.options).onValidationRequested)||void 0===c?void 0:c.call(a,{track:this.options.track,requestId:r.id})),void(t=!0);if("error"===(null==r?void 0:r.status))throw new Error("Não foi possível processar os resultados do Upload de Documentos");if("processed"===(null==r?void 0:r.status)&&r.fileURL){const e=await fetch(r.fileURL),t=await e.json();t&&(clearInterval(o),s(t))}}catch(e){clearInterval(o),r(e)}}),5e3)}))}}},474:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FaceMatchService=void 0;const r=s(877),o=s(551),n=s(616),i=s(748),a=s(135);class c extends a.BaseCoreService{constructor(e){super(e),this.selectedFile1=void 0,this.selectedFile2=void 0,this.service=new i.ApiFaceMatchService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}async initialize(e,t){var s;e?this.startProcessing(e,t):(null!==(s=this.options.startTheCameraImmediately)&&void 0!==s?s:void 0===this.options.startTheCameraImmediately)&&await this.startCamera()}async captureFirstImage({startProcessing:e=!0}={}){const t=await super.captureImage({startProcessing:!1});return this.selectedFile1=t,e&&(await this.stopCamera(),await this.startProcessing(this.selectedFile1)),t}async captureSecondImage({startProcessing:e=!0}={}){if(!this.selectedFile1)throw new o.SDKError({message:"Select the first image before selecting the second",code:o.EFaceMatchErrorCodes.FIRST_IMAGE_NOT_SELECTED,fatal:!1});const t=await super.captureImage({startProcessing:!1});return this.selectedFile2=t,e&&(await this.stopCamera(),await this.startProcessing(this.selectedFile1,this.selectedFile2)),t}async startProcessing(e,t){var s,n,i,a,c,l,u;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(s=this.results)||void 0===s?void 0:s.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:l}=await this.service.faceMatch(e,t,`sdk-ocr-${(0,r.v4)()}`),u=await this.waitForResultsFaceMatch(l);this.updateResults({status:"success",results:u,loading:!1,error:null}),null===(i=(n=this.options).onSuccess)||void 0===i||i.call(n,u),null===(c=(a=this.options).onEnd)||void 0===c||c.call(a)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}async waitForResultsFaceMatch(e){return await new Promise(((t,s)=>{const r=setInterval((async()=>{var o,n,i,a;try{null===(n=(o=this.options).onClearInterval)||void 0===n||n.call(o,r);const s=await this.service.get(e);if("error"===(null==s?void 0:s.status)||"error_connector"===(null==s?void 0:s.status))throw new Error("Não foi possível processar os resultados do FaceMatch");if("processed"===(null==s?void 0:s.status)&&s.fileURL){const e=await fetch(s.fileURL);let o=await e.json();o=Object.assign(Object.assign({},o),{fileImage1:null!==(i=s.fileImage1)&&void 0!==i?i:"",fileImage2:null!==(a=s.fileImage2)&&void 0!==a?a:""}),o&&(clearInterval(r),t(o))}}catch(e){clearInterval(r),s(new Error(e))}}),5e3)}))}}t.FaceMatchService=c},927:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.faceMatch=void 0;const r=s(551),o=s(474);t.faceMatch=async function(e,t,s){var n,i;try{const r=new o.FaceMatchService(e);return await r.initialize(t,s),await(null===(i=(n=r.options).onStart)||void 0===i?void 0:i.call(n,{videoStream:r.getVideoStream()})),{startCamera:async(...e)=>{await r.startCamera(...e)},stopCamera:async()=>{await r.stopCamera()},captureFirstImage:async(...e)=>await r.captureFirstImage(...e),captureSecondImage:async(...e)=>await r.captureSecondImage(...e),getVideoStream:()=>r.getVideoStream(),sendFiles:async(...e)=>{await r.startProcessing(...e)}}}catch(e){throw new r.SDKError({message:"Error while starting SDK",code:r.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},577:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OcrService=void 0;const r=s(877),o=s(551),n=s(616),i=s(926),a=s(135);class c extends a.BaseCoreService{constructor(e){super(e),this.service=new i.ApiOcrService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}async startProcessing(e){var t,s,n,i,a,c,l;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(t=this.results)||void 0===t?void 0:t.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:c}=await this.service.extract(e,`sdk-ocr-${(0,r.v4)()}`),l=await this.waitForResults(c);this.updateResults({status:"success",results:l,loading:!1,error:null}),null===(n=(s=this.options).onSuccess)||void 0===n||n.call(s,l),null===(a=(i=this.options).onEnd)||void 0===a||a.call(i)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(l=(c=this.options).onError)||void 0===l?void 0:l.call(c,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}}t.OcrService=c},168:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ocr=void 0;const r=s(551),o=s(577);t.ocr=async function(e,t){var s,n;try{const r=new o.OcrService(e);return await r.initialize(t),await(null===(n=(s=r.options).onStart)||void 0===n?void 0:n.call(s,{videoStream:r.getVideoStream()})),{startCamera:async(...e)=>{await r.startCamera(...e)},stopCamera:async()=>{await r.stopCamera()},captureImage:async()=>await r.captureImage(),getVideoStream:()=>r.getVideoStream(),sendFile:async e=>{await r.startProcessing(e)}}}catch(e){throw new r.SDKError({message:"Error while starting SDK",code:r.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},983:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TypificationService=void 0;const r=s(877),o=s(551),n=s(616),i=s(456),a=s(135);class c extends a.BaseCoreService{constructor(e){super(e),this.service=new i.ApiTypificationService(e,{FormDataClass:FormData,tryDecodeJwt:n.tryDecodeJwt})}async startProcessing(e){var t,s,n,i,a,c,l;try{if(this.cameraIsActive)throw new o.SDKError({message:"Cannot start because the camera is running",code:o.ECameraErrorCodes.IS_RUNNING,fatal:!1});if(null===(t=this.results)||void 0===t?void 0:t.loading)throw new o.SDKError({message:"Processing has already started",code:o.EProcessingErrorCodes.ALREADY_STARTED,fatal:!1});this.updateResults({status:null,results:null,loading:!0,error:null});const{requestId:c}=await this.service.predict(e,`sdk-typification-${(0,r.v4)()}`),l=await this.waitForResults(c);this.updateResults({status:"success",results:l,loading:!1,error:null}),null===(n=(s=this.options).onSuccess)||void 0===n||n.call(s,l),null===(a=(i=this.options).onEnd)||void 0===a||a.call(i)}catch(e){const t=e instanceof o.SDKError?e:new o.SDKError({message:"Error during document upload/analysis",code:o.EProcessingErrorCodes.PROCESSING_ERROR,fatal:!1,details:e});await(null===(l=(c=this.options).onError)||void 0===l?void 0:l.call(c,t)),this.updateResults({status:"error",results:null,loading:!1,error:t})}}}t.TypificationService=c},344:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.typification=void 0;const r=s(551),o=s(983);t.typification=async function(e,t){var s,n;try{const r=new o.TypificationService(e);return await r.initialize(t),await(null===(n=(s=r.options).onStart)||void 0===n?void 0:n.call(s,{videoStream:r.getVideoStream()})),{startCamera:async(...e)=>{await r.startCamera(...e)},stopCamera:async()=>{await r.stopCamera()},captureImage:async()=>await r.captureImage(),getVideoStream:()=>r.getVideoStream(),sendFile:async e=>{await r.startProcessing(e)}}}catch(e){throw new r.SDKError({message:"Error while starting SDK",code:r.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},122:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.insertUploadIdentificationDocument=void 0;const r=s(661);t.insertUploadIdentificationDocument=function(e,t){var s,o,n;const i=t?document.querySelector(t):document.body;if(!i)throw new Error("Cannot find target element");const a=document.createElement("iframe");a.style.overflow="hidden",a.style.border="0",a.setAttribute("width",null!==(s=e.width)&&void 0!==s?s:"100%"),a.setAttribute("height",null!==(o=e.height)&&void 0!==o?o:"550px"),a.setAttribute("scrolling","no"),a.setAttribute("allow","camera; microphone; clipboard-read; clipboard-write");let c=`${null!==(n=e.customAppUrl)&&void 0!==n?n:r.APPLICATION_URL}/share/domains/${e.domain}/tracks/${e.track}/flow/${e.flow}/embedded`;e.token&&(c+=`?accessToken=${e.token}`),a.setAttribute("src",c),i.appendChild(a)}},42:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LivenessDetectionService=void 0;const r=s(551),o=s(620),n=s(951),i=s(661);t.LivenessDetectionService=class{constructor(e,t){this.frameGetControls={},this.currentStep="front",this.pauseSendingFramesToWebSocket=!1,this.websocketClosedBySDK=!1,this.validationSuccess=!1,this.canSendNextBytes=!0,this.endCalled=!1,this.cancelSendingFramesToWebsocket=void 0,this.successFrames={front:void 0,right:void 0,left:void 0,up:void 0,bottom:void 0},this.options=e,this.abstractWebSocket=t}async onWebSocketMessage(e){var t,s,o,i,a,c,l,u;const d=e.data,p=JSON.parse(d);return(null==p?void 0:p.validation)&&this.currentStep&&(this.successFrames[this.currentStep]=this.lastSentBytes),(null==p?void 0:p.next_step)&&!p.error&&(this.currentStep=p.next_step,await(null===(s=(t=this.options).onNextStep)||void 0===s?void 0:s.call(t,p.next_step)),await(null===(i=(o=this.options)[`on${(0,n.capitalizeFirstLetter)(p.next_step)}Step`])||void 0===i?void 0:i.call(o))),p&&(this.canSendNextBytes=!!(null==p?void 0:p.can_send_next_bytes)),(null==p?void 0:p.success)&&(this.successFrames.bottom=this.lastSentBytes,this.validationSuccess=!0,await(null===(c=(a=this.options).onSuccess)||void 0===c?void 0:c.call(a,{livenessId:p.livenessId,successFrames:this.successFrames})),await this.stopLivenessDetection()),(null==p?void 0:p.error)&&await(null===(u=(l=this.options).onError)||void 0===u?void 0:u.call(l,new r.SDKError({message:"Wrong position",code:r.ELivenessDetectionErrorCodes.WRONG_POSITION,fatal:!1}))),p}async stopLivenessDetection(){var e,t,s,r,o;await(0,n.waitFor)((()=>!!this.cancelSendingFramesToWebsocket)),null===(e=this.cancelSendingFramesToWebsocket)||void 0===e||e.call(this),await(null===(s=(t=this.frameGetControls).stopGettingFrames)||void 0===s?void 0:s.call(t)),this.abstractWebSocket.disconnectFromWebSocket(),this.endCalled||(await(null===(o=(r=this.options).onEnd)||void 0===o?void 0:o.call(r)),this.endCalled=!0),this.websocketClosedBySDK=!0}async sendFramesToWebSocket(){var e,t;try{if(this.canSendNextBytes&&!this.pauseSendingFramesToWebSocket){const s=await(null===(t=(e=this.frameGetControls).getNextFrame)||void 0===t?void 0:t.call(e));s&&(this.abstractWebSocket.send(s),this.lastSentBytes=s,this.canSendNextBytes=!1)}}catch(e){await this.stopLivenessDetection()}}async onConnect(){var e,t,s,r,a,c,l,u,d,p;try{if(this.options.getNextFrame)this.frameGetControls.startGettingFrames=this.options.startGettingFrames,this.frameGetControls.getNextFrame=this.options.getNextFrame,this.frameGetControls.stopGettingFrames=this.options.stopGettingFrames,this.frameGetControls.videoStream=await(null===(t=(e=this.options).startGettingFrames)||void 0===t?void 0:t.call(e));else{const e=await(0,o.getDefaultFrameControls)();this.frameGetControls.startGettingFrames=e.startGettingFrames,this.frameGetControls.getNextFrame=e.getNextFrame,this.frameGetControls.stopGettingFrames=e.stopGettingFrames,this.frameGetControls.videoStream=await(null===(r=(s=this.frameGetControls).startGettingFrames)||void 0===r?void 0:r.call(s))}await(null===(c=(a=this.options).onStart)||void 0===c?void 0:c.call(a,{videoStream:this.getVideoStream()})),await(null===(u=(l=this.options).onNextStep)||void 0===u?void 0:u.call(l,"front")),await(null===(p=(d=this.options).onFrontStep)||void 0===p?void 0:p.call(d)),this.cancelSendingFramesToWebsocket=(0,n.callAsyncFunctionEveryXSeconds)((async()=>{await this.sendFramesToWebSocket()}),i.SEND_FRAMES_INTERVAL_MS)}catch(e){await this.onError()}}async onError(){var e,t;this.validationSuccess||(await(null===(t=(e=this.options).onError)||void 0===t?void 0:t.call(e,new r.SDKError({message:"Internal Error",code:r.EDefaultErrorCodes.INTERNAL_ERROR,fatal:!1}))),await this.stopLivenessDetection())}resumeGettingFrames(){this.pauseSendingFramesToWebSocket=!1}pauseGettingFrames(){this.pauseSendingFramesToWebSocket=!0}getVideoStream(){var e;return null===(e=this.frameGetControls)||void 0===e?void 0:e.videoStream}}},234:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.livenessDetection=void 0;const r=s(42),o=s(551),n=s(706),i=s(616);t.livenessDetection=function(e){var t;try{const s=new n.AbstractWebSocket({WebSocketClass:null!==(t=e.CustomWebSocketClass)&&void 0!==t?t:WebSocket,decodeJwt:i.decodeJwt},e);s.startConnection();const o=new r.LivenessDetectionService(e,s);return s.waitForWebSocketConnection().then((()=>{o.onConnect()})).catch((()=>{o.onError()})),s.addListener("message",(e=>{o.onWebSocketMessage(e)})),s.addListener("error",(()=>{o.onError()})),s.addListener("close",(()=>{o.onError()})),{getVideoStream:()=>o.getVideoStream(),stopLivenessDetection:async()=>{await o.stopLivenessDetection()},resumeGettingFrames:()=>{o.resumeGettingFrames()},pauseGettingFrames:()=>{o.pauseGettingFrames()}}}catch(e){throw new o.SDKError({message:"Error while starting SDK",code:o.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0})}}},460:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LivenessSessionService=void 0;const r=s(275),o=s(551),n=s(951),i=s(661),a=s(616);t.LivenessSessionService=class{constructor(e){this.sessionId=null,this.options=e,this.service=new r.ApiLivenessSessionService(e,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt})}async createSession(){var e,t;try{const s=await this.service.createSession(this.options.customerRequestId);return this.sessionId=s.SessionId,await(null===(t=(e=this.options).onSessionCreated)||void 0===t?void 0:t.call(e,s.SessionId)),s.SessionId}catch(e){throw await this.fail("Error while creating liveness session",e)}}async getResults(e=this.sessionId){var t,s;if(!e)throw await this.fail("There is no liveness session to fetch results from");try{let r=null;for(let t=0;t<i.LIVENESS_RESULT_MAX_ATTEMPTS&&(r=await this.service.getSessionResults(e),i.LIVENESS_PENDING_STATUSES.includes(r.Status));t++)await(0,n.wait)(i.LIVENESS_RESULT_RETRY_DELAY_MS);return await(null===(s=(t=this.options).onResults)||void 0===s?void 0:s.call(t,r)),r}catch(e){throw await this.fail("Error while fetching liveness session results",e)}}async fail(e,t){var s,r;const n=new o.SDKError({message:e,code:o.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:t});return await(null===(r=(s=this.options).onError)||void 0===r?void 0:r.call(s,n)),n}}},923:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.livenessSession=void 0;const r=s(460),o=s(551);t.livenessSession=function(e){try{const t=new r.LivenessSessionService(e);return{createSession:async()=>await t.createSession(),getResults:async(...e)=>await t.getResults(...e),getSessionId:()=>t.sessionId}}catch(e){throw new o.SDKError({message:"Error while starting SDK",code:o.EDefaultErrorCodes.INITIALIZATION_ERROR,fatal:!0,details:e})}}},171:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UploadIdentificationDocumentService=void 0;const r=s(456),o=s(748),n=s(551),i=s(877),a=s(616);t.UploadIdentificationDocumentService=class{constructor(e,t){this.results={uploadedDocument:null,typification:{status:null,results:null,loading:!1,error:null},liveness:{status:null,results:null,loading:!1,error:null},faceMatch:{status:null,results:null,loading:!1,error:null}},this.options=e,this.internalOptions=t,this.typificationService=new r.ApiTypificationService(e,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt}),this.faceMatchService=new o.ApiFaceMatchService(e,{FormDataClass:FormData,tryDecodeJwt:a.tryDecodeJwt})}getResults(){return this.results}async updateResults(e){var t,s,r,o,n,i;this.results=Object.assign(Object.assign({},this.results),e),await(null===(s=(t=this.options).onUpdate)||void 0===s?void 0:s.call(t,this.results)),e.faceMatch||this.tryStartFaceMatch(),Object.entries(this.results).every((([e,t])=>"uploadedDocument"===e||!!t.results))&&(await(null===(o=(r=this.options).onSuccess)||void 0===o?void 0:o.call(r,this.results)),await(null===(i=(n=this.options).onEnd)||void 0===i?void 0:i.call(n)))}updateUploadedDocument(e){this.results.uploadedDocument=e}async waitForResults(e){let t=!1;return await new Promise(((s,r)=>{const o=setInterval((async()=>{var n,i,a,c;try{null===(i=(n=this.options).onClearInterval)||void 0===i||i.call(n,o);const l=await this.typificationService.get(e);if("validation"!==(null==l?void 0:l.status)||t){if("error"===(null==l?void 0:l.status))clearInterval(o),r(new Error("Não foi possível processar os resultados do Upload de Documentos"));else if("processed"===(null==l?void 0:l.status)&&l.fileURL){const e=await fetch(l.fileURL),t=await e.json();t&&(clearInterval(o),s(t))}}else await(null===(c=(a=this.options).onValidationRequested)||void 0===c?void 0:c.call(a,{track:this.options.track,requestId:l.id})),t=!0}catch(e){clearInterval(o),r(new Error(e))}}),5e3)}))}async waitForResultsFaceMatch(e){return await new Promise(((t,s)=>{const r=setInterval((async()=>{var o,n,i,a;try{null===(n=(o=this.options).onClearInterval)||void 0===n||n.call(o,r);const c=await this.faceMatchService.get(e);if("error"===(null==c?void 0:c.status)||"error_connector"===(null==c?void 0:c.status))clearInterval(r),s(new Error("Não foi possível processar os resultados do FaceMatch"));else if("processed"===(null==c?void 0:c.status)&&c.fileURL){const e=await fetch(c.fileURL);let s=await e.json();s=Object.assign(Object.assign({},s),{fileImage1:null!==(i=c.fileImage1)&&void 0!==i?i:"",fileImage2:null!==(a=c.fileImage2)&&void 0!==a?a:""}),s&&(clearInterval(r),t(s))}}catch(e){clearInterval(r),s(new Error(e))}}),5e3)}))}async startDocumentUpload(e){var t,s;try{this.updateResults({typification:{status:null,results:null,loading:!0,error:null}}),this.updateUploadedDocument(e);const{requestId:t}=await this.typificationService.predict(e,`sdk-typification-${(0,i.v4)()}`),s=await this.waitForResults(t);this.updateResults({typification:{status:"success",results:s,loading:!1,error:null}})}catch(e){const r=new n.SDKError({message:"Error during document upload/analysis",code:n.EUploadIdentificationDocumentErrorCodes.DOCUMENT_ANALYSIS_ERROR,fatal:!1,details:e});await(null===(s=(t=this.options).onError)||void 0===s?void 0:s.call(t,r)),this.updateResults({typification:{status:"error",results:null,loading:!1,error:r}})}}startLivenessDetection(e){var t,s;const r=Object.assign(Object.assign({},this.options.livenessDetectionOptions),e);this.updateResults({liveness:{results:null,status:null,loading:!0,error:null}});try{return this.internalOptions.livenessDetection(Object.assign(Object.assign({domain:this.options.domain,customId:this.options.customId,customWebSocketUrl:this.options.customWebSocketUrl,token:this.options.token,track:this.options.track},r),{onSuccess:async e=>{var t;await(null===(t=null==r?void 0:r.onSuccess)||void 0===t?void 0:t.call(r,e)),this.updateResults({liveness:{status:"success",results:e,loading:!1,error:null}})},onError:async e=>{var t,s,o;await(null===(t=null==r?void 0:r.onError)||void 0===t?void 0:t.call(r,e)),await(null===(o=(s=this.options).onError)||void 0===o?void 0:o.call(s,e)),this.updateResults({liveness:{status:"error",results:null,loading:"wrong-position"===(null==e?void 0:e.code),error:null!=e?e:null}})}}))}catch(e){const r=new n.SDKError({message:"Error during liveness detection",code:n.EUploadIdentificationDocumentErrorCodes.LIVENESS_DETECTION_ERROR,fatal:!1,details:e});null===(s=(t=this.options).onError)||void 0===s||s.call(t,r),this.updateResults({liveness:{status:"error",results:null,loading:!1,error:r}})}}async startFaceMatch(e,t){var s,r;try{this.updateResults({faceMatch:{status:null,results:null,loading:!0,error:null}});const{requestId:s}=await this.faceMatchService.faceMatch(e,t,`sdk-facematch-${(0,i.v4)()}`),r=await this.waitForResultsFaceMatch(s);this.updateResults({faceMatch:{results:r,status:"success",loading:!1,error:null}})}catch(e){const t=new n.SDKError({message:"Error when comparing the face with the document",code:n.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_ERROR,fatal:!1,details:e});await(null===(r=(s=this.options).onError)||void 0===r?void 0:r.call(s,t)),this.updateResults({faceMatch:{results:null,status:"error",loading:!1,error:t}})}}async tryStartFaceMatch(){var e,t,s;!this.results.uploadedDocument||!(null===(e=this.results.liveness.results)||void 0===e?void 0:e.successFrames.front)||this.results.faceMatch.loading||this.results.liveness.loading||this.results.typification.loading?await(null===(s=(t=this.options).onError)||void 0===s?void 0:s.call(t,new n.SDKError({message:"Unavailable faces",code:n.EUploadIdentificationDocumentErrorCodes.FACE_MATCH_UNAVAILABLE_FACES_ERROR,fatal:!1}))):await this.startFaceMatch(this.results.uploadedDocument,this.results.liveness.results.successFrames.front)}startAll(e,t){this.startDocumentUpload(e),this.startLivenessDetection(t)}}},604:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uploadIdentificationDocument=void 0;const r=s(171),o=s(234);t.uploadIdentificationDocument=function(e){const t=new r.UploadIdentificationDocumentService(e,{livenessDetection:o.livenessDetection});return{startDocumentUpload:async(...e)=>{await t.startDocumentUpload(...e)},startLivenessDetection:(...e)=>t.startLivenessDetection(...e),startFaceComparison:async(...e)=>{await t.tryStartFaceMatch(...e)},startAll:(...e)=>{t.startAll(...e)},getResults:(...e)=>t.getResults(...e)}}},620:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDefaultFrameControls=void 0,t.getDefaultFrameControls=async function(){let e,t,s,r;return{startGettingFrames:async function(o){var n;return e&&t&&s||(e=await navigator.mediaDevices.getUserMedia({audio:!1,video:{facingMode:null!==(n=null==o?void 0:o.facingMode)&&void 0!==n?n:"user"}}),t=document.createElement("video"),t.setAttribute("autoplay","true"),t.style.transform="scale(-1, 1)",t.style.position="absolute",t.style.left="-99999px",document.body.appendChild(t),t.srcObject=e,s=document.createElement("canvas"),r=s.getContext("2d")),e},getNextFrame:async function(){if(s&&t)return s.width=t.videoWidth,s.height=t.videoHeight,null==r||r.drawImage(t,0,0,s.width,s.height),await new Promise(((e,t)=>{s?s.toBlob((t=>{e(t)})):e(null)}));throw new Error("Cannot found video element")},stopGettingFrames:function(){t&&(document.body.removeChild(t),t=void 0),s&&(s=void 0),r&&(r=void 0),e&&(null==e||e.getTracks().forEach((e=>{e.stop()})),e=void 0)}}}},616:(e,t)=>{"use strict";function s(e){const t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),s=decodeURIComponent(window.atob(t).split("").map((e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2))).join(""));return JSON.parse(s)}Object.defineProperty(t,"__esModule",{value:!0}),t.tryDecodeJwt=t.decodeJwt=void 0,t.decodeJwt=s,t.tryDecodeJwt=function(e){try{return s(e)}catch(e){return null}}},661:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LIVENESS_RESULT_RETRY_DELAY_MS=t.LIVENESS_RESULT_MAX_ATTEMPTS=t.LIVENESS_PENDING_STATUSES=t.DEFAULT_RETRY_TIME_STEP=t.DEFAULT_NUMBER_OF_RETRIES=t.SEND_FRAMES_INTERVAL_MS=t.APPLICATION_URL=t.API_GATEWAY_URL=t.WEBSOCKET_BASE_URL=t.LIVENESS_API_URL=void 0,t.LIVENESS_API_URL="https://liveness.santoid.com.br",t.WEBSOCKET_BASE_URL=`${t.LIVENESS_API_URL.replace("https://","wss://")}/api/v1/liveness/ws`,t.API_GATEWAY_URL="https://api.santoid.com.br",t.APPLICATION_URL="https://app.santoid.com.br",t.SEND_FRAMES_INTERVAL_MS=100,t.DEFAULT_NUMBER_OF_RETRIES=5,t.DEFAULT_RETRY_TIME_STEP=1e3,t.LIVENESS_PENDING_STATUSES=["CREATED","IN_PROGRESS"],t.LIVENESS_RESULT_MAX_ATTEMPTS=8,t.LIVENESS_RESULT_RETRY_DELAY_MS=1500},551:(e,t)=>{"use strict";var s,r,o,n,i,a;Object.defineProperty(t,"__esModule",{value:!0}),t.SDKError=t.EProcessingErrorCodes=t.ECameraErrorCodes=t.EFaceMatchErrorCodes=t.EUploadIdentificationDocumentErrorCodes=t.ELivenessDetectionErrorCodes=t.EDefaultErrorCodes=void 0,function(e){e.INITIALIZATION_ERROR="initialization-error",e.INTERNAL_ERROR="internal-error"}(s||(t.EDefaultErrorCodes=s={})),function(e){e.WRONG_POSITION="liveness-detection/wrong-position"}(r||(t.ELivenessDetectionErrorCodes=r={})),function(e){e.FACE_MATCH_ERROR="upload-identification-document/face-match-error",e.FACE_MATCH_UNAVAILABLE_FACES_ERROR="upload-identification-document/face-match-unavailable-faces-error",e.DOCUMENT_ANALYSIS_ERROR="upload-identification-document/document-analysis-error",e.LIVENESS_DETECTION_ERROR="upload-identification-document/liveness-detection-error"}(o||(t.EUploadIdentificationDocumentErrorCodes=o={})),function(e){e.FIRST_IMAGE_NOT_SELECTED="face-match/first-image-not-selected"}(n||(t.EFaceMatchErrorCodes=n={})),function(e){e.INITIALIZATION_ERROR="camera/initialization-error",e.IS_RUNNING="camera/is-running",e.ALREADY_STARTED="camera/already-started",e.NOT_INITIALIZED="camera/not-initialized",e.CANNOT_CAPTURE_IMAGE="camera/cannot-capture-image",e.SHUTDOWN_ERROR="camera/shutdown-error"}(i||(t.ECameraErrorCodes=i={})),function(e){e.PROCESSING_ERROR="processing/processing-error",e.ALREADY_STARTED="processing/already-started"}(a||(t.EProcessingErrorCodes=a={}));class c extends Error{constructor({message:e,code:t,fatal:s,details:r}){super(e),this.code=t,this.fatal=s,this.details=r}}t.SDKError=c},951:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.retryAsyncFunctionXTimes=t.callAsyncFunctionEveryXSeconds=t.waitFor=t.wait=t.capitalizeFirstLetter=void 0;const r=s(218),o=s(661);async function n(e){await new Promise((t=>{e()?t():setTimeout((()=>{n(e).then(t)}),500)}))}function i(e){var t;return e instanceof r.AxiosError&&(503===(null===(t=e.response)||void 0===t?void 0:t.status)||"Network Error"===e.message)}t.capitalizeFirstLetter=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},t.wait=async e=>{await new Promise((t=>{setTimeout(t,e)}))},t.waitFor=n,t.callAsyncFunctionEveryXSeconds=function e(t,s,r={stop:!1}){const o={timerEnd:!1};return setTimeout((()=>{o.timerEnd=!0}),s),t().then((async()=>{await n((()=>o.timerEnd)),r.stop||e(t,s,r)})),function(){r.stop=!0}},t.retryAsyncFunctionXTimes=async function e(s,r=i,n=o.DEFAULT_NUMBER_OF_RETRIES,a=1e3,c=o.DEFAULT_RETRY_TIME_STEP){try{return await s()}catch(o){if(r(o)&&n>0)return await(0,t.wait)(a),await e(s,r,n-1,a+c,c);throw o}}},706:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractWebSocket=void 0;const r=s(661);t.AbstractWebSocket=class{constructor(e,t){this.classOptions=e,this.sdkOptions=t}startConnection(){var e,t;const s=this.classOptions.decodeJwt(this.sdkOptions.token),o={x_endpoint_api_userinfo:this.sdkOptions.token,domain:null!==(e=this.sdkOptions.domain)&&void 0!==e?e:s.claims.domain,track:this.sdkOptions.track};this.sdkOptions.customId&&(o.customerRequestId=this.sdkOptions.customId),this.sdkOptions.useBillingAccounts&&(o.clientCredentials=!0);const n=Object.entries(o).map((e=>e.join("="))).join("&");this.websocket=new this.classOptions.WebSocketClass(`${null!==(t=this.sdkOptions.customWebSocketUrl)&&void 0!==t?t:r.WEBSOCKET_BASE_URL}?${n}`)}async waitForWebSocketConnection(){if(await new Promise((e=>{const t=setInterval((()=>{[3,1].includes(this.websocket.readyState)&&(clearInterval(t),e())}),5)})),3===this.websocket.readyState)throw new Error("Cannot connect to server")}disconnectFromWebSocket(){var e,t;[2,3].includes(this.websocket.readyState)||null===(t=(e=this.websocket).close)||void 0===t||t.call(e)}get readyState(){return this.websocket.readyState}addListener(e,t){var s,r;this.websocket.on?this.websocket.on(e,t):null===(r=(s=this.websocket).addEventListener)||void 0===r||r.call(s,e,t)}send(e){this.websocket.send(e)}}},877:(e,t,s)=>{var r=s(570),o=s(358),n=o;n.v1=r,n.v4=o,e.exports=n},327:e=>{for(var t=[],s=0;s<256;++s)t[s]=(s+256).toString(16).substr(1);e.exports=function(e,s){var r=s||0,o=t;return[o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],"-",o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]],o[e[r++]]].join("")}},217:e=>{var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(t){var s=new Uint8Array(16);e.exports=function(){return t(s),s}}else{var r=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}}},570:(e,t,s)=>{var r,o,n=s(217),i=s(327),a=0,c=0;e.exports=function(e,t,s){var l=t&&s||0,u=t||[],d=(e=e||{}).node||r,p=void 0!==e.clockseq?e.clockseq:o;if(null==d||null==p){var h=n();null==d&&(d=r=[1|h[0],h[1],h[2],h[3],h[4],h[5]]),null==p&&(p=o=16383&(h[6]<<8|h[7]))}var f=void 0!==e.msecs?e.msecs:(new Date).getTime(),m=void 0!==e.nsecs?e.nsecs:c+1,v=f-a+(m-c)/1e4;if(v<0&&void 0===e.clockseq&&(p=p+1&16383),(v<0||f>a)&&void 0===e.nsecs&&(m=0),m>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");a=f,c=m,o=p;var E=(1e4*(268435455&(f+=122192928e5))+m)%4294967296;u[l++]=E>>>24&255,u[l++]=E>>>16&255,u[l++]=E>>>8&255,u[l++]=255&E;var S=f/4294967296*1e4&268435455;u[l++]=S>>>8&255,u[l++]=255&S,u[l++]=S>>>24&15|16,u[l++]=S>>>16&255,u[l++]=p>>>8|128,u[l++]=255&p;for(var w=0;w<6;++w)u[l+w]=d[w];return t||i(u)}},358:(e,t,s)=>{var r=s(217),o=s(327);e.exports=function(e,t,s){var n=t&&s||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var i=(e=e||{}).random||(e.rng||r)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t)for(var a=0;a<16;++a)t[n+a]=i[a];return t||o(i)}},218:(e,t,s)=>{"use strict";function r(e,t){return function(){return e.apply(t,arguments)}}const{toString:o}=Object.prototype,{getPrototypeOf:n}=Object,i=(a=Object.create(null),e=>{const t=o.call(e);return a[t]||(a[t]=t.slice(8,-1).toLowerCase())});var a;const c=e=>(e=e.toLowerCase(),t=>i(t)===e),l=e=>t=>typeof t===e,{isArray:u}=Array,d=l("undefined"),p=c("ArrayBuffer"),h=l("string"),f=l("function"),m=l("number"),v=e=>null!==e&&"object"==typeof e,E=e=>{if("object"!==i(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},S=c("Date"),w=c("File"),g=c("Blob"),y=c("FileList"),R=c("URLSearchParams");function b(e,t,{allOwnKeys:s=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),u(e))for(r=0,o=e.length;r<o;r++)t.call(null,e[r],r,e);else{const o=s?Object.getOwnPropertyNames(e):Object.keys(e),n=o.length;let i;for(r=0;r<n;r++)i=o[r],t.call(null,e[i],i,e)}}function A(e,t){t=t.toLowerCase();const s=Object.keys(e);let r,o=s.length;for(;o-- >0;)if(r=s[o],t===r.toLowerCase())return r;return null}const O="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:s.g,_=e=>!d(e)&&e!==O,C=(T="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>T&&e instanceof T);var T;const I=c("HTMLFormElement"),D=(({hasOwnProperty:e})=>(t,s)=>e.call(t,s))(Object.prototype),F=c("RegExp"),N=(e,t)=>{const s=Object.getOwnPropertyDescriptors(e),r={};b(s,((s,o)=>{let n;!1!==(n=t(s,o,e))&&(r[o]=n||s)})),Object.defineProperties(e,r)},L="abcdefghijklmnopqrstuvwxyz",P="0123456789",U={DIGIT:P,ALPHA:L,ALPHA_DIGIT:L+L.toUpperCase()+P},j=c("AsyncFunction");var k={isArray:u,isArrayBuffer:p,isBuffer:function(e){return null!==e&&!d(e)&&null!==e.constructor&&!d(e.constructor)&&f(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||f(e.append)&&("formdata"===(t=i(e))||"object"===t&&f(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&p(e.buffer),t},isString:h,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:v,isPlainObject:E,isUndefined:d,isDate:S,isFile:w,isBlob:g,isRegExp:F,isFunction:f,isStream:e=>v(e)&&f(e.pipe),isURLSearchParams:R,isTypedArray:C,isFileList:y,forEach:b,merge:function e(){const{caseless:t}=_(this)&&this||{},s={},r=(r,o)=>{const n=t&&A(s,o)||o;E(s[n])&&E(r)?s[n]=e(s[n],r):E(r)?s[n]=e({},r):u(r)?s[n]=r.slice():s[n]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&b(arguments[e],r);return s},extend:(e,t,s,{allOwnKeys:o}={})=>(b(t,((t,o)=>{s&&f(t)?e[o]=r(t,s):e[o]=t}),{allOwnKeys:o}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,s,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),s&&Object.assign(e.prototype,s)},toFlatObject:(e,t,s,r)=>{let o,i,a;const c={};if(t=t||{},null==e)return t;do{for(o=Object.getOwnPropertyNames(e),i=o.length;i-- >0;)a=o[i],r&&!r(a,e,t)||c[a]||(t[a]=e[a],c[a]=!0);e=!1!==s&&n(e)}while(e&&(!s||s(e,t))&&e!==Object.prototype);return t},kindOf:i,kindOfTest:c,endsWith:(e,t,s)=>{e=String(e),(void 0===s||s>e.length)&&(s=e.length),s-=t.length;const r=e.indexOf(t,s);return-1!==r&&r===s},toArray:e=>{if(!e)return null;if(u(e))return e;let t=e.length;if(!m(t))return null;const s=new Array(t);for(;t-- >0;)s[t]=e[t];return s},forEachEntry:(e,t)=>{const s=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=s.next())&&!r.done;){const s=r.value;t.call(e,s[0],s[1])}},matchAll:(e,t)=>{let s;const r=[];for(;null!==(s=e.exec(t));)r.push(s);return r},isHTMLForm:I,hasOwnProperty:D,hasOwnProp:D,reduceDescriptors:N,freezeMethods:e=>{N(e,((t,s)=>{if(f(e)&&-1!==["arguments","caller","callee"].indexOf(s))return!1;const r=e[s];f(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+s+"'")}))}))},toObjectSet:(e,t)=>{const s={},r=e=>{e.forEach((e=>{s[e]=!0}))};return u(e)?r(e):r(String(e).split(t)),s},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,s){return t.toUpperCase()+s})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:A,global:O,isContextDefined:_,ALPHABET:U,generateString:(e=16,t=U.ALPHA_DIGIT)=>{let s="";const{length:r}=t;for(;e--;)s+=t[Math.random()*r|0];return s},isSpecCompliantForm:function(e){return!!(e&&f(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),s=(e,r)=>{if(v(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=u(e)?[]:{};return b(e,((e,t)=>{const n=s(e,r+1);!d(n)&&(o[t]=n)})),t[r]=void 0,o}}return e};return s(e,0)},isAsyncFn:j,isThenable:e=>e&&(v(e)||f(e))&&f(e.then)&&f(e.catch)};function x(e,t,s,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),s&&(this.config=s),r&&(this.request=r),o&&(this.response=o)}k.inherits(x,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:k.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const M=x.prototype,B={};function G(e){return k.isPlainObject(e)||k.isArray(e)}function K(e){return k.endsWith(e,"[]")?e.slice(0,-2):e}function q(e,t,s){return e?e.concat(t).map((function(e,t){return e=K(e),!s&&t?"["+e+"]":e})).join(s?".":""):t}["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{B[e]={value:e}})),Object.defineProperties(x,B),Object.defineProperty(M,"isAxiosError",{value:!0}),x.from=(e,t,s,r,o,n)=>{const i=Object.create(M);return k.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),x.call(i,e.message,t,s,r,o),i.cause=e,i.name=e.name,n&&Object.assign(i,n),i};const W=k.toFlatObject(k,{},null,(function(e){return/^is[A-Z]/.test(e)}));function V(e,t,s){if(!k.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(s=k.toFlatObject(s,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!k.isUndefined(t[e])}))).metaTokens,o=s.visitor||l,n=s.dots,i=s.indexes,a=(s.Blob||"undefined"!=typeof Blob&&Blob)&&k.isSpecCompliantForm(t);if(!k.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(k.isDate(e))return e.toISOString();if(!a&&k.isBlob(e))throw new x("Blob is not supported. Use a Buffer instead.");return k.isArrayBuffer(e)||k.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function l(e,s,o){let a=e;if(e&&!o&&"object"==typeof e)if(k.endsWith(s,"{}"))s=r?s:s.slice(0,-2),e=JSON.stringify(e);else if(k.isArray(e)&&function(e){return k.isArray(e)&&!e.some(G)}(e)||(k.isFileList(e)||k.endsWith(s,"[]"))&&(a=k.toArray(e)))return s=K(s),a.forEach((function(e,r){!k.isUndefined(e)&&null!==e&&t.append(!0===i?q([s],r,n):null===i?s:s+"[]",c(e))})),!1;return!!G(e)||(t.append(q(o,s,n),c(e)),!1)}const u=[],d=Object.assign(W,{defaultVisitor:l,convertValue:c,isVisitable:G});if(!k.isObject(e))throw new TypeError("data must be an object");return function e(s,r){if(!k.isUndefined(s)){if(-1!==u.indexOf(s))throw Error("Circular reference detected in "+r.join("."));u.push(s),k.forEach(s,(function(s,n){!0===(!(k.isUndefined(s)||null===s)&&o.call(t,s,k.isString(n)?n.trim():n,r,d))&&e(s,r?r.concat(n):[n])})),u.pop()}}(e),t}function J(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function z(e,t){this._pairs=[],e&&V(e,this,t)}const H=z.prototype;function $(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Y(e,t,s){if(!t)return e;const r=s&&s.encode||$,o=s&&s.serialize;let n;if(n=o?o(t,s):k.isURLSearchParams(t)?t.toString():new z(t,s).toString(r),n){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e}H.append=function(e,t){this._pairs.push([e,t])},H.toString=function(e){const t=e?function(t){return e.call(this,t,J)}:J;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var X=class{constructor(){this.handlers=[]}use(e,t,s){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!s&&s.synchronous,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){k.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Z={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Q={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:z,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},isStandardBrowserEnv:(()=>{let e;return("undefined"==typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&"undefined"!=typeof window&&"undefined"!=typeof document})(),isStandardBrowserWebWorkerEnv:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,protocols:["http","https","file","blob","url","data"]};function ee(e){function t(e,s,r,o){let n=e[o++];const i=Number.isFinite(+n),a=o>=e.length;return n=!n&&k.isArray(r)?r.length:n,a?(k.hasOwnProp(r,n)?r[n]=[r[n],s]:r[n]=s,!i):(r[n]&&k.isObject(r[n])||(r[n]=[]),t(e,s,r[n],o)&&k.isArray(r[n])&&(r[n]=function(e){const t={},s=Object.keys(e);let r;const o=s.length;let n;for(r=0;r<o;r++)n=s[r],t[n]=e[n];return t}(r[n])),!i)}if(k.isFormData(e)&&k.isFunction(e.entries)){const s={};return k.forEachEntry(e,((e,r)=>{t(function(e){return k.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,s,0)})),s}return null}const te={transitional:Z,adapter:["xhr","http"],transformRequest:[function(e,t){const s=t.getContentType()||"",r=s.indexOf("application/json")>-1,o=k.isObject(e);if(o&&k.isHTMLForm(e)&&(e=new FormData(e)),k.isFormData(e))return r&&r?JSON.stringify(ee(e)):e;if(k.isArrayBuffer(e)||k.isBuffer(e)||k.isStream(e)||k.isFile(e)||k.isBlob(e))return e;if(k.isArrayBufferView(e))return e.buffer;if(k.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let n;if(o){if(s.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return V(e,new Q.classes.URLSearchParams,Object.assign({visitor:function(e,t,s,r){return Q.isNode&&k.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=k.isFileList(e))||s.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return V(n?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,s){if(k.isString(e))try{return(0,JSON.parse)(e),k.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||te.transitional,s=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&k.isString(e)&&(s&&!this.responseType||r)){const s=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(s){if("SyntaxError"===e.name)throw x.from(e,x.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Q.classes.FormData,Blob:Q.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};k.forEach(["delete","get","head","post","put","patch"],(e=>{te.headers[e]={}}));var se=te;const re=k.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),oe=Symbol("internals");function ne(e){return e&&String(e).trim().toLowerCase()}function ie(e){return!1===e||null==e?e:k.isArray(e)?e.map(ie):String(e)}function ae(e,t,s,r,o){return k.isFunction(r)?r.call(this,t,s):(o&&(t=s),k.isString(t)?k.isString(r)?-1!==t.indexOf(r):k.isRegExp(r)?r.test(t):void 0:void 0)}class ce{constructor(e){e&&this.set(e)}set(e,t,s){const r=this;function o(e,t,s){const o=ne(t);if(!o)throw new Error("header name must be a non-empty string");const n=k.findKey(r,o);(!n||void 0===r[n]||!0===s||void 0===s&&!1!==r[n])&&(r[n||t]=ie(e))}const n=(e,t)=>k.forEach(e,((e,s)=>o(e,s,t)));return k.isPlainObject(e)||e instanceof this.constructor?n(e,t):k.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?n((e=>{const t={};let s,r,o;return e&&e.split("\n").forEach((function(e){o=e.indexOf(":"),s=e.substring(0,o).trim().toLowerCase(),r=e.substring(o+1).trim(),!s||t[s]&&re[s]||("set-cookie"===s?t[s]?t[s].push(r):t[s]=[r]:t[s]=t[s]?t[s]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,s),this}get(e,t){if(e=ne(e)){const s=k.findKey(this,e);if(s){const e=this[s];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),s=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=s.exec(e);)t[r[1]]=r[2];return t}(e);if(k.isFunction(t))return t.call(this,e,s);if(k.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=ne(e)){const s=k.findKey(this,e);return!(!s||void 0===this[s]||t&&!ae(0,this[s],s,t))}return!1}delete(e,t){const s=this;let r=!1;function o(e){if(e=ne(e)){const o=k.findKey(s,e);!o||t&&!ae(0,s[o],o,t)||(delete s[o],r=!0)}}return k.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let s=t.length,r=!1;for(;s--;){const o=t[s];e&&!ae(0,this[o],o,e,!0)||(delete this[o],r=!0)}return r}normalize(e){const t=this,s={};return k.forEach(this,((r,o)=>{const n=k.findKey(s,o);if(n)return t[n]=ie(r),void delete t[o];const i=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,s)=>t.toUpperCase()+s))}(o):String(o).trim();i!==o&&delete t[o],t[i]=ie(r),s[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return k.forEach(this,((s,r)=>{null!=s&&!1!==s&&(t[r]=e&&k.isArray(s)?s.join(", "):s)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const s=new this(e);return t.forEach((e=>s.set(e))),s}static accessor(e){const t=(this[oe]=this[oe]={accessors:{}}).accessors,s=this.prototype;function r(e){const r=ne(e);t[r]||(function(e,t){const s=k.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+s,{value:function(e,s,o){return this[r].call(this,t,e,s,o)},configurable:!0})}))}(s,e),t[r]=!0)}return k.isArray(e)?e.forEach(r):r(e),this}}ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),k.reduceDescriptors(ce.prototype,(({value:e},t)=>{let s=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[s]=e}}})),k.freezeMethods(ce);var le=ce;function ue(e,t){const s=this||se,r=t||s,o=le.from(r.headers);let n=r.data;return k.forEach(e,(function(e){n=e.call(s,n,o.normalize(),t?t.status:void 0)})),o.normalize(),n}function de(e){return!(!e||!e.__CANCEL__)}function pe(e,t,s){x.call(this,null==e?"canceled":e,x.ERR_CANCELED,t,s),this.name="CanceledError"}k.inherits(pe,x,{__CANCEL__:!0});var he=Q.isStandardBrowserEnv?{write:function(e,t,s,r,o,n){const i=[];i.push(e+"="+encodeURIComponent(t)),k.isNumber(s)&&i.push("expires="+new Date(s).toGMTString()),k.isString(r)&&i.push("path="+r),k.isString(o)&&i.push("domain="+o),!0===n&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function fe(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var me=Q.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let s;function r(s){let r=s;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return s=r(window.location.href),function(e){const t=k.isString(e)?r(e):e;return t.protocol===s.protocol&&t.host===s.host}}():function(){return!0};function ve(e,t){let s=0;const r=function(e,t){e=e||10;const s=new Array(e),r=new Array(e);let o,n=0,i=0;return t=void 0!==t?t:1e3,function(a){const c=Date.now(),l=r[i];o||(o=c),s[n]=a,r[n]=c;let u=i,d=0;for(;u!==n;)d+=s[u++],u%=e;if(n=(n+1)%e,n===i&&(i=(i+1)%e),c-o<t)return;const p=l&&c-l;return p?Math.round(1e3*d/p):void 0}}(50,250);return o=>{const n=o.loaded,i=o.lengthComputable?o.total:void 0,a=n-s,c=r(a);s=n;const l={loaded:n,total:i,progress:i?n/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&n<=i?(i-n)/c:void 0,event:o};l[t?"download":"upload"]=!0,e(l)}}const Ee={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,s){let r=e.data;const o=le.from(e.headers).normalize(),n=e.responseType;let i,a;function c(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}k.isFormData(r)&&(Q.isStandardBrowserEnv||Q.isStandardBrowserWebWorkerEnv?o.setContentType(!1):o.getContentType(/^\s*multipart\/form-data/)?k.isString(a=o.getContentType())&&o.setContentType(a.replace(/^\s*(multipart\/form-data);+/,"$1")):o.setContentType("multipart/form-data"));let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",s=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+s))}const u=fe(e.baseURL,e.url);function d(){if(!l)return;const r=le.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,s){const r=s.config.validateStatus;s.status&&r&&!r(s.status)?t(new x("Request failed with status code "+s.status,[x.ERR_BAD_REQUEST,x.ERR_BAD_RESPONSE][Math.floor(s.status/100)-4],s.config,s.request,s)):e(s)}((function(e){t(e),c()}),(function(e){s(e),c()}),{data:n&&"text"!==n&&"json"!==n?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),Y(u,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=d:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(d)},l.onabort=function(){l&&(s(new x("Request aborted",x.ECONNABORTED,e,l)),l=null)},l.onerror=function(){s(new x("Network Error",x.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Z;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),s(new x(t,r.clarifyTimeoutError?x.ETIMEDOUT:x.ECONNABORTED,e,l)),l=null},Q.isStandardBrowserEnv){const t=(e.withCredentials||me(u))&&e.xsrfCookieName&&he.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in l&&k.forEach(o.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),k.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),n&&"json"!==n&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",ve(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",ve(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{l&&(s(!t||t.type?new pe(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(u);p&&-1===Q.protocols.indexOf(p)?s(new x("Unsupported protocol "+p+":",x.ERR_BAD_REQUEST,e)):l.send(r||null)}))}};k.forEach(Ee,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Se=e=>`- ${e}`,we=e=>k.isFunction(e)||null===e||!1===e;var ge=e=>{e=k.isArray(e)?e:[e];const{length:t}=e;let s,r;const o={};for(let n=0;n<t;n++){let t;if(s=e[n],r=s,!we(s)&&(r=Ee[(t=String(s)).toLowerCase()],void 0===r))throw new x(`Unknown adapter '${t}'`);if(r)break;o[t||"#"+n]=r}if(!r){const e=Object.entries(o).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new x("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Se).join("\n"):" "+Se(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function ye(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new pe(null,e)}function Re(e){return ye(e),e.headers=le.from(e.headers),e.data=ue.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),ge(e.adapter||se.adapter)(e).then((function(t){return ye(e),t.data=ue.call(e,e.transformResponse,t),t.headers=le.from(t.headers),t}),(function(t){return de(t)||(ye(e),t&&t.response&&(t.response.data=ue.call(e,e.transformResponse,t.response),t.response.headers=le.from(t.response.headers))),Promise.reject(t)}))}const be=e=>e instanceof le?e.toJSON():e;function Ae(e,t){t=t||{};const s={};function r(e,t,s){return k.isPlainObject(e)&&k.isPlainObject(t)?k.merge.call({caseless:s},e,t):k.isPlainObject(t)?k.merge({},t):k.isArray(t)?t.slice():t}function o(e,t,s){return k.isUndefined(t)?k.isUndefined(e)?void 0:r(void 0,e,s):r(e,t,s)}function n(e,t){if(!k.isUndefined(t))return r(void 0,t)}function i(e,t){return k.isUndefined(t)?k.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(s,o,n){return n in t?r(s,o):n in e?r(void 0,s):void 0}const c={url:n,method:n,data:n,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(e,t)=>o(be(e),be(t),!0)};return k.forEach(Object.keys(Object.assign({},e,t)),(function(r){const n=c[r]||o,i=n(e[r],t[r],r);k.isUndefined(i)&&n!==a||(s[r]=i)})),s}const Oe={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Oe[e]=function(s){return typeof s===e||"a"+(t<1?"n ":" ")+e}}));const _e={};Oe.transitional=function(e,t,s){function r(e,t){return"[Axios v1.5.1] Transitional option '"+e+"'"+t+(s?". "+s:"")}return(s,o,n)=>{if(!1===e)throw new x(r(o," has been removed"+(t?" in "+t:"")),x.ERR_DEPRECATED);return t&&!_e[o]&&(_e[o]=!0,console.warn(r(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(s,o,n)}};var Ce={assertOptions:function(e,t,s){if("object"!=typeof e)throw new x("options must be an object",x.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const n=r[o],i=t[n];if(i){const t=e[n],s=void 0===t||i(t,n,e);if(!0!==s)throw new x("option "+n+" must be "+s,x.ERR_BAD_OPTION_VALUE)}else if(!0!==s)throw new x("Unknown option "+n,x.ERR_BAD_OPTION)}},validators:Oe};const Te=Ce.validators;class Ie{constructor(e){this.defaults=e,this.interceptors={request:new X,response:new X}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Ae(this.defaults,t);const{transitional:s,paramsSerializer:r,headers:o}=t;void 0!==s&&Ce.assertOptions(s,{silentJSONParsing:Te.transitional(Te.boolean),forcedJSONParsing:Te.transitional(Te.boolean),clarifyTimeoutError:Te.transitional(Te.boolean)},!1),null!=r&&(k.isFunction(r)?t.paramsSerializer={serialize:r}:Ce.assertOptions(r,{encode:Te.function,serialize:Te.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let n=o&&k.merge(o.common,o[t.method]);o&&k.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=le.concat(n,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let u,d=0;if(!a){const e=[Re.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),u=e.length,l=Promise.resolve(t);d<u;)l=l.then(e[d++],e[d++]);return l}u=i.length;let p=t;for(d=0;d<u;){const e=i[d++],t=i[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{l=Re.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=c.length;d<u;)l=l.then(c[d++],c[d++]);return l}getUri(e){return Y(fe((e=Ae(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}k.forEach(["delete","get","head","options"],(function(e){Ie.prototype[e]=function(t,s){return this.request(Ae(s||{},{method:e,url:t,data:(s||{}).data}))}})),k.forEach(["post","put","patch"],(function(e){function t(t){return function(s,r,o){return this.request(Ae(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:s,data:r}))}}Ie.prototype[e]=t(),Ie.prototype[e+"Form"]=t(!0)}));var De=Ie;class Fe{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const s=this;this.promise.then((e=>{if(!s._listeners)return;let t=s._listeners.length;for(;t-- >0;)s._listeners[t](e);s._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{s.subscribe(e),t=e})).then(e);return r.cancel=function(){s.unsubscribe(t)},r},e((function(e,r,o){s.reason||(s.reason=new pe(e,r,o),t(s.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Fe((function(t){e=t})),cancel:e}}}var Ne=Fe;const Le={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Le).forEach((([e,t])=>{Le[t]=e}));var Pe=Le;const Ue=function e(t){const s=new De(t),o=r(De.prototype.request,s);return k.extend(o,De.prototype,s,{allOwnKeys:!0}),k.extend(o,s,null,{allOwnKeys:!0}),o.create=function(s){return e(Ae(t,s))},o}(se);Ue.Axios=De,Ue.CanceledError=pe,Ue.CancelToken=Ne,Ue.isCancel=de,Ue.VERSION="1.5.1",Ue.toFormData=V,Ue.AxiosError=x,Ue.Cancel=Ue.CanceledError,Ue.all=function(e){return Promise.all(e)},Ue.spread=function(e){return function(t){return e.apply(null,t)}},Ue.isAxiosError=function(e){return k.isObject(e)&&!0===e.isAxiosError},Ue.mergeConfig=Ae,Ue.AxiosHeaders=le,Ue.formToJSON=e=>ee(k.isHTMLForm(e)?new FormData(e):e),Ue.getAdapter=ge,Ue.HttpStatusCode=Pe,Ue.default=Ue,e.exports=Ue}},t={};function s(r){var o=t[r];if(void 0!==o)return o.exports;var n=t[r]={exports:{}};return e[r].call(n.exports,n,n.exports,s),n.exports}s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var r={};return(()=>{"use strict";var e=r;const t=s(234),o=s(923),n=s(604),i=s(122),a=s(344),c=s(927),l=s(168);class u{}u.livenessDetection=t.livenessDetection,u.livenessSession=o.livenessSession,u.uploadIdentificationDocument=n.uploadIdentificationDocument,u.insertUploadIdentificationDocument=i.insertUploadIdentificationDocument,u.typification=a.typification,u.ocr=l.ocr,u.faceMatch=c.faceMatch,e.default=u})(),r.default})()));
@@ -1,4 +1,4 @@
1
- import { type IFrameControls } from '../../liveness/utils/getNextFrame';
1
+ import { type IFrameControls, type IStartGettingFramesOptions } from '../../liveness/utils/getNextFrame';
2
2
  import { type ApiAsyncService } from '../../../api/ApiAsyncService';
3
3
  import { type TCoreServiceOptions, type ICoreServiceResult } from '../utils/types';
4
4
  export declare abstract class BaseCoreService<TFrameType, TMediaType, TResultsContentType> {
@@ -12,8 +12,9 @@ export declare abstract class BaseCoreService<TFrameType, TMediaType, TResultsCo
12
12
  initialize(file?: TFrameType): Promise<void>;
13
13
  abstract startProcessing(file: TFrameType): Promise<void>;
14
14
  updateResults(updatedResults: Partial<ICoreServiceResult<TResultsContentType>>): Promise<void>;
15
+ getVideoStream(): TMediaType | undefined;
15
16
  setupCamera(): Promise<void>;
16
- startCamera(): Promise<void>;
17
+ startCamera(cameraOptions?: IStartGettingFramesOptions): Promise<void>;
17
18
  stopCamera(): Promise<void>;
18
19
  captureImage({ startProcessing }?: {
19
20
  startProcessing?: boolean | undefined;
@@ -29,12 +29,16 @@ class BaseCoreService {
29
29
  this.results = Object.assign(Object.assign({}, this.results), updatedResults);
30
30
  await ((_b = (_a = this.options).onUpdate) === null || _b === void 0 ? void 0 : _b.call(_a, this.results));
31
31
  }
32
+ getVideoStream() {
33
+ var _a;
34
+ return (_a = this.frameGetControls) === null || _a === void 0 ? void 0 : _a.videoStream;
35
+ }
32
36
  async setupCamera() {
33
37
  this.frameGetControls = await (0, getNextFrame_1.getDefaultFrameControls)();
34
38
  this.cameraIsSetup = true;
35
39
  }
36
- async startCamera() {
37
- var _a, _b, _c, _d;
40
+ async startCamera(cameraOptions) {
41
+ var _a, _b, _c, _d, _e, _f;
38
42
  try {
39
43
  if (this.cameraIsActive) {
40
44
  throw new error_1.SDKError({
@@ -53,7 +57,8 @@ class BaseCoreService {
53
57
  if (!this.cameraIsSetup) {
54
58
  await this.setupCamera();
55
59
  }
56
- this.frameGetControls.videoStream = await ((_b = (_a = this.frameGetControls).startGettingFrames) === null || _b === void 0 ? void 0 : _b.call(_a));
60
+ this.frameGetControls.videoStream = await ((_b = (_a = this.frameGetControls).startGettingFrames) === null || _b === void 0 ? void 0 : _b.call(_a, cameraOptions));
61
+ await ((_d = (_c = this.options).onCameraStart) === null || _d === void 0 ? void 0 : _d.call(_c, { videoStream: this.getVideoStream() }));
57
62
  this.cameraIsActive = true;
58
63
  }
59
64
  catch (err) {
@@ -65,11 +70,11 @@ class BaseCoreService {
65
70
  fatal: false,
66
71
  details: err,
67
72
  });
68
- await ((_d = (_c = this.options).onError) === null || _d === void 0 ? void 0 : _d.call(_c, validatedError));
73
+ await ((_f = (_e = this.options).onError) === null || _f === void 0 ? void 0 : _f.call(_e, validatedError));
69
74
  }
70
75
  }
71
76
  async stopCamera() {
72
- var _a, _b, _c, _d;
77
+ var _a, _b, _c, _d, _e, _f;
73
78
  try {
74
79
  if (!this.cameraIsActive) {
75
80
  throw new error_1.SDKError({
@@ -79,6 +84,7 @@ class BaseCoreService {
79
84
  });
80
85
  }
81
86
  await ((_b = (_a = this.frameGetControls).stopGettingFrames) === null || _b === void 0 ? void 0 : _b.call(_a));
87
+ await ((_d = (_c = this.options).onCameraStop) === null || _d === void 0 ? void 0 : _d.call(_c));
82
88
  this.cameraIsActive = false;
83
89
  }
84
90
  catch (err) {
@@ -90,7 +96,7 @@ class BaseCoreService {
90
96
  fatal: false,
91
97
  details: err,
92
98
  });
93
- await ((_d = (_c = this.options).onError) === null || _d === void 0 ? void 0 : _d.call(_c, validatedError));
99
+ await ((_f = (_e = this.options).onError) === null || _f === void 0 ? void 0 : _f.call(_e, validatedError));
94
100
  }
95
101
  }
96
102
  async captureImage({ startProcessing = true } = {}) {
@@ -8,7 +8,6 @@ export declare class FaceMatchService<TFrameType, TMediaType> extends BaseCoreSe
8
8
  selectedFile2: TFrameType | undefined;
9
9
  constructor(options: TFaceMatchServiceOptions<TMediaType>);
10
10
  initialize(file1?: TFrameType, file2?: TFrameType): Promise<void>;
11
- getVideoStream(): TMediaType | undefined;
12
11
  captureFirstImage({ startProcessing }?: {
13
12
  startProcessing?: boolean | undefined;
14
13
  }): Promise<NonNullable<Awaited<TFrameType>>>;
@@ -27,10 +27,6 @@ class FaceMatchService extends BaseCoreService_1.BaseCoreService {
27
27
  }
28
28
  }
29
29
  }
30
- getVideoStream() {
31
- var _a;
32
- return (_a = this.frameGetControls) === null || _a === void 0 ? void 0 : _a.videoStream;
33
- }
34
30
  async captureFirstImage({ startProcessing = true } = {}) {
35
31
  // The superclass only works with one file
36
32
  const bytes = await super.captureImage({ startProcessing: false });
@@ -2,7 +2,7 @@ import { type TFaceMatchServiceOptions } from './Service';
2
2
  export type TFrameType = File | Blob;
3
3
  export type TMediaType = MediaStream | undefined;
4
4
  export declare function faceMatch(options: TFaceMatchServiceOptions<TMediaType>, file1?: TFrameType, file2?: TFrameType): Promise<{
5
- startCamera: () => Promise<void>;
5
+ startCamera: (cameraOptions?: import("../../../liveness/utils/getNextFrame").IStartGettingFramesOptions | undefined) => Promise<void>;
6
6
  stopCamera: () => Promise<void>;
7
7
  captureFirstImage: (rest_0?: {
8
8
  startProcessing?: boolean | undefined;
@@ -11,8 +11,8 @@ async function faceMatch(options, file1, file2) {
11
11
  await ((_b = (_a = service.options).onStart) === null || _b === void 0 ? void 0 : _b.call(_a, { videoStream: service.getVideoStream() }));
12
12
  // Methods are exported like this to prevent the value of "this" from changing
13
13
  return {
14
- startCamera: async () => {
15
- await service.startCamera();
14
+ startCamera: async (...rest) => {
15
+ await service.startCamera(...rest);
16
16
  },
17
17
  stopCamera: async () => {
18
18
  await service.stopCamera();
@@ -1,13 +1,11 @@
1
- import { type ITypificationResult } from '../../../../api/ApiTypificationService';
2
- import { ApiOcrService } from '../../../../api/ApiOcrService';
1
+ import { ApiOcrService, type IOcrResult } from '../../../../api/ApiOcrService';
3
2
  import { type TCoreServiceOptions } from '../../utils/types';
4
3
  import { BaseCoreService } from '../../commons/BaseCoreService';
5
- export type TOcrServiceOptions<TMediaType> = TCoreServiceOptions<TMediaType, ITypificationResult> & {
4
+ export type TOcrServiceOptions<TMediaType> = TCoreServiceOptions<TMediaType, IOcrResult> & {
6
5
  template: string;
7
6
  };
8
- export declare class OcrService<TFrameType, TMediaType> extends BaseCoreService<TFrameType, TMediaType, ITypificationResult> {
7
+ export declare class OcrService<TFrameType, TMediaType> extends BaseCoreService<TFrameType, TMediaType, IOcrResult> {
9
8
  service: ApiOcrService<TFrameType>;
10
9
  constructor(options: TOcrServiceOptions<TMediaType>);
11
- getVideoStream(): TMediaType | undefined;
12
10
  startProcessing(file: TFrameType): Promise<void>;
13
11
  }
@@ -11,10 +11,6 @@ class OcrService extends BaseCoreService_1.BaseCoreService {
11
11
  super(options);
12
12
  this.service = new ApiOcrService_1.ApiOcrService(options, { FormDataClass: FormData, tryDecodeJwt: utils_1.tryDecodeJwt });
13
13
  }
14
- getVideoStream() {
15
- var _a;
16
- return (_a = this.frameGetControls) === null || _a === void 0 ? void 0 : _a.videoStream;
17
- }
18
14
  async startProcessing(file) {
19
15
  var _a, _b, _c, _d, _e, _f, _g;
20
16
  try {
@@ -2,7 +2,7 @@ import { type TOcrServiceOptions } from './Service';
2
2
  export type TFrameType = File | Blob;
3
3
  export type TMediaType = MediaStream | undefined;
4
4
  export declare function ocr(options: TOcrServiceOptions<TMediaType>, file?: TFrameType): Promise<{
5
- startCamera: () => Promise<void>;
5
+ startCamera: (cameraOptions?: import("../../../liveness/utils/getNextFrame").IStartGettingFramesOptions | undefined) => Promise<void>;
6
6
  stopCamera: () => Promise<void>;
7
7
  captureImage: () => Promise<NonNullable<TFrameType>>;
8
8
  getVideoStream: () => TMediaType;
@@ -11,8 +11,8 @@ async function ocr(options, file) {
11
11
  await ((_b = (_a = service.options).onStart) === null || _b === void 0 ? void 0 : _b.call(_a, { videoStream: service.getVideoStream() }));
12
12
  // Methods are exported like this to prevent the value of "this" from changing
13
13
  return {
14
- startCamera: async () => {
15
- await service.startCamera();
14
+ startCamera: async (...rest) => {
15
+ await service.startCamera(...rest);
16
16
  },
17
17
  stopCamera: async () => {
18
18
  await service.stopCamera();
@@ -5,6 +5,5 @@ export type TTypificationServiceOptions<TMediaType> = Omit<TCoreServiceOptions<T
5
5
  export declare class TypificationService<TFrameType, TMediaType> extends BaseCoreService<TFrameType, TMediaType, ITypificationResult> {
6
6
  service: ApiTypificationService<TFrameType>;
7
7
  constructor(options: TTypificationServiceOptions<TMediaType>);
8
- getVideoStream(): TMediaType;
9
8
  startProcessing(file: TFrameType): Promise<void>;
10
9
  }
@@ -11,10 +11,6 @@ class TypificationService extends BaseCoreService_1.BaseCoreService {
11
11
  super(options);
12
12
  this.service = new ApiTypificationService_1.ApiTypificationService(options, { FormDataClass: FormData, tryDecodeJwt: utils_1.tryDecodeJwt });
13
13
  }
14
- getVideoStream() {
15
- var _a;
16
- return (_a = this.frameGetControls) === null || _a === void 0 ? void 0 : _a.videoStream;
17
- }
18
14
  async startProcessing(file) {
19
15
  var _a, _b, _c, _d, _e, _f, _g;
20
16
  try {
@@ -2,7 +2,7 @@ import { type TTypificationServiceOptions } from './Service';
2
2
  export type TFrameType = File | Blob;
3
3
  export type TMediaType = MediaStream | undefined;
4
4
  export declare function typification(options: TTypificationServiceOptions<TMediaType>, file?: TFrameType): Promise<{
5
- startCamera: () => Promise<void>;
5
+ startCamera: (cameraOptions?: import("../../../liveness/utils/getNextFrame").IStartGettingFramesOptions | undefined) => Promise<void>;
6
6
  stopCamera: () => Promise<void>;
7
7
  captureImage: () => Promise<NonNullable<TFrameType>>;
8
8
  getVideoStream: () => TMediaType;
@@ -11,8 +11,8 @@ async function typification(options, file) {
11
11
  await ((_b = (_a = service.options).onStart) === null || _b === void 0 ? void 0 : _b.call(_a, { videoStream: service.getVideoStream() }));
12
12
  // Methods are exported like this to prevent the value of "this" from changing
13
13
  return {
14
- startCamera: async () => {
15
- await service.startCamera();
14
+ startCamera: async (...rest) => {
15
+ await service.startCamera(...rest);
16
16
  },
17
17
  stopCamera: async () => {
18
18
  await service.stopCamera();
@@ -29,7 +29,6 @@ async function typification(options, file) {
29
29
  };
30
30
  }
31
31
  catch (err) {
32
- console.error(err);
33
32
  throw new error_1.SDKError({
34
33
  message: 'Error while starting SDK',
35
34
  code: error_1.EDefaultErrorCodes.INITIALIZATION_ERROR,
@@ -4,11 +4,15 @@ export type TCoreServiceOptions<TMediaType, TResultsContentType> = IBaseSDKOptio
4
4
  onStart?: (params: {
5
5
  videoStream: TMediaType;
6
6
  }) => void | Promise<void>;
7
+ onCameraStart?: (params: {
8
+ videoStream: TMediaType;
9
+ }) => void | Promise<void>;
10
+ onCameraStop?: () => void | Promise<void>;
7
11
  onUpdate?: (results?: ICoreServiceResult<TResultsContentType>) => void | Promise<void>;
8
12
  onValidationRequested?: (requestInformation: IRequestInformation) => void | Promise<void>;
9
13
  onClearInterval?: (interval: ReturnType<typeof setInterval>) => void | Promise<void>;
10
14
  onError?: (error?: SDKError) => void | Promise<void>;
11
- onSuccess?: (results: unknown) => void | Promise<void>;
15
+ onSuccess?: (results: TResultsContentType) => void | Promise<void>;
12
16
  onEnd?: TCallbackFunction;
13
17
  startTheCameraImmediately?: boolean;
14
18
  };
package/client/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { livenessDetection } from './liveness/methods/livenessDetection';
2
+ import { livenessSession } from './liveness/methods/livenessSession';
2
3
  import { uploadIdentificationDocument } from './liveness/methods/uploadIdentificationDocument';
3
4
  import { insertUploadIdentificationDocument } from './embedded/methods/insertUploadIdentificationDocument';
4
5
  import { typification } from './core/methods/typification';
@@ -6,6 +7,7 @@ import { faceMatch } from './core/methods/faceMatch';
6
7
  import { ocr } from './core/methods/ocr';
7
8
  export default class SantoiDSDK {
8
9
  static readonly livenessDetection: typeof livenessDetection;
10
+ static readonly livenessSession: typeof livenessSession;
9
11
  static readonly uploadIdentificationDocument: typeof uploadIdentificationDocument;
10
12
  static readonly insertUploadIdentificationDocument: typeof insertUploadIdentificationDocument;
11
13
  static readonly typification: typeof typification;