@idscan/idvc2 2.12.2 → 2.14.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 (41) hide show
  1. package/README.md +17 -1
  2. package/dist/idvc.js +1 -1
  3. package/dist/idvc.js.gzip +0 -0
  4. package/dist/index.html +28 -32
  5. package/dist/js/defaultConfig.ts +1 -18
  6. package/dist/js/environment/documentTypes.ts +3 -10
  7. package/dist/js/environment/langs.js +1 -1
  8. package/dist/js/environment/stepsDescription.ts +1 -9
  9. package/dist/langs.js.gzip +0 -0
  10. package/dist/networks/Face-chunk.js +1 -1
  11. package/dist/networks/PDF-chunk.js +1 -1
  12. package/dist/types/constatnts/imageProcessing.d.ts +3 -0
  13. package/dist/types/constatnts/pdf.d.ts +1 -0
  14. package/dist/types/defaultConfig.d.ts +2 -1
  15. package/dist/types/environment/documentTypes.d.ts +3 -4
  16. package/dist/types/environment/langs.d.ts +7 -9
  17. package/dist/types/environment/stepsDescription.d.ts +1 -9
  18. package/dist/types/helpers/cornersCapture.d.ts +5 -0
  19. package/dist/types/modules/App/UI.d.ts +7 -6
  20. package/dist/types/modules/Config.d.ts +4 -9
  21. package/dist/types/modules/PdfModule.d.ts +2 -1
  22. package/dist/types/modules/camera/camera.d.ts +2 -1
  23. package/dist/types/modules/manualUploadProcessing.d.ts +20 -9
  24. package/dist/types/modules/step-functions/pdf.d.ts +0 -1
  25. package/dist/types/modules/step-result-processing/pdf.d.ts +1 -1
  26. package/dist/types/modules/stepFunctions.d.ts +1 -1
  27. package/dist/types/modules/stepResultProcessing.d.ts +1 -1
  28. package/dist/types/modules/ui/DocumentsList/{DocumentsList.d.ts → InitScreen.d.ts} +4 -4
  29. package/dist/types/modules/ui/MainScreen/MainScreen.d.ts +4 -5
  30. package/dist/types/modules/ui/MessageBox/MessageBox.d.ts +1 -1
  31. package/dist/types/modules/ui/SelectDocumentType.d.ts +3 -8
  32. package/dist/types/modules/ui/StepsList/{StepsList.d.ts → StepsScreen.d.ts} +2 -5
  33. package/dist/types/modules/ui/Uploader/UploaderUI.d.ts +1 -0
  34. package/dist/types/modules/ui/VideoWrapper/MaskCapture.d.ts +1 -1
  35. package/dist/types/modules/ui/VideoWrapper/UIHints.d.ts +2 -1
  36. package/dist/types/neural models/generalTypeYolo/exits.d.ts +1 -0
  37. package/dist/types/types/context.d.ts +2 -2
  38. package/dist/types/types/modules/camera.enum.d.ts +3 -1
  39. package/dist/types/util.d.ts +5 -18
  40. package/package.json +1 -1
  41. /package/dist/types/modules/{Spinner → Loader}/Loader.d.ts +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_idscan_idvc2=self.webpackChunk_idscan_idvc2||[]).push([[596],{4550:(e,r,t)=>{t.d(r,{o:()=>c});var n=t(7885),o=t(7666);function i(e,r,t,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void t(e)}u.done?r(s):Promise.resolve(s).then(n,o)}function a(e){return function(){var r=this,t=arguments;return new Promise((function(n,o){var a=e.apply(r,t);function u(e){i(a,n,o,u,s,"next",e)}function s(e){i(a,n,o,u,s,"throw",e)}u(void 0)}))}}function u(e,r){var t,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],n=0}finally{t=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var s,l=(s=a((function(e){var r,t,i,a,s;return u(this,(function(u){switch(u.label){case 0:return u.trys.push([0,2,,3]),t=Uint8Array.bind,[4,(0,o.xl)(e)];case 1:return r=new(t.apply(Uint8Array,[void 0,u.sent()])),i=(0,n.ec)(r),a=new Blob([i.buffer],{type:"application/javascript"}),[2,URL.createObjectURL(a)];case 2:throw s=u.sent(),console.error("Error loading and decompressing worker file:",s),s;case 3:return[2]}}))})),function(e){return s.apply(this,arguments)}),c=function(){var e=a((function(e){var r;return u(this,(function(t){switch(t.label){case 0:return[4,l(e)];case 1:return r=t.sent(),[2,new Worker(r)]}}))}));return function(r){return e.apply(this,arguments)}}()},8766:(e,r,t)=>{t.r(r),t.d(r,{default:()=>k});var n=t(4328),o=t(6399);function i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function a(e,r,t,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void t(e)}u.done?r(s):Promise.resolve(s).then(n,o)}function u(e){return function(){var r=this,t=arguments;return new Promise((function(n,o){var i=e.apply(r,t);function u(e){a(i,n,o,u,s,"next",e)}function s(e){a(i,n,o,u,s,"throw",e)}u(void 0)}))}}function s(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function l(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==t.return||t.return()}finally{if(u)throw o}}return i}}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return i(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,r){var t,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],n=0}finally{t=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var d=function(){function e(r,t,n){var o=this;!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e),l(this,"module",void 0),l(this,"handle",null),l(this,"bw",0),l(this,"bh",0),l(this,"src",null),l(this,"out",null),l(this,"isAllocate",!1),l(this,"worker",void 0),l(this,"isProcessing",!1),l(this,"isInitialized",!1),l(this,"successCount",0),l(this,"pdfCapturedCount",0),l(this,"src2",null),l(this,"locations",null),l(this,"pdfCount",0),l(this,"geometry",void 0),l(this,"minPDFframes",1),l(this,"cropSizes",void 0),l(this,"canvasSizes",void 0),l(this,"privateErrorId",0),this.worker=r,this.worker.onmessage=function(e){var r=e.data,t=r.name,n=r.data;"initialization"===t&&(o.isInitialized=n)},this.worker.postMessage({fn:"init",key:t,isNeedToLoadPDFWIthPreprocess:n})}var r,t,n;return r=e,(t=[{key:"errorId",get:function(){return this.privateErrorId},set:function(e){this.privateErrorId=[o.l.Detected,o.l.Decoded].includes(e)?0:e}},{key:"errorVal",get:function(){var e;return this.errorId===o.l.LicenseKeyHasExpired&&(e=0),this.errorId===o.l.InvalidLicenseKey&&(e=1),e}},{key:"init",value:function(e,r,t,n){this.geometry=e,this.minPDFframes=r,this.cropSizes=t,this.canvasSizes=n}},{key:"licenseError",value:function(){return{error:!0,errorType:"licenceKeyError",errorVal:this.errorVal}}},{key:"create",value:function(){}},{key:"setSizes",value:function(e,r){this.bw=e,this.bh=r,this.worker.postMessage({fn:"setSizes",bw:e,bh:r})}},{key:"allocate",value:function(){this.worker.postMessage({fn:"allocate"})}},{key:"drawCords",value:function(e){var r=this,t=[];if(e){var n=[];Object.entries(e).forEach((function(e){var t=c(e,2),o=t[0],i=t[1],a=Math.trunc(i),u=o[0],s=+o[1]-1;n[s]||(n[s]={x:0,y:0}),"x"===u?n[s].x=r.canvasSizes.width*a/r.bw:n[s].y=r.canvasSizes.height*a/r.bh}));var o=[n[3].x-n[0].x,n[3].y-n[0].y],i=[n[1].x-n[0].x,n[1].y-n[0].y],a=[n[2].x-n[1].x,n[2].y-n[1].y],u=[n[3].x-n[2].x,n[3].y-n[2].y],s=this.geometry.angleBetweenTwoVectors(o,i),l=this.geometry.angleBetweenTwoVectors(a,u);s<=100&&s>=80&&l<=100&&l>=80&&(t=n)}return t}},{key:"processPDF",value:function(e){var r=this;return u((function(){var t,n;return f(this,(function(i){switch(i.label){case 0:return r.isProcessing?[2,{}]:(t={status:!1,predict:!1,touch:!1,type:"pdf",error:null,coords:[],trackString:"",pdfSuccessCount:0,pdfCount:0,isSuccessProcess:!1,pdfCapturedCount:0},r.isInitialized?(r.isProcessing=!0,[4,r.readPDF(e)]):[2,t]);case 1:return(n=i.sent()).error?(r.isProcessing=!1,t.error=n,[2,t]):(n&&"status"in n&&(n.status.value===o.l.Detected&&(r.pdfCapturedCount+=1),n.status.value===o.l.Detected||n.status.value===o.l.Decoded?(t.coords=r.drawCords(n.location),t.isSuccessProcess=!0):(r.successCount+=1,r.drawCords(null)),n.status.value===o.l.Decoded?(r.pdfCount+=1,r.pdfCount>=r.minPDFframes&&(r.successCount=0,r.pdfCapturedCount=0,r.pdfCount=0,t.trackString=n.trackString||n.data||"",t.status=!0,t.pdfCapturedCount=0)):r.pdfCount=0),t.pdfSuccessCount=r.successCount,t.pdfCount=r.pdfCount,t.pdfCapturedCount=r.pdfCapturedCount,r.isProcessing=!1,[2,t])}}))}))()}},{key:"processPDFWithPreProcess",value:function(e){var r=this;return new Promise((function(t){r.worker.onmessage=function(e){var n=e.data,o=n.name,i=n.data;if("result"===o){var a;r.errorId=null==i||null===(a=i.status)||void 0===a?void 0:a.value;var u=r.errorId?r.licenseError():null;t(u||i)}else t(i)},r.worker.postMessage({fn:"pdfWithPreProcess",iData:e})}))}},{key:"readPDF",value:function(e){var r=this;return u((function(){return f(this,(function(t){return[2,new Promise((function(t){r.worker.onmessage=function(e){var n=e.data,o=n.name,i=n.data,a=n.bw,u=n.bh;if("ready"===o)r.worker.postMessage({fn:"process"});else if("result"===o){var s;r.errorId=null==i||null===(s=i.status)||void 0===s?void 0:s.value;var l=(r.errorId?r.licenseError():null)||i;r.bw=a,r.bh=u,t(l)}else t(i)},r.worker.postMessage({fn:"prepare",iData:e})}))]}))}))()}}])&&s(r.prototype,t),n&&s(r,n),e}();var p,h,y=t(7286),v=t(4550);function b(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function w(e,r,t,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void t(e)}u.done?r(s):Promise.resolve(s).then(n,o)}function m(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==t.return||t.return()}finally{if(u)throw o}}return i}}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return b(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return b(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,r){var t,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;a;)try{if(t=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=r.call(e,a)}catch(e){i=[6,e],n=0}finally{t=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}const k=(p=function(e){var r,t,o,i;return g(this,(function(a){switch(a.label){case 0:return r=e.pdf417key,t=!!Object.entries(n.Z.config.documentTypes).find((function(e){var r=m(e,2);return r[0],r[1].find((function(e){return("pdf"===e.type||"back"===e.type)&&e.mode.uploader}))})),[4,(0,v.o)("".concat(n.Z.chunkPublicPath,"pdfWorker.js.gzip"))];case 1:return o=a.sent(),i=new d(o,r,t),y.Z.setModule("module","pdf",i),[2]}}))},h=function(){var e=this,r=arguments;return new Promise((function(t,n){var o=p.apply(e,r);function i(e){w(o,t,n,i,a,"next",e)}function a(e){w(o,t,n,i,a,"throw",e)}i(void 0)}))},function(e){return h.apply(this,arguments)})}}]);
