@voltom.io/sdk 1.0.6 → 1.0.7

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/dist/assets/locales/ar.json +34 -2
  2. package/dist/assets/locales/ch.json +34 -2
  3. package/dist/assets/locales/de.json +34 -2
  4. package/dist/assets/locales/en.json +34 -2
  5. package/dist/assets/locales/es.json +34 -2
  6. package/dist/assets/locales/fr.json +34 -2
  7. package/dist/assets/locales/it.json +34 -2
  8. package/dist/assets/locales/ja.json +34 -2
  9. package/dist/assets/locales/pt.json +34 -2
  10. package/dist/assets/locales/ru.json +34 -2
  11. package/dist/assets/locales/zh.json +34 -2
  12. package/dist/sdk/PoseSilhouette-D2pGu7Lh.js +2 -0
  13. package/dist/sdk/PoseSuccess-R_8JYo--.js +2 -0
  14. package/dist/sdk/errors.d.ts +121 -0
  15. package/dist/sdk/facegate.d.ts +24 -18
  16. package/dist/sdk/facegate.dist.js +5 -5
  17. package/dist/sdk/facegate.js +1 -1
  18. package/dist/sdk/facekey.browser-VlDa2K-w.js +2 -0
  19. package/dist/sdk/facekey.d.ts +18 -8
  20. package/dist/sdk/facekey.dist.js +6 -6
  21. package/dist/sdk/facekey.js +1 -1
  22. package/dist/sdk/presentation-COhoAxj3.js +8 -0
  23. package/dist/sdk/presentation-ye0KVm6U.js +2 -0
  24. package/dist/sdk/requests-DW8zDX51.js +65 -0
  25. package/dist/sdk/verify.d.ts +37 -18
  26. package/dist/sdk/verify.dist.js +18 -18
  27. package/dist/sdk/verify.js +1 -1
  28. package/dist/sdk/view-CF_YOVly.js +3 -0
  29. package/dist/sdk/view-Cb4XCb-z.js +3 -0
  30. package/dist/sdk/view-DcbwHph_.js +2 -0
  31. package/package.json +4 -3
  32. package/dist/sdk/PoseSilhouette-V9BxuMwo.js +0 -2
  33. package/dist/sdk/PoseSuccess-DDx23oJD.js +0 -2
  34. package/dist/sdk/eyeLevelCamera-aDRPs63K.js +0 -65
  35. package/dist/sdk/facekey.browser-bs8vp3ON.js +0 -2
  36. package/dist/sdk/media-Cejmtltt.js +0 -2
  37. package/dist/sdk/presentation-B4P1537m.js +0 -2
  38. package/dist/sdk/presentation-Cg1Ec60l.js +0 -8
  39. package/dist/sdk/view-DTvcOVnH.js +0 -3
  40. package/dist/sdk/view-ObOGpVdZ.js +0 -3
  41. package/dist/sdk/view-iMF-mWfw.js +0 -2