1
+ (self.webpackChunk_idscan_idvc2=self.webpackChunk_idscan_idvc2||[]).push([[596],{4550:(e,t,r)=>{r.d(t,{o:()=>l});var n=r(7885),o=r(7666);function i(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function a(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function u(e){i(a,n,o,u,s,"next",e)}function s(e){i(a,n,o,u,s,"throw",e)}u(void 0)}))}}function u(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var s,c=(s=a((function(e){var t,r,i,a,s;return u(this,(function(u){switch(u.label){case 0:return u.trys.push([0,2,,3]),r=Uint8Array.bind,[4,(0,o.xl)(e)];case 1:return t=new(r.apply(Uint8Array,[void 0,u.sent()])),i=(0,n.ec)(t),a=new Blob([i.buffer],{type:"application/javascript"}),[2,URL.createObjectURL(a)];case 2:throw s=u.sent(),console.error("Error loading and decompressing worker file:",s),s;case 3:return[2]}}))})),function(e){return s.apply(this,arguments)}),l=function(){var e=a((function(e){var t;return u(this,(function(r){switch(r.label){case 0:return[4,c(e)];case 1:return t=r.sent(),[2,new Worker(t)]}}))}));return function(t){return e.apply(this,arguments)}}()},8766:(e,t,r)=>{r.r(t),r.d(t,{default:()=>k});var n=r(4328),o=r(6399);function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function a(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function u(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function u(e){a(i,n,o,u,s,"next",e)}function s(e){a(i,n,o,u,s,"throw",e)}u(void 0)}))}}function s(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return i(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return i(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var d=function(){function e(t,r,n){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),c(this,"module",void 0),c(this,"handle",null),c(this,"bw",0),c(this,"bh",0),c(this,"src",null),c(this,"out",null),c(this,"isAllocate",!1),c(this,"worker",void 0),c(this,"isProcessing",!1),c(this,"isInitialized",!1),c(this,"successCount",0),c(this,"pdfCapturedCount",0),c(this,"src2",null),c(this,"locations",null),c(this,"pdfCount",0),c(this,"geometry",void 0),c(this,"minPDFframes",1),c(this,"cropSizes",void 0),c(this,"canvasSizes",void 0),c(this,"privateErrorId",0),this.worker=t,this.worker.onmessage=function(e){var t=e.data,r=t.name,n=t.data;"initialization"===r&&(o.isInitialized=n)},this.worker.postMessage({fn:"init",key:r,isNeedToLoadPDFWIthPreprocess:n})}var t,r,n;return t=e,(r=[{key:"errorId",get:function(){return this.privateErrorId},set:function(e){this.privateErrorId=[o.l.Detected,o.l.Decoded].includes(e)?0:e}},{key:"errorVal",get:function(){var e;return this.errorId===o.l.LicenseKeyHasExpired&&(e=0),this.errorId===o.l.InvalidLicenseKey&&(e=1),e}},{key:"init",value:function(e,t,r,n){this.geometry=e,this.minPDFframes=t,this.cropSizes=r,this.canvasSizes=n}},{key:"licenseError",value:function(){return{error:!0,errorType:"licenceKeyError",errorVal:this.errorVal}}},{key:"create",value:function(){}},{key:"setSizes",value:function(e,t){this.bw=e,this.bh=t,this.worker.postMessage({fn:"setSizes",bw:e,bh:t})}},{key:"allocate",value:function(){this.worker.postMessage({fn:"allocate"})}},{key:"calculateCords",value:function(e){var t=this,r=[];if(e){var n=[];Object.entries(e).forEach((function(e){var r=l(e,2),o=r[0],i=r[1],a=Math.trunc(i),u=o[0],s=+o[1]-1;n[s]||(n[s]={x:0,y:0}),"x"===u?n[s].x=t.canvasSizes.width*a/t.bw:n[s].y=t.canvasSizes.height*a/t.bh}));var o=[n[3].x-n[0].x,n[3].y-n[0].y],i=[n[1].x-n[0].x,n[1].y-n[0].y],a=[n[2].x-n[1].x,n[2].y-n[1].y],u=[n[3].x-n[2].x,n[3].y-n[2].y],s=this.geometry.angleBetweenTwoVectors(o,i),c=this.geometry.angleBetweenTwoVectors(a,u);s<=100&&s>=80&&c<=100&&c>=80&&(r=n)}return r}},{key:"processPDF",value:function(e){var t=this;return u((function(){var r,n;return f(this,(function(i){switch(i.label){case 0:return t.isProcessing?[2,{}]:(r={status:!1,predict:!1,touch:!1,image:null,type:"pdf",error:null,coords:[],trackString:"",pdfSuccessCount:0,pdfCount:0,isSuccessProcess:!1,pdfCapturedCount:0},t.isInitialized?(t.isProcessing=!0,[4,t.readPDF(e)]):[2,r]);case 1:return(n=i.sent()).error?(t.isProcessing=!1,r.error=n,[2,r]):(n&&"status"in n&&(n.status.value===o.l.Detected&&(t.pdfCapturedCount+=1),n.status.value===o.l.Detected||n.status.value===o.l.Decoded?(r.coords=t.calculateCords(n.location),r.isSuccessProcess=!0):(t.successCount+=1,t.calculateCords(null)),n.status.value===o.l.Decoded?(t.pdfCount+=1,t.pdfCount>=t.minPDFframes&&(t.successCount=0,t.pdfCapturedCount=0,t.pdfCount=0,r.trackString=n.trackString||n.data||"",r.status=!0,r.image=e,r.pdfCapturedCount=0)):t.pdfCount=0),r.pdfSuccessCount=t.successCount,r.pdfCount=t.pdfCount,r.pdfCapturedCount=t.pdfCapturedCount,t.isProcessing=!1,[2,r])}}))}))()}},{key:"decodeSubmitString",value:function(e){var t=e.data,r=e.resultParams,n=r.columns,o=r.rows,i=r.ecl,a=Object.fromEntries(Object.entries(e.location).map((function(e){var t=l(e,2),r=t[0],n=t[1];return[r,Number(n.toFixed(6))]}))),u="columns:".concat(n,",rows:").concat(o,",ecl:").concat(i,",").concat(Object.entries(a).map((function(e){var t=l(e,2),r=t[0],n=t[1];return"".concat(r,":").concat(n)})).join(","));return"".concat(t,".").concat(btoa(u))}},{key:"processPDFWithPreProcess",value:function(e){var t=this;return new Promise((function(r){t.worker.onmessage=function(e){var n=e.data,o=n.name,i=n.data;if("result"===o){var a;t.errorId=null==i||null===(a=i.status)||void 0===a?void 0:a.value;var u=t.errorId?t.licenseError():null;i.data&&(i.data=t.decodeSubmitString(i)),r(u||i)}else r(i)},t.worker.postMessage({fn:"pdfWithPreProcess",iData:e})}))}},{key:"readPDF",value:function(e){var t=this;return u((function(){return f(this,(function(r){return[2,new Promise((function(r){t.worker.onmessage=function(e){var n=e.data,o=n.name,i=n.data,a=n.bw,u=n.bh;if("ready"===o)t.worker.postMessage({fn:"process"});else if("result"===o){var s;t.errorId=null==i||null===(s=i.status)||void 0===s?void 0:s.value;var c=(t.errorId?t.licenseError():null)||i;t.bw=a,t.bh=u,r(c)}else r(i)},t.worker.postMessage({fn:"prepare",iData:e})}))]}))}))()}}])&&s(t.prototype,r),n&&s(t,n),e}();var p,h,y=r(7286),v=r(4550);function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function w(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(e){u=!0,o=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return b(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}const k=(p=function(e){var t,r,o,i;return g(this,(function(a){switch(a.label){case 0:return t=e.pdf417key,r=!!Object.entries(n.Z.config.documentTypes).find((function(e){var t=m(e,2);return t[0],t[1].find((function(e){return("pdf"===e.type||"back"===e.type)&&e.mode.uploader}))})),[4,(0,v.o)("".concat(n.Z.chunkPublicPath,"pdfWorker.js.gzip"))];case 1:return o=a.sent(),i=new d(o,t,r),y.Z.setModule("module","pdf",i),[2]}}))},h=function(){var e=this,t=arguments;return new Promise((function(r,n){var o=p.apply(e,t);function i(e){w(o,r,n,i,a,"next",e)}function a(e){w(o,r,n,i,a,"throw",e)}i(void 0)}))},function(e){return h.apply(this,arguments)})}}]);
@@ -1,4 +1,7 @@
1
+ import type { DocumentTypeName } from '../environment/documentTypes';
2
+ import type { GeneralTypeExitYolo } from '../neural models/generalTypeYolo/exits';
1
3
  export declare const POINT_FILL_STYLE = "rgba(255, 255, 255, 0.5)";
2
4
  export declare const POINT_STROKE_STYLE = "rgba(255, 255, 255, 0)";
3
5
  export declare const SCALE_FACTOR = 0.3;
4
6
  export declare const MAX_DOCUMENT_COUNT = 7;
7
+ export declare const documentTypesFrontSidesDict: Record<DocumentTypeName, Array<GeneralTypeExitYolo | ''>>;
@@ -1,2 +1,3 @@
1
1
  export declare const MIN_BACK_WITHOUT_BARCODE_FRAMES = 6;
2
2
  export declare const PDF_STATUS_1_BARCODE_FRAMES = 20;
3
+ export declare const PDF_CAPTURE_BOUNDING_BOX_FRAMES = 5;
@@ -21,6 +21,7 @@ export type StepConfig = {
21
21
  mode: StepMode;
22
22
  autocaptureDelay?: number;
23
23
  enableDesktopNotification?: boolean;
24
+ enableFourCornerCapture?: boolean;
24
25
  };
25
26
  export type DocumentType = {
26
27
  type: DocumentTypeName;
@@ -28,7 +29,7 @@ export type DocumentType = {
28
29
  mode?: StepMode;
29
30
  };
30
31
  type ImageURI = 'png' | 'jpeg' | 'webp';
31
- export type DefaultConfigName = 'el' | 'licenseKey' | 'networkUrl' | 'chunkPublicPath' | 'language' | 'documentTypes' | 'realFaceMode' | 'modalPosition' | 'resizeUploadedImage' | 'showSubmitBtn' | 'isShowDocumentTypeSelect' | 'useCDN' | 'processingImageFormat' | 'allowSubmitWithWarnings' | 'autoContinue' | 'autoStart' | 'playPreviewAnimations' | 'autocaptureDelay' | 'isShowGuidelinesButton' | 'fixFrontOrientAfterUpload' | 'captureTimeout' | 'clickGuidlines' | 'onCaptureTimeout' | 'onChange' | 'onReset' | 'submit' | 'onRetakeHook' | 'onCameraError' | 'onMounted' | 'onReloaded';
32
+ export type DefaultConfigName = 'el' | 'licenseKey' | 'networkUrl' | 'chunkPublicPath' | 'language' | 'documentTypes' | 'realFaceMode' | 'modalPosition' | 'resizeUploadedImage' | 'showSubmitBtn' | 'isShowDocumentTypeSelect' | 'useCDN' | 'processingImageFormat' | 'allowSubmitWithWarnings' | 'autoContinue' | 'autoStart' | 'playPreviewAnimations' | 'autocaptureDelay' | 'fixFrontOrientAfterUpload' | 'captureTimeout' | 'onCaptureTimeout' | 'onChange' | 'onReset' | 'submit' | 'onRetakeHook' | 'onCameraError' | 'onMounted' | 'onReloaded';
32
33
  /**
33
34
  * IDefaultConfig
34
35
  * @param {string} name,
@@ -1,6 +1,6 @@
1
- export type DocumentTypeIndex = 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11;
2
- export type DocumentTypeName = 'ID' | 'Passport' | 'PassportCard' | 'GreenCard' | 'InternationalId' | 'VIN' | 'Barcode' | 'FaceAuthorization' | 'EmploymentAuthorization';
3
- export type HumanName = 'Driver\'s License or State Identification Card' | 'Passport' | 'US Passport Card' | 'Green Card' | 'International ID' | 'Vehicle Identification Number' | '1-D and 2-D Barcodes' | 'Face Authorization' | 'Employment Authorization';
1
+ export type DocumentTypeIndex = 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11;
2
+ export type DocumentTypeName = 'ID' | 'Passport' | 'PassportCard' | 'GreenCard' | 'InternationalId' | 'Barcode' | 'FaceAuthorization' | 'EmploymentAuthorization';
3
+ export type HumanName = 'Driver\'s License or State Identification Card' | 'Passport' | 'US Passport Card' | 'Green Card' | 'International ID' | '1-D and 2-D Barcodes' | 'Face Authorization' | 'Employment Authorization';
4
4
  export type ImageSource = 'video' | 'file';
5
5
  export declare enum DocumentTypeIDs {
6
6
  'ID' = 1,
@@ -8,7 +8,6 @@ export declare enum DocumentTypeIDs {
8
8
  'PassportCard' = 3,
9
9
  'GreenCard' = 6,
10
10
  'InternationalId' = 7,
11
- 'VIN' = 8,
12
11
  'Barcode' = 11,
13
12
  'FaceAuthorization' = 10,
14
13
  'EmploymentAuthorization' = 9
@@ -1,5 +1,5 @@
1
1
  import { CameraNotSupportedReason } from '../types/modules/camera.enum';
2
- type LabelGroup = 'errorCodes' | 'hintTexts' | 'keyErrors' | 'camera' | 'general' | 'uploaderDescription' | 'documentsTypes' | 'spinnerText';
2
+ type LabelGroup = 'errorCodes' | 'hintTexts' | 'keyErrors' | 'camera' | 'general' | 'uploaderDescription' | 'documentsTypes' | 'loaderText';
3
3
  type AllTypes = IErrorCodes | IHintTexts | KeyError | ICameraLabels | IGeneral | IDocumentsTypes | IUploaderDescription | ISpinnerText;
4
4
  type Label = Record<LabelGroup, AllTypes>;
5
5
  type KeyError = string[];
@@ -10,7 +10,7 @@ type GetTranslation = {
10
10
  (groupName: 'keyErrors'): KeyError;
11
11
  (groupName: 'camera'): ICameraLabels;
12
12
  (groupName: 'general'): IGeneral;
13
- (groupName: 'spinnerText'): ISpinnerText;
13
+ (groupName: 'loaderText'): ISpinnerText;
14
14
  (groupName: LabelGroup): AllTypes;
15
15
  };
16
16
  export type ErrorCodeNames = 'mrzNotFound' | 'mrzNotRecognized' | 'barcodeNotFound' | 'barcodeNotRecognized' | 'heic' | 'fileType' | 'fileTypeHeic' | 'faceNotFound' | 'disableStepFileUpload' | 'notAllowedDocument' | 'documentSideLowPerimeter' | 'faceOnFrontNotDetected' | 'frontSideNotDetected' | 'backSideNotDetected' | 'default' | 'lowImageResolution' | 'imageIsBlurred' | 'faceLowArea' | 'disabledManualUpload' | keyof typeof CameraNotSupportedReason;
@@ -36,6 +36,7 @@ interface IHintTexts {
36
36
  capture: {
37
37
  pdf: string;
38
38
  mrz: string;
39
+ back: string;
39
40
  };
40
41
  dontSee: string;
41
42
  dontMove: string;
@@ -50,6 +51,7 @@ interface IHintTexts {
50
51
  documentCloser: string;
51
52
  holdCamera: string;
52
53
  captureCorners: string;
54
+ frontSideNotMatch: string;
53
55
  }
54
56
  interface ICameraLabels {
55
57
  loading: string;
@@ -65,7 +67,6 @@ interface IGeneral {
65
67
  face: string;
66
68
  barcode: string;
67
69
  back: string;
68
- photo: string;
69
70
  awaiting: string;
70
71
  notificationStepSuccess: string;
71
72
  notificationStepWarning: string;
@@ -75,10 +76,7 @@ interface IGeneral {
75
76
  notificationSubmit: string;
76
77
  notificationCaptureHook: string;
77
78
  notificationCaptureSide: string;
78
- initialLoader: {
79
- top: string;
80
- bottom: string;
81
- };
79
+ idvcVersionPlank: string;
82
80
  submitProcessSpinner: {
83
81
  top: string;
84
82
  bottom: string;
@@ -102,6 +100,8 @@ interface IGeneral {
102
100
  };
103
101
  messageBox: {
104
102
  default: string;
103
+ changeDocumentTypeText: string;
104
+ documentTypeText: string;
105
105
  };
106
106
  controlButtons: {
107
107
  upload: string;
@@ -121,7 +121,6 @@ interface IGeneral {
121
121
  };
122
122
  documentType: string;
123
123
  selectDocumentTypeText: string;
124
- changeDocumentTypeText: string;
125
124
  changeBtn: string;
126
125
  correctBtn: string;
127
126
  cancelBtn: string;
@@ -143,7 +142,6 @@ interface IDocumentsTypes {
143
142
  GreenCard: string;
144
143
  EmploymentAuthorization: string;
145
144
  InternationalId: string;
146
- VIN: string;
147
145
  Barcode: string;
148
146
  FaceAuthorization: string;
149
147
  }
@@ -1,4 +1,4 @@
1
- export type StepType = 'mrz' | 'front' | 'pdf' | 'face' | 'barcode' | 'photo' | 'back';
1
+ export type StepType = 'mrz' | 'front' | 'pdf' | 'face' | 'barcode' | 'back';
2
2
  export type StepTypeImageName = StepType | 'mrzFront';
3
3
  declare const _default: {
4
4
  mrz: {
@@ -43,14 +43,6 @@ declare const _default: {
43
43
  core: string[];
44
44
  description: string;
45
45
  };
46
- photo: {
47
- id: number;
48
- camera: string;
49
- name: string;
50
- time: number;
51
- core: any[];
52
- description: string;
53
- };
54
46
  back: {
55
47
  id: number;
56
48
  camera: string;
@@ -0,0 +1,5 @@
1
+ import type { StepType } from '../environment/stepsDescription';
2
+ export declare const res: Record<string, any>;
3
+ export declare const dropCapturedState: () => void;
4
+ export declare const captureFrameWithCorners: (isValidDocument: boolean, stepType?: StepType) => Promise<void>;
5
+ export declare const dropCaptureProgress: () => void;
@@ -1,9 +1,9 @@
1
1
  import { MainScreen } from '../ui/MainScreen/MainScreen';
2
2
  import { Size } from '../../helpers/image';
3
- import { Loader } from '../Spinner/Loader';
3
+ import { Loader } from '../Loader/Loader';
4
4
  import SelectDocumentType from '../ui/SelectDocumentType';
5
- import { DocumentsList } from '../ui/DocumentsList/DocumentsList';
6
- import { StepsList } from '../ui/StepsList/StepsList';
5
+ import { InitScreen } from '../ui/DocumentsList/InitScreen';
6
+ import { StepsScreen } from '../ui/StepsList/StepsScreen';
7
7
  import { IDVCVersionPlank } from '../ui/IDVCVersionPlank/IDVCVersionPlank';
8
8
  import { AnimationSettings, Notification, NotificationState } from '../ui/Notification/Notification';
9
9
  import type { Context } from '../../types/context';
@@ -12,10 +12,11 @@ export declare class WeblibUI {
12
12
  mainScreen: MainScreen;
13
13
  loader: Loader;
14
14
  selectDocumentType: SelectDocumentType;
15
- initScreen: DocumentsList;
16
- stepsScreen: StepsList;
15
+ initScreen: InitScreen;
16
+ stepsScreen: StepsScreen;
17
17
  idvcVersionContainer: IDVCVersionPlank;
18
18
  constructor(mountElement: HTMLElement);
19
+ remountUI(): void;
19
20
  createNotification(notificationContainer: HTMLElement, { status, message, }: NotificationState, animationSettings: AnimationSettings): Notification;
20
21
  updateResetButton({ steps, }: Context): void;
21
22
  updateControlButtons({ steps, config, }: Context): void;
@@ -24,7 +25,7 @@ export declare class WeblibUI {
24
25
  resizeBorders(): void;
25
26
  setResizedCanvasSizes({ width, height }: Size): void;
26
27
  showMainScreen(): void;
27
- showStepsList(): void;
28
+ showStepsScreen(): void;
28
29
  private setFaceOffsets;
29
30
  private setCropFace;
30
31
  private initMainScreenComponents;
@@ -39,8 +39,9 @@ export interface IConfig {
39
39
  * - PassportCard (3) – with 3 lines MRZ (most European IDs, USA passports/cards)
40
40
  * - GreenCard (6) – USA Permanent Resident Cards (only MRZ)
41
41
  * - InternationalId (7) – Internationally approved U.S. IDs with 3 lines MRZ
42
- * - VIN (8) Vehicle Identification Numbers
43
- * - Barcode (9) – 1-D and 2-D barcodes
42
+ * - EmploymentAuthorization (9) - Employment Authorization
43
+ * - Barcode (11) – 1-D and 2-D barcodes
44
+
44
45
  *
45
46
  * Available Step Types
46
47
  *
@@ -49,7 +50,7 @@ export interface IConfig {
49
50
  * - pdf – detection and capturing of pdf417 of a document
50
51
  * - face – detection and capturing of the end user's face using the front camera
51
52
  * - barcode – detection and capturing of 1 dimensional (barcodes) or 2 dimensional (qr codes)
52
- * - photo capturing of a vehicle identification number
53
+ * - back - capturing the back side of a document
53
54
  *
54
55
  * Available Capture Mode
55
56
  *
@@ -75,10 +76,6 @@ export interface IConfig {
75
76
  * Path to the folder with chunks. Specify the path on the server if you need to remove the folder to another location.
76
77
  */
77
78
  chunkPublicPath?: string;
78
- /**
79
- * switches on/off the button to show guide lines
80
- */
81
- isShowGuidelinesButton?: boolean;
82
79
  /**
83
80
  * if this setting is set to false the document type dialog will not be displayed to the end user
84
81
  */
@@ -107,8 +104,6 @@ export interface IConfig {
107
104
  * This option allows you to set a timer in seconds, how long after the start of video capture the hook 'onCaptureTimeout' will be triggered.
108
105
  */
109
106
  captureTimeout?: number;
110
- /** callback-function which will be called after guidelines button. */
111
- clickGuidlines?: () => void;
112
107
  /**
113
108
  * function will be called after the user failed to capture the document from the camera
114
109
  * in the time specified by the 'captureTimeout' option
@@ -47,8 +47,9 @@ export declare class PdfModule {
47
47
  create(): void;
48
48
  setSizes(bw: any, bh: any): void;
49
49
  allocate(): void;
50
- drawCords(locations: PDFLocation): Coordinate[];
50
+ calculateCords(locations: PDFLocation): Coordinate[];
51
51
  processPDF(data: ImageData): Promise<Record<string, any>>;
52
+ decodeSubmitString(obj: Record<string, any>): string;
52
53
  processPDFWithPreProcess(iData: ImageData): Promise<unknown>;
53
54
  readPDF(iData: any): Promise<unknown>;
54
55
  }
@@ -1,6 +1,7 @@
1
+ import { CameraError } from '../initErrorHandler';
1
2
  import { Size } from '../../helpers/image';
2
3
  export declare const stopTrack: () => void;
3
- export declare const cameraErrorHandling: (err: Error) => Promise<never>;
4
+ export declare const cameraErrorHandling: (err: Error | CameraError) => Promise<never>;
4
5
  declare const _default: {
5
6
  initUploader: () => Promise<void>;
6
7
  stopTrack: () => void;
@@ -1,4 +1,6 @@
1
1
  import type { Base64Image } from '../helpers/image';
2
+ import type { ErrorCodeNames } from '../environment/langs';
3
+ type ProcessingErrorCode = ErrorCodeNames | '';
2
4
  type Coordinate = {
3
5
  x: number;
4
6
  y: number;
@@ -9,19 +11,28 @@ export type MRZLocation = {
9
11
  rightBottom: Coordinate;
10
12
  leftBottom: Coordinate;
11
13
  };
12
- /**
13
- * process manually uploaded image for MRZ
14
- * @param {ImageData} smallImage - resized image data
15
- * @return {Promise<boolean>}
16
- */
17
- export declare const mrzProcess: (smallImage: ImageData) => Promise<boolean>;
18
- export declare const pdfProcess: (smallImage: ImageData) => Promise<boolean>;
14
+ export declare const setProcessingErrorCode: (errorCode: ProcessingErrorCode) => void;
15
+ export declare const mrzProcess: (smallImage: ImageData, { side, perimeter, isHasFace }: {
16
+ side: any;
17
+ perimeter: any;
18
+ isHasFace: any;
19
+ }) => Promise<boolean>;
20
+ export declare const pdfProcess: (smallImage: any, { perimeter }: {
21
+ perimeter: any;
22
+ }) => Promise<boolean>;
19
23
  /**
20
24
  *
21
25
  * @param {Base64Image} data - base64 image
22
26
  */
23
27
  export declare const barCodeProcess: (data: Base64Image) => Promise<boolean>;
24
- export declare const frontProcess: (smallImage: ImageData) => Promise<boolean>;
28
+ export declare const frontProcess: ({ side, perimeter, isHasFace }: {
29
+ side: any;
30
+ perimeter: any;
31
+ isHasFace: any;
32
+ }) => Promise<boolean>;
25
33
  export declare const faceProcess: (smallImage: ImageData) => Promise<boolean>;
26
- export declare const backProcess: (smallImage: ImageData) => Promise<boolean>;
34
+ export declare const backProcess: (smallImage: ImageData, { side, perimeter }: {
35
+ side: any;
36
+ perimeter: any;
37
+ }) => Promise<boolean>;
27
38
  export {};
@@ -1,3 +1,2 @@
1
- export declare const dropCaptureProgress: () => void;
2
1
  declare const _default: (data: ImageData) => Promise<Record<string, any>>;
3
2
  export default _default;
@@ -1,2 +1,2 @@
1
- declare const _default: (resultObject: any) => void;
1
+ declare const _default: (resultObject: any) => Promise<void>;
2
2
  export default _default;
@@ -1,5 +1,5 @@
1
1
  type ModuleNames = 'mrz' | 'pdf' | 'face' | 'front' | 'barcode';
2
- type FunctionNames = ModuleNames | 'photo' | 'back';
2
+ type FunctionNames = ModuleNames | 'back';
3
3
  declare const stepFunctionWrapper: (functionName: FunctionNames, ...args: any[]) => any;
4
4
  export declare const isStepFunctionExist: (functionName: FunctionNames) => boolean;
5
5
  export default stepFunctionWrapper;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  hasFn: (fnName: string) => boolean;
3
- pdf: (resultObject: any) => void;
3
+ pdf: (resultObject: any) => Promise<void>;
4
4
  mrz: (resultObject: any) => void;
5
5
  SimpleFace: (resultObject: any) => void;
6
6
  VolumeFace: (resultObject: import("../types/modules/realFace").RealFaceResultObject) => void;
@@ -6,15 +6,15 @@ type DocumentState = {
6
6
  humanName: HumanName;
7
7
  id: 0 | DocumentTypeIndex;
8
8
  };
9
- export type DocumentListState = {
9
+ export type InitScreenState = {
10
10
  documents: DocumentState[];
11
11
  isHidden: boolean;
12
12
  };
13
- export type DocumentsListEvents = {
13
+ export type InitScreenEvents = {
14
14
  onDocumentClick?: (res: DocumentSelectEvent) => void;
15
15
  };
16
- export declare class DocumentsList extends Component<DocumentListState> {
17
- constructor(mountElement: any, state: DocumentListState, events?: DocumentsListEvents);
16
+ export declare class InitScreen extends Component<InitScreenState> {
17
+ constructor(mountElement: any, state: InitScreenState, events?: InitScreenEvents);
18
18
  protected addEventListeners(): void;
19
19
  private addDocumentClickListener;
20
20
  }
@@ -10,9 +10,8 @@ import { DesktopNotification, DesktopNotificationVisibility } from '../DesktopNo
10
10
  import { LoaderUI } from '../Spinner/LoaderUI';
11
11
  import { Component, StateBase } from '../Component';
12
12
  import type { Context } from '../../../types/context';
13
- import type { DocumentTypeIndex, DocumentTypeName } from '../../../environment/documentTypes';
13
+ import { DocumentTypeIndex, DocumentTypeName } from '../../../environment/documentTypes';
14
14
  import { Slider } from '../../Slider';
15
- import { HintType, MaskType } from '../VideoWrapper/MaskCapture';
16
15
  export type MainScreenUIEvents = {
17
16
  onSwitch: (event: CustomEvent) => void;
18
17
  onCardClick: (event: CustomEvent) => void;
@@ -58,9 +57,9 @@ export declare class MainScreen {
58
57
  currentStepType: StepType;
59
58
  type: DocumentTypeIndex | 0;
60
59
  }): void;
61
- updateMaskCapture(currentStepType: StepType, type: DocumentTypeIndex, hintType?: HintType): void;
62
- changeMaskType(maskType: MaskType): void;
63
- showMaskHint(currentStepType: StepType, currentDocument: DocumentTypeIndex, hintType?: HintType): void;
60
+ updateMaskCapture(currentStepType: StepType, type: DocumentTypeIndex, enableFourCornerCapture: boolean): void;
61
+ changeMaskType(currentStepType: StepType): void;
62
+ showMaskHint(currentStepType: StepType, currentDocument: DocumentTypeIndex, enableFourCornerCapture: boolean): void;
64
63
  updateKeyError(licenseKeyError: string): void;
65
64
  resetState(): void;
66
65
  initSteps(steps: Step[], currentDocument: DocumentTypeName | ''): void;
@@ -9,7 +9,7 @@ type MessageBoxState = {
9
9
  text?: string;
10
10
  };
11
11
  export declare class MessageBox extends Component<MessageBoxState> {
12
- private handlerList;
12
+ private clickHandler;
13
13
  constructor(mountElement: any, state: MessageBoxState, events?: any);
14
14
  get type(): MessageBoxType;
15
15
  /**
@@ -1,12 +1,6 @@
1
1
  import Modal from './Modal';
2
- import { DocumentRecord, DocumentTypeIndex, DocumentTypeName } from '../../environment/documentTypes';
2
+ import { DocumentRecord, DocumentTypeName } from '../../environment/documentTypes';
3
3
  import { ModalPositionKeys } from '../../environment/modalPosition';
4
- interface DocumentTypeElement {
5
- name: DocumentTypeName;
6
- element: HTMLLabelElement;
7
- id: DocumentTypeIndex;
8
- nName?: string;
9
- }
10
4
  interface ILoader {
11
5
  addState: () => void;
12
6
  showLoader: () => void;
@@ -15,7 +9,8 @@ interface ILoader {
15
9
  hideLoader: () => void;
16
10
  }
17
11
  declare class SelectDocumentType extends Modal {
18
- elementsList: DocumentTypeElement[];
12
+ private elementsList;
13
+ private header;
19
14
  private list;
20
15
  private loader;
21
16
  constructor(componentWrapper: HTMLElement, loader: ILoader, modalPositionClass: ModalPositionKeys);
@@ -4,17 +4,15 @@ import Step from '../../Step';
4
4
  import { CallbackHandler, MessageBox } from '../MessageBox/MessageBox';
5
5
  import { ControlButton, ControlButtonClickedCustomEvent } from '../ControlButton/ControlButton';
6
6
  import { CardStep } from '../CardStep/CardStep';
7
- import SelectDocumentType from '../SelectDocumentType';
8
7
  import { CardState } from '../CardStep/Card';
9
8
  import { Context } from '../../../types/context';
10
- export type StepsListEvents = {
9
+ export type StepsScreenEvents = {
11
10
  onResetButtonClick: (event: ControlButtonClickedCustomEvent) => void;
12
11
  onSubmitButtonClick: (event: ControlButtonClickedCustomEvent) => void;
13
12
  onStartButtonClick: (event: ControlButtonClickedCustomEvent) => void;
14
13
  onCardClick: (data: CardState) => void;
15
14
  };
16
- export type StepsListType = typeof StepsList;
17
- export declare class StepsList {
15
+ export declare class StepsScreen {
18
16
  mountElement: HTMLElement;
19
17
  events: any;
20
18
  UIComponents: Component<StateBase>[];
@@ -25,7 +23,6 @@ export declare class StepsList {
25
23
  componentWrapper: HTMLElement;
26
24
  notificationContainer: HTMLElement;
27
25
  steps: CardStep[];
28
- selectDocumentType: SelectDocumentType;
29
26
  constructor(mountElement: HTMLElement, events: any, context: Context);
30
27
  disableScreen(): void;
31
28
  setVisibility(isVisible: boolean): void;
@@ -8,6 +8,7 @@ export type UploaderState = {
8
8
  enabled: boolean;
9
9
  image?: string;
10
10
  errorCode?: ErrorCodes;
11
+ isBadImage?: boolean;
11
12
  };
12
13
  export type UploaderUIEvents = {
13
14
  onFileInput: (event: any) => void;
@@ -25,7 +25,7 @@ export declare class MaskCapture {
25
25
  private get svgSizes();
26
26
  private get strokeLength();
27
27
  private set borderSizes(value);
28
- applyMaskCaptureSizes(currentStepType: StepType, type: DocumentTypeIndex | 0): void;
28
+ applyMaskCaptureSizes(currentStepType: StepType, type: DocumentTypeIndex | 0, enableFourCornerCapture: boolean): void;
29
29
  showHint(currentStepType: StepType, currentDocument: DocumentTypeIndex, hintType?: HintType): void;
30
30
  changeMaskType(maskType: MaskType): void;
31
31
  /**
@@ -7,6 +7,7 @@ export type HoldTextParams = {
7
7
  steps: Step[];
8
8
  currentStep: number;
9
9
  currentStepType: StepType;
10
+ currentStepCornersCapture: boolean;
10
11
  };
11
12
  export declare class UiHints {
12
13
  private componentWrapper;
@@ -18,7 +19,7 @@ export declare class UiHints {
18
19
  private arrowRightFaceTheCameraContainer;
19
20
  private currentArrowContainer;
20
21
  constructor(componentWrapper: HTMLElement);
21
- updateHoldText({ hintFlags, realFaceTurnSide, steps, currentStep, currentStepType, }: HoldTextParams, data?: number, isCorrectDirection?: boolean): string;
22
+ updateHintText({ hintFlags, realFaceTurnSide, steps, currentStep, currentStepType, currentStepCornersCapture, }: HoldTextParams, data?: number, isCorrectDirection?: boolean): string;
22
23
  private showFaceTheCameraArrows;
23
24
  private hideFaceTheCameraArrows;
24
25
  private showArrow;
@@ -3,3 +3,4 @@ export declare const validBackExits: Set<GeneralTypeExitYolo>;
3
3
  export declare const validFrontExits: Set<GeneralTypeExitYolo>;
4
4
  export declare const hasPDF: (side: GeneralTypeExitYolo) => boolean;
5
5
  export declare const hasMRZ: (side: GeneralTypeExitYolo) => boolean;
6
+ export declare const backSideToStepMap: (side: GeneralTypeExitYolo) => "mrz" | "pdf" | "back";
@@ -20,7 +20,7 @@ export type Context = {
20
20
  running: boolean;
21
21
  allowedTypesIds: (DocumentTypeIndex | 0)[];
22
22
  type: DocumentTypeIndex | 0;
23
- capturingMode: 'processImage5' | 'processImage4';
23
+ capturingMode: 'processImage5';
24
24
  isBrowserSupport: boolean;
25
25
  resizedData: ImageData | null;
26
26
  origData: ImageData | null;
@@ -29,7 +29,6 @@ export type Context = {
29
29
  config: Record<string, any>;
30
30
  networkUrl: string;
31
31
  chunkPublicPath: string;
32
- showForceCapturingBtn: boolean;
33
32
  imageFormat: 'webp' | 'jpeg';
34
33
  supabase: ReturnType<typeof InitClient> | null;
35
34
  cameraInfo: Record<string, any>;
@@ -97,6 +96,7 @@ export type Context = {
97
96
  get currentStepMode(): StepMode;
98
97
  get currentDocumentType(): DocumentTypeName | '';
99
98
  get currentStepDelay(): number;
99
+ get currentStepCornersCapture(): boolean;
100
100
  get hasFrontStep(): boolean;
101
101
  calculateIsMirroring(): void;
102
102
  dropKeys(): void;
@@ -16,5 +16,7 @@ export declare enum CameraNotSupportedReason {
16
16
  /** Camera is currently not available due to a OS or hardware error. */
17
17
  CameraNotAvailable = "CameraNotAvailable",
18
18
  /** Camera with requested features is not available on current device when needs document verification */
19
- CameraNotFoundInVerification = "CameraNotFoundInVerification"
19
+ CameraNotFoundInVerification = "CameraNotFoundInVerification",
20
+ /** The camera is not suitable for document capture because of its parameters (dual camera, wide-angle camera, etc.) */
21
+ UnsuitableCamera = "UnsuitableCamera"
20
22
  }
@@ -20,21 +20,8 @@ interface IError {
20
20
  }
21
21
  export declare const checkIsTouchScreen: () => boolean;
22
22
  export declare const filterWithForbiddenKeysValues: (obj: any, forbiddenKeys: any, forbiddenValues: any) => {};
23
- declare const _default: {
24
- checkIsTouchScreen: () => boolean;
25
- prepareCameraErr(err: IError): IError;
26
- formDataForSubmit(steps: IStepCallback[], c: Context, payload?: {}): IDataForSubmit;
27
- /**
28
- *
29
- * @param img
30
- * @returns {ImageData}
31
- */
32
- imageToImageData(img: HTMLImageElement): ImageData;
33
- /**
34
- *
35
- * @param base64
36
- * @returns {Promise<ImageData>}
37
- */
38
- base64ToImageData(base64: Base64Image): Promise<ImageData>;
39
- };
40
- export default _default;
23
+ export declare const prepareCameraErr: (err: IError) => IError;
24
+ export declare const formDataForSubmit: (steps: IStepCallback[], c: Context, payload?: {}) => IDataForSubmit;
25
+ export declare const imageToImageData: (img: HTMLImageElement) => ImageData;
26
+ export declare const base64ToImageData: (base64: Base64Image) => Promise<ImageData>;
27
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idscan/idvc2",
3
- "version": "2.12.2",
3
+ "version": "2.14.0",
4
4
  "description": "component for the capturing documents",
5
5
  "main": "dist/idvc.js",
6
6
  "types": "dist/types/idvc.d.ts",