@@ -1,2 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{L as e,g as t,h as n,m as r,p as i,z as a}from"./eyeLevelCamera-aDRPs63K.js";var o=a({runtime:e}),s=r({runtime:e}),c=t({runtime:e}),l=n({runtime:e,imageFromImageBitmap:o}),u=i({runtime:e,...s,...c,...l,faceDetection:l});export{l as n,u as r,c as t};
@@ -1,2 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- var e=({moduleUrl:e})=>{let t=globalThis;t.__VOLTOM_ASSET_BASE_URL__||=new URL(`../`,e).href},t=({filename:e})=>{let t=globalThis.__VOLTOM_ASSET_BASE_URL__||globalThis.location?.href;if(!t)throw Error(`SDK_ASSET_BASE_URL_UNAVAILABLE`);return new URL(`assets/${e}`,t).href},n,r,i,a,o,s,c,l,u,d,f,p=Symbol.for(`pv`),m={},h=[],g=/^m(i|n|o|s|text|space)$/,_=Array.isArray,v=h.slice,y=Object.assign;function b(e){e&&e.parentNode&&e.remove()}function x(e,t,n){var r,i,a,o={},s=arguments.length;for(a in t)a==`key`?r=t[a]:a==`ref`&&typeof e!=`function`?i=t[a]:o[a]=t[a];return s>2&&(o.children=s>3?v.call(arguments,2):n),S(e,o,r,i,null)}function S(e,t,i,a,o){var s={type:e,props:t,key:i,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:p,__v:o||++r,__i:-1,__u:0};return!o&&n.vnode&&n.vnode(s),s}function C(){return{current:null}}function w(e){return e.children}function T(e,t){this.props=e,this.context=t,this.__g=0}function E(e,t){if(t==null)return e.__&&E(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:E(e)}function D(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),D(e)}function O(e){(8&e.__g||(e.__g|=8,a.push(e),s++))&&o==n.debounceRendering||((o=n.debounceRendering)||queueMicrotask)(k)}function k(){var e,t,r,i,l,u,d,f,m;try{for(t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,8&e.__g&&(i=void 0,l=void 0,u=(l=(r=e).__v).__e,d=[],f=[],(m=r.__P)&&((i=y({constructor:p},l)).__v=l.__v+1,n.vnode&&n.vnode(i),I(m,i,l,r.__n,m.namespaceURI,32&l.__u?[u]:null,d,u||E(l),32&l.__u,f),i.__v=l.__v,i.__.__k[i.__i]=i,L(d,i,f),l.__=l.__e=null,i.__e!=u&&D(i)))}finally{(s=a.length)&&(o||queueMicrotask)(k)}}function ee(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,g,_,v,y=r.__k||h,b=t.length;for(c=A(n,t,y,c,b),d=0;d<b;d++)(p=n.__k[d])!=null&&(f=~p.__i&&y[p.__i]||m,p.__i=d,v=I(e,p,f,i,a,o,s,c,l,u),g=p.__e,(f.ref!=p.ref||8&f.__u)&&(f.ref&&R(f.ref,null,p,f),p.ref&&u.push(p.ref,p.__c||g,p)),_||=g,4&p.__u?(c=j(p,c,e,!f.__v),f.__e&&(f.__e=null)):typeof p.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),p.__u&=-21);return n.__e=_,c}function A(e,t,n,r,i){var a,o,s,c,l,u,d,f,m,h=n.length,g=h,v=0,y=0,b=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor===String?o=b[a]=S(null,o):_(o)?o=b[a]=S(w,{children:o}):o.constructor===p&&o.__b?o=b[a]=S(o.type,o.props,o.key,o.ref,o.__v):b[a]=o,c=a+v,o.__=e,o.__b=e.__b+1,s=null,~(l=o.__i=M(o,n,c,g))&&(g--,(s=n[l])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,l==c-1?v--:l==c+1?v++:l!=c&&(l>c?v--:v++,y=1)):(~l||(i>h?v--:i<h&&v++),typeof o.type!=`function`&&(o.__u|=4))):b[a]=null;if(y){for(u=[],d=[],a=0;a<i;a++)if((o=b[a])&&16&o.__u){for(v=0,f=u.length;v<f;)u[m=v+f>>1]<o.__i?v=m+1:f=m;u[v]=o.__i,d[a]=v+1}for(v=u.length;a--;)d[a]&&(d[a]==v?v--:b[a].__u|=4)}if(g)for(a=0;a<h;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=E(s)),ie(s,s));return r}function j(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=j(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=E(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t&&=t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function M(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function N(e,t,n){n??=``,t[0]==`-`?e.setProperty(t,n):e[t]=n}function P(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||N(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||N(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||={})[t]=n,n&&r||(o=f[t]||(f[t]=F(t)),(e.__a||={})[t]=d,a=t!=(t=t.replace(u,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;return}catch{}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function F(e){return function(t){var r=this.__e;if(r){if(r=r[e],t[l]==null)t[l]=d++;else if(t[l]<this.__a[e])return;return r(n.event?n.event(t):t)}}}function I(e,t,r,i,a,o,s,c,l,u){var d,f,m,g,v,x,S,C,D,O,k,A,j,M,N,P,F,I,L=t.type;if(t.constructor!==p)return null;128&r.__u&&(l=32&r.__u,d=r.__c.__z)&&(t.__u|=l,f=o=[],d.nodeType==8?c=te(d,o):o.push(d),c=o[0]||c),(d=n.__b)&&d(t);n:if(typeof L==`function`){m=s.length;try{if(C=t.props,D=(d=L.prototype)&&d.render,O=(d=L.contextType)&&i[d.__c],k=d?O?O.props.value:d.__:i,(g=r.__c)?(t.__c=g,2&g.__g&&(g.__g|=1)):(D?t.__c=g=new L(C,k):(t.__c=g=new T(C,k),g.constructor=L,g.render=ae),O&&O.sub(g),g.state||(g.state={}),g.__n=i,g.__g|=8,g.__h=[],g.__k=[]),D&&(g.__s||(g.__s=g.state),L.getDerivedStateFromProps&&(g.__s==g.state&&(g.__s=y({},g.__s)),y(g.__s,L.getDerivedStateFromProps(C,g.__s)))),v=g.props,x=g.state,g.__v=t,r.__c){if(C!==v&&D&&!L.getDerivedStateFromProps&&g.componentWillReceiveProps&&g.componentWillReceiveProps(C,k),t.__v==r.__v&&!(8&g.__g)||!(4&g.__g)&&g.shouldComponentUpdate&&!1===g.shouldComponentUpdate(C,g.__s,k)){t.__v!=r.__v&&(g.props=C,g.state=g.__s,g.__g&=-9),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(e){e&&(e.__=t)}),h.push.apply(g.__h,g.__k),g.__k=[],g.__h.length&&s.push(g),c=E(r);break n}g.componentWillUpdate&&g.componentWillUpdate(C,g.__s,k),D&&g.componentDidUpdate&&g.__h.push(function(){g.componentDidUpdate(v,x,S)})}else D&&!L.getDerivedStateFromProps&&g.componentWillMount&&g.componentWillMount(),D&&g.componentDidMount&&g.__h.push(g.componentDidMount);if(g.context=k,g.props=C,g.__P=e,g.__g&=-5,A=n.__r,j=0,D)g.state=g.__s,g.__g&=-9,A&&A(t),d=g.render(g.props,g.state,g.context),h.push.apply(g.__h,g.__k),g.__k=[];else do g.__g&=-9,A&&A(t),d=g.render(g.props,g.state,g.context),g.state=g.__s;while(8&g.__g&&++j<25);g.state=g.__s,g.getChildContext&&(i=y({},i,g.getChildContext())),D&&r.__c&&g.getSnapshotBeforeUpdate&&(S=g.getSnapshotBeforeUpdate(v,x)),M=d&&d.type===w&&d.key==null?d.props.children:d,C.__P&&(d=c,a=(e=C.__P).namespaceURI,l=o=null,r.props&&r.props.__P!=e&&(r.__k.some(function(e){e&&ie(e,e)}),r.__k=null),c=r.__k?E(r,0):null),c=ee(e,_(M)?M:[M],t,r,i,a,o,s,c,l,u),C.__P&&(t.__e=null,c=d),t.__u&=-161,f&&f.some(b),g.__h.length&&s.push(g),1&g.__g&&(g.__g&=-4)}catch(e){if(s.length=m,t.__v=null,l||o){if(e.then){if(N=0,t.__u|=128|l,o){for(~(F=o.indexOf(c||void 0))||(F=o.length);(I=o[F-1])&&I.nodeType==8;)F--;for(;F<o.length;F++)if(I=o[F]){if(o[F]=null,I.nodeType==8){if(I.data.startsWith(`$s`))N++||(P=I);else if(N&&I.data.startsWith(`/$s`)&&!--N)break}else if(!N)break}}if(!P){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;P=c}(d=te(P=t.__c.__z||(t.__c.__z=P)))?(t.__e=P,c=d):t.__e=c,c&&=c.nextSibling}else o&&o.some(b)}else t.__e=r.__e;t.__k||=r.__k||[],e.then||ne(t),n.__e(e,t,r)}}else c=t.__e=re(r.__e,t,r,i,a,o,s,l,u,e);return(d=n.diffed)&&d(t),c}function te(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function ne(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(ne))}function L(e,t,r){for(var i=0;i<r.length;)R(r[i++],r[i++],r[i++]);n.__c&&n.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){n.__e(e,t.__v)}})}function re(e,t,r,i,a,o,s,c,l,u){var d,f,p,h,y,x,S,C,w,T=r.props||m,D=t.props,O=t.type;if(O==`svg`?a=`http://www.w3.org/2000/svg`:O==`math`?a=`http://www.w3.org/1998/Math/MathML`:a||=`http://www.w3.org/1999/xhtml`,o){for(d=0;d<o.length;d++)if((y=o[d])&&(O?y.localName==O:y.nodeType==3)){e=y,o[d]=null;break}}if(!e){if(C=u.ownerDocument||document,!O)return C.createTextNode(D);e=C.createElementNS(a,O,D.is&&D),c&&=(n.__m&&n.__m(t,o),!1),o=null}if(O){if(u=O==`template`&&e.content||e,o=O==`textarea`&&D.defaultValue!=null?null:o&&v.call(u.childNodes),!c&&o)for(T={},d=0;d<e.attributes.length;d++)T[(y=e.attributes[d]).name]=y.value;for(d in T)y=T[d],d==`dangerouslySetInnerHTML`?p=y:d==`children`||d in D||d==`value`&&`defaultValue`in D||d==`checked`&&`defaultChecked`in D||P(e,d,null,y,a);for(d in w=1&r.__u,D)y=D[d],d==`children`?h=y:d==`dangerouslySetInnerHTML`?f=y:d==`value`?x=y:d==`checked`?S=y:c&&typeof y!=`function`||!(T[d]!==y||w&&y!=null)||P(e,d,y,T[d],a);f?(c||p&&(f.__html==p.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[]):(p&&(e.textContent=``),(O==`foreignObject`||a==`http://www.w3.org/1998/Math/MathML`&&g.test(O))&&(a=`http://www.w3.org/1999/xhtml`),ee(u,_(h)?h:[h],t,r,i,a,o,s,o?o[0]:r.__k&&E(r,0),c,l),o&&o.some(b)),c&&O!=`textarea`||(d=`value`,O==`progress`&&x==null?e.removeAttribute(d):x==null||x===e[d]&&(O!=`progress`||x)||P(e,d,x,T[d],a),d=`checked`,S!=null&&S!=e[d]&&P(e,d,S,T[d],a))}else T===D||c&&e.data==D||(e.data=D);return e}function R(e,t,r,i){try{typeof e==`function`?t?t.__x=e(t)||1:(i&&=i.__c||i.__e)&&(t=i.__x)&&(i.__x=null,typeof t==`function`?t():e(null)):e.current=t}catch(e){n.__e(e,r)}}function ie(e,t,r){var i,a,o,s;if(n.unmount&&n.unmount(e),!(i=e.ref)||i.current&&i.current!=e.__e||R(i,null,t,e),i=e.__c){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){n.__e(e,t)}i.__P=i.__n=null}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&ie(i[s],t,typeof e.type!=`function`||r&&!e.props.__P);!r&&(i=e.__c)&&(i=i.__z)&&(a=te(i,o=[]))&&(i==e.__e&&o.some(b),b(a),b(i)),(i=e.__e)&&(r||b(i),i.__e&&(i.__e=null)),e.__e=e.__c=e.__=null}function ae(e,t,n){return this.constructor(e,n)}function oe(e,t){var r,i,a,o;n.__&&n.__(e,t),t.nodeType==9&&(t=t.documentElement),i=(r=e&&32&e.__u)?null:t.__k,t.__k=S(w,{children:[e]}),a=[],o=[],I(t,t.__k,i||m,m,t.namespaceURI,i?null:t.firstChild?v.call(t.childNodes):null,a,i?i.__e:t.firstChild,r,o),L(a,t.__k,o),t.__k.props.children=null}n={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((o=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=1),o&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw s=0,e}},r=0,i=function(e){return e!=null&&e.constructor===p},T.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=y({},this.state)),typeof e==`function`&&(e=e(y({},n),this.props)),e&&(y(n,e),this.__v&&(t&&this.__k.push(t),O(this)))},T.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),O(this))},T.prototype.render=w,a=[],s=0,c=function(e,t){return e.__v.__b-t.__v.__b},l=Symbol(),u=/(PointerCapture)$|Capture$/i,d=0,f={};var z,B,V,se,H=Object.is,U=0,ce=[],W=[],G=n,le=G.__b,ue=G.__r,de=G.diffed,fe=G.__c,pe=G.unmount,me=G.__;function K(e,t){G.__h&&G.__h(B,e,U||t),U=0;var n=B.__H||(B.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function he(e){return U=1,ge(we,e)}function ge(e,t,n){var r=K(z++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):we(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);H(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=B,!B.__f)){B.__f=!0;var i=B.shouldComponentUpdate;B.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,H(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function _e(e,t){var n=K(z++,4);!G.__s&&Ce(n.__H,t)&&(n.__P=!1,n.__=e,n.u=t,B.__h.push(n))}function ve(e,t){var n=K(z++,7);return Ce(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function ye(){var e;do{for(;e=W.shift();)try{q(e)}catch(t){G.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=ce.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(q),t.__h.some(J),t.__h=[]}catch(n){t.__h=[],G.__e(n,e.__v)}}}while(W.length)}G.__b=function(e){B=null,le&&le(e)},G.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),me&&me(e,t)},G.__r=function(e){ue&&ue(e),z=0;var t=(B=e.__c).__H;t&&(V==B?B.__h=[]:(t.__h.some(q),t.__h.some(J),z=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),V=B},G.diffed=function(e){de&&de(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&Se(ce.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),V=B=null},G.__c=function(e,t){t.some(function(e){try{e.__h.some(q),e.__h=e.__h.filter(function(e){return!e.__||J(e)})}catch(t){e.__h=[function(){throw t}]}}),fe&&fe(e,t)},G.unmount=function(e){pe&&pe(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n&&=n.__c}r.__P=n,Se(W.push(r))}else q(r)}catch(e){t=e}}),r.__H=void 0,t&&G.__e(t,r.__v))};var be=typeof requestAnimationFrame==`function`;function xe(e){var t,n=function(){clearTimeout(r),be&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);be&&(t=requestAnimationFrame(n))}function Se(e){e!=1&&se==G.requestAnimationFrame||((se=G.requestAnimationFrame)||xe)(ye)}function q(e){var t=B,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),B=t}function J(e){var t=B;e.__c=e.__(),B=t}function Ce(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!H(t,e[n])})}function we(e,t){return typeof t==`function`?t(e):t}var Y={INVALID_PDF:`INVALID_PDF`,PDF_PASSWORD_REQUIRED:`PDF_PASSWORD_REQUIRED`,PDF_LOAD_FAILED:`PDF_LOAD_FAILED`,CLIENT_KEY_REQUIRED:`CLIENT_KEY_REQUIRED`,CAMERA_INTERRUPTED:`CAMERA_INTERRUPTED`,CAMERA_NOT_FOUND:`CAMERA_NOT_FOUND`,CAMERA_PERMISSION_DENIED:`CAMERA_PERMISSION_DENIED`,CAMERA_UNAVAILABLE:`CAMERA_UNAVAILABLE`,CAMERA_UNSUPPORTED:`CAMERA_UNSUPPORTED`,CAPTURES_INCOMPLETE:`CAPTURES_INCOMPLETE`,DOCUMENT_BACK_CONTAINS_FACE:`DOCUMENT_BACK_CONTAINS_FACE`,DOCUMENT_BACK_NOT_DISTINCT:`DOCUMENT_BACK_NOT_DISTINCT`,DOCUMENT_BACK_REQUIRED:`DOCUMENT_BACK_REQUIRED`,DOCUMENT_BLURRY:`DOCUMENT_BLURRY`,DOCUMENT_FACE_GEOMETRY_INVALID:`DOCUMENT_FACE_GEOMETRY_INVALID`,DOCUMENT_FACE_NOT_CONTAINED:`DOCUMENT_FACE_NOT_CONTAINED`,DOCUMENT_FACE_NOT_FOUND:`DOCUMENT_FACE_NOT_FOUND`,DOCUMENT_NOT_FOUND:`DOCUMENT_NOT_FOUND`,DOCUMENT_NOT_RECOGNIZED:`DOCUMENT_NOT_RECOGNIZED`,DOCUMENT_TEXT_ALIGNMENT_INVALID:`DOCUMENT_TEXT_ALIGNMENT_INVALID`,DOCUMENT_TEXT_NOT_READABLE:`DOCUMENT_TEXT_NOT_READABLE`,DOCUMENT_VALIDATION_FAILED:`DOCUMENT_VALIDATION_FAILED`,FACEKEY_TOKEN_INVALID:`FACEKEY_TOKEN_INVALID`,FACEGATE_TOKEN_INVALID:`FACEGATE_TOKEN_INVALID`,FACEGATE_ABORTED:`FACEGATE_ABORTED`,FACEGATE_TIMEOUT:`FACEGATE_TIMEOUT`,FACE_NOT_FOUND:`FACE_NOT_FOUND`,FACE_MISMATCH:`FACE_MISMATCH`,FACE_NOT_USABLE:`FACE_NOT_USABLE`,IMAGE_ENCODE_FAILED:`IMAGE_ENCODE_FAILED`,IMAGE_PROCESSING_FAILED:`IMAGE_PROCESSING_FAILED`,INVALID_IMAGE:`INVALID_IMAGE`,INVALID_MODEL_OUTPUT:`INVALID_MODEL_OUTPUT`,INVALID_OPTIONS:`INVALID_OPTIONS`,INVALID_POSES:`INVALID_POSES`,INVALID_CLIENT_KEY:`INVALID_CLIENT_KEY`,INVALID_SERVICE_RESPONSE:`INVALID_SERVICE_RESPONSE`,MODEL_LOAD_FAILED:`MODEL_LOAD_FAILED`,NETWORK_ERROR:`NETWORK_ERROR`,REQUEST_TOO_LARGE:`REQUEST_TOO_LARGE`,NO_USABLE_CANDIDATES:`NO_USABLE_CANDIDATES`,NO_USABLE_REFERENCES:`NO_USABLE_REFERENCES`,POSE_BACKGROUND_MISMATCH:`POSE_BACKGROUND_MISMATCH`,POSE_IDENTITY_MISMATCH:`POSE_IDENTITY_MISMATCH`,SERVICE_UNAVAILABLE:`SERVICE_UNAVAILABLE`,SDK_NOT_READY:`SDK_NOT_READY`,SDK_CAPABILITY_NOT_CONFIGURED:`SDK_CAPABILITY_NOT_CONFIGURED`,UI_ELEMENT_NOT_FOUND:`UI_ELEMENT_NOT_FOUND`,VERIFICATION_CANCELLED:`VERIFICATION_CANCELLED`,VERIFICATION_SAVE_FAILED:`VERIFICATION_SAVE_FAILED`},Te=new Set(Object.values(Y)),X=e=>typeof e==`string`&&Te.has(e),Ee=({error:e,fallback:t=Y.INVALID_SERVICE_RESPONSE})=>typeof e==`object`&&e&&`code`in e&&X(e.code)?e.code:e instanceof Error&&X(e.message)?e.message:X(e)?e:t,De=[`ar`,`ch`,`de`,`en`,`es`,`fr`,`it`,`ja`,`pt`,`ru`,`zh`],Z=new Map,Oe=new Map,ke=async({language:e})=>{if(Z.has(e))return;let n=Oe.get(e);n||(n=fetch(t({filename:`locales/${e}.json`})).then(async e=>{if(!e.ok)throw Error(Y.INVALID_SERVICE_RESPONSE);return await e.json()}),Oe.set(e,n));try{Z.set(e,await n)}finally{Oe.delete(e)}},Ae=async({language:e})=>{let t=e??Q();await Promise.all([ke({language:t}),...t===`en`?[]:[ke({language:`en`})]])},je=({element:e,theme:t})=>{t&&(e.dataset.theme=t)},Q=()=>{let e=[navigator.language,...navigator.languages];for(let t of e){let e=t.toLowerCase();if(/^zh-(hk|mo|tw)\b/u.test(e))return`ch`;let n=e.split(`-`)[0];if(De.includes(n))return n}return`en`},Me={[Y.CAMERA_PERMISSION_DENIED]:`cameraPermissionDenied`,[Y.CAMERA_NOT_FOUND]:`cameraNotFound`,[Y.CAMERA_UNAVAILABLE]:`cameraUnavailable`,[Y.CAMERA_UNSUPPORTED]:`cameraUnavailable`,[Y.CAMERA_INTERRUPTED]:`cameraUnavailable`,[Y.NETWORK_ERROR]:`networkError`,[Y.SERVICE_UNAVAILABLE]:`serviceUnavailable`,[Y.MODEL_LOAD_FAILED]:`modelLoadFailed`,[Y.FACE_NOT_FOUND]:`faceNotFound`,[Y.NO_USABLE_CANDIDATES]:`faceNotFound`,[Y.FACE_NOT_USABLE]:`faceNotUsable`,[Y.NO_USABLE_REFERENCES]:`faceNotUsable`,[Y.DOCUMENT_NOT_FOUND]:`frameDocument`,[Y.DOCUMENT_NOT_RECOGNIZED]:`invalidDocument`,[Y.DOCUMENT_TEXT_NOT_READABLE]:`documentNotReadable`,[Y.DOCUMENT_BLURRY]:`documentBlurry`,[Y.DOCUMENT_FACE_NOT_FOUND]:`faceNotVisibleInDocument`,[Y.DOCUMENT_FACE_NOT_CONTAINED]:`documentAlignmentInvalid`,[Y.DOCUMENT_FACE_GEOMETRY_INVALID]:`documentAlignmentInvalid`,[Y.DOCUMENT_TEXT_ALIGNMENT_INVALID]:`documentAlignmentInvalid`,[Y.DOCUMENT_BACK_REQUIRED]:`frameDocumentBack`,[Y.CAPTURES_INCOMPLETE]:`capturesIncomplete`,[Y.DOCUMENT_VALIDATION_FAILED]:`documentValidationFailed`,[Y.INVALID_OPTIONS]:`invalidOptions`,[Y.INVALID_POSES]:`invalidPoses`,[Y.INVALID_SERVICE_RESPONSE]:`invalidServiceResponse`,[Y.POSE_BACKGROUND_MISMATCH]:`poseBackgroundMismatch`,[Y.POSE_IDENTITY_MISMATCH]:`poseIdentityMismatch`,[Y.IMAGE_ENCODE_FAILED]:`imageEncodeFailed`,[Y.IMAGE_PROCESSING_FAILED]:`imageProcessingFailed`,[Y.INVALID_IMAGE]:`invalidImage`,[Y.INVALID_PDF]:`invalidPdf`,[Y.PDF_PASSWORD_REQUIRED]:`pdfPasswordRequired`,[Y.PDF_LOAD_FAILED]:`pdfLoadFailed`,[Y.CLIENT_KEY_REQUIRED]:`clientKeyRequired`,[Y.VERIFICATION_SAVE_FAILED]:`verificationSaveFailed`,[Y.FACEGATE_ABORTED]:`verificationCancelled`,[Y.VERIFICATION_CANCELLED]:`verificationCancelled`},Ne=({language:e})=>{let t=e??Q(),n=e=>{let n=Z.get(t),r=Z.get(`en`);return n?.[e]??r?.[e]??e};return{translate:n,translateError:({error:e})=>{let t=Me[Ee({error:e})]??`verificationFailed`;return n(t)}}},Pe=async({milliseconds:e})=>{let t=Promise.withResolvers();setTimeout(()=>t.resolve(),e),await t.promise},$=new WeakMap,Fe=async({video:e,signal:t})=>{t?.throwIfAborted();let n=Promise.withResolvers(),r=e,i=$.get(e)??new Set,a=null,o=null,s=!1,c=c=>{s||(s=!0,a!==null&&r.cancelVideoFrameCallback?.(a),o!==null&&cancelAnimationFrame(o),t?.removeEventListener(`abort`,u),i.delete(l),i.size||$.delete(e),c?n.reject(c):n.resolve())},l=()=>c(new DOMException(Y.VERIFICATION_CANCELLED,`AbortError`)),u=()=>c(new DOMException(Y.VERIFICATION_CANCELLED,`AbortError`));i.add(l),$.set(e,i),t?.addEventListener(`abort`,u,{once:!0}),r.requestVideoFrameCallback?a=r.requestVideoFrameCallback(()=>c()):o=requestAnimationFrame(()=>c()),await n.promise},Ie=()=>{let e=/Android|iPhone|iPad|iPod|Mobile/i.test(navigator.userAgent),t=navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1;return e||t},Le=async()=>{let e=[],t=(t,n)=>{n||e.push(t)};if(t(`navigator.mediaDevices.getUserMedia`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.getUserMedia==`function`),t(`navigator.mediaDevices.enumerateDevices`,typeof navigator.mediaDevices==`object`&&typeof navigator.mediaDevices.enumerateDevices==`function`),t(`MediaStream`,typeof MediaStream<`u`),t(`MediaStreamTrack`,typeof MediaStreamTrack<`u`),t(`HTMLVideoElement`,typeof HTMLVideoElement<`u`),t(`createImageBitmap`,typeof createImageBitmap==`function`),t(`OffscreenCanvas`,typeof OffscreenCanvas<`u`),t(`OffscreenCanvas.getContext`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.getContext==`function`),t(`OffscreenCanvas.convertToBlob`,typeof OffscreenCanvas<`u`&&typeof OffscreenCanvas.prototype.convertToBlob==`function`),t(`WebAssembly`,typeof WebAssembly<`u`),t(`fetch`,typeof fetch==`function`),t(`Blob`,typeof Blob<`u`),t(`File`,typeof File<`u`),t(`URL.createObjectURL`,typeof URL.createObjectURL==`function`),t(`URL.revokeObjectURL`,typeof URL.revokeObjectURL==`function`),!e.includes(`OffscreenCanvas`)&&!e.includes(`OffscreenCanvas.getContext`)&&!e.includes(`OffscreenCanvas.convertToBlob`))try{let e=new OffscreenCanvas(1,1),n=e.getContext(`2d`);if(t(`OffscreenCanvas 2D context`,n!==null),n&&typeof createImageBitmap==`function`){let n=await e.convertToBlob({type:`image/jpeg`});t(`JPEG encoding`,n.type===`image/jpeg`),n.type===`image/jpeg`&&((await createImageBitmap(n)).close(),t(`JPEG decoding`,!0))}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}catch{e.includes(`JPEG encoding`)||t(`JPEG encoding`,!1),t(`JPEG decoding`,!1)}else t(`JPEG encoding`,!1),t(`JPEG decoding`,!1);return{supported:e.length===0,unsupportedFeatures:e}},Re=({video:e})=>{for(let t of $.get(e)??[])t();let t=e.srcObject;if(t instanceof MediaStream)for(let e of t.getTracks())e.stop();e.srcObject=null},ze=async({facingMode:e,video:t,signal:n})=>{if(!navigator.mediaDevices||typeof navigator.mediaDevices.getUserMedia!=`function`)throw Error(Y.CAMERA_UNSUPPORTED);let r={facingMode:{ideal:e}};Ie()||(r.width={ideal:1280},r.height={ideal:720});let i=()=>Re({video:t});n?.addEventListener(`abort`,i,{once:!0});try{let i=await navigator.mediaDevices.getUserMedia({video:r,audio:!1});if(n?.aborted){for(let e of i.getTracks())e.stop();n.throwIfAborted()}t.srcObject=i;let a=(await navigator.mediaDevices.enumerateDevices()).filter(({kind:e})=>e===`videoinput`).length>1?e:`user`;return await t.play(),n?.throwIfAborted(),a}catch(e){if(Re({video:t}),n?.aborted)throw new DOMException(Y.VERIFICATION_CANCELLED,`AbortError`);let r=e instanceof Error?e.name:``,i=Y.CAMERA_UNAVAILABLE;throw(r===`NotAllowedError`||r===`SecurityError`)&&(i=Y.CAMERA_PERMISSION_DENIED),r===`NotFoundError`&&(i=Y.CAMERA_NOT_FOUND),r===`AbortError`&&(i=Y.CAMERA_INTERRUPTED),Error(i,{cause:e})}finally{n?.removeEventListener(`abort`,i)}},Be=({element:e})=>{let t=e.getContext(`2d`);if(!t)throw Error(Y.IMAGE_PROCESSING_FAILED);t.clearRect(0,0,e.width,e.height)},Ve=async({canvas:e,quality:t})=>{try{let n=await e.convertToBlob({type:`image/jpeg`,quality:t});if(n.type!==`image/jpeg`)throw Error(Y.IMAGE_ENCODE_FAILED);return n}catch(e){throw Error(Y.IMAGE_ENCODE_FAILED,{cause:e})}},He=async({frame:e})=>{let t=new OffscreenCanvas(e.width,e.height),n=t.getContext(`2d`);if(!n)throw Error(Y.IMAGE_PROCESSING_FAILED);return n.drawImage(e,0,0),await Ve({canvas:t})},Ue=async({blob:e})=>{let t;try{t=await createImageBitmap(e)}catch(e){throw Error(Y.INVALID_IMAGE,{cause:e})}try{let e=Math.min(1,900/Math.max(t.width,t.height)),n=new OffscreenCanvas(Math.max(1,Math.round(t.width*e)),Math.max(1,Math.round(t.height*e))),r=n.getContext(`2d`);if(!r)throw Error(Y.IMAGE_PROCESSING_FAILED);return r.drawImage(t,0,0,n.width,n.height),await Ve({canvas:n,quality:.85})}finally{t.close()}},We=async({frame:e})=>{let t=Math.min(1,960/Math.max(e.width,e.height)),n=Math.max(1,Math.round(e.width*t)),r=Math.max(1,Math.round(e.height*t));return await createImageBitmap(e,{resizeWidth:n,resizeHeight:r})},Ge=async({image:e})=>{let t=new Uint8Array(await e.arrayBuffer()),n=``;for(let e=0;e<t.length;e+=32768)n+=String.fromCharCode(...t.subarray(e,e+32768));return`data:image/jpeg;base64,${btoa(n)}`};export{w as C,T as D,i as E,e as O,oe as S,n as T,Ee as _,Ge as a,ve as b,Re as c,je as d,Ne as f,Y as g,Pe as h,He as i,t as k,We as l,Ae as m,Be as n,Ie as o,Q as p,Ue as r,ze as s,Le as t,Fe as u,_e as v,x as w,C as x,he as y};
@@ -1,2 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{et as e}from"./eyeLevelCamera-aDRPs63K.js";var t=()=>({operation:e(`enroll`),phase:e(`loading`),instruction:e(null),guidance:e(null),corrective:e(null),progress:e({completed:0,total:1}),feedback:e(null),failures:e(0),error:e(null),debug:e([]),debugEnabled:e(!1),match:e(null),facingMode:e(null)});export{t};
@@ -1,8 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{A as e,B as t,D as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,R as m,T as h,W as g,X as _,Y as v,Z as y,a as b,b as x,c as S,et as C,f as w,g as T,h as E,i as D,j as O,k,m as A,n as j,o as M,p as N,r as ee,s as te,t as P,u as ne,v as re,z as F}from"./eyeLevelCamera-aDRPs63K.js";import{g as I,h as ie,i as ae,k as oe,n as se,u as ce}from"./media-Cejmtltt.js";var le=({box:e,image:t})=>{let n=Math.max(0,Math.floor(e.left)),r=Math.max(0,Math.floor(e.top)),i=Math.min(t.width,Math.ceil(e.right)),a=Math.min(t.height,Math.ceil(e.bottom)),o=Math.max(1,i-n),s=Math.max(1,a-r),c=new Uint8ClampedArray(o*s*4);for(let e=0;e<s;e+=1){let i=((r+e)*t.width+n)*4,a=e*o*4;c.set(t.data.subarray(i,i+o*4),a)}return{data:c,height:s,width:o}},ue=({height:e,image:t,width:n})=>{let r=new Uint8ClampedArray(n*e*4),i=t.width/n,a=t.height/e;for(let o=0;o<e;o+=1){let e=Math.min(t.height-1,Math.floor((o+.5)*a));for(let a=0;a<n;a+=1){let s=Math.min(t.width-1,Math.floor((a+.5)*i)),c=(e*t.width+s)*4,l=(o*n+a)*4;r[l]=t.data[c]??0,r[l+1]=t.data[c+1]??0,r[l+2]=t.data[c+2]??0,r[l+3]=255}}return{data:r,height:e,width:n}},de=.3,fe=.6,pe=12,me=3,he=async({session:e,tensor:t})=>{let n=performance.now();try{let n=await e.run({[e.inputNames[0]]:t}),r=n[e.outputNames[0]];if(!r){for(let e of Object.values(n))e.dispose();throw Error(v.INVALID_MODEL_OUTPUT)}for(let e of Object.values(n))e!==r&&e.dispose();return r}catch(e){throw Error(_({error:e,fallback:v.INFERENCE_FAILED}),{cause:e})}finally{i({category:`inference`,duration:performance.now()-n,key:`ocr`}),t.dispose()}},ge=({text:e})=>e.normalize(`NFKC`).replace(/\r\n?/gu,`
3
- `).replace(/[\t\f\v ]+/gu,` `).replace(/ *\n */gu,`
4
- `).trim(),_e=({pixels:e,runtime:t})=>{let n=Math.max(32,Math.ceil(e.width/32)*32),r=Math.max(32,Math.ceil(e.height/32)*32),i=new Float32Array(3*n*r),a=[.485,.456,.406],o=[.229,.224,.225];for(let e=0;e<3;e+=1)i.fill((1-(a[e]??0))/(o[e]??1),e*n*r,(e+1)*n*r);for(let t=0;t<e.height;t+=1)for(let s=0;s<e.width;s+=1){let c=(t*e.width+s)*4,l=t*n+s;for(let t=0;t<3;t+=1){let s=(e.data[c+t]??0)/255;i[t*n*r+l]=(s-(a[t]??0))/(o[t]??1)}}return{height:r,tensor:new t.Tensor(`float32`,i,[1,3,r,n]),width:n}},ve=({height:e,scores:t,width:n})=>{let r=new Uint8Array(n*e),i=[],a=new Int32Array(n*e);for(let o=0;o<t.length;o+=1){if(r[o]||(t[o]??0)<de)continue;let s=0,c=1,l=o%n,u=l,d=Math.floor(o/n),f=d,p=0,m=0;for(a[0]=o,r[o]=1;s<c;){let i=a[s]??0;s+=1;let o=i%n,h=Math.floor(i/n);l=Math.min(l,o),u=Math.max(u,o),d=Math.min(d,h),f=Math.max(f,h),p+=t[i]??0,m+=1;for(let i=-1;i<=1;i+=1)for(let s=-1;s<=1;s+=1){let l=o+s,u=h+i;if(l<0||l>=n||u<0||u>=e)continue;let d=u*n+l;r[d]||(t[d]??0)<de||(r[d]=1,a[c]=d,c+=1)}}let h=u-l+1,g=f-d+1;if(m<pe||h<me||g<me||p/m<fe)continue;let _=h*.25,v=g*.35;i.push({bottom:f+1+v,left:l-_,right:u+1+_,score:p/m,top:d-v})}return i},ye=({boxes:e})=>e.sort((e,t)=>{let n=e.bottom-e.top,r=t.bottom-t.top,i=Math.max(n,r)*.6;return Math.abs(e.top-t.top)<=i?e.left-t.left:e.top-t.top}),be=async({pixels:e,runtime:t,session:n})=>{let r=_e({pixels:e,runtime:t}),i=await he({session:n,tensor:r.tensor});try{let e=Number(i.dims.at(-2)),t=Number(i.dims.at(-1)),n=ve({height:e,scores:i.data,width:t}),a=r.width/t,o=r.height/e;return ye({boxes:n.map(({bottom:e,left:t,right:n,top:r})=>({bottom:e*o,left:t*a,right:n*a,top:r*o}))})}finally{i.dispose()}},xe=({pixels:e,runtime:t,model:n})=>{let r=n.recognitionHeight,i=Math.max(1,Math.round(e.width/e.height*r)),a=Math.max(32,Math.ceil(i/32)*32),o=ue({height:r,image:e,width:i}),s=new Float32Array(3*a*r);for(let e=0;e<r;e+=1)for(let t=0;t<i;t+=1){let c=(e*i+t)*4,l=e*a+t,u=o.data[c],d=o.data[c+1],f=o.data[c+2],p=u*.299+d*.587+f*.114;s[l]=((n.channels===`grayscale`?p:f)/255-.5)/.5,s[a*r+l]=((n.channels===`grayscale`?p:d)/255-.5)/.5,s[2*a*r+l]=((n.channels===`grayscale`?p:u)/255-.5)/.5}return new t.Tensor(`float32`,s,[1,3,r,a])},Se=({text:e})=>{let t=[],n=``;for(let r of e)/[a-zA-Z0-9 :*./%+-]/u.test(r)?n+=r:(n&&t.push(n),t.push(r),n=``);return n&&t.push(n),t.reverse().join(``)},Ce=({dictionary:e,output:t,reverse:n})=>{let r=Number(t.dims.at(-1)),i=Number(t.dims.at(-2)),a=e[0]===``?[...e]:[``,...e];if(a.length===r-1&&a.push(` `),a.length!==r)throw Error(v.OCR_DICTIONARY_MISMATCH);let o=-1,s=``;for(let e=0;e<i;e+=1){let n=e*r,i=0,c=t.data[n]??-1/0;for(let e=1;e<r;e+=1){let r=t.data[n+e]??-1/0;r<=c||(i=e,c=r)}i!==0&&i!==o&&(s+=a[i]??``),o=i}let c=s.trim();return n?Se({text:c}):c},we=({lines:e})=>e.filter((t,n)=>{let r=t.box.width*t.box.height;return!e.some((e,i)=>{if(i===n||!e.text.endsWith(t.text))return!1;let a=e.box.width*e.box.height;if(a<r||e.text.length===t.text.length&&a===r&&i>n)return!1;let o=Math.max(0,Math.min(t.box.x+t.box.width,e.box.x+e.box.width)-Math.max(t.box.x,e.box.x)),s=Math.max(0,Math.min(t.box.y+t.box.height,e.box.y+e.box.height)-Math.max(t.box.y,e.box.y));return r>0&&o*s>=r*.95})}),Te=async({adapter:e,model:t})=>{let[n,r,i]=await Promise.all([e.session(t.detection),e.session(t.recognition),e.load(t.dictionary)]),a=new TextDecoder().decode(i).replace(/\r/gu,``).split(`
5
- `);for(;a.at(-1)===``;)a.pop();return{model:t.id,assets:[t.detection,t.recognition,t.dictionary],recognize:async({image:i})=>{let o=await e.decode(i),s=await be({pixels:o,runtime:e.runtime,session:n}),c=[];for(let n of s){let i=xe({pixels:le({box:n,image:o}),runtime:e.runtime,model:t}),s=await he({session:r,tensor:i}),l;try{l=Ce({dictionary:a,output:s,reverse:t.reverseArabic})}finally{s.dispose()}if(!l)continue;let u={height:Math.max(0,Math.min(o.height,n.bottom)-Math.max(0,n.top)),width:Math.max(0,Math.min(o.width,n.right)-Math.max(0,n.left)),x:Math.max(0,n.left),y:Math.max(0,n.top)};c.push({angle:0,box:u,confidence:null,text:l,words:[{box:u,confidence:null,text:l}]})}let l=we({lines:c}),u=ge({text:l.map(e=>e.text).join(`
6
- `)});return{engine:t.id,height:o.height,lines:l,text:u,width:o.width}}}},L=`odm.ort`,Ee={tiny:{id:`tiny`,detection:`od.ort`,recognition:`or.ort`,dictionary:`ot.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},small:{id:`small`,detection:`ods.ort`,recognition:`ors.ort`,dictionary:`ots.txt`,recognitionHeight:48,channels:`grayscale`,reverseArabic:!1},japanese:{id:`japanese`,detection:L,recognition:`orj.ort`,dictionary:`otj.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-simplified":{id:`chinese-simplified`,detection:L,recognition:`orcs.ort`,dictionary:`otcs.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},"chinese-traditional":{id:`chinese-traditional`,detection:L,recognition:`orct.ort`,dictionary:`otct.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},cyrillic:{id:`cyrillic`,detection:L,recognition:`orc.ort`,dictionary:`otc.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!1},arabic:{id:`arabic`,detection:L,recognition:`ora.ort`,dictionary:`ota.txt`,recognitionHeight:48,channels:`bgr`,reverseArabic:!0}},De={eng:`eng`,en:`eng`,english:`eng`,latin:`latin`,deu:`latin`,de:`latin`,fra:`latin`,fr:`latin`,ita:`latin`,it:`latin`,por:`latin`,pt:`latin`,spa:`latin`,es:`latin`,jpn:`jpn`,ja:`jpn`,japan:`jpn`,chi_sim:`chi_sim`,zh:`chi_sim`,"zh-cn":`chi_sim`,"zh-hans":`chi_sim`,chi_tra:`chi_tra`,ch:`chi_tra`,"zh-tw":`chi_tra`,"zh-hant":`chi_tra`,rus:`rus`,ru:`rus`,ara:`ara`,ar:`ara`},Oe=({language:e})=>{let t=De[e.trim().toLowerCase()];if(!t)throw Error(v.OCR_LANGUAGE_UNSUPPORTED);return t},ke={eng:`tiny`,latin:`tiny`,jpn:`japanese`,chi_sim:`chinese-simplified`,chi_tra:`chinese-traditional`,rus:`cyrillic`,ara:`arabic`},Ae=({language:e,engine:t=`auto`})=>{let n=Oe({language:e}),r=Ee[t===`auto`?ke[n]:t];if(!r)throw Error(v.OCR_MODEL_UNSUPPORTED);return r},je=({language:e,engine:t})=>{let n=Ae({environment:`browser`,language:e,engine:t});return[n.detection,n.recognition,n.dictionary]},Me=({adapter:e,environment:t})=>{let n=new Map,r=async r=>{if(r.environment!==t)throw Error(v.OCR_ENVIRONMENT_MISMATCH);let i=Ae(r),a=n.get(i.id);a||(a=Te({adapter:e,model:i}),n.set(i.id,a));try{return await a}catch(e){throw n.get(i.id)===a&&n.delete(i.id),e}};return{getOcr:r,ocr:async({image:e,language:n=`eng`,engine:i})=>await(await r({environment:t,language:n,engine:i})).recognize({image:e})}},Ne=async({cache:e,key:t,load:n})=>{let r=e.get(t);r||(r=n(),e.set(t,r));try{return await r}catch(n){throw e.get(t)===r&&e.delete(t),n}},Pe=new Map,{getOcr:Fe,ocr:Ie}=Me({adapter:{decode:async e=>{if(!(e instanceof Blob)&&!(e instanceof Uint8Array))return e;let t=e instanceof Uint8Array?new Blob([e]):e,n=await l.createImageBitmap(t);try{return m({frame:n})}finally{n.close()}},load:async e=>await Ne({cache:Pe,key:e,load:async()=>{try{let t=await fetch(c({filename:e}));if(!t.ok)throw Error(v.MODEL_LOAD_FAILED);return new Uint8Array(await t.arrayBuffer())}catch(e){throw Error(v.MODEL_LOAD_FAILED,{cause:e})}}}),session:async e=>await a({filename:e}),runtime:s},environment:`browser`}),Le=.24,Re=.7,ze=.16,R=({data:e,height:t,text:n,width:r})=>{let i=new Uint8Array(r*t);for(let t=0;t<i.length;t+=1){let n=t*4;i[t]=Math.round((e[n]??0)*.299+(e[n+1]??0)*.587+(e[n+2]??0)*.114)}let a=[];for(let e=0;e<t;e+=1)for(let n=0;n<r;n+=1){let o=e*r+n,s=i[o]??0;n+1<r&&a.push(s>=(i[o+1]??0)),e+1<t&&a.push(s>=(i[o+r]??0))}let o=new Uint8Array(Math.ceil(a.length/8));for(let[e,t]of a.entries())t&&(o[Math.floor(e/8)]|=1<<e%8);let s=[];for(let e=0;e<8;e+=1)for(let n=0;n<8;n+=1){let a=0,o=0;for(let s=Math.floor(e*t/8);s<Math.floor((e+1)*t/8);s+=1)for(let e=Math.floor(n*r/8);e<Math.floor((n+1)*r/8);e+=1)a+=i[s*r+e]??0,o+=1;s.push(o?a/o:0)}let c=s.reduce((e,t)=>e+t,0)/s.length,l=new Uint8Array(Math.ceil(s.length/8));for(let[e,t]of s.entries())t>=c&&(l[Math.floor(e/8)]|=1<<e%8);return{edgeHash:o,appearanceHash:l,textTokens:[...new Set(n.toUpperCase().normalize(`NFKC`).split(/[^\p{L}\d]+/u).filter(e=>e.length>=3))]}},z=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},B=({front:e,current:t})=>{if(!e||!t||e.edgeHash.length!==t.edgeHash.length||e.appearanceHash.length!==t.appearanceHash.length)return{distinct:!1,imageDistance:null,textOverlap:null};let n=e.edgeHash.reduce((e,n,r)=>e+z({value:n^(t.edgeHash[r]??0)}),0)/(e.edgeHash.length*8),r=e.appearanceHash.reduce((e,n,r)=>e+z({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8),i=t.textTokens.filter(t=>e.textTokens.includes(t)).length,a=Math.min(e.textTokens.length,t.textTokens.length),o=e.textTokens.length>=3&&t.textTokens.length>=3?i/a:null;return{distinct:n>=Le&&r>=ze&&(o===null||o<Re),imageDistance:n,textOverlap:o}},Be=({text:e})=>{let t=e.toUpperCase().normalize(`NFKC`).split(`
7
- `).map(e=>e.replace(/\s+/g,``)),n=t.findIndex(e=>e.startsWith(`P<`)&&e.length>=44&&(e.match(/</g)||[]).length>=2);if(n>=0&&t.slice(n+1).find(e=>/^[A-Z0-9<]{44}$/u.test(e)))return!0;let r=t.findIndex(e=>/^[A-Z0-9]<[A-Z]{3}/u.test(e)&&e.length>=30);return r<0?!1:t.slice(r+1).filter(e=>/^[A-Z0-9<]{30}$/u.test(e)).length>=2},Ve={A:`AUT`,B:`BEL`,BG:`BGR`,CY:`CYP`,CZ:`CZE`,D:`DEU`,DK:`DNK`,E:`ESP`,EST:`EST`,F:`FRA`,FIN:`FIN`,GR:`GRC`,H:`HUN`,HR:`HRV`,I:`ITA`,IRL:`IRL`,L:`LUX`,LT:`LTU`,LV:`LVA`,M:`MLT`,NL:`NLD`,P:`PRT`,PL:`POL`,RO:`ROU`,S:`SWE`,SK:`SVK`,SLO:`SVN`},He=({line:e,start:t,end:n})=>{let r=[],i=0;for(let a of e.words){let o=e.text.indexOf(a.text,i);if(o<0||!a.text.length)continue;i=o+a.text.length;let s=Math.max(t,o),c=Math.min(n,i);c<=s||r.push({...a.box,x:a.box.x+a.box.width*(s-o)/a.text.length,width:a.box.width*(c-s)/a.text.length})}if(!r.length)return{...e.box,x:e.box.x+e.box.width*t/e.text.length,width:e.box.width*(n-t)/e.text.length};let a=Math.min(...r.map(e=>e.x)),o=Math.min(...r.map(e=>e.y));return{x:a,y:o,width:Math.max(...r.map(e=>e.x+e.width))-a,height:Math.max(...r.map(e=>e.y+e.height))-o}},Ue=({line:e})=>{let t=e.text;if(!t.trim()||e.confidence!==null&&e.confidence<=0)return[];if(/^\s*\d{1,2}[./-]\d{1,2}[./-]\d{2,4}\s*$/u.test(t))return[{text:t.trim(),box:e.box,label:null}];let n=[...t.matchAll(/(?:^|\s)(4[a-d]|1[0-4]|[1-9])(?:[.:)]\s*|\s+|$|(?=\d{1,2}[./-]\d))/giu)];if(!n.length)return[{text:t,box:e.box,label:null}];let r=[],i=n[0].index;i>0&&r.push({text:t.slice(0,i).trim(),box:He({line:e,start:0,end:i}),label:null});for(let[i,a]of n.entries()){let o=a.index+a[0].indexOf(a[1]),s=n[i+1]?.index??t.length,c=t.slice(a.index+a[0].length,s).trim(),l=He({line:e,start:o,end:s});r.push({text:c,box:l,label:a[1].toLowerCase()})}return r},V=({label:e,fragments:t})=>{let n=t.filter(t=>t.label===e);if(n.length!==1)return null;let r=n[0],i=r.box.height,a=r.text?[r]:[],o=t.filter(e=>e.label&&e!==r);for(let e of t){if(e.label||!e.text)continue;let t=e.box.y-r.box.y,n=Math.abs(t)<Math.max(i,e.box.height)*.5,s=t>=i*.5&&t<=i*2.5;(n||s)&&(e.box.x<r.box.x-i*.5||n&&r.text||o.some(t=>{let n=Math.abs(t.box.y-r.box.y)<i*.5&&t.box.x>r.box.x&&e.box.x>=t.box.x-i*.25,a=t.box.y>r.box.y+i*.5&&t.box.y<=e.box.y+e.box.height*.5&&Math.abs(t.box.x-r.box.x)<i*3;return n||a})||o.some(n=>{let a=e.box.y-n.box.y,o=a>=-i*.5&&a<=i*2.5&&e.box.x>=n.box.x-i*.5,s=Math.abs(t)+Math.abs(e.box.x-r.box.x),c=Math.abs(a)+Math.abs(e.box.x-n.box.x);return o&&c<=s})||a.push(e))}return a.sort((e,t)=>Math.abs(e.box.y-t.box.y)<i*.5?e.box.x-t.box.x:e.box.y-t.box.y),a.map(e=>e.text).join(` `).trim()||null},H=({text:e,allowTwoDigitYear:t=!1})=>{if(!e)return null;let n=e.match(/^(?:(\d{1,2})([./-])(\d{1,2})\2(\d{2,4})|(\d{4})-(\d{2})-(\d{2}))$/u);if(!n)return null;let r=n[4]??n[5],i=Number(n[3]??n[6]),a=Number(n[1]??n[7]),o=Number(r);if(r.length===2){if(!t)return null;let e=new Date,n=e.getUTCFullYear(),r=e.getUTCMonth()+1,s=e.getUTCDate(),c=[1900+o,2e3+o].filter(e=>{let t=n-e-+(r<i||r===i&&s<a);return t>=16&&t<=100});if(c.length!==1)return null;o=c[0]}return o<1e3||i<1||i>12||a<1||a>new Date(Date.UTC(o,i,0)).getUTCDate()?null:`${o}-${String(i).padStart(2,`0`)}-${String(a).padStart(2,`0`)}`},We=({ocr:e,image:t})=>{let n=new Set;for(let i of e.lines)for(let e of i.words.length?i.words:[i]){let i=Ve[e.text.trim().toUpperCase()],{x:a,y:o,width:s,height:c}=e.box;if(e.confidence!==null&&e.confidence<=0||!i||a<0||o<0||a+s>t.width*.3||o+c>t.height*.35)continue;let l=Math.max(s,c);r({...t,xStart:Math.max(0,a-l)/t.width,xEnd:Math.min(t.width,a+s+l)/t.width,yStart:Math.max(0,o-l)/t.height,yEnd:Math.min(t.height,o+c+l)/t.height,predicate:(e,t,n)=>n>45&&n>e*1.08&&n>t*1.04})>=.15&&n.add(i)}return n.size===1?[...n][0]:null},U=({ocr:e,image:t})=>{if(o(e))return null;let n=e.lines.flatMap(e=>Ue({line:e})),r=new Set(n.map(e=>e.label));if(!(r.has(`1`)||r.has(`2`))||![`3`,`4a`,`4b`,`5`].some(e=>r.has(e)))return null;let i=V({label:`1`,fragments:n}),a=V({label:`2`,fragments:n}),s=i&&/\p{L}/u.test(i)?i:null,c=a&&/\p{L}/u.test(a)?a:null,l=V({label:`3`,fragments:n})?.match(/^(\d{1,2}[./-]\d{1,2}[./-]\d{2,4}|\d{4}-\d{2}-\d{2})(?:\s+(.+))?$/u),u=H({allowTwoDigitYear:!0,text:l?l[1]:null}),d=l&&l[2]?.trim()||null,f=H({text:V({label:`4a`,fragments:n})}),p=H({text:V({label:`4b`,fragments:n})}),m=V({label:`4c`,fragments:n}),h=V({label:`5`,fragments:n}),g=We({ocr:e,image:t});return[s,c,u,d,f,p,m,h,g].some(Boolean)?k.parse({document:{source:`OCR`,type:`DRV`,issuing_country:g,issuing_authority:m,number:h,issue_date:f,expiry_date:p,optional_data:null},holder:{first_name:c,last_name:s,middle_name:null,birth_date:u,birth_place:d,sex:null,nationality:null,personal_number:null},address:null,raw_data:{mrz_lines:[],aamva_version:null}}):null},W=null,Ge=()=>globalThis.window===void 0?`zxing-wasm/reader`:c({filename:`zxing-wasm/reader/index.js`}),Ke=async()=>{let e=await import(Ge());return globalThis.window!==void 0&&e.setZXingModuleOverrides({locateFile:e=>c({filename:`zxing-wasm/reader/${e}`})}),e},qe=async()=>{W??=Ke();try{return await W}catch(e){throw W=null,e}},Je=async()=>{await(await qe()).prepareZXingModule({fireImmediately:!0})},Ye=async({image:e})=>{let t=await(await qe()).readBarcodes(e,{formats:[`PDF417`],tryHarder:!0});for(let e of t)try{let t=f(e.text);return{type:`aamva`,code:e.text,payload:t}}catch{}return null},Xe=({runtime:t,detector:r,alignment:i,text:a,readImage:o})=>{let s=async({image:e,language:s,engine:c,scanBarcodes:l=!1})=>{let u=e instanceof Blob?e:new Blob([e]),f=await t.createImageBitmap(u);try{let e=await r.analyzeDocument({frame:f});if(!e.detection)throw Error(v.DOCUMENT_NOT_FOUND);let u=await i.orientDocumentFrame({frame:f,polygon:e.detection.polygon,orientation:e.detection.orientation});if(!u)throw Error(v.IMAGE_PROCESSING_FAILED);try{let r=d({image:o({frame:f}),polygon:e.detection.polygon,sourceOrientation:u.orientation.rotation}),i=await a.readRectifiedText({frame:u.frame,language:s,engine:c,image:r});if(!i)throw Error(v.DOCUMENT_TEXT_NOT_READABLE);let p=o({frame:u.frame}),m=null;if(l){let e=t.createImageData(p.width,p.height);e.data.set(p.data),m=await Ye({image:e})}return{ocr:i,codes:[n({result:i}),m].filter(e=>e!==null),pixels:p,signature:R({...o({frame:u.frame,width:32,height:32}),text:i.text}),blurry:e.isBlurry}}finally{u.frame.close()}}finally{f.close()}};return{classifyDocument:async({document_front:t,document_back:n,language:r,engine:i})=>{let a=await s({image:t,language:r,engine:i}),o=p({image:a.pixels,text:a.ocr.text,codes:a.codes});if(!o)throw Error(v.DOCUMENT_NOT_RECOGNIZED);let c=o.europeanDrivingLicense?U({ocr:a.ocr,image:a.pixels}):null,l=e({document:o.document})&&n?await s({image:n,language:o.europeanDrivingLicense?`latin`:r,engine:o.europeanDrivingLicense?`tiny`:i,scanBarcodes:!0}):null,d=u({classification:{...o,identity:c},front:a,back:l}),f=[...d.reasons],m=l?l.blurry:!1;return(a.blurry||m)&&f.push(v.DOCUMENT_BLURRY),l&&!B({front:a.signature,current:l.signature}).distinct&&f.push(v.DOCUMENT_BACK_NOT_DISTINCT),{identity:c,...o,...d,reasons:f,valid:f.length===0,document_front:a.ocr,document_back:l?l.ocr:null}},detectDocument:async({image:e,language:t})=>{let n=await s({image:e,language:t,scanBarcodes:!0}),r=p({image:n.pixels,text:n.ocr.text,codes:n.codes});if(!r)throw Error(v.DOCUMENT_NOT_RECOGNIZED);let i=n.codes.find(e=>e.type===`mrz`),a=n.codes.find(e=>e.type===`aamva`),o=!!a||r.document===`id`&&!!i;return{identity:!o&&r.europeanDrivingLicense?U({ocr:n.ocr,image:n.pixels}):null,document_type:r.document===`driving_license`?`drv`:r.document,document_side:o?`back`:`front`,mrz_code:i?i.code:null,ammva_code:a?a.code:null}},extractDocumentCodes:async({images:e})=>{let t=[];for(let n of e){let e=await s({image:n,scanBarcodes:!0});t.push(...e.codes)}return[...new Map(t.map(e=>[`${e.type}:${e.code}`,e])).values()]}}},G=8,Ze=.16,Qe=({x:e,y:t,width:n,height:r})=>{let i=e/n,a=t/r;return i<.2||i>=.8||a<.2||a>=.8},$e=({value:e})=>{let t=0,n=e;for(;n;)t+=n&1,n>>>=1;return t},et=({image:e})=>{let t=[];for(let n=0;n<G;n+=1)for(let r=0;r<G;r+=1){let i=0,a=0,o=Math.floor(n*e.height/G),s=Math.floor((n+1)*e.height/G),c=Math.floor(r*e.width/G),l=Math.floor((r+1)*e.width/G);for(let t=o;t<s;t+=1)for(let n=c;n<l;n+=1){if(!Qe({height:e.height,width:e.width,x:n,y:t}))continue;let r=(t*e.width+n)*4;i+=(e.data[r]??0)*.299+(e.data[r+1]??0)*.587+(e.data[r+2]??0)*.114,a+=1}t.push(a?i/a:0)}let n=t.reduce((e,t)=>e+t,0)/t.length,r=new Uint8Array(Math.ceil(t.length/8));for(let[e,i]of t.entries())i>=n&&(r[Math.floor(e/8)]|=1<<e%8);return{appearanceHash:r}},tt=({first:e,second:t})=>{if(e.appearanceHash.length!==t.appearanceHash.length)return{distance:1,matched:!1};let n=e.appearanceHash.reduce((e,n,r)=>e+$e({value:n^(t.appearanceHash[r]??0)}),0)/(e.appearanceHash.length*8);return{distance:n,matched:n<=Ze}},nt=({candidate:e,identity:t})=>[{missing:!t?.holder.last_name,pattern:/^\s*1[.:)]\s+\p{L}/u},{missing:!t?.holder.first_name,pattern:/^\s*2[.:)]\s+\p{L}/u},{missing:!t?.holder.birth_date,pattern:/^\s*3[.:)]\s+\d{1,2}[./-]\d{1,2}[./-]\d{2,4}/u},{missing:!t?.document.number,pattern:/^\s*5[.:)]\s+[A-Z0-9]/u}].flatMap(({missing:t,pattern:n})=>{if(!t)return[];let r=e.lines.find(e=>n.test(e.text));return r?[r]:[]}),rt=({runtime:e,orientDocumentFrame:t,getOcr:r})=>{let i=`auto`,a=F({runtime:e}),o=async({engine:t=i,language:n=`eng`}={})=>{await r({environment:e.environment,engine:t,language:n})},s=async({classificationImage:t,engine:o=i,frame:s,language:c,image:l})=>{if(s.width<200||s.height<100)return null;let u=l??d({image:a({frame:s}),polygon:[{x:0,y:0},{x:s.width,y:0},{x:s.width,y:s.height},{x:0,y:s.height}]}),f=await(await r({environment:e.environment,engine:`tiny`,language:`latin`})).recognize({image:u}),m=n({result:f}),h=t??a({frame:s}),g=p({image:h,text:f.text,codes:m?[m]:[]}),_=g&&(g.document===`passport`||g.europeanDrivingLicense);if(g?.europeanDrivingLicense){let t=U({ocr:f,image:h});if(!O({identity:t})){let n=await(await r({environment:e.environment,engine:`small`,language:`latin`})).recognize({image:u}),i=U({ocr:n,image:h}),a=p({image:h,text:n.text,codes:[]});if(a?.europeanDrivingLicense&&O({identity:i}))f=n;else if(a?.europeanDrivingLicense){let e=nt({candidate:n,identity:t});if(e.length){let t=[...f.lines,...e];f={...f,lines:t,text:t.map(e=>e.text).join(`
8
- `)}}}}}else if(!_){let t=Oe({language:c??`eng`}),n=await r({environment:e.environment,engine:o,language:t});n.model!==`tiny`&&(f=await n.recognize({image:u}))}let v=s.width/f.width,y=s.height/f.height,b=({x:e,y:t,width:n,height:r})=>({x:e*v,y:t*y,width:n*v,height:r*y});return{...f,width:s.width,height:s.height,lines:f.lines.map(e=>({...e,box:b(e.box),words:e.words.map(e=>({...e,box:b(e.box)}))}))}},c=async e=>await s(e)??{height:e.frame.height,lines:[],text:``,width:e.frame.width};return{loadTextDetector:o,readRectifiedText:s,detectRectifiedText:c,detectDocumentText:async({engine:e=i,frame:n,language:r,polygon:a})=>{let o=await t({frame:n,polygon:a});if(!o)return{height:0,lines:[],rotation:0,text:``,width:0};try{return{...await c({engine:e,frame:o.frame,language:r}),rotation:o.orientation.rotation}}finally{o.frame.close()}}}},it=({runtime:e,documentAlignment:r,rectifiedDocumentFace:a,orientDocumentFrame:o,restoreRectifiedFace:s,analyzeDocument:c,faceDetection:l,faceMatch:f,textDetection:m})=>{let h=F({runtime:e}),_=({frame:n,text:r})=>{let i=e.createCanvas(32,32),a=i.getContext(`2d`,{willReadFrequently:!0});if(!a)throw Error(v.IMAGE_PROCESSING_FAILED);a.drawImage(n,0,0,i.width,i.height);let{data:o}=a.getImageData(0,0,i.width,i.height);return t({canvas:i}),R({data:o,height:32,text:r,width:32})},y=({current:e,front:t})=>{let n=B({current:e.signature,front:t}),r=[],i=e.signature?.textTokens.length??0,a=Be({text:e.text.text})||e.text.lines.length>=2&&i>=2;return e.detection||r.push(v.DOCUMENT_NOT_FOUND),e.documentAnalysis.isBlurry&&r.push(v.DOCUMENT_BLURRY),e.hasPictureFace&&r.push(v.DOCUMENT_BACK_CONTAINS_FACE),a||r.push(v.DOCUMENT_TEXT_NOT_READABLE),n.distinct||r.push(v.DOCUMENT_BACK_NOT_DISTINCT),{distinct:n.distinct,imageDistance:n.imageDistance,reasons:r,textOverlap:n.textOverlap,valid:r.length===0}},b=({alignment:e,detection:t,documentAnalysis:n,faceContained:r,requiresFace:i,text:a})=>{let o=[];return t||o.push(v.DOCUMENT_NOT_FOUND),n.isBlurry&&o.push(v.DOCUMENT_BLURRY),i&&!r&&o.push(v.DOCUMENT_FACE_NOT_CONTAINED),(!a.text||a.lines.length<2)&&o.push(v.DOCUMENT_TEXT_NOT_READABLE),!i||e.faceAreaValid&&e.faceDimensionsValid||o.push(v.DOCUMENT_FACE_GEOMETRY_INVALID),i&&(e.faceAdjacentTextLineCount<2||!e.textParallel||e.textSide!==`right`)&&o.push(v.DOCUMENT_TEXT_ALIGNMENT_INVALID),o},x=async({classification:e,codes:t,ocr:n,options:i,documentAnalysis:o,document:c,text:u,prepareForMatch:d})=>{let p=o.detection,m=i.requiresFace??!0,h={boundingRect:{height:c.height,width:c.width,x:0,y:0},polygon:[{x:0,y:0},{x:c.width,y:0},{x:c.width,y:c.height},{x:0,y:c.height}]},g=m?await l.detectDocumentFaces({detection:h,frame:c.frame}):{faces:[],pictureFaces:[],hasPictureFace:await l.detectDocumentFacePresence({detection:h,frame:c.frame})},y=g.pictureFaces.map(e=>s({document:c,face:e})),x=_({frame:c.frame,text:u.text}),S=t.find(e=>e.type===`mrz`)??null,C=null;for(let h of g.faces.length?g.faces:[null]){let _=h?s({document:c,face:h}):null,w=h?a({face:h}):null,T=m&&p?l.faceIsInsideDocument({detection:p,face:_})&&y.every(e=>l.faceIsInsideDocument({detection:p,face:e})):!1,E=r({documentSize:{height:u.height,width:u.width},face:w,lines:u.lines,maxAngleDifference:i.maxDocumentTextAngleDifference,maxFaceAreaRatio:i.maxDocumentFaceAreaRatio,maxFaceHeightRatio:i.maxDocumentFaceHeightRatio,maxFaceWidthRatio:i.maxDocumentFaceWidthRatio,minFaceAreaRatio:i.minDocumentFaceAreaRatio,minFaceHeightRatio:i.minDocumentFaceHeightRatio,minFaceWidthRatio:i.minDocumentFaceWidthRatio}),D=b({alignment:E,detection:p,documentAnalysis:o,faceContained:T,requiresFace:m,text:u});m&&!e&&D.push(v.DOCUMENT_NOT_RECOGNIZED),e?.europeanDrivingLicense&&!O({identity:e.identity})&&D.push(v.DOCUMENT_VALIDATION_FAILED);let k=D.length===0,A=null,j=null;if(m&&k&&h){let e=f.prepareFace({alignment:i.alignment??`eyes-nose-mouth`,face:h,frame:c.frame});if(!e)k=!1,D.push(v.FACE_NOT_USABLE);else if(d){let t=await f.preparedFaceArtifacts({face:e});A=t?.embeddings??null,j=t?.images??null,t||(k=!1,D.push(v.INVALID_MODEL_OUTPUT))}}let M={identity:e?e.identity:null,orientation:c.orientation,ocr:n,mrz:S,alignment:E,detection:p,documentAnalysis:o,documentKind:e?e.document:null,europeanDrivingLicense:e?e.europeanDrivingLicense:!1,codes:t,documentToSource:c.toSource,embeddings:A,images:j,face:_,faceContained:T,hasPictureFace:g.hasPictureFace??y.length>0,failureReasons:D,pictureFaces:y,signature:x,text:u,valid:k};if(M.valid)return M;C??=M}if(!C)throw Error(v.INTERNAL_ERROR);return C},S=async({frame:t,options:a,documentAnalysis:s,prepareForMatch:c=!1})=>{let l=s.detection;if(!l){let e={height:0,lines:[],text:``,width:0},t=r({documentSize:{height:e.height,width:e.width},face:null,lines:e.lines,maxAngleDifference:a.maxDocumentTextAngleDifference,maxFaceAreaRatio:a.maxDocumentFaceAreaRatio,maxFaceHeightRatio:a.maxDocumentFaceHeightRatio,maxFaceWidthRatio:a.maxDocumentFaceWidthRatio,minFaceAreaRatio:a.minDocumentFaceAreaRatio,minFaceHeightRatio:a.minDocumentFaceHeightRatio,minFaceWidthRatio:a.minDocumentFaceWidthRatio});return{identity:null,orientation:null,ocr:null,mrz:null,codes:[],europeanDrivingLicense:!1,alignment:t,detection:l,documentAnalysis:s,documentKind:null,documentToSource:null,embeddings:null,face:null,faceContained:!1,failureReasons:b({alignment:t,detection:l,documentAnalysis:s,faceContained:!1,requiresFace:a.requiresFace??!0,text:e}),images:null,pictureFaces:[],hasPictureFace:!1,signature:null,text:e,valid:!1}}let u=await o({frame:t,polygon:l.polygon,orientation:l.orientation});if(!u)throw Error(v.IMAGE_PROCESSING_FAILED);try{let r=performance.now(),o=d({image:h({frame:t}),polygon:l.polygon,sourceOrientation:u.orientation.rotation}),f=a.requiresFace===!1?`back`:`front`;i({category:`stages`,key:`ocr.prepare.${f}`,duration:performance.now()-r});let _=h({frame:u.frame}),v=await m.readRectifiedText({classificationImage:_,engine:a.ocrEngine,frame:u.frame,language:a.language,image:o}),y=v??{height:u.height,lines:[],text:``,width:u.width},b=v?n({result:v}):null,S=null;if(a.requiresFace===!1){let t=e.createImageData(_.width,_.height);t.data.set(_.data),S=await g({key:`barcode.back`,operation:()=>Ye({image:t})})}let C=[b,S].filter(e=>e!==null),w=p({image:_,text:y.text,codes:C}),T=a.requiresFace!==!1&&w?.europeanDrivingLicense&&v?U({ocr:v,image:_}):null,E=w?{...w,identity:T}:null;return await x({ocr:v,classification:E,codes:C,options:a,documentAnalysis:s,document:u,prepareForMatch:c,text:y})}finally{u.frame.close()}},C=async({frame:e,options:t,prepareForMatch:n=!1})=>{let r=await c({frame:e,minDocumentBoxRatio:t.minDocumentBoxRatio});return await S({frame:e,options:t,documentAnalysis:r,prepareForMatch:n})},w=({analysis:e,isBack:t,front:n})=>{if(!e.ocr)return[v.DOCUMENT_TEXT_NOT_READABLE];if(t&&!n)return[v.CAPTURES_INCOMPLETE];if(!t&&!e.documentKind)return[v.DOCUMENT_NOT_RECOGNIZED];let r={ocr:e.ocr,codes:e.codes},i=t&&n?n:{document:e.documentKind,europeanDrivingLicense:e.europeanDrivingLicense,identity:e.identity};return u({classification:i,front:t&&n?n:r,back:t?r:null}).reasons.filter(e=>t||e!==v.DOCUMENT_BACK_REQUIRED)};return{validateDocumentBack:y,analyzeDocumentFrame:C,hasValidDocumentSideData:e=>w(e).length===0,documentSideFailureReasons:w}},at=({runtime:e,document:n,readImage:r})=>async({image:i,timings:a})=>{let o=await e.createImageBitmap(new Blob([i]));try{let i=performance.now(),s=await n.analyzeDocument({frame:o});if(a&&(a.documentBoxDetectionMs=performance.now()-i),!s.detection)throw Error(v.DOCUMENT_NOT_FOUND);let{polygon:c,orientation:l}=s.detection,u=d({image:r({frame:o}),polygon:c,sourceOrientation:l?.rotation}),f=e.createCanvas(u.width,u.height);try{let t=f.getContext(`2d`);if(!t)throw Error(v.IMAGE_PROCESSING_FAILED);let n=e.createImageData(u.width,u.height);n.data.set(u.data),t.putImageData(n,0,0);let r=await f.convertToBlob({type:`image/png`});return new Uint8Array(await r.arrayBuffer())}finally{t({canvas:f})}}finally{o.close()}},{alignment:ot,document:K,face:q,text:st,match:J,flow:ct,classify:lt,prepareOcrImage:ut,warmup:dt}=(({runtime:e,getOcr:t,faceMatcher:n})=>{let r=F({runtime:e}),i=A({runtime:e}),a=T({runtime:e}),o=E({runtime:e,imageFromImageBitmap:r}),s=rt({runtime:e,getOcr:t,...i}),c=N({runtime:e,...i,...a,...o,faceDetection:o,faceMatcher:n});return{alignment:i,document:a,face:o,text:s,match:c,flow:it({runtime:e,...i,...a,faceDetection:o,faceMatch:c,textDetection:s}),classify:Xe({runtime:e,detector:a,alignment:i,text:s,readImage:r}),prepareOcrImage:at({runtime:e,document:a,readImage:r}),warmup:async()=>{await Promise.all([o.loadFaceDetector({faceDetector:`standard`}),c.loadFaceMatch(),a.loadDocumentBoxDetector(),a.loadDocumentOrientationDetector(),s.loadTextDetector({engine:`tiny`,language:`latin`}),Je()])}}})({runtime:l,getOcr:Fe}),{classifyDocument:ft,detectDocument:pt,extractDocumentCodes:mt}=lt,{detectDocumentOrientation:ht,loadDocumentOrientationDetector:gt}=K,_t=[`faceStraight`,`faceUp`,`faceDown`,`faceLeft`,`faceRight`],Y=[`faceStraight`,`faceUp`,`faceLeft`,`faceRight`],X=[..._t,`faceSmile`,`faceWinkLeft`,`faceTiltLeft`,`faceTiltRight`];y(X);var vt={faceStraight:0,faceLeft:1,faceRight:1,faceUp:2,faceDown:2,faceTiltLeft:3,faceTiltRight:3,faceSmile:4,faceWinkLeft:5},Z={faceStraight:`face_straight`,faceUp:`face_up`,faceDown:`face_down`,faceLeft:`face_left`,faceRight:`face_right`,faceSmile:`face_smile`,faceWinkLeft:`face_wink_left`,faceTiltLeft:`face_tilt_left`,faceTiltRight:`face_tilt_right`};y(Z),_t.map(e=>Z[e]),Y.map(e=>Z[e]);var yt=async()=>{let e=await fetch(oe({filename:`faceMeshLines.json`}));if(!e.ok)throw Error(I.INVALID_SERVICE_RESPONSE);return await e.json()},bt=async()=>{await yt()},{transformPoint:xt}=ot,St=[`tessellation`,`contours`,`faceOval`,`lips`,`leftEye`,`rightEye`,`leftEyebrow`,`rightEyebrow`,`leftIris`,`rightIris`],Ct=async({color:e,context:t,result:n})=>{let r=await yt();t.beginPath();for(let e of St)for(let{start:i,end:a}of r[e]){let e=n.mesh.landmarks[i],r=n.mesh.landmarks[a];e&&r&&(t.moveTo(e.x,e.y),t.lineTo(r.x,r.y))}t.strokeStyle=e,t.lineWidth=1,t.stroke()},wt=({backgroundColor:e,color:t,context:n,line:r,toSource:i})=>{if(!r.text)return;let{x:a,y:o,width:s,height:c}=r.box,l=[{x:a,y:o},{x:a+s,y:o},{x:a+s,y:o+c},{x:a,y:o+c}].map(e=>xt({homography:i,point:e})),u=l[0],d=l[1],f=l[3];if(!u||!d||!f)return;let p=Math.hypot(d.x-u.x,d.y-u.y),m=Math.hypot(f.x-u.x,f.y-u.y),h=Math.max(8,Math.min(16,m*.7)),g=Math.max(0,p-4),_=Math.atan2(d.y-u.y,d.x-u.x);n.beginPath(),n.moveTo(u.x,u.y);for(let e of l.slice(1))n.lineTo(e.x,e.y);n.closePath(),n.strokeStyle=t,n.lineWidth=1,n.stroke(),n.save(),n.clip(),n.translate(u.x+2,u.y+2),n.rotate(_),n.font=`${h}px sans-serif`,n.textBaseline=`top`,n.lineWidth=3,n.strokeStyle=e,n.strokeText(r.text,0,0,g),n.fillStyle=t,n.fillText(r.text,0,0,g),n.restore()},Tt=async({element:e,meshLineColor:t,overlayColor:n=`transparent`,result:r})=>{let i=e.getContext(`2d`);if(!i)throw Error(I.IMAGE_PROCESSING_FAILED);let a=r?.mesh.width??e.width,o=r?.mesh.height??e.height;e.width!==a&&(e.width=a),e.height!==o&&(e.height=o),se({element:e}),n!==`transparent`&&(i.fillStyle=n,i.fillRect(0,0,a,o)),r&&await Ct({color:t,context:i,result:r})},Et=async({documentFaceBoxColor:e,documentFaceMeshColor:t,documentBoxColor:n,element:r,detection:i,face:a,height:o,ocrLines:s=[],ocrToSource:c=null,overlayColor:l=`transparent`,textColor:u,width:d})=>{let f=r.getContext(`2d`);if(f&&d&&o){if(r.width!==d&&(r.width=d),r.height!==o&&(r.height=o),se({element:r}),l!==`transparent`&&(f.fillStyle=l,f.fillRect(0,0,d,o)),i){f.strokeStyle=n,f.lineWidth=3,f.beginPath();for(let[e,t]of i.polygon.entries())e?f.lineTo(t.x,t.y):f.moveTo(t.x,t.y);f.closePath(),f.stroke()}if(a&&(f.strokeStyle=e,f.lineWidth=2,f.strokeRect(a.boundingRect.x,a.boundingRect.y,a.boundingRect.width,a.boundingRect.height),await Ct({color:t,context:f,result:a})),c){let e=getComputedStyle(r).color;for(let t of s)wt({backgroundColor:e,color:u,context:f,line:t,toSource:c})}}},Q={documentTargets:{front:`frameDocument`,back:`frameDocumentBack`,passport:`framePassport`},rejections:{FACE_NOT_DETECTED:`faceNotFound`,FACE_IN_POLYGON:`faceInPolygon`,FACE_TOO_SMALL:`faceTooSmall`,FACE_CENTER_MOVE_LEFT:`faceCenterMoveLeft`,FACE_CENTER_MOVE_RIGHT:`faceCenterMoveRight`,FACE_CENTER_MOVE_UP:`faceCenterMoveUp`,FACE_CENTER_MOVE_DOWN:`faceCenterMoveDown`,FACE_STABILITY_REQUIRED:`stayStill`,DOCUMENT_NOT_DETECTED:`documentNotDetected`,DOCUMENT_BOX_TOO_SMALL:`documentBoxTooSmall`,DOCUMENT_BOX_TOO_LARGE:`documentBoxTooLarge`,DOCUMENT_BOX_NEAR_EDGE:`documentBoxNearEdge`,DOCUMENT_BOX_TOUCHES_EDGES:`documentBoxTouchesEdges`,DOCUMENT_SHAPE_INVALID:`documentShapeInvalid`,DOCUMENT_NOT_SUPPORTED:`documentNotSupported`,DOCUMENT_BLURRY:`documentBlurry`,DOCUMENT_FRONT_FACE_NOT_DETECTED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_NOT_CONTAINED:`faceNotVisibleInDocument`,DOCUMENT_FRONT_FACE_TOO_SMALL:`documentPhotoTooSmall`,DOCUMENT_FRONT_FACE_SIZE_INVALID:`documentAlignmentInvalid`,DOCUMENT_FRONT_LAYOUT_INVALID:`documentAlignmentInvalid`,DOCUMENT_TEXT_NOT_READABLE:`documentNotReadable`,DOCUMENT_NOT_RECOGNIZED:`invalidDocument`,DOCUMENT_CODE_NOT_READABLE:`passportMrzNotReadable`,DOCUMENT_BACK_HAS_FACE:`documentBackHasFace`,DOCUMENT_BACK_SAME_AS_FRONT:`documentBackSameAsFront`,DOCUMENT_STABILITY_REQUIRED:`holdDocumentStill`,DOCUMENT_VALIDATION_FAILED:`documentValidationFailed`}},Dt=({target:e})=>Q.documentTargets[e],Ot=({code:e})=>e===`FACE_CAMERA_ALIGNMENT_REQUIRED`?P():e in Q.rejections?Q.rejections[e]:w({code:e}),{detectPictureFaces:kt}=q,$={FACEKEY_LOWER_HEAD:`FACE_PITCH_LOOK_DOWN`,FACEKEY_LOWER_HEAD_LESS:`FACE_PITCH_LOWER_LESS`,FACEKEY_RAISE_HEAD:`FACE_PITCH_LOOK_UP`,FACEKEY_RAISE_HEAD_LESS:`FACE_PITCH_RAISE_LESS`,FACEKEY_TILT_HEAD_LEFT:`FACE_ROLL_TILT_LEFT`,FACEKEY_TILT_HEAD_LESS:`FACE_ROLL_TILT_LESS`,FACEKEY_TILT_HEAD_RIGHT:`FACE_ROLL_TILT_RIGHT`,FACEKEY_TURN_HEAD_LEFT:`FACE_YAW_TURN_LEFT`,FACEKEY_TURN_HEAD_LESS:`FACE_YAW_TURN_LESS`,FACEKEY_TURN_HEAD_RIGHT:`FACE_YAW_TURN_RIGHT`,FACEKEY_SMILE_REQUIRED:`FACE_SMILE_REQUIRED`,FACEKEY_WINK_LEFT_REQUIRED:`FACE_WINK_LEFT_REQUIRED`},At=({face:e,name:t})=>e.blendshapes[t]??0,jt=({face:e,frame:t})=>e.boundingRect.height/t.height<.4?`FACE_TOO_SMALL`:null,Mt=({face:e,pose:t,options:n})=>{let r=x({...e,pose:t,options:n});return r?$[r]:null},Nt=({face:e,pose:t,options:n})=>Mt({face:e,pose:t,options:n})===null,Pt=async({capture:e,pose:t,options:n,poseOptions:r,requireEyeLevelCamera:i})=>{let a=await J.imageBitmap({blob:e});try{let e=await kt(a),o=e.length===1?e[0]:null;if(!o||!Nt({face:o,pose:t,options:r})||j({pitch:o.pitch,pose:t,requireEyeLevelCamera:i,options:r}))return null;let s=J.prepareFace({alignment:n.alignment,face:o,frame:a});return s?await J.preparedFaceArtifacts({face:s}):null}finally{a.close()}},{detectDocumentBox:Ft}=K,{detectFace:It}=q,Lt=({view:e,display:t,isActive:n,notifyCapturesChanged:r})=>{let i=e.ref,a=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,o=({face:e,frame:n})=>{let r=e.boundingRect.x+e.boundingRect.width/2,i=e.boundingRect.y+e.boundingRect.height/2,a=(t.cameraFacingMode.value===`user`?n.width-r:r)/n.width,o=i/n.height;return a<.4?`FACE_CENTER_MOVE_RIGHT`:a>.6?`FACE_CENTER_MOVE_LEFT`:o<.4?`FACE_CENTER_MOVE_DOWN`:o>.6?`FACE_CENTER_MOVE_UP`:null},s=async({frame:s,session:c,state:l,options:u})=>{let d=performance.now(),f=null,p=!1;try{f=await It(s);let e=f?await Ft(s):null;if(p=!!(f&&e&&h({face:f,polygon:e.polygon})),!n({flow:`face`,session:c,state:l}))return!1;if(u.showFaceOverlay&&await Tt({element:i.mesh,meshLineColor:u.faceMeshColor,overlayColor:u.faceOverlayColor,result:f}),!f){l.poseStableFrames=0;let e=a({state:l});return t.feedback.value={flow:`face`,code:`FACE_NOT_DETECTED`,pose:e},!1}if(p)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_IN_POLYGON`,pose:a({state:l})},!1;let d=a({state:l}),m=jt({face:f,frame:s});if(m)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:m,pose:d},!1;let g=o({face:f,frame:s});if(g)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:g,pose:d},!1;let _=j({pitch:f.pitch,pose:d,requireEyeLevelCamera:u.requireEyeLevelCamera,options:u});if(_)return l.poseStableFrames=0,l.guidanceCodeState=b(),l.correctiveState=D(),t.guidance.value=null,t.corrective.value=null,t.feedback.value={flow:`face`,code:_,pose:d},!1;let v={pitch:f.pitch,yaw:f.yaw,roll:f.roll},y=ee({alignment:v,blendshapes:f.blendshapes,neutral:l.neutralPose,pose:d,options:u});l.guidanceCodeState=te({state:l.guidanceCodeState,code:y.code,requiredFrames:3}),t.guidance.value=y;let x=y.code?$[y.code]:null,C=l.guidanceCodeState.published?$[l.guidanceCodeState.published]:null,w=S({pose:d,corrective:C?Ot({code:C}):null}).corrective,T=performance.now();if(l.correctiveState=M({label:w,now:T,state:l.correctiveState}),t.corrective.value=ne({label:w,now:T,state:l.correctiveState}),x)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:C,pose:d},!1;if(d===`faceStraight`&&(l.neutralPose=v),l.poseStableFrames+=1,l.poseStableFrames<u.requiredFaceStableFrames)return t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;t.feedback.value={flow:`face`,code:null,pose:d};let E=await ae({frame:s}),O=await Pt({capture:E,pose:d,options:l.matchOptions,poseOptions:u,requireEyeLevelCamera:u.requireEyeLevelCamera});if(!n({flow:`face`,session:c,state:l}))return!1;if(!O)return l.poseStableFrames=0,t.feedback.value={flow:`face`,code:`FACE_STABILITY_REQUIRED`,pose:d},!1;let k=et({image:J.readImage({frame:s,width:32,height:32})}),A=l.previousPoseBackgroundSignature;if(A&&!tt({first:A,second:k}).matched)throw Error(I.POSE_BACKGROUND_MISMATCH);let N=l.faceEmbeddings.faceStraight;if(N&&re({first:N,second:O.embeddings})<=l.matchOptions.threshold)throw Error(I.POSE_IDENTITY_MISMATCH);let P=d;return l.captures[P]=E,l.preparedCaptures[P]=O.images,l.faceEmbeddings[P]=O.embeddings,l.previousPoseBackgroundSignature=k,r({state:l}),t.success.value=!0,await ie({milliseconds:400}),t.success.value=!1,n({flow:`face`,session:c,state:l})?(l.poseIndex+=1,l.poseStableFrames=0,l.guidanceCodeState=b(),l.correctiveState=D(),t.corrective.value=null,t.progress.value={completed:l.poseIndex,total:l.faceSequence.length},l.poseIndex===l.faceSequence.length?(t.feedback.value=null,!0):(t.feedback.value={flow:`face`,pose:a({state:l}),code:null},!1)):!1}finally{n({flow:`face`,session:c,state:l})&&e.collectFaceDebug({face:f,faceInPolygon:p,processingTimeMilliseconds:performance.now()-d,state:l}),s.close()}};return{runFaceLoop:async({session:e,state:r,options:a})=>{for(;n({flow:`face`,session:e,state:r});){if(await ce({video:i.video}),!n({flow:`face`,session:e,state:r}))return;let o=await createImageBitmap(i.video);if(await s({frame:o,session:e,state:r,options:a})){r.flow=null,t.debug.value=[],t.guidance.value=null;return}}}}},Rt=({captures:e,state:t})=>t.faceSequence.every(n=>!!(e[n]&&t.preparedCaptures[n]&&t.faceEmbeddings[n])),zt=({captures:e,state:t})=>{if(!Rt({captures:e,state:t}))throw Error(I.CAPTURES_INCOMPLETE);let n=[...t.faceSequence];return{faces:n.map(t=>e[t]).filter(e=>!!e),poses:n,embeddings:n.map(e=>t.faceEmbeddings[e]).filter(e=>!!e)}},Bt=({sequence:e})=>{let t=[...e];for(let e=t.length-1;e>0;--e){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},Vt=({sequence:e})=>[...e].sort((e,t)=>vt[e]-vt[t]),Ht=({poses:e,randomize:t})=>{let n=e===`all`?[...X]:e??Y;if(!n.length)throw Error(I.INVALID_POSES);let r=[...new Set(n)];if(r.length!==n.length||r.some(e=>!X.includes(e))||r[0]!==`faceStraight`||Y.some(e=>!r.includes(e)))throw Error(I.INVALID_POSES);let i=r.slice(1);return t?[`faceStraight`,...Bt({sequence:i})]:[`faceStraight`,...Vt({sequence:i})]},Ut=()=>({activity:C(null),error:C(null),retry:C(null),feedback:C(null),guidance:C(null),corrective:C(null),progress:C({completed:0,total:0}),success:C(!1),cameraSize:C(null),cameraFacingMode:C(null),debug:C([]),debugEnabled:C(!1)});export{J as _,Rt as a,B as b,Ot as c,Z as d,Y as f,gt as g,ct as h,zt as i,Et as l,q as m,Lt as n,Ht as o,K as p,At as r,Dt as s,Ut as t,bt as u,st as v,je as x,Je as y};
@@ -1,3 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{S as e,l as t,t as n,w as r}from"./eyeLevelCamera-aDRPs63K.js";import{C as i,S as a,c as o,d as s,f as c,g as l,v as u,x as d}from"./media-Cejmtltt.js";import"./presentation-B4P1537m.js";import{n as f,r as p,t as m}from"./PoseSuccess-DDx23oJD.js";import{n as h,t as g}from"./PoseSilhouette-V9BxuMwo.js";var _=`/*! tailwindcss v4.3.4 | MIT License | https://tailwindcss.com */
3
- [data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--theme-canvas:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202020);--theme-surface-subtle:var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#2c2c2c);--theme-text:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-text-muted:var(--lightningcss-light,#626262)var(--lightningcss-dark,#a3a3a3);--theme-text-inverse:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-border:var(--lightningcss-light,#bfbfbf)var(--lightningcss-dark,#606060);--theme-primary:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-primary-hover:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--theme-primary-active:var(--lightningcss-light,#404040)var(--lightningcss-dark,#d4d4d4);--theme-focus:var(--lightningcss-light,#525252)var(--lightningcss-dark,#d4d4d4);--theme-cocoa:var(--lightningcss-light,#6b4423)var(--lightningcss-dark,#d29a63);--theme-mint:var(--lightningcss-light,#116b4c)var(--lightningcss-dark,#38efb0);--theme-cyan:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#22d3ee);--theme-violet:var(--lightningcss-light,#5b21b6)var(--lightningcss-dark,#b69cff);--theme-berry:var(--lightningcss-light,#a21caf)var(--lightningcss-dark,#e879f9);--theme-danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff6b6b);--theme-danger-surface:var(--lightningcss-light,#fee2e2)var(--lightningcss-dark,#451a19);--theme-success:var(--lightningcss-light,#087443)var(--lightningcss-dark,#4ade80);--theme-success-surface:var(--lightningcss-light,#e7f6ee)var(--lightningcss-dark,#123c2b);--theme-warning:var(--lightningcss-light,#a16207)var(--lightningcss-dark,#ffc93c);--theme-warning-surface:var(--lightningcss-light,#fef3c7)var(--lightningcss-dark,#422006)}@media (prefers-color-scheme:dark){[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light: ;--lightningcss-dark:initial}}:is(.dark,[data-theme=dark]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is(.light,[data-theme=light]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-pose-silhouette],[data-pose-arrow]{display:block;overflow:visible}[data-pose-silhouette] [data-pose-head]{fill:none;stroke:var(--theme-border);stroke-width:1.5px;stroke-dasharray:5 5}[data-pose-silhouette] [data-pose-eye]{fill:var(--theme-text-muted);stroke:none}[data-pose-silhouette] [data-pose-mouth],[data-pose-silhouette] [data-pose-eye-closed],[data-pose-motion]{fill:none;stroke:var(--theme-cyan);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}[data-pose-motion]{stroke-dasharray:6 6;animation:.9s linear infinite pose-motion}[data-pose-arrowhead]{fill:var(--theme-cyan);stroke:none}[data-pose-arrow] [data-pose-motion]{stroke:var(--theme-mint);stroke-width:4px;stroke-dasharray:none;animation:none}[data-pose-arrow] [data-pose-arrowhead]{fill:var(--theme-mint)}[data-pose-arrow] [data-pose-smile]{fill:none;stroke:var(--theme-mint);stroke-width:4px;stroke-linecap:round}[data-pose-progress][data-variant=bar]{gap:4px;width:100%;display:flex}[data-pose-progress][data-variant=bar] [data-pose-progress-step]{background:var(--theme-border);border-radius:9999px;flex:1;height:4px;transition:background .2s}[data-pose-progress][data-variant=bar] [data-pose-progress-step][data-complete]{background:var(--theme-mint)}[data-pose-progress][data-variant=ring]{display:block;overflow:visible}[data-pose-progress][data-variant=ring] [data-pose-progress-step]{fill:none;stroke:var(--theme-border);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}[data-pose-progress][data-variant=ring] [data-pose-progress-step][data-complete]{stroke:var(--theme-mint)}[data-pose-success]{opacity:0;pointer-events:none}[data-pose-success] circle{fill:var(--theme-success-surface);stroke:var(--theme-mint);stroke-width:2px}[data-pose-success] path{fill:none;stroke:var(--theme-mint);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}[data-pose-success][data-visible]{animation:.42s ease-out both pose-success-appear}[data-pose-success][data-visible] path{animation:.24s ease-out 60ms both pose-success-draw}@keyframes pose-motion{to{stroke-dashoffset:-12px}}@keyframes pose-success-appear{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pose-success-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){[data-pose-motion]{animation:none}[data-pose-success][data-visible]{opacity:1}[data-pose-success][data-visible] path{stroke-dashoffset:0}}[data-facekey-dialog]{box-sizing:border-box;width:100%;max-width:none;height:100dvh;max-height:none;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));background:var(--theme-surface);color:var(--theme-text);border:0;margin:0;font-family:ui-sans-serif,system-ui,sans-serif;position:fixed;inset:0;overflow-y:auto}[data-facekey-dialog]::backdrop{background:var(--theme-text)}@supports (color:color-mix(in lab, red, red)){[data-facekey-dialog]::backdrop{background:color-mix(in srgb, var(--theme-text) 40%, transparent)}}[data-facekey-dialog][open]{flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}[data-facekey-dialog] [data-facekey-title]{letter-spacing:-.7px;margin:0;font-size:28px;font-weight:600}[data-facekey-dialog] [data-facekey-camera]{aspect-ratio:1;flex-shrink:0;width:min(60vw,240px,38dvh);position:relative}[data-facekey-dialog] [data-facekey-camera] video{object-fit:cover;background:var(--theme-surface-subtle);border-radius:2147483647px;width:100%;height:100%}[data-facekey-dialog] [data-facekey-camera][data-mirrored] video{transform:scaleX(-1)}[data-facekey-dialog] [data-facekey-camera]>[data-pose-progress]{width:calc(100% + 28px);height:calc(100% + 28px);position:absolute;inset:-14px;overflow:visible}[data-facekey-dialog] [data-facekey-debug]{top:max(8px, env(safe-area-inset-top));z-index:1;border:1px solid var(--theme-border);background:var(--theme-surface);border-radius:.375rem;width:min(220px,100% - 16px);padding:8px 10px;position:fixed;left:8px}@supports (color:color-mix(in lab, red, red)){[data-facekey-dialog] [data-facekey-debug]{background:color-mix(in srgb, var(--theme-surface) 75%, transparent)}}[data-facekey-dialog] [data-facekey-debug]{color:var(--theme-text-muted);pointer-events:none;box-shadow:0 4px 14px var(--theme-border);font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}@supports (color:color-mix(in lab, red, red)){[data-facekey-dialog] [data-facekey-debug]{box-shadow:0 4px 14px color-mix(in srgb, var(--theme-border) 35%, transparent)}}[data-facekey-dialog] [data-facekey-debug]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-facekey-dialog] [data-facekey-debug].hidden{display:none}[data-facekey-dialog] [data-facekey-debug] [data-valid=true]{color:var(--theme-mint)}[data-facekey-dialog] [data-facekey-debug] [data-valid=false]{color:var(--theme-danger)}@media (width>=640px){[data-facekey-dialog] [data-facekey-debug]{font-size:12px}}[data-facekey-dialog] [data-facekey-camera]>[data-pose-success]{z-index:2;transform-origin:50%;width:112px;height:112px;margin:auto;position:absolute;inset:0}[data-facekey-dialog] [data-facekey-camera] [data-pose-arrow]{width:64px;height:64px;color:var(--theme-mint);position:absolute;bottom:4%;left:50%;transform:translate(-50%)}[data-facekey-dialog][data-state=processing] [data-pose-progress]{animation:1s ease-in-out infinite alternate facekey-pulse}[data-facekey-dialog][data-state=failure] [data-pose-progress] [data-pose-progress-step],[data-facekey-dialog] [data-facekey-camera][data-feedback=mismatch] [data-pose-progress] [data-pose-progress-step]{stroke:var(--theme-danger)}[data-facekey-dialog] [data-facekey-camera][data-shake]{animation:.42s ease-in-out facekey-shake}[data-facekey-dialog] [data-facekey-camera][data-feedback=match] video{opacity:.35}[data-facekey-dialog] [data-facekey-status]{text-align:center;flex-direction:column;align-items:center;max-width:320px;min-height:48px;margin:0;font-size:21px;line-height:1.4;display:flex}[data-facekey-dialog] [data-facekey-status-reason]{color:var(--theme-warning);font-size:16px;font-weight:600}[data-facekey-dialog] [data-facekey-cancel]{border:1px solid var(--theme-mint);color:var(--theme-mint);font:inherit;background:0 0;border-radius:.375rem;padding:12px 20px;font-size:16px}[data-facekey-dialog] [data-facekey-cancel]:focus-visible{outline:2px solid var(--theme-focus);outline-offset:2px}@keyframes facekey-shake{0%,to{transform:translate(0)}15%,45%{transform:translate(-12px)}30%,60%{transform:translate(12px)}75%{transform:translate(-6px)}90%{transform:translate(4px)}}@keyframes facekey-pulse{to{opacity:.35}}@media (width<=600px){[data-facekey-dialog] [data-facekey-camera]{width:min(82vw,325px)}}@media (prefers-reduced-motion:reduce){[data-facekey-dialog] *,[data-facekey-dialog] :before,[data-facekey-dialog] :after{transition:none;animation:none}}`,v=({value:e})=>e===null?`—`:e.toFixed(2),y=({className:e,display:a,dialogRef:s,videoRef:d,options:v,onStop:y})=>{let{translate:b,translateError:x}=c({language:v.language});u(()=>{let e=s.current,t=d.current;if(!e||!t)throw Error(l.UI_ELEMENT_NOT_FOUND);let n=document.activeElement instanceof HTMLElement?document.activeElement:null,r=document.body.style.overflow;return document.body.style.overflow=`hidden`,e.showModal(),()=>{o({video:t}),e.open&&e.close(),document.body.style.overflow=r,n&&n.focus()}},[]);let S=a.phase.value,C=a.operation.value,{completed:w,total:T}=a.progress.value,E=a.feedback.value,D;E&&(D=E.matched?`match`:`mismatch`);let O=a.instruction.value,k=a.guidance.value,A=b(`preparingCamera`),j=``;if(S===`processing`&&(A=b(`checkingFace`)),S===`success`&&(A=b(`done`)),S===`failure`){let e=a.error.value;A=e===null?b(`faceNotRecognized`):x({error:e})}if(S===`capturing`){let e={FACE_NOT_DETECTED:b(`faceNotFound`),FACE_IN_POLYGON:b(`faceInPolygon`),FACE_TOO_SMALL:b(`faceTooSmall`),FACE_NOT_CENTERED:b(`faceNotCentered`),FACE_CAMERA_ALIGNMENT_REQUIRED:b(n())},r=a.corrective.value;O?.framing?A=e[O.framing]??A:O?.retry?A=O.retry:k&&(A=b(t({pose:k.pose,code:k.code}).primary),j=r?b(r):``)}let M=[...a.debug.value],N=a.match.value;if(M.length&&N){let e=N.reason??`unavailable`;N.score!==null&&(e=`${N.score.toFixed(4)} / ${r}`),N.reference&&(e=`Reference`),M.push({label:`Similarity`,valid:N.accepted,value:e})}return p(i,{children:[p(`style`,{"data-facekey-styles":``,children:_}),p(`dialog`,{className:e,ref:s,"data-facekey-dialog":``,"data-state":S,"aria-labelledby":`facekey-title`,"aria-describedby":`facekey-status`,onCancel:e=>{e.preventDefault(),y()},children:[p(`h2`,{id:`facekey-title`,"data-facekey-title":``,children:b(C===`enroll`?`setUpFaceKey`:`unlockWithFaceKey`)}),p(`div`,{"data-facekey-camera":``,"data-mirrored":a.facingMode.value===`user`?``:void 0,"data-feedback":D,"data-shake":E&&!E.matched&&E.animating&&a.failures.value%3==0?``:void 0,children:[p(`video`,{ref:d,playsInline:!0,muted:!0,autoPlay:!0,"aria-label":b(`cameraPreview`)}),p(f,{completed:w,label:b(`faceCaptureProgress`),total:T,variant:`ring`}),p(m,{visible:!!E?.matched}),!(S!==`capturing`||!k||O?.framing)&&p(g,{pose:k.pose}),p(h,{kind:`facekey`,entries:M})]}),p(`p`,{id:`facekey-status`,"data-facekey-status":``,role:`status`,"aria-live":`polite`,children:[p(`span`,{children:A}),!!j&&p(`span`,{"data-facekey-status-reason":``,children:j})]}),p(`button`,{type:`button`,"data-facekey-cancel":``,autoFocus:!0,onClick:y,children:b(`cancel`)})]})]})},b=({options:t,display:n,events:r,onStop:i})=>{let o=d(),c=d(),u=null,f=0;return{get dialog(){return o.current},requiredVideo:()=>{if(!c.current)throw Error(l.INVALID_OPTIONS);return c.current},open:()=>{if(u)throw Error(l.INVALID_OPTIONS);u=document.createElement(`div`),u.dataset.facekeyRoot=``,s({element:u,theme:t.theme}),document.body.append(u),f=0,a(p(y,{display:n,dialogRef:o,videoRef:c,options:t,onStop:i}),u),r.dispatchEvent(new CustomEvent(`facekey:open`,{detail:o.current}))},close:()=>{u&&(a(null,u),u.remove(),u=null,r.dispatchEvent(new Event(`facekey:close`)))},collectCaptureDebug:({centered:t,face:r,faceInPolygon:i,faces:a,force:s=!1,frame:c,framing:l,operation:u,pose:d,poseRejection:p,reason:m,stable:h})=>{let g=r?r.boundingRect.height/Math.min(c.width,c.height):null,_=r?.blendshapes.mouthSmileLeft??null,y=r?.blendshapes.mouthSmileRight??null,b=!(!r||p),x=[{label:`Flow`,value:u.toUpperCase()},{label:`Pose`,value:d},{label:`Faces`,valid:a.length===1,value:String(a.length)},{label:`Human`,valid:!!r&&!i,value:r?i?`In polygon`:`Yes`:`No face`},{label:`Height`,valid:!l,value:g===null?`—`:`${(g*100).toFixed(0)}% / ${e*100}%`},{label:`Centered`,valid:t,value:t?`Yes`:`No`},{label:`Pitch`,value:v({value:r?.pitch??null})},{label:`Yaw`,value:v({value:r?.yaw??null})},{label:`Roll`,value:v({value:r?.roll??null})},{label:`Pose valid`,valid:b,value:p??`Yes`}];d===`faceSmile`&&x.push({label:`Smile`,valid:_!==null&&y!==null&&_>=.5&&y>=.5,value:`${v({value:_})}|${v({value:y})}`}),x.push({label:`Stable`,valid:h>0,value:`${h}/3`}),m&&x.push({label:`Reason`,valid:!1,value:m});let S=performance.now();!n.debugEnabled.value||!o.current?.open||!s&&S-f<100||(f=S,n.debug.value=x)}}};export{b as createFaceKeyView};
@@ -1,3 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{V as e,c as t,x as n}from"./eyeLevelCamera-aDRPs63K.js";import{C as r,S as i,d as a,f as o,g as s,p as c,x as l,y as u}from"./media-Cejmtltt.js";import{c as d,r as f,s as p}from"./presentation-Cg1Ec60l.js";import{n as m,r as h,t as g}from"./PoseSuccess-DDx23oJD.js";import{n as _,t as v}from"./PoseSilhouette-V9BxuMwo.js";var y=`/*! tailwindcss v4.3.4 | MIT License | https://tailwindcss.com */
3
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-border-style:solid;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-font-weight:initial}}}[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--theme-canvas:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202020);--theme-surface-subtle:var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#2c2c2c);--theme-text:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-text-muted:var(--lightningcss-light,#626262)var(--lightningcss-dark,#a3a3a3);--theme-text-inverse:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-border:var(--lightningcss-light,#bfbfbf)var(--lightningcss-dark,#606060);--theme-primary:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-primary-hover:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--theme-primary-active:var(--lightningcss-light,#404040)var(--lightningcss-dark,#d4d4d4);--theme-focus:var(--lightningcss-light,#525252)var(--lightningcss-dark,#d4d4d4);--theme-cocoa:var(--lightningcss-light,#6b4423)var(--lightningcss-dark,#d29a63);--theme-mint:var(--lightningcss-light,#116b4c)var(--lightningcss-dark,#38efb0);--theme-cyan:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#22d3ee);--theme-violet:var(--lightningcss-light,#5b21b6)var(--lightningcss-dark,#b69cff);--theme-berry:var(--lightningcss-light,#a21caf)var(--lightningcss-dark,#e879f9);--theme-danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff6b6b);--theme-danger-surface:var(--lightningcss-light,#fee2e2)var(--lightningcss-dark,#451a19);--theme-success:var(--lightningcss-light,#087443)var(--lightningcss-dark,#4ade80);--theme-success-surface:var(--lightningcss-light,#e7f6ee)var(--lightningcss-dark,#123c2b);--theme-warning:var(--lightningcss-light,#a16207)var(--lightningcss-dark,#ffc93c);--theme-warning-surface:var(--lightningcss-light,#fef3c7)var(--lightningcss-dark,#422006)}@media (prefers-color-scheme:dark){[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light: ;--lightningcss-dark:initial}}:is(.dark,[data-theme=dark]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is(.light,[data-theme=light]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-pose-silhouette],[data-pose-arrow]{display:block;overflow:visible}[data-pose-silhouette] [data-pose-head]{fill:none;stroke:var(--theme-border);stroke-width:1.5px;stroke-dasharray:5 5}[data-pose-silhouette] [data-pose-eye]{fill:var(--theme-text-muted);stroke:none}[data-pose-silhouette] [data-pose-mouth],[data-pose-silhouette] [data-pose-eye-closed],[data-pose-motion]{fill:none;stroke:var(--theme-cyan);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}[data-pose-motion]{stroke-dasharray:6 6;animation:.9s linear infinite pose-motion}[data-pose-arrowhead]{fill:var(--theme-cyan);stroke:none}[data-pose-arrow] [data-pose-motion]{stroke:var(--theme-mint);stroke-width:4px;stroke-dasharray:none;animation:none}[data-pose-arrow] [data-pose-arrowhead]{fill:var(--theme-mint)}[data-pose-arrow] [data-pose-smile]{fill:none;stroke:var(--theme-mint);stroke-width:4px;stroke-linecap:round}[data-pose-progress][data-variant=bar]{gap:4px;width:100%;display:flex}[data-pose-progress][data-variant=bar] [data-pose-progress-step]{background:var(--theme-border);border-radius:9999px;flex:1;height:4px;transition:background .2s}[data-pose-progress][data-variant=bar] [data-pose-progress-step][data-complete]{background:var(--theme-mint)}[data-pose-progress][data-variant=ring]{display:block;overflow:visible}[data-pose-progress][data-variant=ring] [data-pose-progress-step]{fill:none;stroke:var(--theme-border);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}[data-pose-progress][data-variant=ring] [data-pose-progress-step][data-complete]{stroke:var(--theme-mint)}[data-pose-success]{opacity:0;pointer-events:none}[data-pose-success] circle{fill:var(--theme-success-surface);stroke:var(--theme-mint);stroke-width:2px}[data-pose-success] path{fill:none;stroke:var(--theme-mint);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}[data-pose-success][data-visible]{animation:.42s ease-out both pose-success-appear}[data-pose-success][data-visible] path{animation:.24s ease-out 60ms both pose-success-draw}@keyframes pose-motion{to{stroke-dashoffset:-12px}}@keyframes pose-success-appear{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pose-success-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){[data-pose-motion]{animation:none}[data-pose-success][data-visible]{opacity:1}[data-pose-success][data-visible] path{stroke-dashoffset:0}}@layer components{[data-voltom-root]{width:100%;min-height:0;max-width:var(--container-5xl,64rem);padding-block:env(safe-area-inset-top);color:var(--theme-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;gap:.75rem;margin-inline:auto;display:flex;position:relative;overflow:visible}[data-voltom-camera]{background-color:var(--theme-surface);width:100%;aspect-ratio:var(--voltom-camera-ratio,4 / 3);flex-shrink:0;margin-inline:auto;position:relative;overflow:hidden;container-type:size}[data-voltom-camera]>video,[data-voltom-mesh],[data-voltom-overlay]{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}[data-voltom-mesh],[data-voltom-overlay]{object-fit:fill}[data-voltom-mesh]{color:var(--theme-canvas)}[data-voltom-mesh],[data-voltom-overlay],[data-voltom-guide],[data-voltom-ring],[data-voltom-direction],[data-voltom-challenge],[data-voltom-result],[data-voltom-spinner],[data-voltom-feedback]{pointer-events:none}[data-voltom-feedback]{z-index:10;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding-inline:1rem;display:flex;position:absolute;inset:0}[data-voltom-camera][data-mirrored]>video,[data-voltom-camera][data-mirrored] [data-voltom-mesh]{--tw-scale-x:calc(100% * -1);scale:var(--tw-scale-x) var(--tw-scale-y)}[data-voltom-guide-mode=document]{border-style:var(--tw-border-style);--tw-border-style:dashed;border-style:dashed;border-width:2px;border-color:var(--theme-border);height:90cqh;margin:auto;display:block;position:absolute;inset:0}[data-voltom-guide-mode=document][data-voltom-guide-orientation=landscape]{aspect-ratio:4/3}[data-voltom-guide-mode=document][data-voltom-guide-orientation=portrait]{aspect-ratio:3/4}[data-voltom-ring-wrap]{pointer-events:none;z-index:5;width:66cqh;height:66cqh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-voltom-ring-wrap]:not([data-voltom-ring-mode=face]){display:none}[data-voltom-ring-wrap] [data-pose-progress]{width:100%;height:100%}[data-voltom-direction]{width:36px;height:36px;color:var(--theme-mint);pointer-events:none;z-index:10;position:absolute;bottom:14cqh;left:50%;transform:translate(-50%)}[data-voltom-direction]:not([data-voltom-direction-pose]){display:none}[data-voltom-debug]{pointer-events:none;z-index:10;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem;width:200px;display:none;position:absolute;top:.75rem;left:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{background-color:color-mix(in oklab, var(--theme-surface) 70%, transparent)}}[data-voltom-debug]{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);--tw-leading:calc(.25rem * 4);color:var(--theme-text-muted);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.25rem;padding-inline:.5rem;font-size:10px;line-height:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-debug]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-debug]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}[data-voltom-debug]:not(.hidden){display:block}[data-voltom-camera]>[data-pose-success]{z-index:30;transform-origin:50%;width:96px;height:96px;margin:auto;position:absolute;inset:0}[data-voltom-debug] [data-valid=true]{color:var(--theme-mint)}[data-voltom-debug] [data-valid=false]{color:var(--theme-danger)}[data-voltom-overlay][data-idle]{background-color:var(--theme-canvas);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]{background-color:color-mix(in oklab, var(--theme-canvas) 70%, transparent)}}[data-voltom-overlay][data-idle]:before{background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-overlay][data-idle]:before{background-color:color-mix(in oklab, var(--theme-surface) 80%, transparent)}}[data-voltom-overlay][data-idle]:before{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));color:var(--theme-cyan);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );content:attr(data-voltom-overlay-label);padding-block:.75rem;padding-inline:1rem}[data-voltom-overlay][data-error]:before{content:none}[data-voltom-challenge]{z-index:10;background-color:var(--theme-surface);max-width:calc(100vw - 1.5rem);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);inset-inline:.75rem;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding-block:.5rem;padding-inline:.75rem;display:flex;position:absolute;top:.75rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-challenge]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-challengeText]{text-align:center;font-size:1rem;line-height:var(--tw-leading,var(--text-base--line-height,calc(1.5 / 1)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);flex-direction:column;display:flex}[data-voltom-challengeReason]{font-size:.875rem;line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--theme-warning)}[data-voltom-spinner]{z-index:20;background-color:var(--theme-canvas);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]{background-color:color-mix(in oklab, var(--theme-canvas) 90%, transparent)}}[data-voltom-spinner]{text-align:center;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);color:var(--theme-text);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, )}[data-voltom-spinner]:before{width:2rem;height:2rem;animation:var(--animate-spin,spin 1s linear infinite);border-style:var(--tw-border-style);border-width:4px;border-color:var(--theme-border);border-radius:2147483647px;display:block}@supports (color:color-mix(in lab, red, red)){[data-voltom-spinner]:before{border-color:color-mix(in oklab, var(--theme-border) 30%, transparent)}}[data-voltom-spinner]:before{border-top-color:var(--theme-cyan)}@media (prefers-reduced-motion:reduce){[data-voltom-spinner]:before{animation:none}}[data-voltom-spinner]:before{content:""}[data-voltom-result]{pointer-events:auto;width:fit-content;max-width:100%;font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-semibold,600);font-weight:var(--font-weight-semibold,600);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );border-radius:.375rem;padding-block:.5rem;padding-inline:1rem}[data-voltom-retry]{pointer-events:auto;border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-border);background-color:var(--theme-surface);border-radius:.375rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{background-color:color-mix(in oklab, var(--theme-surface) 90%, transparent)}}[data-voltom-retry]{font-size:1.25rem;line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75 / 1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--theme-text);--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-shadow-color:var(--theme-border);padding-block:.75rem;padding-inline:1rem}@supports (color:color-mix(in lab, red, red)){[data-voltom-retry]{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--theme-border) 30%, transparent) var(--tw-shadow-alpha), transparent)}}[data-voltom-retry]{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );backdrop-filter:var(--tw-backdrop-blur, ) var(--tw-backdrop-brightness, ) var(--tw-backdrop-contrast, ) var(--tw-backdrop-grayscale, ) var(--tw-backdrop-hue-rotate, ) var(--tw-backdrop-invert, ) var(--tw-backdrop-opacity, ) var(--tw-backdrop-saturate, ) var(--tw-backdrop-sepia, );transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s))}@media (hover:hover){[data-voltom-retry]:hover{background-color:var(--theme-surface-subtle)}}[data-voltom-result].is-success{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-success)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-success{border-color:color-mix(in oklab, var(--theme-success) 50%, transparent)}}[data-voltom-result].is-success{background-color:var(--theme-success-surface);color:var(--theme-success)}[data-voltom-result].is-failure{border-style:var(--tw-border-style);border-width:1px;border-color:var(--theme-danger)}@supports (color:color-mix(in lab, red, red)){[data-voltom-result].is-failure{border-color:color-mix(in oklab, var(--theme-danger) 50%, transparent)}}[data-voltom-result].is-failure{background-color:var(--theme-danger-surface);color:var(--theme-danger)}[data-voltom-root] .hidden{display:none}}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}`,b=new Set([`FACE_NOT_DETECTED`,`FACE_IN_POLYGON`,`FACE_TOO_SMALL`,`FACE_CENTER_MOVE_LEFT`,`FACE_CENTER_MOVE_RIGHT`,`FACE_CENTER_MOVE_UP`,`FACE_CENTER_MOVE_DOWN`,`FACE_CAMERA_ALIGNMENT_REQUIRED`]),x=({className:e,display:n,elements:i,options:a})=>{let[s,c]=u(!0),{translate:l,translateError:f}=o({language:a.language}),x=n.feedback.value,S=n.activity.value,C=S&&S!==`matching`?S.message:``,w=S===`matching`?l(`checkingFaceMatch`):C,T=n.error.value,E=n.cameraSize.value,D=x&&x.flow===`face`?x.pose:void 0,O=x&&x.flow===`face`?x.code:null,k=O&&b.has(O)?O:null;n.guidance.value;let A=n.progress.value,j=n.corrective.value,M=D?t({pose:D,corrective:j}):null,N=l(`lookStraight`),P=``;if(M&&(N=l(M.primary),P=M.corrective?l(M.corrective):``),k&&(N=l(d({code:k})),P=``),x&&x.flow===`document`){let e=l(p({target:x.target}));N=(x.code&&x.code!==`DOCUMENT_NOT_DETECTED`?l(d({code:x.code})):``)||e}let F=E&&E.width<E.height?`portrait`:`landscape`;return h(r,{children:[h(`style`,{"data-voltom-styles":``,children:y}),h(`div`,{className:e,ref:i.camera,"data-voltom":``,"data-voltom-camera":``,"data-mirrored":n.cameraFacingMode.value===`user`?``:void 0,style:{"--voltom-camera-ratio":E?`${E.width} / ${E.height}`:void 0},children:[h(`video`,{ref:i.video,"data-voltom-video":``,playsInline:!0,muted:!0,autoPlay:!0,onPlaying:()=>c(!1),onEmptied:()=>c(!0)}),h(`canvas`,{ref:i.mesh,"data-voltom-mesh":``}),h(`div`,{"data-voltom-overlay":``,"data-voltom-overlay-label":l(`readyToStart`),"data-idle":s?``:void 0,"data-error":T?``:void 0}),h(`div`,{"data-voltom-guide":``,"aria-hidden":`true`,"data-voltom-guide-mode":x?.flow,"data-voltom-guide-orientation":x?.flow===`document`?F:void 0}),h(`div`,{"data-voltom-ring-wrap":``,"aria-hidden":`true`,"data-voltom-ring-mode":x?.flow??``,children:h(m,{completed:A.completed,total:A.total,variant:`ring`})}),!(!D||k)&&h(v,{"data-voltom-direction":``,"data-voltom-direction-pose":D,pose:D}),h(g,{visible:n.success.value}),h(_,{kind:`voltom`,entries:n.debug.value}),h(`div`,{"data-voltom-spinner":``,className:S?void 0:`hidden`,role:`status`,"aria-label":w,children:C}),h(`div`,{"data-voltom-challenge":D??(x?`document`:void 0),className:x?void 0:`hidden`,children:h(`span`,{"data-voltom-challengeText":``,role:`status`,"aria-live":`polite`,children:[h(`span`,{children:N}),!!P&&h(`span`,{"data-voltom-challengeReason":``,children:P})]})}),h(`div`,{"data-voltom-feedback":``,children:[h(`div`,{"data-voltom-result":``,className:T?`is-failure`:`hidden`,role:`status`,children:T?f({error:T}):``}),h(`button`,{"data-voltom-retry":``,className:T&&n.retry.value?void 0:`hidden`,type:`button`,"aria-label":l(`retry`),onClick:async()=>{let e=n.retry.value;if(n.error.value=null,e)try{await e()}catch{return}},children:l(`retry`)})]})]})]})},S=({root:t,options:r,display:o})=>{let u=({language:e})=>e??c(),d=({state:e})=>e.faceSequence[e.poseIndex]??`faceStraight`,p=0,m=({entries:e,state:t})=>{if(!o.debugEnabled.value||!t.flow)return;let n=performance.now();n-p<100||(p=n,o.debug.value=e)},g=()=>o.cameraSize.value?`${o.cameraSize.value.width}x${o.cameraSize.value.height}`:`—`,_=()=>{let t=e(),n=t.threading.startsWith(`multi`)?`multi`:`single`;return[{label:`Inference`,value:t.inference},{label:`Threading`,value:n}]},v=({face:e,faceInPolygon:t,processingTimeMilliseconds:i,state:a})=>{let s=e?e.pitch:null,c=e?e.yaw:null,l=e?e.roll:null,p=e?f({face:e,name:`mouthSmileLeft`}):0,h=e?f({face:e,name:`mouthSmileRight`}):0,v=e?f({face:e,name:`eyeBlinkLeft`}):0,y=e?f({face:e,name:`eyeBlinkRight`}):0,b=s!==null&&s>=r.minPitch&&s<=r.maxPitch,x=c!==null&&c>=r.minYaw&&c<=r.maxYaw,S=d({state:a}),C=l!==null&&(S===`faceTiltLeft`?l>r.maxRoll:S===`faceTiltRight`?l<-r.maxRoll:Math.abs(l)<=r.maxRoll),w=e=>e===null?`—`:e.toFixed(2),T=(e,t)=>`${e.toFixed(2)}|${t.toFixed(2)}`;m({state:a,entries:[{label:`Flow`,value:`FACE`},..._(),{label:`Face`,valid:!!e&&!t,value:e?t?`In polygon`:`Yes`:`No`},{label:`Pitch`,valid:b,value:w(s)},{label:`Yaw`,valid:x,value:w(c)},{label:`Roll`,valid:C,value:w(l)},{label:`Smile`,valid:p>=.5&&h>=.5,value:T(p,h)},{label:`Wink left`,valid:Math.round((v-y)*100)/100>=n,value:T(v,y)},{label:`Stable frames`,valid:a.poseStableFrames>0,value:`${a.poseStableFrames}/${r.requiredFaceStableFrames}`},{label:`Language`,value:u({language:r.language})},{label:`Camera`,value:g()},{label:`Facing mode`,value:o.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${i.toFixed(0)} ms`}]})},y=({analysis:e,sideComparison:t,isBack:n,processingTimeMilliseconds:i,state:a})=>{let{orientation:s,alignment:c,documentKind:l,face:d,faceContained:f,detection:p}=e,{diagnostics:h,isBlurry:v,sharpness:y}=e.documentAnalysis,b=e.text.text,x={label:`Stable frames`,valid:a.documentStableFrames>0,value:`${a.documentStableFrames}/${r.requiredDocumentStableFrames}`},S=h?Object.keys(h.rejected)[0]:void 0,C=[{label:`Sharpness`,valid:v===null?void 0:!v,value:y===null?`—`:String(Math.round(y))},{label:`Rectangle`,valid:p?!0:!S&&void 0,value:p?`yes`:S??`no`},{label:`Orientation`,value:s?`${s.rotation}°`:`—`}],w=[{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Document type`,value:l??``},{label:`Distinct from front`,valid:t?.distinct,value:t?t.distinct?`yes`:`no`:`—`}],T=[{label:`Face`,valid:!!d,value:d?`yes`:`no`},{label:`Face contained`,valid:f,value:f?`yes`:`no`},{label:`Face area`,valid:c.faceAreaValid,value:`${(c.faceAreaRatio*100).toFixed(2)}%`},{label:`Face size`,valid:c.faceDimensionsValid,value:c.faceDimensionsValid?`yes`:`no`},{label:`Text`,valid:!!b,value:b?`yes`:`no`},{label:`Text parallel`,valid:c.textParallel,value:c.textParallel?`yes`:`no`},{label:`Text beside face`,valid:c.faceAdjacentTextLineCount>=2,value:String(c.faceAdjacentTextLineCount)},{label:`Document type`,value:l??``}];m({state:a,entries:[{label:`Flow`,value:n?`DOCUMENT BACK`:`DOCUMENT FRONT`},..._(),...C,...n?w:T,x,{label:`Language`,value:u({language:r.language})},{label:`Camera`,value:g()},{label:`Facing mode`,value:o.cameraFacingMode.value??`—`},{label:`Frame time`,value:`${i.toFixed(0)} ms`}]})},b={camera:l(),video:l(),mesh:l()};if(t.replaceChildren(),t.dataset.voltomRoot=``,a({element:t,theme:r.theme}),i(h(x,{display:o,elements:b,options:r}),t),!b.camera.current||!b.video.current||!b.mesh.current)throw Error(s.UI_ELEMENT_NOT_FOUND);return{ref:{root:t,camera:b.camera.current,video:b.video.current,mesh:b.mesh.current},collectFaceDebug:v,collectDocumentDebug:y}};export{S as createVerificationView};
@@ -1,2 +0,0 @@
1
- /*! Copyright (c) 2026 VOLTOM. All rights reserved. Proprietary software. See LICENSE at https://voltom.io/license. */
2
- import{S as e,c as t,d as n,f as r,g as i,v as a,x as o}from"./media-Cejmtltt.js";import{n as s,r as c,t as l}from"./PoseSuccess-DDx23oJD.js";var u=`[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--theme-canvas:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#202020);--theme-surface-subtle:var(--lightningcss-light,#f5f5f5)var(--lightningcss-dark,#2c2c2c);--theme-text:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-text-muted:var(--lightningcss-light,#626262)var(--lightningcss-dark,#a3a3a3);--theme-text-inverse:var(--lightningcss-light,#fafafa)var(--lightningcss-dark,#0b0b0b);--theme-border:var(--lightningcss-light,#bfbfbf)var(--lightningcss-dark,#606060);--theme-primary:var(--lightningcss-light,#121212)var(--lightningcss-dark,#f7f7f7);--theme-primary-hover:var(--lightningcss-light,#262626)var(--lightningcss-dark,#e5e5e5);--theme-primary-active:var(--lightningcss-light,#404040)var(--lightningcss-dark,#d4d4d4);--theme-focus:var(--lightningcss-light,#525252)var(--lightningcss-dark,#d4d4d4);--theme-cocoa:var(--lightningcss-light,#6b4423)var(--lightningcss-dark,#d29a63);--theme-mint:var(--lightningcss-light,#116b4c)var(--lightningcss-dark,#38efb0);--theme-cyan:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#22d3ee);--theme-violet:var(--lightningcss-light,#5b21b6)var(--lightningcss-dark,#b69cff);--theme-berry:var(--lightningcss-light,#a21caf)var(--lightningcss-dark,#e879f9);--theme-danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#ff6b6b);--theme-danger-surface:var(--lightningcss-light,#fee2e2)var(--lightningcss-dark,#451a19);--theme-success:var(--lightningcss-light,#087443)var(--lightningcss-dark,#4ade80);--theme-success-surface:var(--lightningcss-light,#e7f6ee)var(--lightningcss-dark,#123c2b);--theme-warning:var(--lightningcss-light,#a16207)var(--lightningcss-dark,#ffc93c);--theme-warning-surface:var(--lightningcss-light,#fef3c7)var(--lightningcss-dark,#422006)}@media (prefers-color-scheme:dark){[data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]{--lightningcss-light: ;--lightningcss-dark:initial}}:is(.dark,[data-theme=dark]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is(.light,[data-theme=light]) :is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:is([data-voltom-demo],[data-voltom-root],[data-facekey-root],[data-facegate-root])[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-pose-silhouette],[data-pose-arrow]{display:block;overflow:visible}[data-pose-silhouette] [data-pose-head]{fill:none;stroke:var(--theme-border);stroke-width:1.5px;stroke-dasharray:5 5}[data-pose-silhouette] [data-pose-eye]{fill:var(--theme-text-muted);stroke:none}[data-pose-silhouette] [data-pose-mouth],[data-pose-silhouette] [data-pose-eye-closed],[data-pose-motion]{fill:none;stroke:var(--theme-cyan);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}[data-pose-motion]{stroke-dasharray:6 6;animation:.9s linear infinite pose-motion}[data-pose-arrowhead]{fill:var(--theme-cyan);stroke:none}[data-pose-arrow] [data-pose-motion]{stroke:var(--theme-mint);stroke-width:4px;stroke-dasharray:none;animation:none}[data-pose-arrow] [data-pose-arrowhead]{fill:var(--theme-mint)}[data-pose-arrow] [data-pose-smile]{fill:none;stroke:var(--theme-mint);stroke-width:4px;stroke-linecap:round}[data-pose-progress][data-variant=bar]{gap:4px;width:100%;display:flex}[data-pose-progress][data-variant=bar] [data-pose-progress-step]{background:var(--theme-border);border-radius:9999px;flex:1;height:4px;transition:background .2s}[data-pose-progress][data-variant=bar] [data-pose-progress-step][data-complete]{background:var(--theme-mint)}[data-pose-progress][data-variant=ring]{display:block;overflow:visible}[data-pose-progress][data-variant=ring] [data-pose-progress-step]{fill:none;stroke:var(--theme-border);stroke-width:2px;stroke-linecap:round;transition:stroke .3s}[data-pose-progress][data-variant=ring] [data-pose-progress-step][data-complete]{stroke:var(--theme-mint)}[data-pose-success]{opacity:0;pointer-events:none}[data-pose-success] circle{fill:var(--theme-success-surface);stroke:var(--theme-mint);stroke-width:2px}[data-pose-success] path{fill:none;stroke:var(--theme-mint);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}[data-pose-success][data-visible]{animation:.42s ease-out both pose-success-appear}[data-pose-success][data-visible] path{animation:.24s ease-out 60ms both pose-success-draw}@keyframes pose-motion{to{stroke-dashoffset:-12px}}@keyframes pose-success-appear{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pose-success-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){[data-pose-motion]{animation:none}[data-pose-success][data-visible]{opacity:1}[data-pose-success][data-visible] path{stroke-dashoffset:0}}[data-facegate-gate]{z-index:60;background:color-mix(in srgb, var(--theme-canvas) 84%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:24px;font-family:ui-sans-serif,system-ui,sans-serif;display:grid;position:fixed;inset:0}[data-facegate-gate] .facegate-stage{place-items:center;display:grid;position:relative}[data-facegate-gate] .facegate-camera{aspect-ratio:1;flex-shrink:0;width:min(60vw,240px,38dvh);position:relative}[data-facegate-gate] .facegate-camera video{object-fit:cover;background:var(--theme-surface-subtle);border-radius:999px;width:100%;height:100%}[data-facegate-gate] .facegate-camera[data-mirrored] video{transform:scaleX(-1)}[data-facegate-gate] .facegate-camera>[data-pose-progress]{width:calc(100% + 28px);height:calc(100% + 28px);position:absolute;inset:-14px;overflow:visible}[data-facegate-gate] .facegate-camera>[data-pose-success]{z-index:2;transform-origin:50%;width:112px;height:112px;margin:auto;position:absolute;inset:0}[data-facegate-gate] .facegate-camera[data-shake]{animation:.48s both facegate-shake}[data-facegate-gate] .facegate-spinner-host{z-index:3;background:color-mix(in srgb, var(--theme-canvas) 70%, transparent);border-radius:999px;place-items:center;display:grid;position:absolute;inset:0}[data-facegate-gate] .facegate-spinner{width:40px;height:40px;color:var(--theme-text);animation:.9s linear infinite facegate-spin}[data-facegate-gate] .facegate-prompt{width:min(80vw,300px);color:var(--theme-text);text-align:center;margin:0;font-size:17px;font-weight:600;position:absolute;top:calc(100% + 30px);left:50%;transform:translate(-50%)}[data-facegate-gate][data-result=pass] [data-pose-progress-step]{stroke:var(--theme-mint)}[data-facegate-gate][data-result=reject] [data-pose-progress-step]{stroke:var(--theme-danger)}@keyframes facegate-shake{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-6px)rotate(-6deg)}40%{transform:translate(6px)rotate(6deg)}60%{transform:translate(-5px)rotate(-4deg)}80%{transform:translate(5px)rotate(4deg)}}@keyframes facegate-spin{to{transform:rotate(360deg)}}@media (width<=600px){[data-facegate-gate] .facegate-camera{width:min(82vw,300px)}}@media (prefers-reduced-motion:reduce){[data-facegate-gate] .facegate-camera[data-shake],[data-facegate-gate] .facegate-spinner{animation:none}}`,d=()=>c(`svg`,{className:`facegate-spinner`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:c(`path`,{d:`M12 3a9 9 0 1 0 9 9`})}),f=({display:e,videoRef:t,options:n,onCancel:o})=>{let{translate:f}=r({language:n.language});a(()=>{if(!t.current)throw Error(i.UI_ELEMENT_NOT_FOUND);let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[]);let p=e.outcome.value,m=e.phase.value===`checking`,h=e.completed.value,g=e.total.value;return c(`div`,{className:`facegate-gate`,"data-facegate-gate":``,"data-result":p===`pass`?`pass`:p?`reject`:``,onClick:e=>{e.target===e.currentTarget&&o()},children:[c(`style`,{"data-facegate-styles":``,children:u}),c(`div`,{className:`facegate-stage`,role:`dialog`,"aria-modal":`true`,"aria-label":`Liveness check`,children:[c(`div`,{className:`facegate-camera`,"data-mirrored":``,"data-shake":p===`fail`||p===`error`?``:void 0,children:[c(`video`,{ref:t,autoPlay:!0,muted:!0,playsInline:!0,"aria-label":f(`cameraPreview`)}),c(s,{completed:h,label:f(`faceCaptureProgress`),total:g,variant:`ring`}),c(l,{visible:p===`pass`}),m?c(`div`,{className:`facegate-spinner-host`,children:c(d,{})}):null]}),p?null:c(`p`,{className:`facegate-prompt`,role:`status`,"aria-live":`polite`,children:e.prompt.value})]})]})},p=({options:r,display:a,onCancel:s})=>{let l=o(),u=null;return{get video(){return l.current},requiredVideo:()=>{if(!l.current)throw Error(i.INVALID_OPTIONS);return l.current},open:()=>{u||(u=document.createElement(`div`),u.dataset.facegateRoot=``,n({element:u,theme:r.theme}),document.body.append(u),e(c(f,{display:a,videoRef:l,options:r,onCancel:s}),u))},close:()=>{if(!u)return;let n=l.current;n&&t({video:n}),e(null,u),u.remove(),u=null}}};export{p as createFaceGateView};