@arkyc/widget 1.2.11 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { WidgetEventListener, WidgetHandle } from "./types.mjs";
1
+ import { WidgetEventListener, WidgetEventName, WidgetHandle } from "./types.mjs";
2
2
  import { WidgetController } from "./controller.mjs";
3
3
 
4
4
  //#region src/WidgetHandler.d.ts
@@ -10,14 +10,15 @@ declare class WidgetHandler implements WidgetHandle {
10
10
  */
11
11
  close(): void;
12
12
  /**
13
- * Subscribe to a named widget event (e.g. `session.transition`, `complete`).
13
+ * Subscribe to a named widget event (`session.transition`, `complete`,
14
+ * `error`, `close`). The `listener`'s `data` is typed from the `event` name.
14
15
  * Returns an unsubscribe function. Registering a listener activates the event
15
16
  * stream (events are only delivered while at least one listener is active).
16
17
  *
17
18
  * @param event
18
19
  * @param listener
19
20
  */
20
- on(event: string, listener: WidgetEventListener): () => void;
21
+ on<K extends WidgetEventName>(event: K, listener: WidgetEventListener<K>): () => void;
21
22
  }
22
23
  //#endregion
23
24
  export { WidgetHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetHandler.d.mts","names":[],"sources":["../src/WidgetHandler.ts"],"mappings":";;;;cAGa,aAAA,YAAyB,YAAA;EAAA,QAChB,UAAA;cAAA,UAAA,EAAY,gBAAA;EADP;;;EAMzB,KAAA;EANoC;;;;;;;;EAiBpC,EAAA,CAAG,KAAA,UAAe,QAAA,EAAU,mBAAA;AAAA"}
1
+ {"version":3,"file":"WidgetHandler.d.mts","names":[],"sources":["../src/WidgetHandler.ts"],"mappings":";;;;cAGa,aAAA,YAAyB,YAAA;EAAA,QAChB,UAAA;cAAA,UAAA,EAAY,gBAAA;EADP;;;EAMzB,KAAA;EAYqC;;;;;;;;;EAArC,EAAA,WAAa,eAAA,EAAiB,KAAA,EAAO,CAAA,EAAG,QAAA,EAAU,mBAAA,CAAoB,CAAA;AAAA"}
@@ -11,7 +11,8 @@ var WidgetHandler = class {
11
11
  return this.controller.close();
12
12
  }
13
13
  /**
14
- * Subscribe to a named widget event (e.g. `session.transition`, `complete`).
14
+ * Subscribe to a named widget event (`session.transition`, `complete`,
15
+ * `error`, `close`). The `listener`'s `data` is typed from the `event` name.
15
16
  * Returns an unsubscribe function. Registering a listener activates the event
16
17
  * stream (events are only delivered while at least one listener is active).
17
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetHandler.mjs","names":[],"sources":["../src/WidgetHandler.ts"],"sourcesContent":["import type { WidgetController } from './controller'\nimport type { WidgetEventListener, WidgetHandle } from './types'\n\nexport class WidgetHandler implements WidgetHandle {\n constructor(private controller: WidgetController) {}\n\n /**\n * Close the widget and release the camera (fires `onClose`).\n */\n close(): void {\n return this.controller.close()\n }\n /**\n * Subscribe to a named widget event (e.g. `session.transition`, `complete`).\n * Returns an unsubscribe function. Registering a listener activates the event\n * stream (events are only delivered while at least one listener is active).\n *\n * @param event\n * @param listener\n */\n on(event: string, listener: WidgetEventListener): () => void {\n return this.controller.on(event, listener)\n }\n}\n"],"mappings":";AAGA,IAAa,gBAAb,MAAmD;CAC7B;CAApB,YAAY,YAAsC;EAA9B,KAAA,aAAA;CAA+B;;;;CAKnD,QAAc;EACZ,OAAO,KAAK,WAAW,MAAM;CAC/B;;;;;;;;;CASA,GAAG,OAAe,UAA2C;EAC3D,OAAO,KAAK,WAAW,GAAG,OAAO,QAAQ;CAC3C;AACF"}
1
+ {"version":3,"file":"WidgetHandler.mjs","names":[],"sources":["../src/WidgetHandler.ts"],"sourcesContent":["import type { WidgetController } from './controller'\nimport type { WidgetEventListener, WidgetEventName, WidgetHandle } from './types'\n\nexport class WidgetHandler implements WidgetHandle {\n constructor(private controller: WidgetController) {}\n\n /**\n * Close the widget and release the camera (fires `onClose`).\n */\n close(): void {\n return this.controller.close()\n }\n /**\n * Subscribe to a named widget event (`session.transition`, `complete`,\n * `error`, `close`). The `listener`'s `data` is typed from the `event` name.\n * Returns an unsubscribe function. Registering a listener activates the event\n * stream (events are only delivered while at least one listener is active).\n *\n * @param event\n * @param listener\n */\n on<K extends WidgetEventName>(event: K, listener: WidgetEventListener<K>): () => void {\n return this.controller.on(event, listener)\n }\n}\n"],"mappings":";AAGA,IAAa,gBAAb,MAAmD;CAC7B;CAApB,YAAY,YAAsC;EAA9B,KAAA,aAAA;CAA+B;;;;CAKnD,QAAc;EACZ,OAAO,KAAK,WAAW,MAAM;CAC/B;;;;;;;;;;CAUA,GAA8B,OAAU,UAA8C;EACpF,OAAO,KAAK,WAAW,GAAG,OAAO,QAAQ;CAC3C;AACF"}
@@ -1,4 +1,4 @@
1
- var Arkyc=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));function u(e){"@babel/helpers - typeof";return u=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=class extends Error{constructor(e,t,n){super(e),p(this,`status`,void 0),p(this,`error`,void 0),this.name=`WidgetApiError`,this.status=t,this.error=n}};function h(e){let t=(e??``).trim().replace(/\/$/,``);return t?/^https?:\/\//i.test(t)?t:`${(globalThis.location?.origin??``).replace(/\/$/,``)}${t.startsWith(`/`)?``:`/`}${t}`:`https://api.arkyc.toneflix.net/api/v1/client`}function g(e,t){if(t)for(let[n,r]of Object.entries(t))r!=null&&e.append(n,String(r))}var _=class{constructor(e){if(p(this,`token`,void 0),p(this,`baseUrl`,void 0),p(this,`fetchImpl`,void 0),!e.token)throw Error("ArkycClient requires a client `token`.");this.token=e.token,this.baseUrl=h(e.baseUrl);let t=e.fetch??globalThis.fetch;if(!t)throw Error("No `fetch` implementation available.");this.fetchImpl=t.bind(globalThis)}get base(){return this.baseUrl}getSession(){return this.request(`GET`,`/session`)}submitDocumentFront(e){let t=new FormData;return e.image&&t.append(`image`,e.image,`document-front.jpg`),e.country&&t.append(`country`,e.country),e.documentType&&t.append(`document_type`,e.documentType),g(t,e.signals),this.request(`POST`,`/document/front`,t)}submitDocumentBack(e){let t=new FormData;return e.image&&t.append(`image`,e.image,`document-back.jpg`),e.country&&t.append(`country`,e.country),e.documentType&&t.append(`document_type`,e.documentType),this.request(`POST`,`/document/back`,t)}submitLiveness(e){let t=new FormData;return e.selfie&&t.append(`selfie`,e.selfie,`selfie.jpg`),e.video&&t.append(`video`,e.video,`liveness.webm`),e.mode&&t.append(`mode`,e.mode),e.challenges&&t.append(`challenges`,JSON.stringify(e.challenges)),g(t,e.signals),this.request(`POST`,`/liveness`,t)}submitAddress(e){let t=new FormData,n={line1:e.line1,line2:e.line2,city:e.city,region:e.region,postal_code:e.postalCode,country:e.country};for(let[e,r]of Object.entries(n))r&&t.append(e,r);return e.poa&&t.append(`poa`,e.poa,`proof-of-address.jpg`),e.latitude!=null&&t.append(`latitude`,String(e.latitude)),e.longitude!=null&&t.append(`longitude`,String(e.longitude)),g(t,e.signals),this.request(`POST`,`/address`,t)}complete(e={}){return this.request(`POST`,`/complete`,e.signals??{})}async request(e,t,n){let r={"X-Client-Token":this.token},i;n instanceof FormData?i=n:n&&(r[`Content-Type`]=`application/json`,i=JSON.stringify(n));let a=await this.fetchImpl(`${this.baseUrl}${t}`,{method:e,headers:r,body:i}),o=await a.text(),s=o?JSON.parse(o):{};if(!a.ok)throw new m(s.message??`Request failed (${a.status})`,a.status,s.error);return s.data}};async function v(e,t){try{return await import(e)}catch{return await import(`https://cdn.jsdelivr.net/npm/${t}`)}}async function y(e,t){try{if(e.transport===`pusher`)return await b(e,t);if(e.transport===`firebase`)return await x(e)}catch{return null}return null}async function b(e,t){let n=(await v(`pusher-js`,`pusher-js@8/+esm`)).default,r=new n(String(e.key??``),{cluster:String(e.cluster??`mt1`),forceTLS:!!(e.forceTLS??!1),...e.wsHost?{wsHost:String(e.wsHost),wsPort:Number(e.wsPort),wssPort:Number(e.wssPort??e.wsPort),enabledTransports:e.enabledTransports??[`ws`,`wss`]}:{},channelAuthorization:{transport:`ajax`,endpoint:t.authEndpoint,headers:{"X-Client-Token":t.token}}});return{subscribe(e,t){let n=r.subscribe(e),i=(e,n)=>t(e,n);return n.bind_global(i),()=>{n.unbind_global(i),r.unsubscribe(e)}},disconnect(){r.disconnect()}}}async function x(e){let[t,n,r]=await Promise.all([v(`firebase/app`,`firebase@11/app/+esm`),v(`firebase/auth`,`firebase@11/auth/+esm`),v(`firebase/database`,`firebase@11/database/+esm`)]),i=`arkyc-widget-realtime`,a=t.getApps().some(e=>e.name===i)?t.getApp(i):t.initializeApp({apiKey:String(e.apiKey??``),authDomain:String(e.authDomain??``),projectId:String(e.projectId??``),databaseURL:String(e.databaseURL??``)},i);e.token&&await n.signInWithCustomToken(n.getAuth(a),e.token);let o=r.getDatabase(a),s=Date.now();return{subscribe(e,t){let n=r.query(r.ref(o,`realtime/${e}`),r.orderByChild(`at`),r.startAt(s)),i=r.onChildAdded(n,e=>{let n=e.val();n&&t(n.event,n.payload)});return()=>i()},disconnect(){}}}var S=`.arkyc-root {
1
+ var Arkyc=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},c=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),l=(e,t)=>{let r={};for(var i in e)n(r,i,{get:e[i],enumerable:!0});return t||n(r,Symbol.toStringTag,{value:`Module`}),r},u=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},d=(e,r,i)=>(i=e==null?{}:t(a(e)),u(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=class extends Error{constructor(e,t,n){super(e),h(this,`status`,void 0),h(this,`error`,void 0),this.name=`WidgetApiError`,this.status=t,this.error=n}};function _(){try{return globalThis.localStorage??null}catch{return null}}function v(e){let t=(e??``).trim().replace(/\/$/,``);return t?/^https?:\/\//i.test(t)?t:`${(globalThis.location?.origin??``).replace(/\/$/,``)}${t.startsWith(`/`)?``:`/`}${t}`:`https://api.arkyc.toneflix.net/api/v1/client`}function y(e,t){if(t)for(let[n,r]of Object.entries(t))r!=null&&e.append(n,String(r))}var b=class{constructor(e){if(h(this,`token`,void 0),h(this,`baseUrl`,void 0),h(this,`fetchImpl`,void 0),h(this,`storage`,void 0),h(this,`deviceToken`,void 0),!e.token)throw Error("ArkycClient requires a client `token`.");this.token=e.token,this.baseUrl=v(e.baseUrl);let t=e.fetch??globalThis.fetch;if(!t)throw Error("No `fetch` implementation available.");this.fetchImpl=t.bind(globalThis),this.storage=e.storage===void 0?_():e.storage}authToken(){return this.deviceToken??(this.deviceToken=this.resolveDeviceToken().catch(e=>{throw this.deviceToken=void 0,e})),this.deviceToken}async createHandoffToken(){return(await this.send(`POST`,`/handoff`,await this.authToken(),{})).token}get base(){return this.baseUrl}getSession(){return this.request(`GET`,`/session`)}submitDocumentFront(e){let t=new FormData;return e.image&&t.append(`image`,e.image,`document-front.jpg`),e.country&&t.append(`country`,e.country),e.documentType&&t.append(`document_type`,e.documentType),y(t,e.signals),this.request(`POST`,`/document/front`,t)}submitDocumentBack(e){let t=new FormData;return e.image&&t.append(`image`,e.image,`document-back.jpg`),e.country&&t.append(`country`,e.country),e.documentType&&t.append(`document_type`,e.documentType),this.request(`POST`,`/document/back`,t)}submitLiveness(e){let t=new FormData;return e.selfie&&t.append(`selfie`,e.selfie,`selfie.jpg`),e.video&&t.append(`video`,e.video,`liveness.webm`),e.mode&&t.append(`mode`,e.mode),e.challenges&&t.append(`challenges`,JSON.stringify(e.challenges)),y(t,e.signals),this.request(`POST`,`/liveness`,t)}submitAddress(e){let t=new FormData,n={line1:e.line1,line2:e.line2,city:e.city,region:e.region,postal_code:e.postalCode,country:e.country};for(let[e,r]of Object.entries(n))r&&t.append(e,r);return e.poa&&t.append(`poa`,e.poa,`proof-of-address.jpg`),e.latitude!=null&&t.append(`latitude`,String(e.latitude)),e.longitude!=null&&t.append(`longitude`,String(e.longitude)),y(t,e.signals),this.request(`POST`,`/address`,t)}complete(e={}){return this.request(`POST`,`/complete`,e.signals??{})}async request(e,t,n){return await this.send(e,t,await this.authToken(),n)}get storageKey(){return`arkyc:device:${this.token}`}async resolveDeviceToken(){let e=this.readStoredToken();if(e)return e;let t=await this.send(`POST`,`/claim`,this.token,{});return this.writeStoredToken(t),t.token}readStoredToken(){try{let e=this.storage?.getItem(this.storageKey);if(!e)return null;let t=JSON.parse(e);if(new Date(t.expires_at).getTime()>Date.now())return t.token;this.storage?.removeItem(this.storageKey)}catch{}return null}writeStoredToken(e){try{this.storage?.setItem(this.storageKey,JSON.stringify(e))}catch{}}async send(e,t,n,r){let i={"X-Client-Token":n},a;r instanceof FormData?a=r:r&&(i[`Content-Type`]=`application/json`,a=JSON.stringify(r));let o=await this.fetchImpl(`${this.baseUrl}${t}`,{method:e,headers:i,body:a}),s=await o.text(),c=s?JSON.parse(s):{};if(!o.ok)throw new g(c.message??`Request failed (${o.status})`,o.status,c.error);return c.data}},x,S=s((()=>{x=e=>import(e)})),C=l({i:()=>T,n:()=>E,r:()=>j,t:()=>A}),w,T,E,D,O,k,A,j,M=s((()=>{S(),w=Object.defineProperty,T=(e,t)=>{let n={};for(var r in e)w(n,r,{get:e[r],enumerable:!0});return t||w(n,Symbol.toStringTag,{value:`Module`}),n},E=T({issueDeviceToken:()=>A,requestDeviceToken:()=>j}),D=`arkstack-push`,O=e=>({apiKey:e.apiKey,projectId:e.projectId,appId:e.appId,messagingSenderId:e.messagingSenderId}),k=async(e,t)=>{let n=e.includes(`?`)?`&`:`?`,r=`firebaseConfig=${encodeURIComponent(JSON.stringify(O(t)))}`;return await navigator.serviceWorker.register(`${e}${n}${r}`)},A=async(e,t,n,r={})=>{if(!await e.isSupported().catch(()=>!1))return null;let i=typeof r.serviceWorker==`string`?await k(r.serviceWorker,n):r.serviceWorker;return await e.getToken(t,{...n.vapidKey?{vapidKey:n.vapidKey}:{},...i?{serviceWorkerRegistration:i}:{}})||null},j=async(e,t={},n=x)=>{let[r,i]=await Promise.all([n(`firebase/app`),n(`firebase/messaging`)]).catch(()=>{throw Error('The "firebase" package is required for device tokens. Install it with `npm i firebase`.')}),a=r.getApps().find(e=>e.name===D)??r.initializeApp(O(e),D);return await A(i,i.getMessaging(a),e,t)}}));M(),S();var ee=class{constructor(e={}){h(this,`config`,void 0),h(this,`transportPromise`,void 0),h(this,`event`,void 0),h(this,`channelPrefix`,void 0),this.config=e,this.event=e.event??`notification`,this.channelPrefix=e.channelPrefix??`user.`}channelFor(e){return`${this.channelPrefix}${e}`}transport(){return this.transportPromise??(this.transportPromise=this.resolveTransport()),this.transportPromise}async resolveTransport(){if(this.config.transportFactory)return await this.config.transportFactory();switch(this.transportName){case`firebase`:{let{createFirebaseTransport:e}=await Promise.resolve().then(()=>ie);return await e(this.required(`firebase`),this.config.importModule)}case`firebase-database`:{let{createFirebaseDatabaseTransport:e}=await Promise.resolve().then(()=>se);return await e(this.required(`firebase-database`),this.config.importModule)}case`polling`:{let{createPollingTransport:e}=await Promise.resolve().then(()=>de);return e(this.config.polling)}case`memory`:{let{createMemoryTransport:e}=await Promise.resolve().then(()=>pe);return e()}default:{let{createPusherTransport:e}=await Promise.resolve().then(()=>ne);return await e(this.required(`pusher`),this.config.importModule)}}}required(e){let t=this.config[e];if(!t)throw Error(`Realtime: \`${e}\` config is required for the ${e} transport`);return t}get transportName(){return this.config.transport??`pusher`}async subscribe(e,t){return await this.listen(e,this.event,t)}async listen(e,t,n){let r=await(await this.transport()).subscribe(e,t,n);return()=>r.unsubscribe()}async listenForWhisper(e,t,n){return await this.listen(e,this.clientEventName(t),n)}async whisper(e,t,n){await this.trigger(e,this.clientEventName(t),n)}async trigger(e,t,n){let r=await this.transport();if(!r.trigger)throw Error(`Realtime: the configured transport does not support client events`);await r.trigger(e,t,n)}clientEventName(e){return e.startsWith(`client-`)?e:`client-${e}`}async forUser(e,t){return await this.subscribe(this.channelFor(e),t)}async onPoll(e,t){let n=await this.transport();if(!n.polling)return()=>{};let r=setInterval(e,t??n.polling.interval);return()=>clearInterval(r)}async deviceToken(e){let t=await this.transport();if(t.deviceToken)return await t.deviceToken(e);if(!this.config.firebase)return null;let{requestDeviceToken:n}=await Promise.resolve().then(()=>(M(),C)).then(e=>e.n);return await n(this.config.firebase,e,this.config.importModule)}async disconnect(){this.transportPromise&&(await(await this.transportPromise).disconnect(),this.transportPromise=void 0)}};let te=(e={})=>new ee(e);var ne=T({createPusherTransport:()=>re});let re=async(e,t=x)=>{let n=await t(`pusher-js`).catch(()=>{throw Error('The "pusher-js" package is required for the Pusher transport. Install it with `npm i pusher-js`.')}),r=new(n.default??n)(e.key,{cluster:e.cluster??`mt1`,forceTLS:e.forceTLS??!0,authEndpoint:e.authEndpoint??`${e.apiBase}/realtime/auth`,auth:e.auth,...e.wsHost?{wsHost:e.wsHost,wsPort:e.wsPort,wssPort:e.wssPort??e.wsPort,enabledTransports:e.enabledTransports??[`ws`,`wss`]}:{}}),i=new Map;return{subscribe(e,t,n){let a=i.get(e),o=a?.channel??r.subscribe(e),s=e=>n(e);return i.set(e,{channel:o,subscriptions:(a?.subscriptions??0)+1}),o.bind(t,s),{channel:e,unsubscribe(){o.unbind(t,s);let n=i.get(e);!n||n.subscriptions<=1?(i.delete(e),r.unsubscribe(e)):n.subscriptions--}}},trigger(e,t,n){let r=i.get(e)?.channel;if(!r)throw Error(`Realtime: subscribe to channel "${e}" before triggering client events`);if(!r.trigger(t,n))throw Error(`Realtime: failed to trigger client event "${t}" on channel "${e}"`)},disconnect(){i.clear(),r.disconnect()}}};var ie=T({createFirebaseTransport:()=>oe});let N=e=>encodeURIComponent(e).replace(/\./g,`%2E`),ae=e=>typeof e==`object`&&!!e&&`sender`in e&&`payload`in e,oe=async(e,t=x)=>{let[n,r,i]=await Promise.all([t(`firebase/app`),t(`firebase/messaging`),t(`firebase/database`)]).catch(()=>{throw Error('The "firebase" package is required for the Firebase transport. Install it with `npm i firebase`.')}),a=n.initializeApp({apiKey:e.apiKey,projectId:e.projectId,appId:e.appId,messagingSenderId:e.messagingSenderId,databaseURL:e.databaseURL}),o=r.getMessaging(a),s=r.onMessage,c=new Set,l=new Set,u=i,d=u.getDatabase(a,e.databaseURL),f=e.clientEventsPath??`arkstack/client-events`,p=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random()}`,m=(e,t)=>u.ref(d,`${f}/${N(e)}/${N(t)}`);return{subscribe(e,t,n){let r=s(o,e=>{if(!(e.data?.event!==t||!e.data.payload))try{n(JSON.parse(e.data.payload))}catch{}});c.add(r);let i=t.startsWith(`client-`)?u.onChildAdded(m(e,t),e=>{let t=e.val();ae(t)&&t.sender!==p&&n(t.payload)}):void 0;return i&&l.add(i),{channel:e,unsubscribe(){r(),c.delete(r),i&&(i(),l.delete(i))}}},async trigger(e,t,n){let r=await u.push(m(e,t),{sender:p,payload:n});await u.remove(r)},async deviceToken(t){return await A(r,o,e,t)},disconnect(){c.forEach(e=>e()),c.clear(),l.forEach(e=>e()),l.clear()}}};var se=T({createFirebaseDatabaseTransport:()=>ue});let P=`arkstack-realtime-database`,ce=e=>encodeURIComponent(e).replace(/\./g,`%2E`),le=e=>{try{let t=e.split(`.`)[1].replace(/-/g,`+`).replace(/_/g,`/`);return JSON.parse(atob(t)).uid??null}catch{return null}},ue=async(e,t=x)=>{let[n,r,i]=await Promise.all([t(`firebase/app`),t(`firebase/auth`),t(`firebase/database`)]).catch(()=>{throw Error('The "firebase" package is required for the Firebase database transport. Install it with `npm i firebase`.')}),a=n.getApps().find(e=>e.name===P)??n.initializeApp({apiKey:e.apiKey,authDomain:e.authDomain,projectId:e.projectId,appId:e.appId,databaseURL:e.databaseURL},P),o=r.getAuth(a),s=i.getDatabase(a,e.databaseURL),c=e.root??`arkstack/channels`,l=e.authEndpoint??`${e.apiBase}/realtime/auth`,u=new Set,d=await new Promise(e=>{i.onValue(i.ref(s,`.info/serverTimeOffset`),t=>e(Number(t.val())||0),{onlyOnce:!0})}),f=Date.now()+d,p=Promise.resolve(),m=async t=>{let n=await fetch(l,{method:`POST`,headers:{"content-type":`application/json`,accept:`application/json`,...e.auth?.headers},body:JSON.stringify({channel_name:t})});if(!n.ok)throw Error(`Realtime: channel "${t}" was not authorized (${n.status})`);let{token:i}=await n.json();p=p.then(async()=>{o.currentUser?.uid!==le(i)&&await r.signInWithCustomToken(o,i)}),await p};return{async subscribe(e,t,n){await m(e);let r=i.onChildAdded(i.query(i.ref(s,`${c}/${ce(e)}`),i.orderByChild(`at`),i.startAt(f)),e=>{let r=e.val();r?.event===t&&n(r.payload)});return u.add(r),{channel:e,unsubscribe(){r(),u.delete(r)}}},async disconnect(){u.forEach(e=>e()),u.clear(),await r.signOut(o)}}};var de=T({createPollingTransport:()=>fe});let fe=(e={})=>({polling:{interval:e.interval??5e3},subscribe(e){return{channel:e,unsubscribe(){}}},disconnect(){}});var pe=T({createMemoryTransport:()=>he,emitMemoryEvent:()=>me});let F=Symbol.for(`arkstack.realtime.client-memory`),I=()=>{let e=globalThis;return e[F]??(e[F]=new Map)},me=(e,t,n)=>{I().get(e)?.forEach(e=>{e.event===t&&e.handler(n)})},he=()=>{let e=new Set;return{subscribe(t,n,r){let i={event:n,handler:r},a=I().get(t)??new Set,o={channel:t,listener:i};return a.add(i),I().set(t,a),e.add(o),{channel:t,unsubscribe(){a.delete(i),e.delete(o)}}},trigger(e,t,n){me(e,t,n)},disconnect(){e.forEach(({channel:e,listener:t})=>I().get(e)?.delete(t)),e.clear()}}},L={sessionTransition:`session.transition`,reviewAction:`review.action`},ge=[`document`,`liveness`,`face_match`],_e={methods:[`geocode_lookup`],on_fail:`review`};function ve(e,t){return e?e.steps.some(e=>e.key===t&&e.enabled):ge.includes(t)}function ye(e){if(!e)return null;let t=e.steps.find(e=>e.key===`address`&&e.enabled);return t?{..._e,...t.config??{}}:null}function be(e){return e?ve(e,`document`)&&!e.options.skip_ocr:!0}function xe(e){return e?e.steps.filter(e=>e.enabled).map(e=>e.key):[...ge]}let Se={"pusher-js":`pusher-js@8/+esm`,"firebase/app":`firebase@11/app/+esm`,"firebase/auth":`firebase@11/auth/+esm`,"firebase/database":`firebase@11/database/+esm`,"firebase/messaging":`firebase@11/messaging/+esm`},Ce=[L.sessionTransition],we=async e=>{try{return await import(e)}catch(t){let n=Se[e];if(!n)throw t;return await import(`https://cdn.jsdelivr.net/npm/${n}`)}};async function Te(e,t){if(e.transport!==`pusher`&&e.transport!==`firebase-database`)return null;let n=t.authEndpoint,r={headers:{"X-Client-Token":t.token}},i=e.pusher,a=e[`firebase-database`],o=te({transport:e.transport,pusher:i&&{...i,authEndpoint:n,auth:r},"firebase-database":a&&{...a,authEndpoint:n,auth:r},importModule:we});return await o.onPoll(()=>{}),{subscribe(e,t){let n=!0,r=[];for(let i of Ce)o.listen(e,i,e=>t(i,e)).then(e=>n?r.push(e):e()).catch(()=>{});return()=>{n=!1,r.forEach(e=>e())}},disconnect(){o.disconnect()}}}var Ee=`.arkyc-root {
2
2
  /* {variables} */
3
3
 
4
4
  color: var(--arkyc-fg);
@@ -730,8 +730,8 @@ select.arkyc-addr-input {
730
730
  .arkyc-hidden {
731
731
  display: none;
732
732
  }
733
- `;let C={background:`#ffffff`,foreground:`#0f172a`,muted:`#64748b`,border:`#e2e8f0`},w={background:`#0f172a`,foreground:`#f8fafc`,muted:`#94a3b8`,border:`#1e293b`};var T=class e{constructor(e){p(this,`primaryColor`,void 0),p(this,`borderRadius`,void 0),p(this,`mode`,void 0),p(this,`logoUrl`,void 0),p(this,`name`,void 0),p(this,`showBranding`,void 0),p(this,`background`,void 0),p(this,`foreground`,void 0),p(this,`muted`,void 0),p(this,`border`,void 0),this.mode=e?.theme===`dark`?`dark`:`light`;let t=this.mode===`dark`?w:C;this.primaryColor=e?.primary_color??`#b8860b`,this.borderRadius=e?.border_radius??12,this.logoUrl=e?.logo_url??null,this.name=e?.name??null,this.showBranding=e?.show_branding!==!1,this.background=t.background,this.foreground=t.foreground,this.muted=t.muted,this.border=t.border}variables(){return[`--arkyc-primary:${this.primaryColor}`,`--arkyc-radius:${this.borderRadius}px`,`--arkyc-bg:${this.background}`,`--arkyc-fg:${this.foreground}`,`--arkyc-muted:${this.muted}`,`--arkyc-border:${this.border}`].join(`;`)}stylesheet(){return S.replace(`/* {variables} */`,`${this.variables()};`).trim()}static rgb(e){let t=Object.fromEntries(e.primaryColor.match(/\d+/g)?.map((e,t)=>[[`r`,`g`,`b`][t],Number(e)])??[])??{r:50,g:100,b:150};return{obj:t,str:`rgb(${[t.r,t.g,t.b].join(`,`)})`}}rgb(t){return e.rgb(t)}},E=class{constructor(e=globalThis.document,t=globalThis.navigator){this.doc=e,this.nav=t,p(this,`stream`,null)}get supported(){return!!this.nav?.mediaDevices?.getUserMedia}async start(e,t){let n=await this.nav.mediaDevices.getUserMedia({video:{facingMode:t},audio:!1});return this.stream=n,e.srcObject=n,e.setAttribute(`playsinline`,`true`),e.muted=!0,await e.play().catch(()=>void 0),n}stop(){this.stream?.getTracks().forEach(e=>e.stop()),this.stream=null}get canRecord(){return globalThis.MediaRecorder!==void 0}recordStart(e){let t=[],n=new MediaRecorder(e,{mimeType:`video/webm`});return n.ondataavailable=e=>{e.data&&e.data.size>0&&t.push(e.data)},n.start(),{stop:()=>new Promise(e=>{n.onstop=()=>e(new Blob(t,{type:`video/webm`})),n.stop()})}}sampleQuality(e){let t=this.doc.createElement(`canvas`);t.width=32,t.height=32;let n=t.getContext(`2d`);if(!n||!e.videoWidth)return null;n.drawImage(e,0,0,t.width,t.height);let{data:r}=n.getImageData(0,0,t.width,t.height),i=0,a=0,o=r.length/4;for(let e=0;e<r.length;e+=4){let t=(.299*r[e]+.587*r[e+1]+.114*r[e+2])/255;i+=t,t>.92&&(a+=1)}let s=i/o;return{brightness:s,tooDark:s<.25,glare:a/o>.15}}grabFrame(e,t=.92){let n=this.doc.createElement(`canvas`);n.width=e.videoWidth||1280,n.height=e.videoHeight||720;let r=n.getContext(`2d`);return r?(r.drawImage(e,0,0,n.width,n.height),new Promise((e,r)=>{n.toBlob(t=>t?e(t):r(Error(`Failed to capture frame.`)),`image/jpeg`,t)})):Promise.reject(Error(`Canvas 2D context unavailable.`))}static fileFromInput(e){return e.files?.[0]??null}};let D={sessionTransition:`session.transition`,reviewAction:`review.action`},O=[`document`,`liveness`,`face_match`],k={methods:[`geocode_lookup`],on_fail:`review`};function A(e,t){return e?e.steps.some(e=>e.key===t&&e.enabled):O.includes(t)}function ee(e){if(!e)return null;let t=e.steps.find(e=>e.key===`address`&&e.enabled);return t?{...k,...t.config??{}}:null}function te(e){return e?A(e,`document`)&&!e.options.skip_ocr:!0}function j(e){return e?e.steps.filter(e=>e.enabled).map(e=>e.key):[...O]}let M={document:[`document_selection`,`front_capture`,`back_capture`,`ocr_processing`],address:[`address_entry`,`address_processing`],liveness:[`active_liveness`,`selfie_capture`,`passive_liveness`],face_match:[`face_match`]};var N=class e{static documentHasBack(e){return e!=null&&e!==`passport`}static stepOrder(e={}){return[`welcome`,...j(e.workflow).flatMap(e=>M[e]),`processing`,`result`]}static isStepEnabled(t,n={}){return t===`back_capture`?e.documentHasBack(n.documentType):t===`ocr_processing`?te(n.workflow):t===`active_liveness`?n.livenessMode===`active`:t===`selfie_capture`||t===`passive_liveness`?n.livenessMode!==`active`:!0}static nextStep(t,n={}){let r=e.stepOrder(n),i=r.indexOf(t);if(i<0)return t;for(let t=i+1;t<r.length;t+=1){let i=r[t];if(e.isStepEnabled(i,n))return i}return t}static isTerminal(t){return e.TERMINAL_STATUSES.includes(t)}static statusToDecision(e){switch(e){case`approved`:return`approved`;case`rejected`:return`rejected`;case`requires_review`:return`requires_review`;default:return null}}};p(N,`STEP_ORDER`,[`welcome`,`document_selection`,`front_capture`,`back_capture`,`ocr_processing`,`active_liveness`,`selfie_capture`,`passive_liveness`,`face_match`,`processing`,`result`]),p(N,`TERMINAL_STATUSES`,[`approved`,`rejected`,`requires_review`,`expired`,`cancelled`]);let P=`0.10.20`,F=e=>`https://cdn.jsdelivr.net/npm/`+e;function I(e,t){return e?.find(e=>e.categoryName===t)?.score??0}function ne(){let e=globalThis.performance;return e?.now?e.now():0}var re=class{constructor(){p(this,`landmarker`,null),p(this,`state`,`idle`),p(this,`loading`,null)}async ready(){return this.state===`ready`?!0:this.state===`failed`?!1:(this.loading||(this.loading=this.load()),this.loading)}async load(){this.state=`loading`;try{if(typeof document>`u`)throw Error(`no document`);if(!document.createElement(`canvas`).getContext(`webgl2`))throw Error(`no webgl2`);let e=await import(F(`@mediapipe/tasks-vision@${P}/vision_bundle.mjs`)),t=await e.FilesetResolver.forVisionTasks(F(`@mediapipe/tasks-vision@${P}/wasm`));return this.landmarker=await e.FaceLandmarker.createFromOptions(t,{baseOptions:{modelAssetPath:`https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task`,delegate:`GPU`},outputFaceBlendshapes:!0,runningMode:`VIDEO`,numFaces:1}),this.state=`ready`,!0}catch{return this.state=`failed`,!1}}analyze(e){if(this.state!==`ready`||!this.landmarker||!e.videoWidth)return null;let t;try{t=this.landmarker.detectForVideo(e,ne())}catch{return null}let n=t.faceLandmarks?.[0];if(!n||n.length===0)return{present:!1,centerX:.5,centerY:.5,scale:0,turn:0,pitch:0,blink:0,smile:0};let r=1,i=0,a=1,o=0;for(let e of n)e.x<r&&(r=e.x),e.x>i&&(i=e.x),e.y<a&&(a=e.y),e.y>o&&(o=e.y);let s=Math.max(.001,o-a),c=n[1],l=n[33],u=n[263],d=n[234],f=n[454],p=n[152],m=c.x-d.x,h=f.x-c.x,g=(h-m)/Math.max(.001,m+h),_=(l.y+u.y)/2,v=(c.y-_)/Math.max(.001,p.y-_),y=t.faceBlendshapes?.[0]?.categories,b=Math.max(I(y,`eyeBlinkLeft`),I(y,`eyeBlinkRight`)),x=(I(y,`mouthSmileLeft`)+I(y,`mouthSmileRight`))/2;return{present:!0,centerX:(r+i)/2,centerY:(a+o)/2,scale:s,turn:g,pitch:v,blink:b,smile:x}}close(){try{this.landmarker?.close()}catch{}this.landmarker=null,this.state=`failed`}};function L(){return new re}let R={turn:.18,smile:.5,blinkClosed:.55,blinkOpen:.25,hold:3,nodDown:.06,nodReturn:.02,closerFactor:1.22,selfieCenterTol:.2,selfieCenterYTol:.25,selfieMinScale:.28,selfieMaxScale:.85};function z(e,t=R){let n=e=>{let n=0;return{feed(r){return n=r.present&&e(r)?n+1:0,n>=t.hold},get progress(){return Math.min(1,n/Math.max(1,t.hold))}}},r=(e,t,n)=>{let r=null,i=!1,a=!1;return{feed(o){if(!o.present)return!1;let s=e(o);if(r===null)return r=s,!1;if(t(s,r))i=!0;else if(i&&n(s,r))return a=!0,!0;return!1},get progress(){return a?1:i?.6:0}}};switch(e){case`blink`:{let e=!1,n=!1;return{feed(r){if(!r.present)return!1;if(r.blink>t.blinkClosed)e=!0;else if(e&&r.blink<t.blinkOpen)return n=!0,!0;return!1},get progress(){return n?1:e?.6:0}}}case`smile`:return n(e=>e.smile>t.smile);case`turn_left`:return n(e=>e.turn<-t.turn);case`turn_right`:return n(e=>e.turn>t.turn);case`nod`:return r(e=>e.pitch,(e,n)=>e>n+t.nodDown,(e,n)=>e<n+t.nodReturn);case`move_closer`:{let e=null,n=0;return{feed(r){return r.present?e===null?(e=r.scale,!1):(n=r.scale>e*t.closerFactor?n+1:0,n>=t.hold):!1},get progress(){return Math.min(1,n/Math.max(1,t.hold))}}}}}function B(e,t=R){return e.present&&Math.abs(e.centerX-.5)<t.selfieCenterTol&&Math.abs(e.centerY-.5)<t.selfieCenterYTol&&e.scale>t.selfieMinScale&&e.scale<t.selfieMaxScale}let V={sampleWidth:320,minFill:.18,maxFill:.97,centerTol:.22,minEdgeStrength:.1,minSharpness:8,borderMargin:.012,minBrightness:.18,hold:5};function ie(e){return[e.y,1-(e.x+e.w),1-(e.y+e.h),e.x]}function H(e,t,n){let r=t,i=-1;for(let a=t;a<n;a+=1){let t=e[a];t>i&&(i=t,r=a)}return{i:r,v:i}}function U(e,t,n){let r={present:!1,rect:{x:0,y:0,w:0,h:0},fill:0,centerX:.5,centerY:.5,edgeStrength:0,sharpness:0,brightness:0};if(t<8||n<8||e.length<t*n)return r;let i=new Float64Array(n),a=new Float64Array(t),o=0,s=0,c=0,l=0;for(let r=0;r<t*n;r+=1)l+=e[r];let u=l/(t*n*255);for(let r=1;r<n-1;r+=1)for(let n=1;n<t-1;n+=1){let l=r*t+n,u=e[l-t-1],d=e[l-t],f=e[l-t+1],p=e[l-1],m=e[l],h=e[l+1],g=e[l+t-1],_=e[l+t],v=e[l+t+1],y=f+2*h+v-(u+2*p+g),b=g+2*_+v-(u+2*d+f);i[r]+=Math.abs(b),a[n]+=Math.abs(y);let x=4*m-p-h-d-_;o+=x,s+=x*x,c+=1}let d=c?s/c-(o/c)**2:0,f=Math.max(1,Math.floor(n*.05)),p=Math.max(1,Math.floor(t*.05)),m=Math.floor(n/2),h=Math.floor(t/2),g=H(i,f,m),_=H(i,m,n-f),v=H(a,p,h),y=H(a,h,t-p),b=v.i/t,x=y.i/t,S=g.i/n,C=_.i/n,w={x:b,y:S,w:Math.max(0,x-b),h:Math.max(0,C-S)},T=Math.max(1,w.w*t),E=Math.max(1,w.h*n),D=Math.min(g.v/(T*1020),_.v/(T*1020),v.v/(E*1020),y.v/(E*1020));return{present:w.w>.12&&w.h>.12&&D>.04,rect:w,fill:w.w*w.h,centerX:(b+x)/2,centerY:(S+C)/2,edgeStrength:D,sharpness:d,brightness:u}}function W(e,t=V){return e.brightness<t.minBrightness?{ready:!1,hint:`Too dark — find better lighting`}:!e.present||e.edgeStrength<t.minEdgeStrength?{ready:!1,hint:`Fit your document inside the frame`}:e.fill>t.maxFill||Math.min(...ie(e.rect))<t.borderMargin?{ready:!1,hint:`Move back a little — fit the whole document`}:e.fill<t.minFill?{ready:!1,hint:`Move closer`}:Math.abs(e.centerX-.5)>t.centerTol||Math.abs(e.centerY-.5)>t.centerTol?{ready:!1,hint:`Center the document`}:e.sharpness<t.minSharpness?{ready:!1,hint:`Hold steady to focus`}:{ready:!0,hint:`Looks good — hold steady`}}function ae(e,t=V){return W(e,t).ready}var oe=class{constructor(e){this.tuning=e,p(this,`canvas`,null),p(this,`ctx`,null)}ready(){try{if(typeof document>`u`)return Promise.resolve(!1);let e=document.createElement(`canvas`),t=e.getContext(`2d`,{willReadFrequently:!0});return t?(this.canvas=e,this.ctx=t,Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}analyze(e){if(!this.ctx||!this.canvas||!e.videoWidth)return null;let t=this.tuning.sampleWidth,n=Math.max(1,Math.round(t*e.videoHeight/e.videoWidth));this.canvas.width=t,this.canvas.height=n;let r;try{this.ctx.drawImage(e,0,0,t,n),r=this.ctx.getImageData(0,0,t,n).data}catch{return null}let i=new Float32Array(t*n);for(let e=0,t=0;e<i.length;e+=1,t+=4)i[e]=.299*r[t]+.587*r[t+1]+.114*r[t+2];return U(i,t,n)}close(){this.canvas=null,this.ctx=null}};function G(e=V){return new oe(e)}let K=[{name:`United States`,iso2:`US`,flag:`🇺🇸`},{name:`Canada`,iso2:`CA`,flag:`🇨🇦`},{name:`Brazil`,iso2:`BR`,flag:`🇧🇷`},{name:`United Kingdom`,iso2:`GB`,flag:`🇬🇧`},{name:`Germany`,iso2:`DE`,flag:`🇩🇪`},{name:`France`,iso2:`FR`,flag:`🇫🇷`},{name:`China`,iso2:`CN`,flag:`🇨🇳`},{name:`Japan`,iso2:`JP`,flag:`🇯🇵`},{name:`India`,iso2:`IN`,flag:`🇮🇳`},{name:`Australia`,iso2:`AU`,flag:`🇦🇺`},{name:`South Africa`,iso2:`ZA`,flag:`🇿🇦`},{name:`Russia`,iso2:`RU`,flag:`🇷🇺`},{name:`Saudi Arabia`,iso2:`SA`,flag:`🇸🇦`},{name:`Afghanistan`,iso2:`AF`,flag:`🇦🇫`},{name:`Albania`,iso2:`AL`,flag:`🇦🇱`},{name:`Algeria`,iso2:`DZ`,flag:`🇩🇿`},{name:`Andorra`,iso2:`AD`,flag:`🇦🇩`},{name:`Angola`,iso2:`AO`,flag:`🇦🇴`},{name:`Antigua and Barbuda`,iso2:`AG`,flag:`🇦🇬`},{name:`Argentina`,iso2:`AR`,flag:`🇦🇷`},{name:`Armenia`,iso2:`AM`,flag:`🇦🇲`},{name:`Austria`,iso2:`AT`,flag:`🇦🇹`},{name:`Azerbaijan`,iso2:`AZ`,flag:`🇦🇿`},{name:`Bahamas`,iso2:`BS`,flag:`🇧🇸`},{name:`Bahrain`,iso2:`BH`,flag:`🇧🇭`},{name:`Bangladesh`,iso2:`BD`,flag:`🇧🇩`},{name:`Barbados`,iso2:`BB`,flag:`🇧🇧`},{name:`Belarus`,iso2:`BY`,flag:`🇧🇾`},{name:`Belgium`,iso2:`BE`,flag:`🇧🇪`},{name:`Belize`,iso2:`BZ`,flag:`🇧🇿`},{name:`Benin`,iso2:`BJ`,flag:`🇧🇯`},{name:`Bhutan`,iso2:`BT`,flag:`🇧🇹`},{name:`Bolivia`,iso2:`BO`,flag:`🇧🇴`},{name:`Bosnia and Herzegovina`,iso2:`BA`,flag:`🇧🇦`},{name:`Botswana`,iso2:`BW`,flag:`🇧🇼`},{name:`Brunei`,iso2:`BN`,flag:`🇧🇳`},{name:`Bulgaria`,iso2:`BG`,flag:`🇧🇬`},{name:`Burkina Faso`,iso2:`BF`,flag:`🇧🇫`},{name:`Burundi`,iso2:`BI`,flag:`🇧🇮`},{name:`Cabo Verde`,iso2:`CV`,flag:`🇨🇻`},{name:`Cambodia`,iso2:`KH`,flag:`🇰🇭`},{name:`Cameroon`,iso2:`CM`,flag:`🇨🇲`},{name:`Central African Republic`,iso2:`CF`,flag:`🇨🇫`},{name:`Chad`,iso2:`TD`,flag:`🇹🇩`},{name:`Chile`,iso2:`CL`,flag:`🇨🇱`},{name:`Colombia`,iso2:`CO`,flag:`🇨🇴`},{name:`Comoros`,iso2:`KM`,flag:`🇰🇲`},{name:`Congo (Congo-Brazzaville)`,iso2:`CG`,flag:`🇨🇬`},{name:`Congo (Congo-Kinshasa)`,iso2:`CD`,flag:`🇨🇩`},{name:`Costa Rica`,iso2:`CR`,flag:`🇨🇷`},{name:`Croatia`,iso2:`HR`,flag:`🇭🇷`},{name:`Cuba`,iso2:`CU`,flag:`🇨🇺`},{name:`Cyprus`,iso2:`CY`,flag:`🇨🇾`},{name:`Czech Republic`,iso2:`CZ`,flag:`🇨🇿`},{name:`Denmark`,iso2:`DK`,flag:`🇩🇰`},{name:`Djibouti`,iso2:`DJ`,flag:`🇩🇯`},{name:`Dominica`,iso2:`DM`,flag:`🇩🇲`},{name:`Dominican Republic`,iso2:`DO`,flag:`🇩🇴`},{name:`Ecuador`,iso2:`EC`,flag:`🇪🇨`},{name:`Egypt`,iso2:`EG`,flag:`🇪🇬`},{name:`El Salvador`,iso2:`SV`,flag:`🇸🇻`},{name:`Equatorial Guinea`,iso2:`GQ`,flag:`🇬🇶`},{name:`Eritrea`,iso2:`ER`,flag:`🇪🇷`},{name:`Estonia`,iso2:`EE`,flag:`🇪🇪`},{name:`Eswatini`,iso2:`SZ`,flag:`🇸🇿`},{name:`Ethiopia`,iso2:`ET`,flag:`🇪🇹`},{name:`Fiji`,iso2:`FJ`,flag:`🇫🇯`},{name:`Finland`,iso2:`FI`,flag:`🇫🇮`},{name:`Gabon`,iso2:`GA`,flag:`🇬🇦`},{name:`Gambia`,iso2:`GM`,flag:`🇬🇲`},{name:`Georgia`,iso2:`GE`,flag:`🇬🇪`},{name:`Ghana`,iso2:`GH`,flag:`🇬🇭`},{name:`Greece`,iso2:`GR`,flag:`🇬🇷`},{name:`Grenada`,iso2:`GD`,flag:`🇬🇩`},{name:`Guatemala`,iso2:`GT`,flag:`🇬🇹`},{name:`Guinea`,iso2:`GN`,flag:`🇬🇳`},{name:`Guinea-Bissau`,iso2:`GW`,flag:`🇬🇼`},{name:`Guyana`,iso2:`GY`,flag:`🇬🇾`},{name:`Haiti`,iso2:`HT`,flag:`🇭🇹`},{name:`Honduras`,iso2:`HN`,flag:`🇭🇳`},{name:`Hungary`,iso2:`HU`,flag:`🇭🇺`},{name:`Iceland`,iso2:`IS`,flag:`🇮🇸`},{name:`Indonesia`,iso2:`ID`,flag:`🇮🇩`},{name:`Iran`,iso2:`IR`,flag:`🇮🇷`},{name:`Iraq`,iso2:`IQ`,flag:`🇮🇶`},{name:`Ireland`,iso2:`IE`,flag:`🇮🇪`},{name:`Israel`,iso2:`IL`,flag:`🇮🇱`},{name:`Italy`,iso2:`IT`,flag:`🇮🇹`},{name:`Jamaica`,iso2:`JM`,flag:`🇯🇲`},{name:`Jordan`,iso2:`JO`,flag:`🇯🇴`},{name:`Kazakhstan`,iso2:`KZ`,flag:`🇰🇿`},{name:`Kenya`,iso2:`KE`,flag:`🇰🇪`},{name:`Kiribati`,iso2:`KI`,flag:`🇰🇮`},{name:`Kuwait`,iso2:`KW`,flag:`🇰🇼`},{name:`Kyrgyzstan`,iso2:`KG`,flag:`🇰🇬`},{name:`Laos`,iso2:`LA`,flag:`🇱🇦`},{name:`Latvia`,iso2:`LV`,flag:`🇱🇻`},{name:`Lebanon`,iso2:`LB`,flag:`🇱🇧`},{name:`Lesotho`,iso2:`LS`,flag:`🇱🇸`},{name:`Liberia`,iso2:`LR`,flag:`🇱🇷`},{name:`Libya`,iso2:`LY`,flag:`🇱🇾`},{name:`Liechtenstein`,iso2:`LI`,flag:`🇱🇮`},{name:`Lithuania`,iso2:`LT`,flag:`🇱🇹`},{name:`Luxembourg`,iso2:`LU`,flag:`🇱🇺`},{name:`Madagascar`,iso2:`MG`,flag:`🇲🇬`},{name:`Malawi`,iso2:`MW`,flag:`🇲🇼`},{name:`Malaysia`,iso2:`MY`,flag:`🇲🇾`},{name:`Maldives`,iso2:`MV`,flag:`🇲🇻`},{name:`Mali`,iso2:`ML`,flag:`🇲🇱`},{name:`Malta`,iso2:`MT`,flag:`🇲🇹`},{name:`Marshall Islands`,iso2:`MH`,flag:`🇲🇭`},{name:`Mauritania`,iso2:`MR`,flag:`🇲🇷`},{name:`Mauritius`,iso2:`MU`,flag:`🇲🇺`},{name:`Mexico`,iso2:`MX`,flag:`🇲🇽`},{name:`Micronesia`,iso2:`FM`,flag:`🇫🇲`},{name:`Moldova`,iso2:`MD`,flag:`🇲🇩`},{name:`Monaco`,iso2:`MC`,flag:`🇲🇨`},{name:`Mongolia`,iso2:`MN`,flag:`🇲🇳`},{name:`Montenegro`,iso2:`ME`,flag:`🇲🇪`},{name:`Morocco`,iso2:`MA`,flag:`🇲🇦`},{name:`Mozambique`,iso2:`MZ`,flag:`🇲🇿`},{name:`Myanmar`,iso2:`MM`,flag:`🇲🇲`},{name:`Namibia`,iso2:`NA`,flag:`🇳🇦`},{name:`Nauru`,iso2:`NR`,flag:`🇳🇷`},{name:`Nepal`,iso2:`NP`,flag:`🇳🇵`},{name:`Netherlands`,iso2:`NL`,flag:`🇳🇱`},{name:`New Zealand`,iso2:`NZ`,flag:`🇳🇿`},{name:`Nicaragua`,iso2:`NI`,flag:`🇳🇮`},{name:`Niger`,iso2:`NE`,flag:`🇳🇪`},{name:`Nigeria`,iso2:`NG`,flag:`🇳🇬`},{name:`North Korea`,iso2:`KP`,flag:`🇰🇵`},{name:`North Macedonia`,iso2:`MK`,flag:`🇲🇰`},{name:`Norway`,iso2:`NO`,flag:`🇳🇴`},{name:`Oman`,iso2:`OM`,flag:`🇴🇲`},{name:`Pakistan`,iso2:`PK`,flag:`🇵🇰`},{name:`Palau`,iso2:`PW`,flag:`🇵🇼`},{name:`Panama`,iso2:`PA`,flag:`🇵🇦`},{name:`Papua New Guinea`,iso2:`PG`,flag:`🇵🇬`},{name:`Paraguay`,iso2:`PY`,flag:`🇵🇾`},{name:`Peru`,iso2:`PE`,flag:`🇵🇪`},{name:`Philippines`,iso2:`PH`,flag:`🇵🇭`},{name:`Poland`,iso2:`PL`,flag:`🇵🇱`},{name:`Portugal`,iso2:`PT`,flag:`🇵🇹`},{name:`Qatar`,iso2:`QA`,flag:`🇶🇦`},{name:`Romania`,iso2:`RO`,flag:`🇷🇴`},{name:`Rwanda`,iso2:`RW`,flag:`🇷🇼`},{name:`Saint Kitts and Nevis`,iso2:`KN`,flag:`🇰🇳`},{name:`Saint Lucia`,iso2:`LC`,flag:`🇱🇨`},{name:`Saint Vincent and the Grenadines`,iso2:`VC`,flag:`🇻🇨`},{name:`Samoa`,iso2:`WS`,flag:`🇼🇸`},{name:`San Marino`,iso2:`SM`,flag:`🇸🇲`},{name:`Sao Tome and Principe`,iso2:`ST`,flag:`🇸🇹`},{name:`Senegal`,iso2:`SN`,flag:`🇸🇳`},{name:`Serbia`,iso2:`RS`,flag:`🇷🇸`},{name:`Seychelles`,iso2:`SC`,flag:`🇸🇨`},{name:`Sierra Leone`,iso2:`SL`,flag:`🇸🇱`},{name:`Singapore`,iso2:`SG`,flag:`🇸🇬`},{name:`Slovakia`,iso2:`SK`,flag:`🇸🇰`},{name:`Slovenia`,iso2:`SI`,flag:`🇸🇮`},{name:`Solomon Islands`,iso2:`SB`,flag:`🇸🇧`},{name:`Somalia`,iso2:`SO`,flag:`🇸🇴`},{name:`South Korea`,iso2:`KR`,flag:`🇰🇷`},{name:`South Sudan`,iso2:`SS`,flag:`🇸🇸`},{name:`Spain`,iso2:`ES`,flag:`🇪🇸`},{name:`Sri Lanka`,iso2:`LK`,flag:`🇱🇰`},{name:`Sudan`,iso2:`SD`,flag:`🇸🇩`},{name:`Suriname`,iso2:`SR`,flag:`🇸🇷`},{name:`Sweden`,iso2:`SE`,flag:`🇸🇪`},{name:`Switzerland`,iso2:`CH`,flag:`🇨🇭`},{name:`Syria`,iso2:`SY`,flag:`🇸🇾`},{name:`Tajikistan`,iso2:`TJ`,flag:`🇹🇯`},{name:`Tanzania`,iso2:`TZ`,flag:`🇹🇿`},{name:`Thailand`,iso2:`TH`,flag:`🇹🇭`},{name:`Togo`,iso2:`TG`,flag:`🇹🇬`},{name:`Tonga`,iso2:`TO`,flag:`🇹🇴`},{name:`Trinidad and Tobago`,iso2:`TT`,flag:`🇹🇹`},{name:`Tunisia`,iso2:`TN`,flag:`🇹🇳`},{name:`Turkey`,iso2:`TR`,flag:`🇹🇷`},{name:`Turkmenistan`,iso2:`TM`,flag:`🇹🇲`},{name:`Tuvalu`,iso2:`TV`,flag:`🇹🇻`},{name:`Uganda`,iso2:`UG`,flag:`🇺🇬`},{name:`Ukraine`,iso2:`UA`,flag:`🇺🇦`},{name:`United Arab Emirates`,iso2:`AE`,flag:`🇦🇪`},{name:`Uruguay`,iso2:`UY`,flag:`🇺🇾`},{name:`Uzbekistan`,iso2:`UZ`,flag:`🇺🇿`},{name:`Vanuatu`,iso2:`VU`,flag:`🇻🇺`},{name:`Venezuela`,iso2:`VE`,flag:`🇻🇪`},{name:`Vietnam`,iso2:`VN`,flag:`🇻🇳`},{name:`Yemen`,iso2:`YE`,flag:`🇾🇪`},{name:`Zambia`,iso2:`ZM`,flag:`🇿🇲`},{name:`Zimbabwe`,iso2:`ZW`,flag:`🇿🇼`},{name:`Timor-Leste`,iso2:`TL`,flag:`🇹🇱`}];function se(e){function t(t,n){for(let r of Array.isArray(n)?n:[n])r==null||r===!1||t.appendChild(typeof r==`string`?e.createTextNode(r):r)}function n(n,r={},i){let a=e.createElement(n);for(let[e,t]of Object.entries(r))if(t!=null)if(e===`on`)for(let[e,n]of Object.entries(t))a.addEventListener(e,n);else e===`class`?a.className=t:e===`text`?a.textContent=t:e===`html`?a.innerHTML=t:e===`value`||e===`src`||e===`type`||e===`accept`||e===`placeholder`?a[e]=t:a.setAttribute(e,t);return t(a,i),a}function r(e,t={}){let r=t.class??`arkyc-addr-input`;return t.choices?n(`select`,{class:r,name:t.name,autocomplete:t.autocomplete,"aria-label":t.name??e},[n(`option`,{value:``,text:e}),...t.choices.map(e=>n(`option`,{value:typeof e==`string`?e:e.value,text:typeof e==`string`?e:e.label??e.value}))]):n(`input`,{class:r,type:t.type??`text`,placeholder:e,name:t.name,autocomplete:t.autocomplete,value:t.value})}return{h:n,append:t,field:r}}let q={passport:`Passport`,id_card:`ID Card`,drivers_license:`Driver's License`,residence_permit:`Residence Permit`},J={turn_left:`Slowly turn your head to the left, and hold`,turn_right:`Slowly turn your head to the right, and hold`,blink:`Blink slowly`,smile:`Smile, and hold it`,nod:`Slowly nod your head`,move_closer:`Slowly move closer to the camera`},Y={cls:`warn`,icon:`⏳`,title:`Link expired`,copy:`This verification link has expired.`},ce={approved:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been completed.`},rejected:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been completed.`},requires_review:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been submitted and is being reviewed.`},expired:Y,cancelled:{cls:`warn`,icon:`⏳`,title:`Cancelled`,copy:`This verification was cancelled.`}},X=e=>`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">${e}</svg>`,le={turn_right:X(`<path d="M5 12h14M13 6l6 6-6 6"/>`),turn_left:X(`<path d="M19 12H5M11 6l-6 6 6 6"/>`),nod:X(`<path d="M12 5v14M6 13l6 6 6-6"/>`),move_closer:X(`<circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3"/>`),blink:X(`<path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/>`),smile:X(`<path d="M8 14s1.5 2 4 2 4-2 4-2"/><path d="M9 9h.01M15 9h.01"/>`)},ue=X(`<path d="M20 6 9 17l-5-5"/>`),Z=e=>`<svg viewBox="0 0 64 64" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">${e}</svg>`,de={welcome:Z(`<path d="M32 7 52 14v14c0 12.5-8.2 21.6-20 25.6C20.2 49.6 12 40.5 12 28V14z"/><path d="M23 30.5l6.2 6.2L41 24.5"/>`),front_capture:Z(`<rect x="7" y="15" width="50" height="34" rx="5"/><circle cx="22" cy="28" r="5"/><path d="M14 42c1-5 5-7 8-7s7 2 8 7"/><path d="M38 27h12M38 34h12M38 41h8"/>`),back_capture:Z(`<rect x="7" y="15" width="50" height="34" rx="5"/><rect x="7" y="20" width="50" height="6" fill="currentColor" stroke="none" opacity=".18"/><path d="M14 34h36M14 41h24"/>`),selfie_capture:Z(`<path d="M10 20v-6a4 4 0 0 1 4-4h6"/><path d="M44 10h6a4 4 0 0 1 4 4v6"/><path d="M54 44v6a4 4 0 0 1-4 4h-6"/><path d="M20 54h-6a4 4 0 0 1-4-4v-6"/><circle cx="32" cy="27" r="8"/><path d="M19 50c0-7 6-11 13-11s13 4 13 11"/>`),active_liveness:Z(`<circle cx="32" cy="30" r="13"/><circle cx="27" cy="27" r="1.2" fill="currentColor" stroke="none"/><circle cx="37" cy="27" r="1.2" fill="currentColor" stroke="none"/><path d="M26 34c2 2.5 10 2.5 12 0"/><path d="M13 30H6M10 26l-4 4 4 4"/><path d="M51 30h7M54 26l4 4-4 4"/>`)};var fe=class{constructor(e,t,n,r=globalThis.navigator,i=L(),a=R,o=G(),s=V){this.doc=e,this.theme=t,this.handlers=n,p(this,`root`,void 0),p(this,`body`,void 0),p(this,`footer`,void 0),p(this,`styleEl`,void 0),p(this,`brandEl`,void 0),p(this,`camera`,void 0),p(this,`analyzer`,void 0),p(this,`tuning`,void 0),p(this,`docAnalyzer`,void 0),p(this,`docTuning`,void 0),p(this,`timers`,[]),p(this,`cleanups`,[]),p(this,`dom`,void 0),this.dom=se(e),this.camera=new E(e,r),this.analyzer=i,this.tuning=a,this.docAnalyzer=o,this.docTuning=s,this.root=this.dom.h(`div`,{class:`arkyc-root`}),this.styleEl=this.dom.h(`style`,{text:t.stylesheet()}),this.root.appendChild(this.styleEl),this.brandEl=this.dom.h(`div`,{class:`arkyc-brand`}),this.fillBrand(),this.body=this.dom.h(`div`,{class:`arkyc-body`}),this.footer=this.dom.h(`div`,{class:`arkyc-footer`});let c=this.dom.h(`div`,{class:`arkyc-header`},[this.brandEl,this.dom.h(`button`,{class:`arkyc-close`,html:`&times;`,"aria-label":`Close`,on:{click:()=>this.handlers.onClose()}})]);this.root.appendChild(this.dom.h(`div`,{class:`arkyc-card`},[c,this.body,this.footer]))}fillBrand(){this.clear(this.brandEl);let e=Date.now()-Math.floor(600*1e3*Math.random()),t=this.theme.showBranding&&(this.theme.logoUrl||this.theme.name);this.dom.append(this.brandEl,t?[this.theme.logoUrl&&this.dom.h(`img`,{class:`arkyc-logo`,src:`${this.theme.logoUrl}?stamp=${e}`}),this.theme.name&&this.dom.h(`span`,{class:`arkyc-brand-name`,text:this.theme.name})]:this.dom.h(`p`,{class:`arkyc-title`,text:`Verify your identity`}))}applyBranding(e){this.theme=new T(e),this.styleEl.textContent=this.theme.stylesheet(),this.fillBrand()}get element(){return this.root}get cameraSupported(){return this.camera.supported}destroy(){this.timers.forEach(e=>clearInterval(e)),this.timers=[],this.cleanups.forEach(e=>e()),this.cleanups=[],this.camera.stop()}render(e){switch(this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),e.step){case`welcome`:return this.renderWelcome(e.handoffAvailable);case`document_selection`:return this.renderDocumentSelection();case`front_capture`:return this.renderCapture(`Front of document`,`environment`,e.allowSkip,!1,e.strictCapture);case`back_capture`:return this.renderCapture(`Back of document`,`environment`,e.allowSkip,!1,e.strictCapture);case`selfie_capture`:return this.renderCapture(`Take a selfie`,`user`,e.allowSkip,!0,e.strictCapture);case`active_liveness`:return this.renderActiveLiveness(e.livenessChallenges??[],e.allowSkip,e.requireLiveCamera);case`ocr_processing`:return this.renderProcessing(`Reading your document…`);case`address_entry`:return this.renderAddressForm(e.addressMethods??[]);case`address_processing`:return this.renderProcessing(`Verifying your address…`);case`passive_liveness`:return this.renderProcessing(`Checking liveness…`);case`face_match`:return this.renderProcessing(`Matching your face…`);case`processing`:return this.renderProcessing(e.statusLabel??`Finalising verification…`);case`result`:return this.renderResult(e.decision??null,e.errorMessage,{terminal:e.terminalNotice,status:e.status})}}appendArt(e){let t=de[e];t&&this.body.appendChild(this.dom.h(`div`,{class:`arkyc-illus`,html:t}))}renderWelcome(e){this.appendArt(`welcome`),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Verify your identity`}),this.dom.h(`p`,{class:`arkyc-p`,text:`You will need a government-issued ID and a moment to take a selfie. Your data is processed securely.`})]),this.dom.append(this.footer,[this.button(`Get started`,()=>this.handlers.onStart()),e&&this.button(`Continue on your phone`,()=>this.handlers.onUsePhone(),`arkyc-btn-ghost`)])}renderLoading(e=`Loading…`){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),this.renderProcessing(e)}renderInstruction(e,t,n,r,i){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),this.appendArt(e),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:t}),this.dom.h(`p`,{class:`arkyc-p`,text:n})]),this.footer.appendChild(this.button(r,i))}renderHandoff(e,t){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.add(`arkyc-handoff`),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Continue on your phone`}),this.dom.h(`p`,{class:`arkyc-p`,text:`Scan this code with your phone camera to finish verifying there.`}),this.dom.h(`div`,{class:`arkyc-qr`,html:e}),this.dom.h(`div`,{class:`arkyc-handoff-wait`},[this.dom.h(`div`,{class:`arkyc-spinner sm`}),this.dom.h(`span`,{text:`Waiting for your phone…`})])]),t&&this.footer.appendChild(this.button(`Continue on this device`,()=>this.handlers.onContinueHere(),`arkyc-btn-ghost`))}renderDocumentSelection(){this.body.appendChild(this.dom.h(`h2`,{class:`arkyc-h`,text:`Select your document`}));let e=this.dom.field(`Country`,{class:`arkyc-btn arkyc-btn-ghost arkyc-text-center`,name:`country`,autocomplete:`country`,choices:K.map(({name:e,iso2:t,flag:n})=>({value:t,label:`${n} ${e}`}))}),t=Object.keys(q).map(t=>{let n=this.button(q[t],()=>this.handlers.onDocumentSelected(t,(e.value||``).trim().toUpperCase()));return n.classList.add(`arkyc-btn-ghost`),n});this.body.appendChild(this.dom.h(`div`,{class:`arkyc-choices`},[e,...t]))}renderCapture(e,t,n,r=!1,i=!1){let a=i&&!r,o=this.dom.h(`input`,{type:`file`,accept:`image/*`,class:`arkyc-hidden`,on:{change:()=>this.handlers.onImage(E.fileFromInput(o))}});if(this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:e}),this.dom.h(`p`,{class:`arkyc-p`,text:`Position it clearly in frame, then capture.`}),o]),this.camera.supported){let s=this.dom.h(`video`,{class:`arkyc-preview${r?` selfie`:``}`}),c=r?this.buildFaceStage(s):null,l=r?null:this.buildDocStage(s),u=c?.stage??l.stage;this.body.appendChild(u);let d=this.dom.h(`p`,{class:`arkyc-p arkyc-hint`});this.body.appendChild(d);let f=a=>{if(this.destroy(),a){let e=URL.createObjectURL(a),t=this.dom.h(`img`,{class:`arkyc-preview${r?` selfie`:``}`,src:e});u.replaceWith(t),this.cleanups.push(()=>URL.revokeObjectURL(e))}else u.classList.add(`arkyc-hidden`);this.clear(this.footer),d.textContent=`✓ Captured`,this.footer.appendChild(this.button(`Continue`,()=>this.handlers.onImage(a)));let o=this.button(`Retake`,()=>{this.destroy(),this.clear(this.body),this.clear(this.footer),this.renderCapture(e,t,n,r,i)});o.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(o)},p=()=>void this.camera.grabFrame(s).then(f);this.camera.start(s,t).catch(()=>{if(u.classList.add(`arkyc-hidden`),a){d.textContent=`Camera access is required to scan your document. Please allow access and try again.`;return}o.click()}),r?this.runSelfieAutoCapture(s,d,p,c):(this.runDocumentAutoCapture(s,d,l,a,p),a||this.footer.appendChild(this.button(`Capture`,p)))}else if(a)this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`}),this.dom.h(`p`,{class:`arkyc-p`,text:`This step needs a working camera to scan your document. Please retry on a device with a camera.`})]);else{let e=this.button(`Upload photo`,()=>o.click());this.footer.appendChild(e)}if(n){let e=this.button(`Skip (demo)`,()=>this.handlers.onImage(null));e.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(e)}}onCameraLive(e,t){if((e.readyState??0)>=2){t();return}e.addEventListener(`playing`,t,{once:!0})}runDocumentAutoCapture(e,t,n,r,i){let a=()=>{if(r){t.textContent=`Document scanning isn’t available on this device.`;return}this.runDocumentBrightnessCapture(e,t,n,i)},o=this.docAnalyzer;if(!o)return a();t.textContent=`Starting camera…`;let s=!1,c=!1;this.cleanups.push(()=>{s=!0}),this.onCameraLive(e,()=>{!s&&!c&&(t.textContent=`Getting ready…`)}),o.ready().then(r=>{if(c=!0,s)return;if(!r){a();return}let l=0,u=null,d=null,f=(e,t)=>e==null?t:e*.6+t*.4,p=setInterval(()=>{let r=o.analyze(e);if(!r)return;u=f(u,r.fill),d=f(d,r.edgeStrength);let{ready:a,hint:s}=W({...r,fill:u,edgeStrength:d},this.docTuning);t.textContent=s,n.setFrame(r.present?r.rect:null),n.setQuality(a?`good`:r.present?`wait`:`bad`),l=a?l+1:Math.max(0,l-1),l>=this.docTuning.hold&&(clearInterval(p),n.setQuality(`good`),i())},250);this.timers.push(p)})}runDocumentBrightnessCapture(e,t,n,r){let i=0,a=setInterval(()=>{let o=this.camera.sampleQuality(e);o&&(o.tooDark?(t.textContent=`Too dark — find better lighting`,i=0,n.setQuality(`bad`)):o.glare?(t.textContent=`Reduce glare on the document`,i=0,n.setQuality(`bad`)):(t.textContent=`Looks good — hold steady`,i+=1,n.setQuality(`good`)),i>=5&&(clearInterval(a),r()))},300);this.timers.push(a)}runSelfieAutoCapture(e,t,n,r){let i=this.analyzer,a=()=>this.footer.appendChild(this.button(`Capture`,n));if(!i){t.textContent=`Center your face, then capture`,a();return}t.textContent=`Starting camera…`;let o=!1,s=!1;this.cleanups.push(()=>{o=!0}),this.onCameraLive(e,()=>{!o&&!s&&(t.textContent=`Getting ready…`)}),i.ready().then(c=>{if(s=!0,o)return;if(!c){t.textContent=`Center your face, then capture`,a();return}let l=0,u=setInterval(()=>{let a=i.analyze(e);if(!a||!a.present){t.textContent=`Position your face in the circle`,l=0,r.setState(`wait`),r.setProgress(0);return}B(a,this.tuning)?(t.textContent=`Hold still…`,l+=1,r.setState(`good`),r.setProgress(l/4)):(t.textContent=a.scale<=this.tuning.selfieMinScale?`Move a little closer`:`Center your face`,l=0,r.setState(`wait`),r.setProgress(0)),l>=4&&(clearInterval(u),r.setState(`done`),r.setProgress(1),n())},180);this.timers.push(u)})}renderActiveLiveness(e,t,n){let r=this.dom.h(`p`,{class:`arkyc-p`,text:`Follow the on-screen prompts. Keep your face centred in the circle.`});if(this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Liveness check`}),r]),!this.camera.supported||!this.camera.canRecord){if(n){if(this.body.appendChild(this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`})),r.textContent=`This check needs camera access on a supported device. Please retry on a device with a working camera.`,t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}return}let i=this.button(`I performed the steps`,()=>this.handlers.onActiveLiveness(null,e));if(this.footer.appendChild(i),t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}return}let i=this.dom.h(`video`,{class:`arkyc-preview selfie`}),a=this.buildFaceStage(i),o=this.buildDots(e.length);this.dom.append(this.body,[e.length>1&&o.el,a.stage]);let s=null,c=0,l=[],u=z(e[0]??`blink`,this.tuning),d=(t=!1)=>{let n=e[c];if(!n){r.textContent=`Hold still…`;return}r.textContent=t?`✓ ${J[n]}`:`Step ${c+1} of ${e.length}: ${J[n]}`},f=()=>{a.setCue(e[c]??null),a.setState(`wait`),a.setProgress(0),o.setActive(c)},p=()=>{h.setAttribute(`disabled`,`true`),this.camera.grabFrame(i).then(e=>Promise.resolve(s?.stop()??Promise.resolve(null)).then(t=>this.handlers.onActiveLiveness(t,l,e)))},m=()=>{if(c>=e.length)return;let t=e[c];if(t&&l.push(t),o.markDone(c),c+=1,c>=e.length){p();return}u=z(e[c],this.tuning),d(),f(),c===e.length-1&&(h.textContent=`Finish`)},h=this.button(`Next`,()=>m());e.length<=1&&(h.textContent=`Finish`);let g=!1,_=()=>{g||(g=!0,this.footer.appendChild(h))};if(this.camera.start(i,`user`).then(t=>{s=this.camera.recordStart(t),d(),f();let n=this.analyzer;if(!n){_();return}let r=!1;this.cleanups.push(()=>{r=!0}),n.ready().then(t=>{if(r)return;if(!t){_();return}let o=!1,s=setInterval(()=>{if(c>=e.length){clearInterval(s);return}if(o)return;let t=n.analyze(i);if(!t)return;let r=u.feed(t);if(a.setProgress(u.progress),r){a.setState(`done`),d(!0),o=!0;let e=setTimeout(()=>{o=!1,m()},650);this.cleanups.push(()=>clearTimeout(e))}else a.setState(u.progress>0?`good`:`wait`)},160);this.timers.push(s)})}).catch(()=>{if(a.stage.classList.add(`arkyc-hidden`),n){r.textContent=`Camera access is required to continue. Please allow access and try again.`;return}this.handlers.onActiveLiveness(null,e)}),t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}}buildFaceStage(e){let t=this.dom.h(`div`,{class:`arkyc-ring`,html:`<svg viewBox="0 0 100 100"><circle class="arkyc-ring-track" cx="50" cy="50" r="46"/><circle class="arkyc-ring-arc" cx="50" cy="50" r="46"/></svg>`}),n=this.dom.h(`div`,{class:`arkyc-cue`}),r=this.dom.h(`div`,{class:`arkyc-stage`,"data-state":`wait`},[e,t,n,this.dom.h(`div`,{class:`arkyc-check`,html:ue})]),i=t.querySelector(`.arkyc-ring-arc`),a=2*Math.PI*46;return i&&(i.style.strokeDasharray=String(a),i.style.strokeDashoffset=String(a)),{stage:r,setProgress:e=>{i&&(i.style.strokeDashoffset=String(a*(1-Math.max(0,Math.min(1,e)))))},setState:e=>r.setAttribute(`data-state`,e),setCue:e=>{n.className=`arkyc-cue`+(e?` show arkyc-cue-${e}`:``),n.innerHTML=e?le[e]:``}}}buildDots(e){let t=Array.from({length:e},()=>this.dom.h(`div`,{class:`arkyc-dot`}));return{el:this.dom.h(`div`,{class:`arkyc-dots`},t),setActive:e=>t.forEach((t,n)=>t.classList.toggle(`active`,n===e&&!t.classList.contains(`done`))),markDone:e=>{let n=t[e];n&&(n.classList.remove(`active`),n.classList.add(`done`))}}}buildDocStage(e){let t=this.dom.h(`div`,{class:`arkyc-doc-frame`},[...[`tl`,`tr`,`bl`,`br`].map(e=>this.dom.h(`span`,{class:`arkyc-corner ${e}`})),this.dom.h(`div`,{class:`arkyc-scan`})]),n=this.dom.h(`div`,{class:`arkyc-doc`,"data-q":`wait`},[e,t]);return{stage:n,setQuality:e=>n.setAttribute(`data-q`,e),setFrame:e=>n.setAttribute(`data-detected`,e?`true`:`false`)}}renderProcessing(e){this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-spinner`}),this.dom.h(`p`,{class:`arkyc-p`,text:e})])}renderResult(e,t,n={}){if(t)this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`}),this.dom.h(`h2`,{class:`arkyc-h`,text:`Something went wrong`}),this.dom.h(`p`,{class:`arkyc-p`,text:t})]);else if(n.terminal){let e=ce[n.status??`expired`]??Y;this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge ${e.cls}`,text:e.icon}),this.dom.h(`h2`,{class:`arkyc-h`,text:e.title}),this.dom.h(`p`,{class:`arkyc-p`,text:e.copy})]),this.footer.appendChild(this.button(`Close`,()=>this.handlers.onClose()));return}else{let t={approved:{cls:`ok`,icon:`✓`,title:`Verified`,copy:`Your identity has been verified.`},requires_review:{cls:`warn`,icon:`⏳`,title:`Under review`,copy:`Your verification is being reviewed. We will be in touch shortly.`},rejected:{cls:`err`,icon:`✕`,title:`Not verified`,copy:`We could not verify your identity. Please try again.`}},n=t[e??`requires_review`]??t.requires_review;this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge ${n.cls}`,text:n.icon}),this.dom.h(`h2`,{class:`arkyc-h`,text:n.title}),this.dom.h(`p`,{class:`arkyc-p`,text:n.copy})])}this.footer.appendChild(this.button(`Done`,()=>this.handlers.onAcknowledge()))}renderAddressForm(e){this.body.appendChild(this.dom.h(`h2`,{class:`arkyc-h`,text:`Your address`})),this.body.appendChild(this.dom.h(`p`,{class:`arkyc-p`,text:`Enter your residential address so we can verify it.`}));let t=this.dom.field(`Address line 1`,{autocomplete:`address-line1`,name:`street`}),n=this.dom.field(`Address line 2 (optional)`,{autocomplete:`address-line2`,name:`town`}),r=this.dom.field(`City`,{autocomplete:`address-level2`,name:`city`}),i=this.dom.field(`State / region`,{autocomplete:`address-level1`,name:`state`}),a=this.dom.field(`ZIP/Postal code`,{autocomplete:`postal-code`,name:`zip`}),o=this.dom.field(`Country`,{name:`country_iso2`,choices:K.map(e=>({value:e.iso2,label:`${e.flag} ${e.name}`}))});this.body.appendChild(this.dom.h(`div`,{class:`arkyc-addr-form`},[t,n,r,i,a,o]));let s=null;if(e.includes(`poa_document`)){let e=this.dom.h(`input`,{class:`arkyc-addr-input`,type:`file`,accept:`image/*`,on:{change:()=>s=e.files?.[0]??null}});this.dom.append(this.body,[this.dom.h(`p`,{class:`arkyc-p`,text:`Upload a proof of address (utility bill or bank statement).`}),e])}let c=!1,l=e.includes(`device_location`),u=this.button(`Continue`,()=>this.handlers.onAddress({line1:t.value.trim()||null,line2:n.value.trim()||null,city:r.value.trim()||null,region:i.value.trim()||null,postalCode:a.value.trim()||null,country:o.value.trim().toUpperCase()||null,poa:s,useLocation:c}));if(l){let e=this.dom.h(`p`,{class:`arkyc-p`}),t=this.dom.h(`input`,{type:`checkbox`,on:{change:()=>{if(!t.checked){c=!1,e.textContent=``,u.setAttribute(`disabled`,`true`);return}e.textContent=`Requesting your location…`,u.setAttribute(`disabled`,`true`),Promise.resolve(this.handlers.onShareLocation()).then(n=>{c=n,t.checked=n,n?u.removeAttribute(`disabled`):u.setAttribute(`disabled`,`true`),e.textContent=n?`Location shared ✓`:`Couldn’t access your location, allow location access to continue.`})}}});u.setAttribute(`disabled`,`true`),this.body.appendChild(this.dom.h(`label`,{class:`arkyc-addr-opt`},[t,this.dom.h(`span`,{text:`Allow access to my current location to confirm my address`})])),this.body.appendChild(e)}this.footer.appendChild(u)}button(e,t,n){let r=n?`arkyc-btn ${n}`:`arkyc-btn`,i=this.dom.h(`button`,{class:r,text:e}),a=!1;return i.addEventListener(`click`,()=>{a||(a=!0,i.setAttribute(`disabled`,`true`),i.classList.add(`arkyc-busy`),t())}),i}clear(e){for(;e.firstChild;)e.removeChild(e.firstChild)}};function pe(e){let t=e.userAgent||``;if(!t)return!1;let n=/Android|iPhone|iPad|iPod|Opera Mini|IEMobile|Mobile|BlackBerry|Windows Phone/i.test(t),r=e.platform===`MacIntel`&&(e.maxTouchPoints??0)>1;return!n&&!r}var me=l(s(((e,t)=>{var n=function(){var e=function(e,t){var r=e,a=n[t],p=null,m=0,h=null,g=[],v={},y=function(e,t){m=r*4+17,p=function(e){for(var t=Array(e),n=0;n<e;n+=1){t[n]=Array(e);for(var r=0;r<e;r+=1)t[n][r]=null}return t}(m),b(0,0),b(m-7,0),b(0,m-7),C(),S(),T(e,t),r>=7&&w(e),h??(h=O(r,a,g)),E(h,t)},b=function(e,t){for(var n=-1;n<=7;n+=1)if(!(e+n<=-1||m<=e+n))for(var r=-1;r<=7;r+=1)t+r<=-1||m<=t+r||(0<=n&&n<=6&&(r==0||r==6)||0<=r&&r<=6&&(n==0||n==6)||2<=n&&n<=4&&2<=r&&r<=4?p[e+n][t+r]=!0:p[e+n][t+r]=!1)},x=function(){for(var e=0,t=0,n=0;n<8;n+=1){y(!0,n);var r=i.getLostPoint(v);(n==0||e>r)&&(e=r,t=n)}return t},S=function(){for(var e=8;e<m-8;e+=1)p[e][6]??(p[e][6]=e%2==0);for(var t=8;t<m-8;t+=1)p[6][t]??(p[6][t]=t%2==0)},C=function(){for(var e=i.getPatternPosition(r),t=0;t<e.length;t+=1)for(var n=0;n<e.length;n+=1){var a=e[t],o=e[n];if(p[a][o]==null)for(var s=-2;s<=2;s+=1)for(var c=-2;c<=2;c+=1)s==-2||s==2||c==-2||c==2||s==0&&c==0?p[a+s][o+c]=!0:p[a+s][o+c]=!1}},w=function(e){for(var t=i.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[Math.floor(n/3)][n%3+m-8-3]=a}for(var n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[n%3+m-8-3][Math.floor(n/3)]=a}},T=function(e,t){for(var n=a<<3|t,r=i.getBCHTypeInfo(n),o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<6?p[o][8]=s:o<8?p[o+1][8]=s:p[m-15+o][8]=s}for(var o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<8?p[8][m-o-1]=s:o<9?p[8][15-o-1+1]=s:p[8][15-o-1]=s}p[m-8][8]=!e},E=function(e,t){for(var n=-1,r=m-1,a=7,o=0,s=i.getMaskFunction(t),c=m-1;c>0;c-=2)for(c==6&&--c;;){for(var l=0;l<2;l+=1)if(p[r][c-l]==null){var u=!1;o<e.length&&(u=(e[o]>>>a&1)==1),s(r,c-l)&&(u=!u),p[r][c-l]=u,--a,a==-1&&(o+=1,a=7)}if(r+=n,r<0||m<=r){r-=n,n=-n;break}}},D=function(e,t){for(var n=0,r=0,a=0,s=Array(t.length),c=Array(t.length),l=0;l<t.length;l+=1){var u=t[l].dataCount,d=t[l].totalCount-u;r=Math.max(r,u),a=Math.max(a,d),s[l]=Array(u);for(var f=0;f<s[l].length;f+=1)s[l][f]=255&e.getBuffer()[f+n];n+=u;var p=i.getErrorCorrectPolynomial(d),m=o(s[l],p.getLength()-1).mod(p);c[l]=Array(p.getLength()-1);for(var f=0;f<c[l].length;f+=1){var h=f+m.getLength()-c[l].length;c[l][f]=h>=0?m.getAt(h):0}}for(var g=0,f=0;f<t.length;f+=1)g+=t[f].totalCount;for(var _=Array(g),v=0,f=0;f<r;f+=1)for(var l=0;l<t.length;l+=1)f<s[l].length&&(_[v]=s[l][f],v+=1);for(var f=0;f<a;f+=1)for(var l=0;l<t.length;l+=1)f<c[l].length&&(_[v]=c[l][f],v+=1);return _},O=function(e,t,n){for(var r=s.getRSBlocks(e,t),a=c(),o=0;o<n.length;o+=1){var l=n[o];a.put(l.getMode(),4),a.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(a)}for(var u=0,o=0;o<r.length;o+=1)u+=r[o].dataCount;if(a.getLengthInBits()>u*8)throw`code length overflow. (`+a.getLengthInBits()+`>`+u*8+`)`;for(a.getLengthInBits()+4<=u*8&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(!1);for(;!(a.getLengthInBits()>=u*8||(a.put(236,8),a.getLengthInBits()>=u*8));)a.put(17,8);return D(a,r)};v.addData=function(e,t){t=t||`Byte`;var n=null;switch(t){case`Numeric`:n=l(e);break;case`Alphanumeric`:n=u(e);break;case`Byte`:n=d(e);break;case`Kanji`:n=f(e);break;default:throw`mode:`+t}g.push(n),h=null},v.isDark=function(e,t){if(e<0||m<=e||t<0||m<=t)throw e+`,`+t;return p[e][t]},v.getModuleCount=function(){return m},v.make=function(){if(r<1){for(var e=1;e<40;e++){for(var t=s.getRSBlocks(e,a),n=c(),o=0;o<g.length;o++){var l=g[o];n.put(l.getMode(),4),n.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(n)}for(var u=0,o=0;o<t.length;o++)u+=t[o].dataCount;if(n.getLengthInBits()<=u*8)break}r=e}y(!1,x())},v.createTableTag=function(e,t){e=e||2,t=t===void 0?e*4:t;var n=``;n+=`<table style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: `+t+`px;`,n+=`">`,n+=`<tbody>`;for(var r=0;r<v.getModuleCount();r+=1){n+=`<tr>`;for(var i=0;i<v.getModuleCount();i+=1)n+=`<td style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: 0px;`,n+=` width: `+e+`px;`,n+=` height: `+e+`px;`,n+=` background-color: `,n+=v.isDark(r,i)?`#000000`:`#ffffff`,n+=`;`,n+=`"/>`;n+=`</tr>`}return n+=`</tbody>`,n+=`</table>`,n},v.createSvgTag=function(e,t,n,r){var i={};typeof arguments[0]==`object`&&(i=arguments[0],e=i.cellSize,t=i.margin,n=i.alt,r=i.title),e=e||2,t=t===void 0?e*4:t,n=typeof n==`string`?{text:n}:n||{},n.text=n.text||null,n.id=n.text?n.id||`qrcode-description`:null,r=typeof r==`string`?{text:r}:r||{},r.text=r.text||null,r.id=r.text?r.id||`qrcode-title`:null;var a=v.getModuleCount()*e+t*2,o,s,c,l,u=``,d=`l`+e+`,0 0,`+e+` -`+e+`,0 0,-`+e+`z `;for(u+=`<svg version="1.1" xmlns="http://www.w3.org/2000/svg"`,u+=i.scalable?``:` width="`+a+`px" height="`+a+`px"`,u+=` viewBox="0 0 `+a+` `+a+`" `,u+=` preserveAspectRatio="xMinYMin meet"`,u+=r.text||n.text?` role="img" aria-labelledby="`+k([r.id,n.id].join(` `).trim())+`"`:``,u+=`>`,u+=r.text?`<title id="`+k(r.id)+`">`+k(r.text)+`</title>`:``,u+=n.text?`<description id="`+k(n.id)+`">`+k(n.text)+`</description>`:``,u+=`<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>`,u+=`<path d="`,c=0;c<v.getModuleCount();c+=1)for(l=c*e+t,o=0;o<v.getModuleCount();o+=1)v.isDark(c,o)&&(s=o*e+t,u+=`M`+s+`,`+l+d);return u+=`" stroke="transparent" fill="black"/>`,u+=`</svg>`,u},v.createDataURL=function(e,t){e=e||2,t=t===void 0?e*4:t;var n=v.getModuleCount()*e+t*2,r=t,i=n-t;return _(n,n,function(t,n){if(r<=t&&t<i&&r<=n&&n<i){var a=Math.floor((t-r)/e),o=Math.floor((n-r)/e);return+!v.isDark(o,a)}else return 1})},v.createImgTag=function(e,t,n){e=e||2,t=t===void 0?e*4:t;var r=v.getModuleCount()*e+t*2,i=``;return i+=`<img`,i+=` src="`,i+=v.createDataURL(e,t),i+=`"`,i+=` width="`,i+=r,i+=`"`,i+=` height="`,i+=r,i+=`"`,n&&(i+=` alt="`,i+=k(n),i+=`"`),i+=`/>`,i};var k=function(e){for(var t=``,n=0;n<e.length;n+=1){var r=e.charAt(n);switch(r){case`<`:t+=`&lt;`;break;case`>`:t+=`&gt;`;break;case`&`:t+=`&amp;`;break;case`"`:t+=`&quot;`;break;default:t+=r;break}}return t},A=function(e){var t=1;e=e===void 0?t*2:e;var n=v.getModuleCount()*t+e*2,r=e,i=n-e,a,o,s,c,l,u={"██":`█`,"█ ":`▀`," █":`▄`," ":` `},d={"██":`▀`,"█ ":`▀`," █":` `," ":` `},f=``;for(a=0;a<n;a+=2){for(s=Math.floor((a-r)/t),c=Math.floor((a+1-r)/t),o=0;o<n;o+=1)l=`█`,r<=o&&o<i&&r<=a&&a<i&&v.isDark(s,Math.floor((o-r)/t))&&(l=` `),r<=o&&o<i&&r<=a+1&&a+1<i&&v.isDark(c,Math.floor((o-r)/t))?l+=` `:l+=`█`,f+=e<1&&a+1>=i?d[l]:u[l];f+=`
733
+ `;let De={background:`#ffffff`,foreground:`#0f172a`,muted:`#64748b`,border:`#e2e8f0`},Oe={background:`#0f172a`,foreground:`#f8fafc`,muted:`#94a3b8`,border:`#1e293b`};var R=class e{constructor(e){h(this,`primaryColor`,void 0),h(this,`borderRadius`,void 0),h(this,`mode`,void 0),h(this,`logoUrl`,void 0),h(this,`name`,void 0),h(this,`showBranding`,void 0),h(this,`background`,void 0),h(this,`foreground`,void 0),h(this,`muted`,void 0),h(this,`border`,void 0),this.mode=e?.theme===`dark`?`dark`:`light`;let t=this.mode===`dark`?Oe:De;this.primaryColor=e?.primary_color??`#b8860b`,this.borderRadius=e?.border_radius??12,this.logoUrl=e?.logo_url??null,this.name=e?.name??null,this.showBranding=e?.show_branding!==!1,this.background=t.background,this.foreground=t.foreground,this.muted=t.muted,this.border=t.border}variables(){return[`--arkyc-primary:${this.primaryColor}`,`--arkyc-radius:${this.borderRadius}px`,`--arkyc-bg:${this.background}`,`--arkyc-fg:${this.foreground}`,`--arkyc-muted:${this.muted}`,`--arkyc-border:${this.border}`].join(`;`)}stylesheet(){return Ee.replace(`/* {variables} */`,`${this.variables()};`).trim()}static rgb(e){let t=Object.fromEntries(e.primaryColor.match(/\d+/g)?.map((e,t)=>[[`r`,`g`,`b`][t],Number(e)])??[])??{r:50,g:100,b:150};return{obj:t,str:`rgb(${[t.r,t.g,t.b].join(`,`)})`}}rgb(t){return e.rgb(t)}},z=class{constructor(e=globalThis.document,t=globalThis.navigator){this.doc=e,this.nav=t,h(this,`stream`,null)}get supported(){return!!this.nav?.mediaDevices?.getUserMedia}async start(e,t){let n=await this.nav.mediaDevices.getUserMedia({video:{facingMode:t},audio:!1});return this.stream=n,e.srcObject=n,e.setAttribute(`playsinline`,`true`),e.muted=!0,await e.play().catch(()=>void 0),n}stop(){this.stream?.getTracks().forEach(e=>e.stop()),this.stream=null}get canRecord(){return globalThis.MediaRecorder!==void 0}recordStart(e){let t=[],n=new MediaRecorder(e,{mimeType:`video/webm`});return n.ondataavailable=e=>{e.data&&e.data.size>0&&t.push(e.data)},n.start(),{stop:()=>new Promise(e=>{n.onstop=()=>e(new Blob(t,{type:`video/webm`})),n.stop()})}}sampleQuality(e){let t=this.doc.createElement(`canvas`);t.width=32,t.height=32;let n=t.getContext(`2d`);if(!n||!e.videoWidth)return null;n.drawImage(e,0,0,t.width,t.height);let{data:r}=n.getImageData(0,0,t.width,t.height),i=0,a=0,o=r.length/4;for(let e=0;e<r.length;e+=4){let t=(.299*r[e]+.587*r[e+1]+.114*r[e+2])/255;i+=t,t>.92&&(a+=1)}let s=i/o;return{brightness:s,tooDark:s<.25,glare:a/o>.15}}grabFrame(e,t=.92){let n=this.doc.createElement(`canvas`);n.width=e.videoWidth||1280,n.height=e.videoHeight||720;let r=n.getContext(`2d`);return r?(r.drawImage(e,0,0,n.width,n.height),new Promise((e,r)=>{n.toBlob(t=>t?e(t):r(Error(`Failed to capture frame.`)),`image/jpeg`,t)})):Promise.reject(Error(`Canvas 2D context unavailable.`))}static fileFromInput(e){return e.files?.[0]??null}};let ke={document:[`document_selection`,`front_capture`,`back_capture`,`ocr_processing`],screening:[],address:[`address_entry`,`address_processing`],liveness:[`active_liveness`,`selfie_capture`,`passive_liveness`],face_match:[`face_match`]};var B=class e{static documentHasBack(e){return e!=null&&e!==`passport`}static stepOrder(e={}){return[`welcome`,...xe(e.workflow).flatMap(e=>ke[e]),`processing`,`result`]}static isStepEnabled(t,n={}){return t===`back_capture`?e.documentHasBack(n.documentType):t===`ocr_processing`?be(n.workflow):t===`active_liveness`?n.livenessMode===`active`:t===`selfie_capture`||t===`passive_liveness`?n.livenessMode!==`active`:!0}static nextStep(t,n={}){let r=e.stepOrder(n),i=r.indexOf(t);if(i<0)return t;for(let t=i+1;t<r.length;t+=1){let i=r[t];if(e.isStepEnabled(i,n))return i}return t}static isTerminal(t){return e.TERMINAL_STATUSES.includes(t)}static statusToDecision(e){switch(e){case`approved`:return`approved`;case`rejected`:return`rejected`;case`requires_review`:return`requires_review`;default:return null}}};h(B,`STEP_ORDER`,[`welcome`,`document_selection`,`front_capture`,`back_capture`,`ocr_processing`,`active_liveness`,`selfie_capture`,`passive_liveness`,`face_match`,`processing`,`result`]),h(B,`TERMINAL_STATUSES`,[`approved`,`rejected`,`requires_review`,`expired`,`cancelled`]);let V=`0.10.20`,H=e=>`https://cdn.jsdelivr.net/npm/`+e;function U(e,t){return e?.find(e=>e.categoryName===t)?.score??0}function Ae(){let e=globalThis.performance;return e?.now?e.now():0}var je=class{constructor(){h(this,`landmarker`,null),h(this,`state`,`idle`),h(this,`loading`,null)}async ready(){return this.state===`ready`?!0:this.state===`failed`?!1:(this.loading||(this.loading=this.load()),this.loading)}async load(){this.state=`loading`;try{if(typeof document>`u`)throw Error(`no document`);if(!document.createElement(`canvas`).getContext(`webgl2`))throw Error(`no webgl2`);let e=await import(H(`@mediapipe/tasks-vision@${V}/vision_bundle.mjs`)),t=await e.FilesetResolver.forVisionTasks(H(`@mediapipe/tasks-vision@${V}/wasm`));return this.landmarker=await e.FaceLandmarker.createFromOptions(t,{baseOptions:{modelAssetPath:`https://storage.googleapis.com/mediapipe-models/face_landmarker/face_landmarker/float16/1/face_landmarker.task`,delegate:`GPU`},outputFaceBlendshapes:!0,runningMode:`VIDEO`,numFaces:1}),this.state=`ready`,!0}catch{return this.state=`failed`,!1}}analyze(e){if(this.state!==`ready`||!this.landmarker||!e.videoWidth)return null;let t;try{t=this.landmarker.detectForVideo(e,Ae())}catch{return null}let n=t.faceLandmarks?.[0];if(!n||n.length===0)return{present:!1,centerX:.5,centerY:.5,scale:0,turn:0,pitch:0,blink:0,smile:0};let r=1,i=0,a=1,o=0;for(let e of n)e.x<r&&(r=e.x),e.x>i&&(i=e.x),e.y<a&&(a=e.y),e.y>o&&(o=e.y);let s=Math.max(.001,o-a),c=n[1],l=n[33],u=n[263],d=n[234],f=n[454],p=n[152],m=c.x-d.x,h=f.x-c.x,g=(h-m)/Math.max(.001,m+h),_=(l.y+u.y)/2,v=(c.y-_)/Math.max(.001,p.y-_),y=t.faceBlendshapes?.[0]?.categories,b=Math.max(U(y,`eyeBlinkLeft`),U(y,`eyeBlinkRight`)),x=(U(y,`mouthSmileLeft`)+U(y,`mouthSmileRight`))/2;return{present:!0,centerX:(r+i)/2,centerY:(a+o)/2,scale:s,turn:g,pitch:v,blink:b,smile:x}}close(){try{this.landmarker?.close()}catch{}this.landmarker=null,this.state=`failed`}};function W(){return new je}let G={turn:.18,smile:.5,blinkClosed:.55,blinkOpen:.25,hold:3,nodDown:.06,nodReturn:.02,closerFactor:1.22,selfieCenterTol:.2,selfieCenterYTol:.25,selfieMinScale:.28,selfieMaxScale:.85};function K(e,t=G){let n=e=>{let n=0;return{feed(r){return n=r.present&&e(r)?n+1:0,n>=t.hold},get progress(){return Math.min(1,n/Math.max(1,t.hold))}}},r=(e,t,n)=>{let r=null,i=!1,a=!1;return{feed(o){if(!o.present)return!1;let s=e(o);if(r===null)return r=s,!1;if(t(s,r))i=!0;else if(i&&n(s,r))return a=!0,!0;return!1},get progress(){return a?1:i?.6:0}}};switch(e){case`blink`:{let e=!1,n=!1;return{feed(r){if(!r.present)return!1;if(r.blink>t.blinkClosed)e=!0;else if(e&&r.blink<t.blinkOpen)return n=!0,!0;return!1},get progress(){return n?1:e?.6:0}}}case`smile`:return n(e=>e.smile>t.smile);case`turn_left`:return n(e=>e.turn<-t.turn);case`turn_right`:return n(e=>e.turn>t.turn);case`nod`:return r(e=>e.pitch,(e,n)=>e>n+t.nodDown,(e,n)=>e<n+t.nodReturn);case`move_closer`:{let e=null,n=0;return{feed(r){return r.present?e===null?(e=r.scale,!1):(n=r.scale>e*t.closerFactor?n+1:0,n>=t.hold):!1},get progress(){return Math.min(1,n/Math.max(1,t.hold))}}}}}function q(e,t=G){return e.present&&Math.abs(e.centerX-.5)<t.selfieCenterTol&&Math.abs(e.centerY-.5)<t.selfieCenterYTol&&e.scale>t.selfieMinScale&&e.scale<t.selfieMaxScale}let J={sampleWidth:320,minFill:.18,maxFill:.97,centerTol:.22,minEdgeStrength:.1,minSharpness:8,borderMargin:.012,minBrightness:.18,hold:5};function Me(e){return[e.y,1-(e.x+e.w),1-(e.y+e.h),e.x]}function Y(e,t,n){let r=t,i=-1;for(let a=t;a<n;a+=1){let t=e[a];t>i&&(i=t,r=a)}return{i:r,v:i}}function Ne(e,t,n){let r={present:!1,rect:{x:0,y:0,w:0,h:0},fill:0,centerX:.5,centerY:.5,edgeStrength:0,sharpness:0,brightness:0};if(t<8||n<8||e.length<t*n)return r;let i=new Float64Array(n),a=new Float64Array(t),o=0,s=0,c=0,l=0;for(let r=0;r<t*n;r+=1)l+=e[r];let u=l/(t*n*255);for(let r=1;r<n-1;r+=1)for(let n=1;n<t-1;n+=1){let l=r*t+n,u=e[l-t-1],d=e[l-t],f=e[l-t+1],p=e[l-1],m=e[l],h=e[l+1],g=e[l+t-1],_=e[l+t],v=e[l+t+1],y=f+2*h+v-(u+2*p+g),b=g+2*_+v-(u+2*d+f);i[r]+=Math.abs(b),a[n]+=Math.abs(y);let x=4*m-p-h-d-_;o+=x,s+=x*x,c+=1}let d=c?s/c-(o/c)**2:0,f=Math.max(1,Math.floor(n*.05)),p=Math.max(1,Math.floor(t*.05)),m=Math.floor(n/2),h=Math.floor(t/2),g=Y(i,f,m),_=Y(i,m,n-f),v=Y(a,p,h),y=Y(a,h,t-p),b=v.i/t,x=y.i/t,S=g.i/n,C=_.i/n,w={x:b,y:S,w:Math.max(0,x-b),h:Math.max(0,C-S)},T=Math.max(1,w.w*t),E=Math.max(1,w.h*n),D=Math.min(g.v/(T*1020),_.v/(T*1020),v.v/(E*1020),y.v/(E*1020));return{present:w.w>.12&&w.h>.12&&D>.04,rect:w,fill:w.w*w.h,centerX:(b+x)/2,centerY:(S+C)/2,edgeStrength:D,sharpness:d,brightness:u}}function X(e,t=J){return e.brightness<t.minBrightness?{ready:!1,hint:`Too dark — find better lighting`}:!e.present||e.edgeStrength<t.minEdgeStrength?{ready:!1,hint:`Fit your document inside the frame`}:e.fill>t.maxFill||Math.min(...Me(e.rect))<t.borderMargin?{ready:!1,hint:`Move back a little — fit the whole document`}:e.fill<t.minFill?{ready:!1,hint:`Move closer`}:Math.abs(e.centerX-.5)>t.centerTol||Math.abs(e.centerY-.5)>t.centerTol?{ready:!1,hint:`Center the document`}:e.sharpness<t.minSharpness?{ready:!1,hint:`Hold steady to focus`}:{ready:!0,hint:`Looks good — hold steady`}}function Pe(e,t=J){return X(e,t).ready}var Fe=class{constructor(e){this.tuning=e,h(this,`canvas`,null),h(this,`ctx`,null)}ready(){try{if(typeof document>`u`)return Promise.resolve(!1);let e=document.createElement(`canvas`),t=e.getContext(`2d`,{willReadFrequently:!0});return t?(this.canvas=e,this.ctx=t,Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}analyze(e){if(!this.ctx||!this.canvas||!e.videoWidth)return null;let t=this.tuning.sampleWidth,n=Math.max(1,Math.round(t*e.videoHeight/e.videoWidth));this.canvas.width=t,this.canvas.height=n;let r;try{this.ctx.drawImage(e,0,0,t,n),r=this.ctx.getImageData(0,0,t,n).data}catch{return null}let i=new Float32Array(t*n);for(let e=0,t=0;e<i.length;e+=1,t+=4)i[e]=.299*r[t]+.587*r[t+1]+.114*r[t+2];return Ne(i,t,n)}close(){this.canvas=null,this.ctx=null}};function Ie(e=J){return new Fe(e)}let Le=[{name:`United States`,iso2:`US`,flag:`🇺🇸`},{name:`Canada`,iso2:`CA`,flag:`🇨🇦`},{name:`Brazil`,iso2:`BR`,flag:`🇧🇷`},{name:`United Kingdom`,iso2:`GB`,flag:`🇬🇧`},{name:`Germany`,iso2:`DE`,flag:`🇩🇪`},{name:`France`,iso2:`FR`,flag:`🇫🇷`},{name:`China`,iso2:`CN`,flag:`🇨🇳`},{name:`Japan`,iso2:`JP`,flag:`🇯🇵`},{name:`India`,iso2:`IN`,flag:`🇮🇳`},{name:`Australia`,iso2:`AU`,flag:`🇦🇺`},{name:`South Africa`,iso2:`ZA`,flag:`🇿🇦`},{name:`Russia`,iso2:`RU`,flag:`🇷🇺`},{name:`Saudi Arabia`,iso2:`SA`,flag:`🇸🇦`},{name:`Afghanistan`,iso2:`AF`,flag:`🇦🇫`},{name:`Albania`,iso2:`AL`,flag:`🇦🇱`},{name:`Algeria`,iso2:`DZ`,flag:`🇩🇿`},{name:`Andorra`,iso2:`AD`,flag:`🇦🇩`},{name:`Angola`,iso2:`AO`,flag:`🇦🇴`},{name:`Antigua and Barbuda`,iso2:`AG`,flag:`🇦🇬`},{name:`Argentina`,iso2:`AR`,flag:`🇦🇷`},{name:`Armenia`,iso2:`AM`,flag:`🇦🇲`},{name:`Austria`,iso2:`AT`,flag:`🇦🇹`},{name:`Azerbaijan`,iso2:`AZ`,flag:`🇦🇿`},{name:`Bahamas`,iso2:`BS`,flag:`🇧🇸`},{name:`Bahrain`,iso2:`BH`,flag:`🇧🇭`},{name:`Bangladesh`,iso2:`BD`,flag:`🇧🇩`},{name:`Barbados`,iso2:`BB`,flag:`🇧🇧`},{name:`Belarus`,iso2:`BY`,flag:`🇧🇾`},{name:`Belgium`,iso2:`BE`,flag:`🇧🇪`},{name:`Belize`,iso2:`BZ`,flag:`🇧🇿`},{name:`Benin`,iso2:`BJ`,flag:`🇧🇯`},{name:`Bhutan`,iso2:`BT`,flag:`🇧🇹`},{name:`Bolivia`,iso2:`BO`,flag:`🇧🇴`},{name:`Bosnia and Herzegovina`,iso2:`BA`,flag:`🇧🇦`},{name:`Botswana`,iso2:`BW`,flag:`🇧🇼`},{name:`Brunei`,iso2:`BN`,flag:`🇧🇳`},{name:`Bulgaria`,iso2:`BG`,flag:`🇧🇬`},{name:`Burkina Faso`,iso2:`BF`,flag:`🇧🇫`},{name:`Burundi`,iso2:`BI`,flag:`🇧🇮`},{name:`Cabo Verde`,iso2:`CV`,flag:`🇨🇻`},{name:`Cambodia`,iso2:`KH`,flag:`🇰🇭`},{name:`Cameroon`,iso2:`CM`,flag:`🇨🇲`},{name:`Central African Republic`,iso2:`CF`,flag:`🇨🇫`},{name:`Chad`,iso2:`TD`,flag:`🇹🇩`},{name:`Chile`,iso2:`CL`,flag:`🇨🇱`},{name:`Colombia`,iso2:`CO`,flag:`🇨🇴`},{name:`Comoros`,iso2:`KM`,flag:`🇰🇲`},{name:`Congo (Congo-Brazzaville)`,iso2:`CG`,flag:`🇨🇬`},{name:`Congo (Congo-Kinshasa)`,iso2:`CD`,flag:`🇨🇩`},{name:`Costa Rica`,iso2:`CR`,flag:`🇨🇷`},{name:`Croatia`,iso2:`HR`,flag:`🇭🇷`},{name:`Cuba`,iso2:`CU`,flag:`🇨🇺`},{name:`Cyprus`,iso2:`CY`,flag:`🇨🇾`},{name:`Czech Republic`,iso2:`CZ`,flag:`🇨🇿`},{name:`Denmark`,iso2:`DK`,flag:`🇩🇰`},{name:`Djibouti`,iso2:`DJ`,flag:`🇩🇯`},{name:`Dominica`,iso2:`DM`,flag:`🇩🇲`},{name:`Dominican Republic`,iso2:`DO`,flag:`🇩🇴`},{name:`Ecuador`,iso2:`EC`,flag:`🇪🇨`},{name:`Egypt`,iso2:`EG`,flag:`🇪🇬`},{name:`El Salvador`,iso2:`SV`,flag:`🇸🇻`},{name:`Equatorial Guinea`,iso2:`GQ`,flag:`🇬🇶`},{name:`Eritrea`,iso2:`ER`,flag:`🇪🇷`},{name:`Estonia`,iso2:`EE`,flag:`🇪🇪`},{name:`Eswatini`,iso2:`SZ`,flag:`🇸🇿`},{name:`Ethiopia`,iso2:`ET`,flag:`🇪🇹`},{name:`Fiji`,iso2:`FJ`,flag:`🇫🇯`},{name:`Finland`,iso2:`FI`,flag:`🇫🇮`},{name:`Gabon`,iso2:`GA`,flag:`🇬🇦`},{name:`Gambia`,iso2:`GM`,flag:`🇬🇲`},{name:`Georgia`,iso2:`GE`,flag:`🇬🇪`},{name:`Ghana`,iso2:`GH`,flag:`🇬🇭`},{name:`Greece`,iso2:`GR`,flag:`🇬🇷`},{name:`Grenada`,iso2:`GD`,flag:`🇬🇩`},{name:`Guatemala`,iso2:`GT`,flag:`🇬🇹`},{name:`Guinea`,iso2:`GN`,flag:`🇬🇳`},{name:`Guinea-Bissau`,iso2:`GW`,flag:`🇬🇼`},{name:`Guyana`,iso2:`GY`,flag:`🇬🇾`},{name:`Haiti`,iso2:`HT`,flag:`🇭🇹`},{name:`Honduras`,iso2:`HN`,flag:`🇭🇳`},{name:`Hungary`,iso2:`HU`,flag:`🇭🇺`},{name:`Iceland`,iso2:`IS`,flag:`🇮🇸`},{name:`Indonesia`,iso2:`ID`,flag:`🇮🇩`},{name:`Iran`,iso2:`IR`,flag:`🇮🇷`},{name:`Iraq`,iso2:`IQ`,flag:`🇮🇶`},{name:`Ireland`,iso2:`IE`,flag:`🇮🇪`},{name:`Israel`,iso2:`IL`,flag:`🇮🇱`},{name:`Italy`,iso2:`IT`,flag:`🇮🇹`},{name:`Jamaica`,iso2:`JM`,flag:`🇯🇲`},{name:`Jordan`,iso2:`JO`,flag:`🇯🇴`},{name:`Kazakhstan`,iso2:`KZ`,flag:`🇰🇿`},{name:`Kenya`,iso2:`KE`,flag:`🇰🇪`},{name:`Kiribati`,iso2:`KI`,flag:`🇰🇮`},{name:`Kuwait`,iso2:`KW`,flag:`🇰🇼`},{name:`Kyrgyzstan`,iso2:`KG`,flag:`🇰🇬`},{name:`Laos`,iso2:`LA`,flag:`🇱🇦`},{name:`Latvia`,iso2:`LV`,flag:`🇱🇻`},{name:`Lebanon`,iso2:`LB`,flag:`🇱🇧`},{name:`Lesotho`,iso2:`LS`,flag:`🇱🇸`},{name:`Liberia`,iso2:`LR`,flag:`🇱🇷`},{name:`Libya`,iso2:`LY`,flag:`🇱🇾`},{name:`Liechtenstein`,iso2:`LI`,flag:`🇱🇮`},{name:`Lithuania`,iso2:`LT`,flag:`🇱🇹`},{name:`Luxembourg`,iso2:`LU`,flag:`🇱🇺`},{name:`Madagascar`,iso2:`MG`,flag:`🇲🇬`},{name:`Malawi`,iso2:`MW`,flag:`🇲🇼`},{name:`Malaysia`,iso2:`MY`,flag:`🇲🇾`},{name:`Maldives`,iso2:`MV`,flag:`🇲🇻`},{name:`Mali`,iso2:`ML`,flag:`🇲🇱`},{name:`Malta`,iso2:`MT`,flag:`🇲🇹`},{name:`Marshall Islands`,iso2:`MH`,flag:`🇲🇭`},{name:`Mauritania`,iso2:`MR`,flag:`🇲🇷`},{name:`Mauritius`,iso2:`MU`,flag:`🇲🇺`},{name:`Mexico`,iso2:`MX`,flag:`🇲🇽`},{name:`Micronesia`,iso2:`FM`,flag:`🇫🇲`},{name:`Moldova`,iso2:`MD`,flag:`🇲🇩`},{name:`Monaco`,iso2:`MC`,flag:`🇲🇨`},{name:`Mongolia`,iso2:`MN`,flag:`🇲🇳`},{name:`Montenegro`,iso2:`ME`,flag:`🇲🇪`},{name:`Morocco`,iso2:`MA`,flag:`🇲🇦`},{name:`Mozambique`,iso2:`MZ`,flag:`🇲🇿`},{name:`Myanmar`,iso2:`MM`,flag:`🇲🇲`},{name:`Namibia`,iso2:`NA`,flag:`🇳🇦`},{name:`Nauru`,iso2:`NR`,flag:`🇳🇷`},{name:`Nepal`,iso2:`NP`,flag:`🇳🇵`},{name:`Netherlands`,iso2:`NL`,flag:`🇳🇱`},{name:`New Zealand`,iso2:`NZ`,flag:`🇳🇿`},{name:`Nicaragua`,iso2:`NI`,flag:`🇳🇮`},{name:`Niger`,iso2:`NE`,flag:`🇳🇪`},{name:`Nigeria`,iso2:`NG`,flag:`🇳🇬`},{name:`North Korea`,iso2:`KP`,flag:`🇰🇵`},{name:`North Macedonia`,iso2:`MK`,flag:`🇲🇰`},{name:`Norway`,iso2:`NO`,flag:`🇳🇴`},{name:`Oman`,iso2:`OM`,flag:`🇴🇲`},{name:`Pakistan`,iso2:`PK`,flag:`🇵🇰`},{name:`Palau`,iso2:`PW`,flag:`🇵🇼`},{name:`Panama`,iso2:`PA`,flag:`🇵🇦`},{name:`Papua New Guinea`,iso2:`PG`,flag:`🇵🇬`},{name:`Paraguay`,iso2:`PY`,flag:`🇵🇾`},{name:`Peru`,iso2:`PE`,flag:`🇵🇪`},{name:`Philippines`,iso2:`PH`,flag:`🇵🇭`},{name:`Poland`,iso2:`PL`,flag:`🇵🇱`},{name:`Portugal`,iso2:`PT`,flag:`🇵🇹`},{name:`Qatar`,iso2:`QA`,flag:`🇶🇦`},{name:`Romania`,iso2:`RO`,flag:`🇷🇴`},{name:`Rwanda`,iso2:`RW`,flag:`🇷🇼`},{name:`Saint Kitts and Nevis`,iso2:`KN`,flag:`🇰🇳`},{name:`Saint Lucia`,iso2:`LC`,flag:`🇱🇨`},{name:`Saint Vincent and the Grenadines`,iso2:`VC`,flag:`🇻🇨`},{name:`Samoa`,iso2:`WS`,flag:`🇼🇸`},{name:`San Marino`,iso2:`SM`,flag:`🇸🇲`},{name:`Sao Tome and Principe`,iso2:`ST`,flag:`🇸🇹`},{name:`Senegal`,iso2:`SN`,flag:`🇸🇳`},{name:`Serbia`,iso2:`RS`,flag:`🇷🇸`},{name:`Seychelles`,iso2:`SC`,flag:`🇸🇨`},{name:`Sierra Leone`,iso2:`SL`,flag:`🇸🇱`},{name:`Singapore`,iso2:`SG`,flag:`🇸🇬`},{name:`Slovakia`,iso2:`SK`,flag:`🇸🇰`},{name:`Slovenia`,iso2:`SI`,flag:`🇸🇮`},{name:`Solomon Islands`,iso2:`SB`,flag:`🇸🇧`},{name:`Somalia`,iso2:`SO`,flag:`🇸🇴`},{name:`South Korea`,iso2:`KR`,flag:`🇰🇷`},{name:`South Sudan`,iso2:`SS`,flag:`🇸🇸`},{name:`Spain`,iso2:`ES`,flag:`🇪🇸`},{name:`Sri Lanka`,iso2:`LK`,flag:`🇱🇰`},{name:`Sudan`,iso2:`SD`,flag:`🇸🇩`},{name:`Suriname`,iso2:`SR`,flag:`🇸🇷`},{name:`Sweden`,iso2:`SE`,flag:`🇸🇪`},{name:`Switzerland`,iso2:`CH`,flag:`🇨🇭`},{name:`Syria`,iso2:`SY`,flag:`🇸🇾`},{name:`Tajikistan`,iso2:`TJ`,flag:`🇹🇯`},{name:`Tanzania`,iso2:`TZ`,flag:`🇹🇿`},{name:`Thailand`,iso2:`TH`,flag:`🇹🇭`},{name:`Togo`,iso2:`TG`,flag:`🇹🇬`},{name:`Tonga`,iso2:`TO`,flag:`🇹🇴`},{name:`Trinidad and Tobago`,iso2:`TT`,flag:`🇹🇹`},{name:`Tunisia`,iso2:`TN`,flag:`🇹🇳`},{name:`Turkey`,iso2:`TR`,flag:`🇹🇷`},{name:`Turkmenistan`,iso2:`TM`,flag:`🇹🇲`},{name:`Tuvalu`,iso2:`TV`,flag:`🇹🇻`},{name:`Uganda`,iso2:`UG`,flag:`🇺🇬`},{name:`Ukraine`,iso2:`UA`,flag:`🇺🇦`},{name:`United Arab Emirates`,iso2:`AE`,flag:`🇦🇪`},{name:`Uruguay`,iso2:`UY`,flag:`🇺🇾`},{name:`Uzbekistan`,iso2:`UZ`,flag:`🇺🇿`},{name:`Vanuatu`,iso2:`VU`,flag:`🇻🇺`},{name:`Venezuela`,iso2:`VE`,flag:`🇻🇪`},{name:`Vietnam`,iso2:`VN`,flag:`🇻🇳`},{name:`Yemen`,iso2:`YE`,flag:`🇾🇪`},{name:`Zambia`,iso2:`ZM`,flag:`🇿🇲`},{name:`Zimbabwe`,iso2:`ZW`,flag:`🇿🇼`},{name:`Timor-Leste`,iso2:`TL`,flag:`🇹🇱`}];function Re(e){function t(t,n){for(let r of Array.isArray(n)?n:[n])r==null||r===!1||t.appendChild(typeof r==`string`?e.createTextNode(r):r)}function n(n,r={},i){let a=e.createElement(n);for(let[e,t]of Object.entries(r))if(t!=null)if(e===`on`)for(let[e,n]of Object.entries(t))a.addEventListener(e,n);else e===`class`?a.className=t:e===`text`?a.textContent=t:e===`html`?a.innerHTML=t:e===`value`||e===`src`||e===`type`||e===`accept`||e===`placeholder`?a[e]=t:a.setAttribute(e,t);return t(a,i),a}function r(e,t={}){let r=t.class??`arkyc-addr-input`;return t.choices?n(`select`,{class:r,name:t.name,autocomplete:t.autocomplete,"aria-label":t.name??e},[n(`option`,{value:``,text:e}),...t.choices.map(e=>n(`option`,{value:typeof e==`string`?e:e.value,text:typeof e==`string`?e:e.label??e.value}))]):n(`input`,{class:r,type:t.type??`text`,placeholder:e,name:t.name,autocomplete:t.autocomplete,value:t.value})}return{h:n,append:t,field:r}}let ze={passport:`Passport`,id_card:`ID Card`,drivers_license:`Driver's License`,residence_permit:`Residence Permit`},Be={turn_left:`Slowly turn your head to the left, and hold`,turn_right:`Slowly turn your head to the right, and hold`,blink:`Blink slowly`,smile:`Smile, and hold it`,nod:`Slowly nod your head`,move_closer:`Slowly move closer to the camera`},Ve={cls:`warn`,icon:`⏳`,title:`Link expired`,copy:`This verification link has expired.`},He={approved:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been completed.`},rejected:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been completed.`},requires_review:{cls:`ok`,icon:`✓`,title:`Already complete`,copy:`This verification has already been submitted and is being reviewed.`},expired:Ve,cancelled:{cls:`warn`,icon:`⏳`,title:`Cancelled`,copy:`This verification was cancelled.`}},Z=e=>`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">${e}</svg>`,Ue={turn_right:Z(`<path d="M5 12h14M13 6l6 6-6 6"/>`),turn_left:Z(`<path d="M19 12H5M11 6l-6 6 6 6"/>`),nod:Z(`<path d="M12 5v14M6 13l6 6 6-6"/>`),move_closer:Z(`<circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3"/>`),blink:Z(`<path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/>`),smile:Z(`<path d="M8 14s1.5 2 4 2 4-2 4-2"/><path d="M9 9h.01M15 9h.01"/>`)},We=Z(`<path d="M20 6 9 17l-5-5"/>`),Q=e=>`<svg viewBox="0 0 64 64" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round">${e}</svg>`,Ge={welcome:Q(`<path d="M32 7 52 14v14c0 12.5-8.2 21.6-20 25.6C20.2 49.6 12 40.5 12 28V14z"/><path d="M23 30.5l6.2 6.2L41 24.5"/>`),front_capture:Q(`<rect x="7" y="15" width="50" height="34" rx="5"/><circle cx="22" cy="28" r="5"/><path d="M14 42c1-5 5-7 8-7s7 2 8 7"/><path d="M38 27h12M38 34h12M38 41h8"/>`),back_capture:Q(`<rect x="7" y="15" width="50" height="34" rx="5"/><rect x="7" y="20" width="50" height="6" fill="currentColor" stroke="none" opacity=".18"/><path d="M14 34h36M14 41h24"/>`),selfie_capture:Q(`<path d="M10 20v-6a4 4 0 0 1 4-4h6"/><path d="M44 10h6a4 4 0 0 1 4 4v6"/><path d="M54 44v6a4 4 0 0 1-4 4h-6"/><path d="M20 54h-6a4 4 0 0 1-4-4v-6"/><circle cx="32" cy="27" r="8"/><path d="M19 50c0-7 6-11 13-11s13 4 13 11"/>`),active_liveness:Q(`<circle cx="32" cy="30" r="13"/><circle cx="27" cy="27" r="1.2" fill="currentColor" stroke="none"/><circle cx="37" cy="27" r="1.2" fill="currentColor" stroke="none"/><path d="M26 34c2 2.5 10 2.5 12 0"/><path d="M13 30H6M10 26l-4 4 4 4"/><path d="M51 30h7M54 26l4 4-4 4"/>`)};var Ke=class{constructor(e,t,n,r=globalThis.navigator,i=W(),a=G,o=Ie(),s=J){this.doc=e,this.theme=t,this.handlers=n,h(this,`root`,void 0),h(this,`body`,void 0),h(this,`footer`,void 0),h(this,`styleEl`,void 0),h(this,`brandEl`,void 0),h(this,`camera`,void 0),h(this,`analyzer`,void 0),h(this,`tuning`,void 0),h(this,`docAnalyzer`,void 0),h(this,`docTuning`,void 0),h(this,`timers`,[]),h(this,`cleanups`,[]),h(this,`dom`,void 0),this.dom=Re(e),this.camera=new z(e,r),this.analyzer=i,this.tuning=a,this.docAnalyzer=o,this.docTuning=s,this.root=this.dom.h(`div`,{class:`arkyc-root`}),this.styleEl=this.dom.h(`style`,{text:t.stylesheet()}),this.root.appendChild(this.styleEl),this.brandEl=this.dom.h(`div`,{class:`arkyc-brand`}),this.fillBrand(),this.body=this.dom.h(`div`,{class:`arkyc-body`}),this.footer=this.dom.h(`div`,{class:`arkyc-footer`});let c=this.dom.h(`div`,{class:`arkyc-header`},[this.brandEl,this.dom.h(`button`,{class:`arkyc-close`,html:`&times;`,"aria-label":`Close`,on:{click:()=>this.handlers.onClose()}})]);this.root.appendChild(this.dom.h(`div`,{class:`arkyc-card`},[c,this.body,this.footer]))}fillBrand(){this.clear(this.brandEl);let e=Date.now()-Math.floor(600*1e3*Math.random()),t=this.theme.showBranding&&(this.theme.logoUrl||this.theme.name);this.dom.append(this.brandEl,t?[this.theme.logoUrl&&this.dom.h(`img`,{class:`arkyc-logo`,src:`${this.theme.logoUrl}?stamp=${e}`}),this.theme.name&&this.dom.h(`span`,{class:`arkyc-brand-name`,text:this.theme.name})]:this.dom.h(`p`,{class:`arkyc-title`,text:`Verify your identity`}))}applyBranding(e){this.theme=new R(e),this.styleEl.textContent=this.theme.stylesheet(),this.fillBrand()}get element(){return this.root}get cameraSupported(){return this.camera.supported}destroy(){this.timers.forEach(e=>clearInterval(e)),this.timers=[],this.cleanups.forEach(e=>e()),this.cleanups=[],this.camera.stop()}render(e){switch(this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),e.step){case`welcome`:return this.renderWelcome(e.handoffAvailable);case`document_selection`:return this.renderDocumentSelection();case`front_capture`:return this.renderCapture(`Front of document`,`environment`,e.allowSkip,!1,e.strictCapture);case`back_capture`:return this.renderCapture(`Back of document`,`environment`,e.allowSkip,!1,e.strictCapture);case`selfie_capture`:return this.renderCapture(`Take a selfie`,`user`,e.allowSkip,!0,e.strictCapture);case`active_liveness`:return this.renderActiveLiveness(e.livenessChallenges??[],e.allowSkip,e.requireLiveCamera);case`ocr_processing`:return this.renderProcessing(`Reading your document…`);case`address_entry`:return this.renderAddressForm(e.addressMethods??[]);case`address_processing`:return this.renderProcessing(`Verifying your address…`);case`passive_liveness`:return this.renderProcessing(`Checking liveness…`);case`face_match`:return this.renderProcessing(`Matching your face…`);case`processing`:return this.renderProcessing(e.statusLabel??`Finalising verification…`);case`result`:return this.renderResult(e.decision??null,e.errorMessage,{terminal:e.terminalNotice,status:e.status})}}appendArt(e){let t=Ge[e];t&&this.body.appendChild(this.dom.h(`div`,{class:`arkyc-illus`,html:t}))}renderWelcome(e){this.appendArt(`welcome`),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Verify your identity`}),this.dom.h(`p`,{class:`arkyc-p`,text:`You will need a government-issued ID and a moment to take a selfie. Your data is processed securely.`})]),this.dom.append(this.footer,[this.button(`Get started`,()=>this.handlers.onStart()),e&&this.button(`Continue on your phone`,()=>this.handlers.onUsePhone(),`arkyc-btn-ghost`)])}renderLoading(e=`Loading…`){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),this.renderProcessing(e)}renderInstruction(e,t,n,r,i){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.remove(`arkyc-handoff`),this.appendArt(e),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:t}),this.dom.h(`p`,{class:`arkyc-p`,text:n})]),this.footer.appendChild(this.button(r,i))}renderHandoff(e,t){this.destroy(),this.clear(this.body),this.clear(this.footer),this.root.classList.add(`arkyc-handoff`),this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Continue on your phone`}),this.dom.h(`p`,{class:`arkyc-p`,text:`Scan this code with your phone camera to finish verifying there.`}),this.dom.h(`div`,{class:`arkyc-qr`,html:e}),this.dom.h(`div`,{class:`arkyc-handoff-wait`},[this.dom.h(`div`,{class:`arkyc-spinner sm`}),this.dom.h(`span`,{text:`Waiting for your phone…`})])]),t&&this.footer.appendChild(this.button(`Continue on this device`,()=>this.handlers.onContinueHere(),`arkyc-btn-ghost`))}renderDocumentSelection(){this.body.appendChild(this.dom.h(`h2`,{class:`arkyc-h`,text:`Select your document`}));let e=this.dom.field(`Country`,{class:`arkyc-btn arkyc-btn-ghost arkyc-text-center`,name:`country`,autocomplete:`country`,choices:Le.map(({name:e,iso2:t,flag:n})=>({value:t,label:`${n} ${e}`}))}),t=Object.keys(ze).map(t=>{let n=this.button(ze[t],()=>this.handlers.onDocumentSelected(t,(e.value||``).trim().toUpperCase()));return n.classList.add(`arkyc-btn-ghost`),n});this.body.appendChild(this.dom.h(`div`,{class:`arkyc-choices`},[e,...t]))}renderCapture(e,t,n,r=!1,i=!1){let a=i&&!r,o=this.dom.h(`input`,{type:`file`,accept:`image/*`,class:`arkyc-hidden`,on:{change:()=>this.handlers.onImage(z.fileFromInput(o))}});if(this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:e}),this.dom.h(`p`,{class:`arkyc-p`,text:`Position it clearly in frame, then capture.`}),o]),this.camera.supported){let s=this.dom.h(`video`,{class:`arkyc-preview${r?` selfie`:``}`}),c=r?this.buildFaceStage(s):null,l=r?null:this.buildDocStage(s),u=c?.stage??l.stage;this.body.appendChild(u);let d=this.dom.h(`p`,{class:`arkyc-p arkyc-hint`});this.body.appendChild(d);let f=a=>{if(this.destroy(),a){let e=URL.createObjectURL(a),t=this.dom.h(`img`,{class:`arkyc-preview${r?` selfie`:``}`,src:e});u.replaceWith(t),this.cleanups.push(()=>URL.revokeObjectURL(e))}else u.classList.add(`arkyc-hidden`);this.clear(this.footer),d.textContent=`✓ Captured`,this.footer.appendChild(this.button(`Continue`,()=>this.handlers.onImage(a)));let o=this.button(`Retake`,()=>{this.destroy(),this.clear(this.body),this.clear(this.footer),this.renderCapture(e,t,n,r,i)});o.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(o)},p=()=>void this.camera.grabFrame(s).then(f);this.camera.start(s,t).catch(()=>{if(u.classList.add(`arkyc-hidden`),a){d.textContent=`Camera access is required to scan your document. Please allow access and try again.`;return}o.click()}),r?this.runSelfieAutoCapture(s,d,p,c):(this.runDocumentAutoCapture(s,d,l,a,p),a||this.footer.appendChild(this.button(`Capture`,p)))}else if(a)this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`}),this.dom.h(`p`,{class:`arkyc-p`,text:`This step needs a working camera to scan your document. Please retry on a device with a camera.`})]);else{let e=this.button(`Upload photo`,()=>o.click());this.footer.appendChild(e)}if(n){let e=this.button(`Skip (demo)`,()=>this.handlers.onImage(null));e.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(e)}}onCameraLive(e,t){if((e.readyState??0)>=2){t();return}e.addEventListener(`playing`,t,{once:!0})}runDocumentAutoCapture(e,t,n,r,i){let a=()=>{if(r){t.textContent=`Document scanning isn’t available on this device.`;return}this.runDocumentBrightnessCapture(e,t,n,i)},o=this.docAnalyzer;if(!o)return a();t.textContent=`Starting camera…`;let s=!1,c=!1;this.cleanups.push(()=>{s=!0}),this.onCameraLive(e,()=>{!s&&!c&&(t.textContent=`Getting ready…`)}),o.ready().then(r=>{if(c=!0,s)return;if(!r){a();return}let l=0,u=null,d=null,f=(e,t)=>e==null?t:e*.6+t*.4,p=setInterval(()=>{let r=o.analyze(e);if(!r)return;u=f(u,r.fill),d=f(d,r.edgeStrength);let{ready:a,hint:s}=X({...r,fill:u,edgeStrength:d},this.docTuning);t.textContent=s,n.setFrame(r.present?r.rect:null),n.setQuality(a?`good`:r.present?`wait`:`bad`),l=a?l+1:Math.max(0,l-1),l>=this.docTuning.hold&&(clearInterval(p),n.setQuality(`good`),i())},250);this.timers.push(p)})}runDocumentBrightnessCapture(e,t,n,r){let i=0,a=setInterval(()=>{let o=this.camera.sampleQuality(e);o&&(o.tooDark?(t.textContent=`Too dark — find better lighting`,i=0,n.setQuality(`bad`)):o.glare?(t.textContent=`Reduce glare on the document`,i=0,n.setQuality(`bad`)):(t.textContent=`Looks good — hold steady`,i+=1,n.setQuality(`good`)),i>=5&&(clearInterval(a),r()))},300);this.timers.push(a)}runSelfieAutoCapture(e,t,n,r){let i=this.analyzer,a=()=>this.footer.appendChild(this.button(`Capture`,n));if(!i){t.textContent=`Center your face, then capture`,a();return}t.textContent=`Starting camera…`;let o=!1,s=!1;this.cleanups.push(()=>{o=!0}),this.onCameraLive(e,()=>{!o&&!s&&(t.textContent=`Getting ready…`)}),i.ready().then(c=>{if(s=!0,o)return;if(!c){t.textContent=`Center your face, then capture`,a();return}let l=0,u=setInterval(()=>{let a=i.analyze(e);if(!a||!a.present){t.textContent=`Position your face in the circle`,l=0,r.setState(`wait`),r.setProgress(0);return}q(a,this.tuning)?(t.textContent=`Hold still…`,l+=1,r.setState(`good`),r.setProgress(l/4)):(t.textContent=a.scale<=this.tuning.selfieMinScale?`Move a little closer`:`Center your face`,l=0,r.setState(`wait`),r.setProgress(0)),l>=4&&(clearInterval(u),r.setState(`done`),r.setProgress(1),n())},180);this.timers.push(u)})}renderActiveLiveness(e,t,n){let r=this.dom.h(`p`,{class:`arkyc-p`,text:`Follow the on-screen prompts. Keep your face centred in the circle.`});if(this.dom.append(this.body,[this.dom.h(`h2`,{class:`arkyc-h`,text:`Liveness check`}),r]),!this.camera.supported||!this.camera.canRecord){if(n){if(this.body.appendChild(this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`})),r.textContent=`This check needs camera access on a supported device. Please retry on a device with a working camera.`,t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}return}let i=this.button(`I performed the steps`,()=>this.handlers.onActiveLiveness(null,e));if(this.footer.appendChild(i),t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}return}let i=this.dom.h(`video`,{class:`arkyc-preview selfie`}),a=this.buildFaceStage(i),o=this.buildDots(e.length);this.dom.append(this.body,[e.length>1&&o.el,a.stage]);let s=null,c=0,l=[],u=K(e[0]??`blink`,this.tuning),d=(t=!1)=>{let n=e[c];if(!n){r.textContent=`Hold still…`;return}r.textContent=t?`✓ ${Be[n]}`:`Step ${c+1} of ${e.length}: ${Be[n]}`},f=()=>{a.setCue(e[c]??null),a.setState(`wait`),a.setProgress(0),o.setActive(c)},p=()=>{h.setAttribute(`disabled`,`true`),this.camera.grabFrame(i).then(e=>Promise.resolve(s?.stop()??Promise.resolve(null)).then(t=>this.handlers.onActiveLiveness(t,l,e)))},m=()=>{if(c>=e.length)return;let t=e[c];if(t&&l.push(t),o.markDone(c),c+=1,c>=e.length){p();return}u=K(e[c],this.tuning),d(),f(),c===e.length-1&&(h.textContent=`Finish`)},h=this.button(`Next`,()=>m());e.length<=1&&(h.textContent=`Finish`);let g=!1,_=()=>{g||(g=!0,this.footer.appendChild(h))};if(this.camera.start(i,`user`).then(t=>{s=this.camera.recordStart(t),d(),f();let n=this.analyzer;if(!n){_();return}let r=!1;this.cleanups.push(()=>{r=!0}),n.ready().then(t=>{if(r)return;if(!t){_();return}let o=!1,s=setInterval(()=>{if(c>=e.length){clearInterval(s);return}if(o)return;let t=n.analyze(i);if(!t)return;let r=u.feed(t);if(a.setProgress(u.progress),r){a.setState(`done`),d(!0),o=!0;let e=setTimeout(()=>{o=!1,m()},650);this.cleanups.push(()=>clearTimeout(e))}else a.setState(u.progress>0?`good`:`wait`)},160);this.timers.push(s)})}).catch(()=>{if(a.stage.classList.add(`arkyc-hidden`),n){r.textContent=`Camera access is required to continue. Please allow access and try again.`;return}this.handlers.onActiveLiveness(null,e)}),t){let t=this.button(`Skip (demo)`,()=>this.handlers.onActiveLiveness(null,e));t.classList.add(`arkyc-btn-ghost`),this.footer.appendChild(t)}}buildFaceStage(e){let t=this.dom.h(`div`,{class:`arkyc-ring`,html:`<svg viewBox="0 0 100 100"><circle class="arkyc-ring-track" cx="50" cy="50" r="46"/><circle class="arkyc-ring-arc" cx="50" cy="50" r="46"/></svg>`}),n=this.dom.h(`div`,{class:`arkyc-cue`}),r=this.dom.h(`div`,{class:`arkyc-stage`,"data-state":`wait`},[e,t,n,this.dom.h(`div`,{class:`arkyc-check`,html:We})]),i=t.querySelector(`.arkyc-ring-arc`),a=2*Math.PI*46;return i&&(i.style.strokeDasharray=String(a),i.style.strokeDashoffset=String(a)),{stage:r,setProgress:e=>{i&&(i.style.strokeDashoffset=String(a*(1-Math.max(0,Math.min(1,e)))))},setState:e=>r.setAttribute(`data-state`,e),setCue:e=>{n.className=`arkyc-cue`+(e?` show arkyc-cue-${e}`:``),n.innerHTML=e?Ue[e]:``}}}buildDots(e){let t=Array.from({length:e},()=>this.dom.h(`div`,{class:`arkyc-dot`}));return{el:this.dom.h(`div`,{class:`arkyc-dots`},t),setActive:e=>t.forEach((t,n)=>t.classList.toggle(`active`,n===e&&!t.classList.contains(`done`))),markDone:e=>{let n=t[e];n&&(n.classList.remove(`active`),n.classList.add(`done`))}}}buildDocStage(e){let t=this.dom.h(`div`,{class:`arkyc-doc-frame`},[...[`tl`,`tr`,`bl`,`br`].map(e=>this.dom.h(`span`,{class:`arkyc-corner ${e}`})),this.dom.h(`div`,{class:`arkyc-scan`})]),n=this.dom.h(`div`,{class:`arkyc-doc`,"data-q":`wait`},[e,t]);return{stage:n,setQuality:e=>n.setAttribute(`data-q`,e),setFrame:e=>n.setAttribute(`data-detected`,e?`true`:`false`)}}renderProcessing(e){this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-spinner`}),this.dom.h(`p`,{class:`arkyc-p`,text:e})])}renderResult(e,t,n={}){if(t)this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge err`,html:`!`}),this.dom.h(`h2`,{class:`arkyc-h`,text:`Something went wrong`}),this.dom.h(`p`,{class:`arkyc-p`,text:t})]);else if(n.terminal){let e=He[n.status??`expired`]??Ve;this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge ${e.cls}`,text:e.icon}),this.dom.h(`h2`,{class:`arkyc-h`,text:e.title}),this.dom.h(`p`,{class:`arkyc-p`,text:e.copy})]),this.footer.appendChild(this.button(`Close`,()=>this.handlers.onClose()));return}else{let t={approved:{cls:`ok`,icon:`✓`,title:`Verified`,copy:`Your identity has been verified.`},requires_review:{cls:`warn`,icon:`⏳`,title:`Under review`,copy:`Your verification is being reviewed. We will be in touch shortly.`},rejected:{cls:`err`,icon:`✕`,title:`Not verified`,copy:`We could not verify your identity. Please try again.`}},n=t[e??`requires_review`]??t.requires_review;this.dom.append(this.body,[this.dom.h(`div`,{class:`arkyc-badge ${n.cls}`,text:n.icon}),this.dom.h(`h2`,{class:`arkyc-h`,text:n.title}),this.dom.h(`p`,{class:`arkyc-p`,text:n.copy})])}this.footer.appendChild(this.button(`Done`,()=>this.handlers.onAcknowledge()))}renderAddressForm(e){this.body.appendChild(this.dom.h(`h2`,{class:`arkyc-h`,text:`Your address`})),this.body.appendChild(this.dom.h(`p`,{class:`arkyc-p`,text:`Enter your residential address so we can verify it.`}));let t=this.dom.field(`Address line 1`,{autocomplete:`address-line1`,name:`street`}),n=this.dom.field(`Address line 2 (optional)`,{autocomplete:`address-line2`,name:`town`}),r=this.dom.field(`City`,{autocomplete:`address-level2`,name:`city`}),i=this.dom.field(`State / region`,{autocomplete:`address-level1`,name:`state`}),a=this.dom.field(`ZIP/Postal code`,{autocomplete:`postal-code`,name:`zip`}),o=this.dom.field(`Country`,{name:`country_iso2`,choices:Le.map(e=>({value:e.iso2,label:`${e.flag} ${e.name}`}))});this.body.appendChild(this.dom.h(`div`,{class:`arkyc-addr-form`},[t,n,r,i,a,o]));let s=null;if(e.includes(`poa_document`)){let e=this.dom.h(`input`,{class:`arkyc-addr-input`,type:`file`,accept:`image/*`,on:{change:()=>s=e.files?.[0]??null}});this.dom.append(this.body,[this.dom.h(`p`,{class:`arkyc-p`,text:`Upload a proof of address (utility bill or bank statement).`}),e])}let c=!1,l=e.includes(`device_location`),u=this.button(`Continue`,()=>this.handlers.onAddress({line1:t.value.trim()||null,line2:n.value.trim()||null,city:r.value.trim()||null,region:i.value.trim()||null,postalCode:a.value.trim()||null,country:o.value.trim().toUpperCase()||null,poa:s,useLocation:c}));if(l){let e=this.dom.h(`p`,{class:`arkyc-p`}),t=this.dom.h(`input`,{type:`checkbox`,on:{change:()=>{if(!t.checked){c=!1,e.textContent=``,u.setAttribute(`disabled`,`true`);return}e.textContent=`Requesting your location…`,u.setAttribute(`disabled`,`true`),Promise.resolve(this.handlers.onShareLocation()).then(n=>{c=n,t.checked=n,n?u.removeAttribute(`disabled`):u.setAttribute(`disabled`,`true`),e.textContent=n?`Location shared ✓`:`Couldn’t access your location, allow location access to continue.`})}}});u.setAttribute(`disabled`,`true`),this.body.appendChild(this.dom.h(`label`,{class:`arkyc-addr-opt`},[t,this.dom.h(`span`,{text:`Allow access to my current location to confirm my address`})])),this.body.appendChild(e)}this.footer.appendChild(u)}button(e,t,n){let r=n?`arkyc-btn ${n}`:`arkyc-btn`,i=this.dom.h(`button`,{class:r,text:e}),a=!1;return i.addEventListener(`click`,()=>{a||(a=!0,i.setAttribute(`disabled`,`true`),i.classList.add(`arkyc-busy`),t())}),i}clear(e){for(;e.firstChild;)e.removeChild(e.firstChild)}};function qe(e){let t=e.userAgent||``;if(!t)return!1;let n=/Android|iPhone|iPad|iPod|Opera Mini|IEMobile|Mobile|BlackBerry|Windows Phone/i.test(t),r=e.platform===`MacIntel`&&(e.maxTouchPoints??0)>1;return!n&&!r}var Je=d(c(((e,t)=>{var n=function(){var e=function(e,t){var r=e,a=n[t],p=null,m=0,h=null,g=[],v={},y=function(e,t){m=r*4+17,p=function(e){for(var t=Array(e),n=0;n<e;n+=1){t[n]=Array(e);for(var r=0;r<e;r+=1)t[n][r]=null}return t}(m),b(0,0),b(m-7,0),b(0,m-7),C(),S(),T(e,t),r>=7&&w(e),h??(h=O(r,a,g)),E(h,t)},b=function(e,t){for(var n=-1;n<=7;n+=1)if(!(e+n<=-1||m<=e+n))for(var r=-1;r<=7;r+=1)t+r<=-1||m<=t+r||(0<=n&&n<=6&&(r==0||r==6)||0<=r&&r<=6&&(n==0||n==6)||2<=n&&n<=4&&2<=r&&r<=4?p[e+n][t+r]=!0:p[e+n][t+r]=!1)},x=function(){for(var e=0,t=0,n=0;n<8;n+=1){y(!0,n);var r=i.getLostPoint(v);(n==0||e>r)&&(e=r,t=n)}return t},S=function(){for(var e=8;e<m-8;e+=1)p[e][6]??(p[e][6]=e%2==0);for(var t=8;t<m-8;t+=1)p[6][t]??(p[6][t]=t%2==0)},C=function(){for(var e=i.getPatternPosition(r),t=0;t<e.length;t+=1)for(var n=0;n<e.length;n+=1){var a=e[t],o=e[n];if(p[a][o]==null)for(var s=-2;s<=2;s+=1)for(var c=-2;c<=2;c+=1)s==-2||s==2||c==-2||c==2||s==0&&c==0?p[a+s][o+c]=!0:p[a+s][o+c]=!1}},w=function(e){for(var t=i.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[Math.floor(n/3)][n%3+m-8-3]=a}for(var n=0;n<18;n+=1){var a=!e&&(t>>n&1)==1;p[n%3+m-8-3][Math.floor(n/3)]=a}},T=function(e,t){for(var n=a<<3|t,r=i.getBCHTypeInfo(n),o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<6?p[o][8]=s:o<8?p[o+1][8]=s:p[m-15+o][8]=s}for(var o=0;o<15;o+=1){var s=!e&&(r>>o&1)==1;o<8?p[8][m-o-1]=s:o<9?p[8][15-o-1+1]=s:p[8][15-o-1]=s}p[m-8][8]=!e},E=function(e,t){for(var n=-1,r=m-1,a=7,o=0,s=i.getMaskFunction(t),c=m-1;c>0;c-=2)for(c==6&&--c;;){for(var l=0;l<2;l+=1)if(p[r][c-l]==null){var u=!1;o<e.length&&(u=(e[o]>>>a&1)==1),s(r,c-l)&&(u=!u),p[r][c-l]=u,--a,a==-1&&(o+=1,a=7)}if(r+=n,r<0||m<=r){r-=n,n=-n;break}}},D=function(e,t){for(var n=0,r=0,a=0,s=Array(t.length),c=Array(t.length),l=0;l<t.length;l+=1){var u=t[l].dataCount,d=t[l].totalCount-u;r=Math.max(r,u),a=Math.max(a,d),s[l]=Array(u);for(var f=0;f<s[l].length;f+=1)s[l][f]=255&e.getBuffer()[f+n];n+=u;var p=i.getErrorCorrectPolynomial(d),m=o(s[l],p.getLength()-1).mod(p);c[l]=Array(p.getLength()-1);for(var f=0;f<c[l].length;f+=1){var h=f+m.getLength()-c[l].length;c[l][f]=h>=0?m.getAt(h):0}}for(var g=0,f=0;f<t.length;f+=1)g+=t[f].totalCount;for(var _=Array(g),v=0,f=0;f<r;f+=1)for(var l=0;l<t.length;l+=1)f<s[l].length&&(_[v]=s[l][f],v+=1);for(var f=0;f<a;f+=1)for(var l=0;l<t.length;l+=1)f<c[l].length&&(_[v]=c[l][f],v+=1);return _},O=function(e,t,n){for(var r=s.getRSBlocks(e,t),a=c(),o=0;o<n.length;o+=1){var l=n[o];a.put(l.getMode(),4),a.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(a)}for(var u=0,o=0;o<r.length;o+=1)u+=r[o].dataCount;if(a.getLengthInBits()>u*8)throw`code length overflow. (`+a.getLengthInBits()+`>`+u*8+`)`;for(a.getLengthInBits()+4<=u*8&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(!1);for(;!(a.getLengthInBits()>=u*8||(a.put(236,8),a.getLengthInBits()>=u*8));)a.put(17,8);return D(a,r)};v.addData=function(e,t){t=t||`Byte`;var n=null;switch(t){case`Numeric`:n=l(e);break;case`Alphanumeric`:n=u(e);break;case`Byte`:n=d(e);break;case`Kanji`:n=f(e);break;default:throw`mode:`+t}g.push(n),h=null},v.isDark=function(e,t){if(e<0||m<=e||t<0||m<=t)throw e+`,`+t;return p[e][t]},v.getModuleCount=function(){return m},v.make=function(){if(r<1){for(var e=1;e<40;e++){for(var t=s.getRSBlocks(e,a),n=c(),o=0;o<g.length;o++){var l=g[o];n.put(l.getMode(),4),n.put(l.getLength(),i.getLengthInBits(l.getMode(),e)),l.write(n)}for(var u=0,o=0;o<t.length;o++)u+=t[o].dataCount;if(n.getLengthInBits()<=u*8)break}r=e}y(!1,x())},v.createTableTag=function(e,t){e=e||2,t=t===void 0?e*4:t;var n=``;n+=`<table style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: `+t+`px;`,n+=`">`,n+=`<tbody>`;for(var r=0;r<v.getModuleCount();r+=1){n+=`<tr>`;for(var i=0;i<v.getModuleCount();i+=1)n+=`<td style="`,n+=` border-width: 0px; border-style: none;`,n+=` border-collapse: collapse;`,n+=` padding: 0px; margin: 0px;`,n+=` width: `+e+`px;`,n+=` height: `+e+`px;`,n+=` background-color: `,n+=v.isDark(r,i)?`#000000`:`#ffffff`,n+=`;`,n+=`"/>`;n+=`</tr>`}return n+=`</tbody>`,n+=`</table>`,n},v.createSvgTag=function(e,t,n,r){var i={};typeof arguments[0]==`object`&&(i=arguments[0],e=i.cellSize,t=i.margin,n=i.alt,r=i.title),e=e||2,t=t===void 0?e*4:t,n=typeof n==`string`?{text:n}:n||{},n.text=n.text||null,n.id=n.text?n.id||`qrcode-description`:null,r=typeof r==`string`?{text:r}:r||{},r.text=r.text||null,r.id=r.text?r.id||`qrcode-title`:null;var a=v.getModuleCount()*e+t*2,o,s,c,l,u=``,d=`l`+e+`,0 0,`+e+` -`+e+`,0 0,-`+e+`z `;for(u+=`<svg version="1.1" xmlns="http://www.w3.org/2000/svg"`,u+=i.scalable?``:` width="`+a+`px" height="`+a+`px"`,u+=` viewBox="0 0 `+a+` `+a+`" `,u+=` preserveAspectRatio="xMinYMin meet"`,u+=r.text||n.text?` role="img" aria-labelledby="`+k([r.id,n.id].join(` `).trim())+`"`:``,u+=`>`,u+=r.text?`<title id="`+k(r.id)+`">`+k(r.text)+`</title>`:``,u+=n.text?`<description id="`+k(n.id)+`">`+k(n.text)+`</description>`:``,u+=`<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>`,u+=`<path d="`,c=0;c<v.getModuleCount();c+=1)for(l=c*e+t,o=0;o<v.getModuleCount();o+=1)v.isDark(c,o)&&(s=o*e+t,u+=`M`+s+`,`+l+d);return u+=`" stroke="transparent" fill="black"/>`,u+=`</svg>`,u},v.createDataURL=function(e,t){e=e||2,t=t===void 0?e*4:t;var n=v.getModuleCount()*e+t*2,r=t,i=n-t;return _(n,n,function(t,n){if(r<=t&&t<i&&r<=n&&n<i){var a=Math.floor((t-r)/e),o=Math.floor((n-r)/e);return+!v.isDark(o,a)}else return 1})},v.createImgTag=function(e,t,n){e=e||2,t=t===void 0?e*4:t;var r=v.getModuleCount()*e+t*2,i=``;return i+=`<img`,i+=` src="`,i+=v.createDataURL(e,t),i+=`"`,i+=` width="`,i+=r,i+=`"`,i+=` height="`,i+=r,i+=`"`,n&&(i+=` alt="`,i+=k(n),i+=`"`),i+=`/>`,i};var k=function(e){for(var t=``,n=0;n<e.length;n+=1){var r=e.charAt(n);switch(r){case`<`:t+=`&lt;`;break;case`>`:t+=`&gt;`;break;case`&`:t+=`&amp;`;break;case`"`:t+=`&quot;`;break;default:t+=r;break}}return t},A=function(e){var t=1;e=e===void 0?t*2:e;var n=v.getModuleCount()*t+e*2,r=e,i=n-e,a,o,s,c,l,u={"██":`█`,"█ ":`▀`," █":`▄`," ":` `},d={"██":`▀`,"█ ":`▀`," █":` `," ":` `},f=``;for(a=0;a<n;a+=2){for(s=Math.floor((a-r)/t),c=Math.floor((a+1-r)/t),o=0;o<n;o+=1)l=`█`,r<=o&&o<i&&r<=a&&a<i&&v.isDark(s,Math.floor((o-r)/t))&&(l=` `),r<=o&&o<i&&r<=a+1&&a+1<i&&v.isDark(c,Math.floor((o-r)/t))?l+=` `:l+=`█`,f+=e<1&&a+1>=i?d[l]:u[l];f+=`
734
734
  `}return n%2&&e>0?f.substring(0,f.length-n-1)+Array(n+1).join(`▀`):f.substring(0,f.length-1)};return v.createASCII=function(e,t){if(e=e||1,e<2)return A(t);--e,t=t===void 0?e*2:t;var n=v.getModuleCount()*e+t*2,r=t,i=n-t,a,o,s,c,l=Array(e+1).join(`██`),u=Array(e+1).join(` `),d=``,f=``;for(a=0;a<n;a+=1){for(s=Math.floor((a-r)/e),f=``,o=0;o<n;o+=1)c=1,r<=o&&o<i&&r<=a&&a<i&&v.isDark(s,Math.floor((o-r)/e))&&(c=0),f+=c?l:u;for(s=0;s<e;s+=1)d+=f+`
735
- `}return d.substring(0,d.length-1)},v.renderTo2dContext=function(e,t){t=t||2;for(var n=v.getModuleCount(),r=0;r<n;r++)for(var i=0;i<n;i++)e.fillStyle=v.isDark(r,i)?`black`:`white`,e.fillRect(r*t,i*t,t,t)},v};e.stringToBytesFuncs={default:function(e){for(var t=[],n=0;n<e.length;n+=1){var r=e.charCodeAt(n);t.push(r&255)}return t}},e.stringToBytes=e.stringToBytesFuncs.default,e.createStringToBytes=function(e,t){var n=function(){for(var n=h(e),r=function(){var e=n.read();if(e==-1)throw`eof`;return e},i=0,a={};;){var o=n.read();if(o==-1)break;var s=r(),c=r(),l=r(),u=String.fromCharCode(o<<8|s);a[u]=c<<8|l,i+=1}if(i!=t)throw i+` != `+t;return a}(),r=63;return function(e){for(var t=[],i=0;i<e.length;i+=1){var a=e.charCodeAt(i);if(a<128)t.push(a);else{var o=n[e.charAt(i)];typeof o==`number`?(o&255)==o?t.push(o):(t.push(o>>>8),t.push(o&255)):t.push(r)}}return t}};var t={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},r={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,s=21522,c={},l=function(e){for(var t=0;e!=0;)t+=1,e>>>=1;return t};return c.getBCHTypeInfo=function(e){for(var t=e<<10;l(t)-l(n)>=0;)t^=n<<l(t)-l(n);return(e<<10|t)^s},c.getBCHTypeNumber=function(e){for(var t=e<<12;l(t)-l(i)>=0;)t^=i<<l(t)-l(i);return e<<12|t},c.getPatternPosition=function(t){return e[t-1]},c.getMaskFunction=function(e){switch(e){case r.PATTERN000:return function(e,t){return(e+t)%2==0};case r.PATTERN001:return function(e,t){return e%2==0};case r.PATTERN010:return function(e,t){return t%3==0};case r.PATTERN011:return function(e,t){return(e+t)%3==0};case r.PATTERN100:return function(e,t){return(Math.floor(e/2)+Math.floor(t/3))%2==0};case r.PATTERN101:return function(e,t){return e*t%2+e*t%3==0};case r.PATTERN110:return function(e,t){return(e*t%2+e*t%3)%2==0};case r.PATTERN111:return function(e,t){return(e*t%3+(e+t)%2)%2==0};default:throw`bad maskPattern:`+e}},c.getErrorCorrectPolynomial=function(e){for(var t=o([1],0),n=0;n<e;n+=1)t=t.multiply(o([1,a.gexp(n)],0));return t},c.getLengthInBits=function(e,n){if(1<=n&&n<10)switch(e){case t.MODE_NUMBER:return 10;case t.MODE_ALPHA_NUM:return 9;case t.MODE_8BIT_BYTE:return 8;case t.MODE_KANJI:return 8;default:throw`mode:`+e}else if(n<27)switch(e){case t.MODE_NUMBER:return 12;case t.MODE_ALPHA_NUM:return 11;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 10;default:throw`mode:`+e}else if(n<41)switch(e){case t.MODE_NUMBER:return 14;case t.MODE_ALPHA_NUM:return 13;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 12;default:throw`mode:`+e}else throw`type:`+n},c.getLostPoint=function(e){for(var t=e.getModuleCount(),n=0,r=0;r<t;r+=1)for(var i=0;i<t;i+=1){for(var a=0,o=e.isDark(r,i),s=-1;s<=1;s+=1)if(!(r+s<0||t<=r+s))for(var c=-1;c<=1;c+=1)i+c<0||t<=i+c||s==0&&c==0||o==e.isDark(r+s,i+c)&&(a+=1);a>5&&(n+=3+a-5)}for(var r=0;r<t-1;r+=1)for(var i=0;i<t-1;i+=1){var l=0;e.isDark(r,i)&&(l+=1),e.isDark(r+1,i)&&(l+=1),e.isDark(r,i+1)&&(l+=1),e.isDark(r+1,i+1)&&(l+=1),(l==0||l==4)&&(n+=3)}for(var r=0;r<t;r+=1)for(var i=0;i<t-6;i+=1)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(n+=40);for(var i=0;i<t;i+=1)for(var r=0;r<t-6;r+=1)e.isDark(r,i)&&!e.isDark(r+1,i)&&e.isDark(r+2,i)&&e.isDark(r+3,i)&&e.isDark(r+4,i)&&!e.isDark(r+5,i)&&e.isDark(r+6,i)&&(n+=40);for(var u=0,i=0;i<t;i+=1)for(var r=0;r<t;r+=1)e.isDark(r,i)&&(u+=1);var d=Math.abs(100*u/t/t-50)/5;return n+=d*10,n},c}(),a=function(){for(var e=Array(256),t=Array(256),n=0;n<8;n+=1)e[n]=1<<n;for(var n=8;n<256;n+=1)e[n]=e[n-4]^e[n-5]^e[n-6]^e[n-8];for(var n=0;n<255;n+=1)t[e[n]]=n;var r={};return r.glog=function(e){if(e<1)throw`glog(`+e+`)`;return t[e]},r.gexp=function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return e[t]},r}();function o(e,t){if(e.length===void 0)throw e.length+`/`+t;var n=function(){for(var n=0;n<e.length&&e[n]==0;)n+=1;for(var r=Array(e.length-n+t),i=0;i<e.length-n;i+=1)r[i]=e[i+n];return r}(),r={};return r.getAt=function(e){return n[e]},r.getLength=function(){return n.length},r.multiply=function(e){for(var t=Array(r.getLength()+e.getLength()-1),n=0;n<r.getLength();n+=1)for(var i=0;i<e.getLength();i+=1)t[n+i]^=a.gexp(a.glog(r.getAt(n))+a.glog(e.getAt(i)));return o(t,0)},r.mod=function(e){if(r.getLength()-e.getLength()<0)return r;for(var t=a.glog(r.getAt(0))-a.glog(e.getAt(0)),n=Array(r.getLength()),i=0;i<r.getLength();i+=1)n[i]=r.getAt(i);for(var i=0;i<e.getLength();i+=1)n[i]^=a.gexp(a.glog(e.getAt(i))+t);return o(n,0).mod(e)},r}var s=function(){var e=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(e,t){var n={};return n.totalCount=e,n.dataCount=t,n},r={},i=function(t,r){switch(r){case n.L:return e[(t-1)*4+0];case n.M:return e[(t-1)*4+1];case n.Q:return e[(t-1)*4+2];case n.H:return e[(t-1)*4+3];default:return}};return r.getRSBlocks=function(e,n){var r=i(e,n);if(r===void 0)throw`bad rs block @ typeNumber:`+e+`/errorCorrectionLevel:`+n;for(var a=r.length/3,o=[],s=0;s<a;s+=1)for(var c=r[s*3+0],l=r[s*3+1],u=r[s*3+2],d=0;d<c;d+=1)o.push(t(l,u));return o},r}(),c=function(){var e=[],t=0,n={};return n.getBuffer=function(){return e},n.getAt=function(t){return(e[Math.floor(t/8)]>>>7-t%8&1)==1},n.put=function(e,t){for(var r=0;r<t;r+=1)n.putBit((e>>>t-r-1&1)==1)},n.getLengthInBits=function(){return t},n.putBit=function(n){var r=Math.floor(t/8);e.length<=r&&e.push(0),n&&(e[r]|=128>>>t%8),t+=1},n},l=function(e){var n=t.MODE_NUMBER,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+2<t.length;)e.put(a(t.substring(n,n+3)),10),n+=3;n<t.length&&(t.length-n==1?e.put(a(t.substring(n,n+1)),4):t.length-n==2&&e.put(a(t.substring(n,n+2)),7))};var a=function(e){for(var t=0,n=0;n<e.length;n+=1)t=t*10+o(e.charAt(n));return t},o=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;throw`illegal char :`+e};return i},u=function(e){var n=t.MODE_ALPHA_NUM,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+1<t.length;)e.put(a(t.charAt(n))*45+a(t.charAt(n+1)),11),n+=2;n<t.length&&e.put(a(t.charAt(n)),6)};var a=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;if(`A`<=e&&e<=`Z`)return e.charCodeAt(0)-65+10;switch(e){case` `:return 36;case`$`:return 37;case`%`:return 38;case`*`:return 39;case`+`:return 40;case`-`:return 41;case`.`:return 42;case`/`:return 43;case`:`:return 44;default:throw`illegal char :`+e}};return i},d=function(n){var r=t.MODE_8BIT_BYTE,i=e.stringToBytes(n),a={};return a.getMode=function(){return r},a.getLength=function(e){return i.length},a.write=function(e){for(var t=0;t<i.length;t+=1)e.put(i[t],8)},a},f=function(n){var r=t.MODE_KANJI,i=e.stringToBytesFuncs.SJIS;if(!i)throw`sjis not supported.`;(function(e,t){var n=i(e);if(n.length!=2||(n[0]<<8|n[1])!=t)throw`sjis not supported.`})(`友`,38726);var a=i(n),o={};return o.getMode=function(){return r},o.getLength=function(e){return~~(a.length/2)},o.write=function(e){for(var t=a,n=0;n+1<t.length;){var r=(255&t[n])<<8|255&t[n+1];if(33088<=r&&r<=40956)r-=33088;else if(57408<=r&&r<=60351)r-=49472;else throw`illegal char at `+(n+1)+`/`+r;r=(r>>>8&255)*192+(r&255),e.put(r,13),n+=2}if(n<t.length)throw`illegal char at `+(n+1)},o},p=function(){var e=[],t={};return t.writeByte=function(t){e.push(t&255)},t.writeShort=function(e){t.writeByte(e),t.writeByte(e>>>8)},t.writeBytes=function(e,n,r){n=n||0,r=r||e.length;for(var i=0;i<r;i+=1)t.writeByte(e[i+n])},t.writeString=function(e){for(var n=0;n<e.length;n+=1)t.writeByte(e.charCodeAt(n))},t.toByteArray=function(){return e},t.toString=function(){var t=``;t+=`[`;for(var n=0;n<e.length;n+=1)n>0&&(t+=`,`),t+=e[n];return t+=`]`,t},t},m=function(){var e=0,t=0,n=0,r=``,i={},a=function(e){r+=String.fromCharCode(o(e&63))},o=function(e){if(!(e<0)){if(e<26)return 65+e;if(e<52)return 97+(e-26);if(e<62)return 48+(e-52);if(e==62)return 43;if(e==63)return 47}throw`n:`+e};return i.writeByte=function(r){for(e=e<<8|r&255,t+=8,n+=1;t>=6;)a(e>>>t-6),t-=6},i.flush=function(){if(t>0&&(a(e<<6-t),e=0,t=0),n%3!=0)for(var i=3-n%3,o=0;o<i;o+=1)r+=`=`},i.toString=function(){return r},i},h=function(e){var t=e,n=0,r=0,i=0,a={};a.read=function(){for(;i<8;){if(n>=t.length){if(i==0)return-1;throw`unexpected end of file./`+i}var e=t.charAt(n);if(n+=1,e==`=`)return i=0,-1;e.match(/^\s$/)||(r=r<<6|o(e.charCodeAt(0)),i+=6)}var a=r>>>i-8&255;return i-=8,a};var o=function(e){if(65<=e&&e<=90)return e-65;if(97<=e&&e<=122)return e-97+26;if(48<=e&&e<=57)return e-48+52;if(e==43)return 62;if(e==47)return 63;throw`c:`+e};return a},g=function(e,t){var n=e,r=t,i=Array(e*t),a={};a.setPixel=function(e,t,r){i[t*n+e]=r},a.write=function(e){e.writeString(`GIF87a`),e.writeShort(n),e.writeShort(r),e.writeByte(128),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(255),e.writeByte(255),e.writeByte(255),e.writeString(`,`),e.writeShort(0),e.writeShort(0),e.writeShort(n),e.writeShort(r),e.writeByte(0);var t=2,i=s(t);e.writeByte(t);for(var a=0;i.length-a>255;)e.writeByte(255),e.writeBytes(i,a,255),a+=255;e.writeByte(i.length-a),e.writeBytes(i,a,i.length-a),e.writeByte(0),e.writeString(`;`)};var o=function(e){var t=e,n=0,r=0,i={};return i.write=function(e,i){if(e>>>i)throw`length over`;for(;n+i>=8;)t.writeByte(255&(e<<n|r)),i-=8-n,e>>>=8-n,r=0,n=0;r=e<<n|r,n+=i},i.flush=function(){n>0&&t.writeByte(r)},i},s=function(e){for(var t=1<<e,n=(1<<e)+1,r=e+1,a=c(),s=0;s<t;s+=1)a.add(String.fromCharCode(s));a.add(String.fromCharCode(t)),a.add(String.fromCharCode(n));var l=p(),u=o(l);u.write(t,r);var d=0,f=String.fromCharCode(i[d]);for(d+=1;d<i.length;){var m=String.fromCharCode(i[d]);d+=1,a.contains(f+m)?f+=m:(u.write(a.indexOf(f),r),a.size()<4095&&(a.size()==1<<r&&(r+=1),a.add(f+m)),f=m)}return u.write(a.indexOf(f),r),u.write(n,r),u.flush(),l.toByteArray()},c=function(){var e={},t=0,n={};return n.add=function(r){if(n.contains(r))throw`dup key:`+r;e[r]=t,t+=1},n.size=function(){return t},n.indexOf=function(t){return e[t]},n.contains=function(t){return e[t]!==void 0},n};return a},_=function(e,t,n){for(var r=g(e,t),i=0;i<t;i+=1)for(var a=0;a<e;a+=1)r.setPixel(a,i,n(a,i));var o=p();r.write(o);for(var s=m(),c=o.toByteArray(),l=0;l<c.length;l+=1)s.writeByte(c[l]);return s.flush(),`data:image/gif;base64,`+s};return e}();(function(){n.stringToBytesFuncs[`UTF-8`]=function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return t}return t(e)}})(),(function(n){typeof define==`function`&&define.amd?define([],n):typeof e==`object`&&(t.exports=n())})(function(){return n})}))(),1);function he(e){let t=(0,me.default)(0,`M`);return t.addData(e),t.make(),t.createSvgTag({cellSize:6,margin:4,scalable:!0})}let ge={front_capture:{title:`Front of your document`,body:`Place the front of your ID flat and fully inside the frame. We’ll capture it automatically.`},back_capture:{title:`Back of your document`,body:`Now turn your ID over and show the back, fully inside the frame.`},selfie_capture:{title:`Take a selfie`,body:`Look straight at the camera in good light and hold still — we’ll capture it automatically.`},active_liveness:{title:`Quick liveness check`,body:`Follow the on-screen prompts (such as turn your head, blink or smile). This confirms you’re really here.`}};function _e(e,t){let n=e.logo_url;if(!n||!t||!/^https?:\/\//i.test(t))return e;try{let r=new URL(t),i=new URL(n,r);return i.origin===r.origin?e:{...e,logo_url:`${r.origin}${i.pathname}${i.search}${i.hash}`}}catch{return e}}var ve=class{constructor(e){this.config=e,p(this,`client`,void 0),p(this,`view`,void 0),p(this,`win`,void 0),p(this,`nav`,void 0),p(this,`postToParent`,void 0),p(this,`scheduler`,void 0),p(this,`transientMs`,void 0),p(this,`pollMs`,void 0),p(this,`maxPolls`,void 0),p(this,`maxHandoffPolls`,void 0),p(this,`handoffConfig`,{enabled:!1,allow_desktop:!0,url:``}),p(this,`handoffReady`,!1),p(this,`handoffActive`,!1),p(this,`sessionId`,``),p(this,`realtimeConfig`,null),p(this,`rtClient`,null),p(this,`rtResolved`,!1),p(this,`lastStatus`,null),p(this,`listeners`,new Map),p(this,`stopWatch`,void 0),p(this,`step`,`welcome`),p(this,`documentType`,null),p(this,`country`,null),p(this,`selfie`,null),p(this,`livenessMode`,`passive`),p(this,`captureModel`,`passive`),p(this,`livenessChallenges`,[]),p(this,`addressData`,null),p(this,`addressCoords`,null),p(this,`workflow`,null),p(this,`result`,null),p(this,`terminalOnLoad`,!1),p(this,`instructionAcked`,!1),p(this,`pendingError`,null),p(this,`settled`,!1);let t=e.doc??globalThis.document,n=e.win??globalThis.window;if(!t||!n)throw Error(`The Arkyc widget must run in a browser environment.`);this.win=n,this.nav=e.nav??globalThis.navigator,this.client=new _({token:e.token,baseUrl:e.baseUrl,fetch:e.fetch});let r=new T(e.branding);this.view=new fe(t,r,this.handlers(),e.nav??globalThis.navigator,e.faceAnalyzer,e.faceTuning,e.documentAnalyzer,e.documentTuning),this.postToParent=e.postToParent??(!!n.parent&&n.parent!==n),this.scheduler=e.scheduler??((e,t)=>setTimeout(e,t)),this.transientMs=e.transientMs??700,this.pollMs=e.pollMs??1500,this.maxPolls=e.maxPolls??40,this.maxHandoffPolls=e.maxHandoffPolls??600}get element(){return this.view.element}start(){this.view.renderLoading(),this.run(()=>this.bootstrap())}destroy(){this.view.destroy()}close(){this.finishClose()}on(e,t){let n=this.listeners.get(e)??new Set;return n.add(t),this.listeners.set(e,n),()=>n.delete(t)}hasListener(e){if(this.config.onEvent)return!0;let t=this.listeners.get(e);return!!t&&t.size>0}dispatch(e,t){this.emit(e,t),this.post(`arkyc:event`,{name:e,data:t})}emit(e,t){if(!this.hasListener(e))return;try{this.config.onEvent?.({name:e,data:t})}catch{}let n=this.listeners.get(e);if(n)for(let e of[...n])try{e(t)}catch{}}observe(e){if(e===this.lastStatus)return;let t=this.lastStatus;this.lastStatus=e,this.dispatch(D.sessionTransition,{session_id:this.sessionId,status:e,previous_status:t})}async resolveRealtime(){if(this.rtResolved)return this.rtClient;this.rtResolved=!0;let e=this.realtimeConfig;if(!e||e.transport===`polling`||e.transport===`off`||e.transport===`memory`)return null;let t=this.config.realtimeFactory??y,n=this.client.base;try{this.rtClient=await t(e,{authEndpoint:`${n}/realtime/auth`,token:this.config.token})}catch{this.rtClient=null}return this.rtClient}handlers(){return{onClose:()=>this.finishClose(),onStart:()=>void this.run(()=>this.enter(this.next())),onDocumentSelected:(e,t)=>{this.documentType=e,this.country=t||null,this.run(()=>this.enter(`front_capture`))},onImage:e=>void this.run(()=>this.onImage(e)),onActiveLiveness:(e,t,n)=>void this.run(async()=>{await this.client.submitLiveness({selfie:n,video:e,mode:`active`,challenges:t,signals:this.config.signals}),await this.enter(this.next())}),onAddress:e=>void this.run(()=>this.onAddress(e)),onShareLocation:()=>this.shareLocation(),onAcknowledge:()=>this.finishResult(),onUsePhone:()=>void this.run(()=>this.startHandoff()),onContinueHere:()=>{this.handoffActive=!1,this.stopWatch?.(),this.step=`welcome`,this.render()}}}async bootstrap(){if(this.settled)return;let e=await this.client.getSession();if(!this.settled){if(this.sessionId=e.id,this.realtimeConfig=e.realtime??null,this.workflow=e.workflow??null,this.config.branding==null&&e.branding&&this.view.applyBranding(_e(e.branding,this.config.baseUrl)),this.observe(e.status),N.isTerminal(e.status))return this.showTerminal(e.status);this.resolveLiveness(e),e.handoff&&(this.handoffConfig=e.handoff),this.config.handoff!==!1&&pe(this.nav)&&this.handoffConfig.enabled&&this.handoffTarget()?(this.handoffReady=!0,await this.startHandoff()):(this.step=`welcome`,this.render())}}handoffTarget(){return(this.config.handoffUrl??this.handoffConfig.url??``).trim()}async startHandoff(){let e=this.handoffTarget();e&&(this.handoffActive=!0,this.view.renderHandoff(he(this.buildHandoffUrl(e)),this.handoffConfig.allow_desktop),await this.pollHandoff())}buildHandoffUrl(e){let t=this.win.location?.origin??globalThis.location?.origin??``;return xe(e,this.config.token,this.client.base,t)}async pollHandoff(){let e=await this.resolveRealtime();if(e){let t=await this.pushWatch(e,this.maxHandoffPolls,()=>this.handoffActive&&!this.settled);return t?(this.handoffActive=!1,this.showResult(t)):void 0}let t=0;for(let e=0;e<this.maxHandoffPolls&&this.handoffActive&&!this.settled;e++){if(await this.delay(this.pollMs),!this.handoffActive||this.settled)return;try{let e=await this.client.getSession();if(t=0,this.observe(e.status),N.isTerminal(e.status))return this.handoffActive=!1,this.showResult(e.status)}catch(e){if(e instanceof m&&e.status===401)return this.handoffActive=!1,this.showResult(`expired`);if(++t>=5)return}}}pushWatch(e,t,n){return new Promise(r=>{let i=!1,a=e=>{i||(i=!0,this.stopWatch=void 0,s(),r(e))},o=this.realtimeConfig.channel,s=e.subscribe(o,(e,t)=>{if(e!==D.sessionTransition)return;let n=t.status;this.observe(n),N.isTerminal(n)&&a(n)});this.stopWatch=()=>a(null),this.client.getSession().then(e=>{this.observe(e.status),N.isTerminal(e.status)&&a(e.status)}).catch(e=>{e instanceof m&&e.status===401&&a(`expired`)});let c=async e=>{if(!i){if(!n()||e>=t)return a(null);await this.delay(this.pollMs),c(e+1)}};c(0)})}resolveLiveness(e){this.livenessChallenges=e.liveness_challenges??[];let t=e.capture_model??`passive`;this.captureModel=t;let n=t===`active`||t===`both`;this.livenessMode=n&&(t===`active`||this.view.cameraSupported)?`active`:`passive`}async onImage(e){let t=this.config.signals;switch(this.step){case`front_capture`:return await this.client.submitDocumentFront({image:e,country:this.country,documentType:this.documentType,signals:t}),this.enter(this.next());case`back_capture`:return await this.client.submitDocumentBack({image:e,country:this.country,documentType:this.documentType}),this.enter(`ocr_processing`);case`selfie_capture`:return this.selfie=e,this.enter(`passive_liveness`)}}async enter(e){if(this.settled)return;this.step=e;let t=ge[e];if(t&&!this.instructionAcked){this.view.renderInstruction(e,t.title,t.body,t.cta??`Continue`,()=>{this.instructionAcked=!0,this.run(()=>this.enter(e))});return}switch(this.instructionAcked=!1,this.render(),e){case`ocr_processing`:return await this.delay(this.transientMs),this.enter(this.next());case`address_processing`:return await this.submitAddress(),this.enter(this.next());case`passive_liveness`:return await this.client.submitLiveness({selfie:this.selfie,signals:this.config.signals}),this.enter(this.next());case`face_match`:return await this.client.complete({signals:this.config.signals}),this.enter(this.next());case`processing`:return this.poll()}}async poll(){let e=await this.resolveRealtime();if(e){let t=await this.pushWatch(e,this.maxPolls,()=>!this.settled);return this.showResult(t??`requires_review`)}for(let e=0;e<this.maxPolls&&!this.settled;e++){let e=await this.client.getSession();if(this.observe(e.status),N.isTerminal(e.status))return this.showResult(e.status);await this.delay(this.pollMs)}this.showResult(`requires_review`)}showResult(e){this.result={status:e,decision:N.statusToDecision(e)},this.step=`result`,this.render()}showTerminal(e){this.result={status:e,decision:N.statusToDecision(e)},this.step=`result`,this.terminalOnLoad=!0,this.render()}render(){this.view.render({step:this.step,documentType:this.documentType,decision:this.result?.decision,status:this.result?.status,terminalNotice:this.terminalOnLoad,allowSkip:!!this.config.signals,livenessChallenges:this.livenessChallenges,requireLiveCamera:this.captureModel===`active`,strictCapture:this.livenessMode===`active`,handoffAvailable:this.handoffReady,addressMethods:ee(this.workflow)?.methods??[]})}async onAddress(e){return this.addressData=e,e.useLocation?this.addressCoords||(this.addressCoords=await this.geolocate()):this.addressCoords=null,this.enter(`address_processing`)}async shareLocation(){return this.addressCoords=await this.geolocate(),!!this.addressCoords}async submitAddress(){let e=this.addressData;e&&await this.client.submitAddress({line1:e.line1,line2:e.line2,city:e.city,region:e.region,postalCode:e.postalCode,country:e.country,poa:e.poa,latitude:this.addressCoords?.latitude??null,longitude:this.addressCoords?.longitude??null,signals:this.config.signals})}geolocate(){let e=this.nav?.geolocation;return e?new Promise(t=>{e.getCurrentPosition(e=>t({latitude:e.coords.latitude,longitude:e.coords.longitude}),()=>t(null),{enableHighAccuracy:!1,timeout:1e4,maximumAge:6e4})}):Promise.resolve(null)}next(){return N.nextStep(this.step,{documentType:this.documentType,livenessMode:this.livenessMode,workflow:this.workflow})}delay(e){return new Promise(t=>this.scheduler(t,e))}async run(e){try{await e()}catch(e){this.fail(e)}}fail(e){if(this.settled||this.pendingError)return;let t=e instanceof Error?e:Error(String(e));this.pendingError=t,this.step=`result`,this.view.render({step:`result`,documentType:this.documentType,errorMessage:t.message}),this.dispatch(`error`,this.errorData(t)),this.config.onError?.(t)}errorData(e){return e instanceof m?{message:e.message,status:e.status,error:e.error}:{message:e.message}}finishResult(){this.settled||(this.settled=!0,this.teardownRealtime(),this.pendingError?this.post(`arkyc:error`,{error:ye(this.pendingError)}):this.result&&(this.post(`arkyc:complete`,{payload:this.result}),this.dispatch(`complete`,this.result),this.config.onComplete?.(this.result)),this.destroy(),this.config.onSettle?.())}finishClose(){this.settled||(this.settled=!0,this.teardownRealtime(),this.post(`arkyc:close`,{}),this.dispatch(`close`),this.config.onClose?.(),this.destroy(),this.config.onSettle?.())}teardownRealtime(){this.stopWatch?.(),this.rtClient?.disconnect(),this.rtClient=null}post(e,t){if(this.postToParent)try{this.win.parent?.postMessage({type:e,...t},`*`)}catch{}}};function ye(e){return{message:e.message,name:e.name}}function be(e){try{return new URL(e).origin}catch{return``}}let xe=(e,t,n,r)=>{let i=`${e}${e.includes(`?`)?`&`:`?`}token=${encodeURIComponent(t)}`,a=be(n);return a&&a!==r&&(i+=`&baseUrl=${encodeURIComponent(n)}`),i},Se=(e,t)=>{let n=typeof e==`string`?t.querySelector(e):e;if(!n)throw Error(`ArkycWidget.mount: container "${String(e)}" not found.`);return n},Ce=(e,t)=>{let n=t.defaultView?.getComputedStyle?.(e),r=n?.position??e.style.position;(!r||r===`static`)&&(e.style.position=`relative`);let i=n?.zIndex??e.style.zIndex;(!i||i===`auto`)&&(e.style.zIndex=`1`),e.style.isolation||(e.style.isolation=`isolate`)},Q=(e,t)=>{if(!e.token)throw Error("ArkycWidget requires a client `token`.");return new ve({token:e.token,baseUrl:e.baseUrl,handoff:e.handoff,handoffUrl:e.handoffUrl,branding:e.branding,signals:e.signals,onComplete:e.onComplete,onError:e.onError,onClose:e.onClose,onEvent:e.onEvent,onSettle:t,fetch:e.fetch,doc:e.doc,win:e.win,nav:e.nav,faceAnalyzer:e.faceAnalyzer,faceTuning:e.faceTuning,documentAnalyzer:e.documentAnalyzer,documentTuning:e.documentTuning})};var $=class{constructor(e){this.controller=e}close(){return this.controller.close()}on(e,t){return this.controller.on(e,t)}},we=class e{static open(e){let t=e.doc??globalThis.document,n=t.createElement(`div`);n.setAttribute(`data-arkyc-widget`,``),n.style.cssText=e.fullscreen?`position:fixed;inset:0;z-index:2147483647;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;padding:0;`:`position:fixed;inset:0;z-index:2147483647;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;padding:16px;`;let r=Q(e,()=>n.remove());return r.element.classList.add(`arkyc-overlay`),e.fullscreen&&r.element.classList.add(`arkyc-fullscreen`),n.appendChild(r.element),(t.body??t.documentElement).appendChild(n),r.start(),new $(r)}static mount(e){let t=e.doc??globalThis.document,n=Se(e.container,t),r=Q(e,()=>r.element.remove());return Ce(n,t),r.element.classList.add(`arkyc-inline`),n.appendChild(r.element),r.start(),new $(r)}static hosted(t={}){let n=t.win??globalThis.window,r=new URLSearchParams(n.location.search),i=t.token??r.get(`token`)??``,a=t.baseUrl??r.get(`baseUrl`)??void 0;return e.open({...t,token:i,baseUrl:a})}};return e.ArkycClient=_,e.ArkycWidget=we,e.Camera=E,e.DEFAULT_DOCUMENT_TUNING=V,e.DEFAULT_TUNING=R,e.Flow=N,e.PACKAGE_NAME=`@arkyc/widget`,e.Theme=T,e.VERSION=`0.1.0`,e.WidgetApiError=m,e.WidgetHandler=$,e.analyzeDocumentGray=U,e.createDefaultDocumentAnalyzer=G,e.createDefaultFaceAnalyzer=L,e.createWidgetRealtimeClient=y,e.documentGuidance=W,e.isDocumentReady=ae,e.isSelfieReady=B,e.makeChallengeDetector=z,e})({});
735
+ `}return d.substring(0,d.length-1)},v.renderTo2dContext=function(e,t){t=t||2;for(var n=v.getModuleCount(),r=0;r<n;r++)for(var i=0;i<n;i++)e.fillStyle=v.isDark(r,i)?`black`:`white`,e.fillRect(r*t,i*t,t,t)},v};e.stringToBytesFuncs={default:function(e){for(var t=[],n=0;n<e.length;n+=1){var r=e.charCodeAt(n);t.push(r&255)}return t}},e.stringToBytes=e.stringToBytesFuncs.default,e.createStringToBytes=function(e,t){var n=function(){for(var n=h(e),r=function(){var e=n.read();if(e==-1)throw`eof`;return e},i=0,a={};;){var o=n.read();if(o==-1)break;var s=r(),c=r(),l=r(),u=String.fromCharCode(o<<8|s);a[u]=c<<8|l,i+=1}if(i!=t)throw i+` != `+t;return a}(),r=63;return function(e){for(var t=[],i=0;i<e.length;i+=1){var a=e.charCodeAt(i);if(a<128)t.push(a);else{var o=n[e.charAt(i)];typeof o==`number`?(o&255)==o?t.push(o):(t.push(o>>>8),t.push(o&255)):t.push(r)}}return t}};var t={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},n={L:1,M:0,Q:3,H:2},r={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},i=function(){var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=1335,i=7973,s=21522,c={},l=function(e){for(var t=0;e!=0;)t+=1,e>>>=1;return t};return c.getBCHTypeInfo=function(e){for(var t=e<<10;l(t)-l(n)>=0;)t^=n<<l(t)-l(n);return(e<<10|t)^s},c.getBCHTypeNumber=function(e){for(var t=e<<12;l(t)-l(i)>=0;)t^=i<<l(t)-l(i);return e<<12|t},c.getPatternPosition=function(t){return e[t-1]},c.getMaskFunction=function(e){switch(e){case r.PATTERN000:return function(e,t){return(e+t)%2==0};case r.PATTERN001:return function(e,t){return e%2==0};case r.PATTERN010:return function(e,t){return t%3==0};case r.PATTERN011:return function(e,t){return(e+t)%3==0};case r.PATTERN100:return function(e,t){return(Math.floor(e/2)+Math.floor(t/3))%2==0};case r.PATTERN101:return function(e,t){return e*t%2+e*t%3==0};case r.PATTERN110:return function(e,t){return(e*t%2+e*t%3)%2==0};case r.PATTERN111:return function(e,t){return(e*t%3+(e+t)%2)%2==0};default:throw`bad maskPattern:`+e}},c.getErrorCorrectPolynomial=function(e){for(var t=o([1],0),n=0;n<e;n+=1)t=t.multiply(o([1,a.gexp(n)],0));return t},c.getLengthInBits=function(e,n){if(1<=n&&n<10)switch(e){case t.MODE_NUMBER:return 10;case t.MODE_ALPHA_NUM:return 9;case t.MODE_8BIT_BYTE:return 8;case t.MODE_KANJI:return 8;default:throw`mode:`+e}else if(n<27)switch(e){case t.MODE_NUMBER:return 12;case t.MODE_ALPHA_NUM:return 11;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 10;default:throw`mode:`+e}else if(n<41)switch(e){case t.MODE_NUMBER:return 14;case t.MODE_ALPHA_NUM:return 13;case t.MODE_8BIT_BYTE:return 16;case t.MODE_KANJI:return 12;default:throw`mode:`+e}else throw`type:`+n},c.getLostPoint=function(e){for(var t=e.getModuleCount(),n=0,r=0;r<t;r+=1)for(var i=0;i<t;i+=1){for(var a=0,o=e.isDark(r,i),s=-1;s<=1;s+=1)if(!(r+s<0||t<=r+s))for(var c=-1;c<=1;c+=1)i+c<0||t<=i+c||s==0&&c==0||o==e.isDark(r+s,i+c)&&(a+=1);a>5&&(n+=3+a-5)}for(var r=0;r<t-1;r+=1)for(var i=0;i<t-1;i+=1){var l=0;e.isDark(r,i)&&(l+=1),e.isDark(r+1,i)&&(l+=1),e.isDark(r,i+1)&&(l+=1),e.isDark(r+1,i+1)&&(l+=1),(l==0||l==4)&&(n+=3)}for(var r=0;r<t;r+=1)for(var i=0;i<t-6;i+=1)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(n+=40);for(var i=0;i<t;i+=1)for(var r=0;r<t-6;r+=1)e.isDark(r,i)&&!e.isDark(r+1,i)&&e.isDark(r+2,i)&&e.isDark(r+3,i)&&e.isDark(r+4,i)&&!e.isDark(r+5,i)&&e.isDark(r+6,i)&&(n+=40);for(var u=0,i=0;i<t;i+=1)for(var r=0;r<t;r+=1)e.isDark(r,i)&&(u+=1);var d=Math.abs(100*u/t/t-50)/5;return n+=d*10,n},c}(),a=function(){for(var e=Array(256),t=Array(256),n=0;n<8;n+=1)e[n]=1<<n;for(var n=8;n<256;n+=1)e[n]=e[n-4]^e[n-5]^e[n-6]^e[n-8];for(var n=0;n<255;n+=1)t[e[n]]=n;var r={};return r.glog=function(e){if(e<1)throw`glog(`+e+`)`;return t[e]},r.gexp=function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return e[t]},r}();function o(e,t){if(e.length===void 0)throw e.length+`/`+t;var n=function(){for(var n=0;n<e.length&&e[n]==0;)n+=1;for(var r=Array(e.length-n+t),i=0;i<e.length-n;i+=1)r[i]=e[i+n];return r}(),r={};return r.getAt=function(e){return n[e]},r.getLength=function(){return n.length},r.multiply=function(e){for(var t=Array(r.getLength()+e.getLength()-1),n=0;n<r.getLength();n+=1)for(var i=0;i<e.getLength();i+=1)t[n+i]^=a.gexp(a.glog(r.getAt(n))+a.glog(e.getAt(i)));return o(t,0)},r.mod=function(e){if(r.getLength()-e.getLength()<0)return r;for(var t=a.glog(r.getAt(0))-a.glog(e.getAt(0)),n=Array(r.getLength()),i=0;i<r.getLength();i+=1)n[i]=r.getAt(i);for(var i=0;i<e.getLength();i+=1)n[i]^=a.gexp(a.glog(e.getAt(i))+t);return o(n,0).mod(e)},r}var s=function(){var e=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],t=function(e,t){var n={};return n.totalCount=e,n.dataCount=t,n},r={},i=function(t,r){switch(r){case n.L:return e[(t-1)*4+0];case n.M:return e[(t-1)*4+1];case n.Q:return e[(t-1)*4+2];case n.H:return e[(t-1)*4+3];default:return}};return r.getRSBlocks=function(e,n){var r=i(e,n);if(r===void 0)throw`bad rs block @ typeNumber:`+e+`/errorCorrectionLevel:`+n;for(var a=r.length/3,o=[],s=0;s<a;s+=1)for(var c=r[s*3+0],l=r[s*3+1],u=r[s*3+2],d=0;d<c;d+=1)o.push(t(l,u));return o},r}(),c=function(){var e=[],t=0,n={};return n.getBuffer=function(){return e},n.getAt=function(t){return(e[Math.floor(t/8)]>>>7-t%8&1)==1},n.put=function(e,t){for(var r=0;r<t;r+=1)n.putBit((e>>>t-r-1&1)==1)},n.getLengthInBits=function(){return t},n.putBit=function(n){var r=Math.floor(t/8);e.length<=r&&e.push(0),n&&(e[r]|=128>>>t%8),t+=1},n},l=function(e){var n=t.MODE_NUMBER,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+2<t.length;)e.put(a(t.substring(n,n+3)),10),n+=3;n<t.length&&(t.length-n==1?e.put(a(t.substring(n,n+1)),4):t.length-n==2&&e.put(a(t.substring(n,n+2)),7))};var a=function(e){for(var t=0,n=0;n<e.length;n+=1)t=t*10+o(e.charAt(n));return t},o=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;throw`illegal char :`+e};return i},u=function(e){var n=t.MODE_ALPHA_NUM,r=e,i={};i.getMode=function(){return n},i.getLength=function(e){return r.length},i.write=function(e){for(var t=r,n=0;n+1<t.length;)e.put(a(t.charAt(n))*45+a(t.charAt(n+1)),11),n+=2;n<t.length&&e.put(a(t.charAt(n)),6)};var a=function(e){if(`0`<=e&&e<=`9`)return e.charCodeAt(0)-48;if(`A`<=e&&e<=`Z`)return e.charCodeAt(0)-65+10;switch(e){case` `:return 36;case`$`:return 37;case`%`:return 38;case`*`:return 39;case`+`:return 40;case`-`:return 41;case`.`:return 42;case`/`:return 43;case`:`:return 44;default:throw`illegal char :`+e}};return i},d=function(n){var r=t.MODE_8BIT_BYTE,i=e.stringToBytes(n),a={};return a.getMode=function(){return r},a.getLength=function(e){return i.length},a.write=function(e){for(var t=0;t<i.length;t+=1)e.put(i[t],8)},a},f=function(n){var r=t.MODE_KANJI,i=e.stringToBytesFuncs.SJIS;if(!i)throw`sjis not supported.`;(function(e,t){var n=i(e);if(n.length!=2||(n[0]<<8|n[1])!=t)throw`sjis not supported.`})(`友`,38726);var a=i(n),o={};return o.getMode=function(){return r},o.getLength=function(e){return~~(a.length/2)},o.write=function(e){for(var t=a,n=0;n+1<t.length;){var r=(255&t[n])<<8|255&t[n+1];if(33088<=r&&r<=40956)r-=33088;else if(57408<=r&&r<=60351)r-=49472;else throw`illegal char at `+(n+1)+`/`+r;r=(r>>>8&255)*192+(r&255),e.put(r,13),n+=2}if(n<t.length)throw`illegal char at `+(n+1)},o},p=function(){var e=[],t={};return t.writeByte=function(t){e.push(t&255)},t.writeShort=function(e){t.writeByte(e),t.writeByte(e>>>8)},t.writeBytes=function(e,n,r){n=n||0,r=r||e.length;for(var i=0;i<r;i+=1)t.writeByte(e[i+n])},t.writeString=function(e){for(var n=0;n<e.length;n+=1)t.writeByte(e.charCodeAt(n))},t.toByteArray=function(){return e},t.toString=function(){var t=``;t+=`[`;for(var n=0;n<e.length;n+=1)n>0&&(t+=`,`),t+=e[n];return t+=`]`,t},t},m=function(){var e=0,t=0,n=0,r=``,i={},a=function(e){r+=String.fromCharCode(o(e&63))},o=function(e){if(!(e<0)){if(e<26)return 65+e;if(e<52)return 97+(e-26);if(e<62)return 48+(e-52);if(e==62)return 43;if(e==63)return 47}throw`n:`+e};return i.writeByte=function(r){for(e=e<<8|r&255,t+=8,n+=1;t>=6;)a(e>>>t-6),t-=6},i.flush=function(){if(t>0&&(a(e<<6-t),e=0,t=0),n%3!=0)for(var i=3-n%3,o=0;o<i;o+=1)r+=`=`},i.toString=function(){return r},i},h=function(e){var t=e,n=0,r=0,i=0,a={};a.read=function(){for(;i<8;){if(n>=t.length){if(i==0)return-1;throw`unexpected end of file./`+i}var e=t.charAt(n);if(n+=1,e==`=`)return i=0,-1;e.match(/^\s$/)||(r=r<<6|o(e.charCodeAt(0)),i+=6)}var a=r>>>i-8&255;return i-=8,a};var o=function(e){if(65<=e&&e<=90)return e-65;if(97<=e&&e<=122)return e-97+26;if(48<=e&&e<=57)return e-48+52;if(e==43)return 62;if(e==47)return 63;throw`c:`+e};return a},g=function(e,t){var n=e,r=t,i=Array(e*t),a={};a.setPixel=function(e,t,r){i[t*n+e]=r},a.write=function(e){e.writeString(`GIF87a`),e.writeShort(n),e.writeShort(r),e.writeByte(128),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(255),e.writeByte(255),e.writeByte(255),e.writeString(`,`),e.writeShort(0),e.writeShort(0),e.writeShort(n),e.writeShort(r),e.writeByte(0);var t=2,i=s(t);e.writeByte(t);for(var a=0;i.length-a>255;)e.writeByte(255),e.writeBytes(i,a,255),a+=255;e.writeByte(i.length-a),e.writeBytes(i,a,i.length-a),e.writeByte(0),e.writeString(`;`)};var o=function(e){var t=e,n=0,r=0,i={};return i.write=function(e,i){if(e>>>i)throw`length over`;for(;n+i>=8;)t.writeByte(255&(e<<n|r)),i-=8-n,e>>>=8-n,r=0,n=0;r=e<<n|r,n+=i},i.flush=function(){n>0&&t.writeByte(r)},i},s=function(e){for(var t=1<<e,n=(1<<e)+1,r=e+1,a=c(),s=0;s<t;s+=1)a.add(String.fromCharCode(s));a.add(String.fromCharCode(t)),a.add(String.fromCharCode(n));var l=p(),u=o(l);u.write(t,r);var d=0,f=String.fromCharCode(i[d]);for(d+=1;d<i.length;){var m=String.fromCharCode(i[d]);d+=1,a.contains(f+m)?f+=m:(u.write(a.indexOf(f),r),a.size()<4095&&(a.size()==1<<r&&(r+=1),a.add(f+m)),f=m)}return u.write(a.indexOf(f),r),u.write(n,r),u.flush(),l.toByteArray()},c=function(){var e={},t=0,n={};return n.add=function(r){if(n.contains(r))throw`dup key:`+r;e[r]=t,t+=1},n.size=function(){return t},n.indexOf=function(t){return e[t]},n.contains=function(t){return e[t]!==void 0},n};return a},_=function(e,t,n){for(var r=g(e,t),i=0;i<t;i+=1)for(var a=0;a<e;a+=1)r.setPixel(a,i,n(a,i));var o=p();r.write(o);for(var s=m(),c=o.toByteArray(),l=0;l<c.length;l+=1)s.writeByte(c[l]);return s.flush(),`data:image/gif;base64,`+s};return e}();(function(){n.stringToBytesFuncs[`UTF-8`]=function(e){function t(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t.push(r):r<2048?t.push(192|r>>6,128|r&63):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|r&63):(n++,r=65536+((r&1023)<<10|e.charCodeAt(n)&1023),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|r&63))}return t}return t(e)}})(),(function(n){typeof define==`function`&&define.amd?define([],n):typeof e==`object`&&(t.exports=n())})(function(){return n})}))(),1);function Ye(e){let t=(0,Je.default)(0,`M`);return t.addData(e),t.make(),t.createSvgTag({cellSize:6,margin:4,scalable:!0})}let Xe={front_capture:{title:`Front of your document`,body:`Place the front of your ID flat and fully inside the frame. We’ll capture it automatically.`},back_capture:{title:`Back of your document`,body:`Now turn your ID over and show the back, fully inside the frame.`},selfie_capture:{title:`Take a selfie`,body:`Look straight at the camera in good light and hold still — we’ll capture it automatically.`},active_liveness:{title:`Quick liveness check`,body:`Follow the on-screen prompts (such as turn your head, blink or smile). This confirms you’re really here.`}};function Ze(e,t){let n=e.logo_url;if(!n||!t||!/^https?:\/\//i.test(t))return e;try{let r=new URL(t),i=new URL(n,r);return i.origin===r.origin||/[?&]x-(amz|goog)-signature=/i.test(i.search)?e:{...e,logo_url:`${r.origin}${i.pathname}${i.search}${i.hash}`}}catch{return e}}var Qe=class{constructor(e){this.config=e,h(this,`client`,void 0),h(this,`view`,void 0),h(this,`win`,void 0),h(this,`nav`,void 0),h(this,`postToParent`,void 0),h(this,`scheduler`,void 0),h(this,`transientMs`,void 0),h(this,`pollMs`,void 0),h(this,`maxPolls`,void 0),h(this,`maxHandoffPolls`,void 0),h(this,`handoffConfig`,{enabled:!1,allow_desktop:!0,url:``}),h(this,`handoffReady`,!1),h(this,`handoffActive`,!1),h(this,`sessionId`,``),h(this,`realtimeConfig`,null),h(this,`rtClient`,null),h(this,`rtResolved`,!1),h(this,`lastStatus`,null),h(this,`listeners`,new Map),h(this,`stopWatch`,void 0),h(this,`step`,`welcome`),h(this,`documentType`,null),h(this,`country`,null),h(this,`selfie`,null),h(this,`livenessMode`,`passive`),h(this,`captureModel`,`passive`),h(this,`livenessChallenges`,[]),h(this,`addressData`,null),h(this,`addressCoords`,null),h(this,`workflow`,null),h(this,`result`,null),h(this,`terminalOnLoad`,!1),h(this,`instructionAcked`,!1),h(this,`pendingError`,null),h(this,`settled`,!1);let t=e.doc??globalThis.document,n=e.win??globalThis.window;if(!t||!n)throw Error(`The Arkyc widget must run in a browser environment.`);this.win=n,this.nav=e.nav??globalThis.navigator,this.client=new b({token:e.token,baseUrl:e.baseUrl,fetch:e.fetch});let r=new R(e.branding);this.view=new Ke(t,r,this.handlers(),e.nav??globalThis.navigator,e.faceAnalyzer,e.faceTuning,e.documentAnalyzer,e.documentTuning),this.postToParent=e.postToParent??(!!n.parent&&n.parent!==n),this.scheduler=e.scheduler??((e,t)=>setTimeout(e,t)),this.transientMs=e.transientMs??700,this.pollMs=e.pollMs??1500,this.maxPolls=e.maxPolls??40,this.maxHandoffPolls=e.maxHandoffPolls??600}get element(){return this.view.element}start(){this.view.renderLoading(),this.run(()=>this.bootstrap())}destroy(){this.view.destroy()}close(){this.finishClose()}on(e,t){let n=this.listeners.get(e)??new Set;return n.add(t),this.listeners.set(e,n),()=>n.delete(t)}hasListener(e){if(this.config.onEvent)return!0;let t=this.listeners.get(e);return!!t&&t.size>0}dispatch(e,t){this.emit(e,t),this.post(`arkyc:event`,{name:e,data:t})}emit(e,t){if(!this.hasListener(e))return;try{this.config.onEvent?.({name:e,data:t})}catch{}let n=this.listeners.get(e);if(n)for(let e of[...n])try{e(t)}catch{}}observe(e){if(e===this.lastStatus)return;let t=this.lastStatus;this.lastStatus=e,this.dispatch(L.sessionTransition,{session_id:this.sessionId,status:e,previous_status:t})}async resolveRealtime(){if(this.rtResolved)return this.rtClient;this.rtResolved=!0;let e=this.realtimeConfig;if(!e||e.transport===`polling`||e.transport===`memory`)return null;let t=this.config.realtimeFactory??Te,n=this.client.base;try{this.rtClient=await t(e,{authEndpoint:`${n}/realtime/auth`,token:await this.client.authToken()})}catch{this.rtClient=null}return this.rtClient}handlers(){return{onClose:()=>this.finishClose(),onStart:()=>void this.run(()=>this.enter(this.next())),onDocumentSelected:(e,t)=>{this.documentType=e,this.country=t||null,this.run(()=>this.enter(`front_capture`))},onImage:e=>void this.run(()=>this.onImage(e)),onActiveLiveness:(e,t,n)=>void this.run(async()=>{await this.client.submitLiveness({selfie:n,video:e,mode:`active`,challenges:t,signals:this.config.signals}),await this.enter(this.next())}),onAddress:e=>void this.run(()=>this.onAddress(e)),onShareLocation:()=>this.shareLocation(),onAcknowledge:()=>this.finishResult(),onUsePhone:()=>void this.run(()=>this.startHandoff()),onContinueHere:()=>{this.handoffActive=!1,this.stopWatch?.(),this.step=`welcome`,this.render()}}}async bootstrap(){if(this.settled)return;let e=await this.client.getSession();if(!this.settled){if(this.sessionId=e.id,this.realtimeConfig=e.realtime??null,this.workflow=e.workflow??null,this.config.branding==null&&e.branding&&this.view.applyBranding(Ze(e.branding,this.config.baseUrl)),this.observe(e.status),B.isTerminal(e.status))return this.showTerminal(e.status);this.resolveLiveness(e),e.handoff&&(this.handoffConfig=e.handoff),this.config.handoff!==!1&&qe(this.nav)&&this.handoffConfig.enabled&&this.handoffTarget()?(this.handoffReady=!0,await this.startHandoff()):(this.step=`welcome`,this.render())}}handoffTarget(){return(this.config.handoffUrl??this.handoffConfig.url??``).trim()}async startHandoff(){let e=this.handoffTarget();if(!e)return;this.handoffActive=!0;let t=this.buildHandoffUrl(e,await this.client.createHandoffToken());this.view.renderHandoff(Ye(t),this.handoffConfig.allow_desktop),await this.pollHandoff()}buildHandoffUrl(e,t){let n=this.win.location?.origin??globalThis.location?.origin??``;return tt(e,t,this.client.base,n)}async pollHandoff(){let e=await this.resolveRealtime();if(e){let t=await this.pushWatch(e,this.maxHandoffPolls,()=>this.handoffActive&&!this.settled);return t?(this.handoffActive=!1,this.showResult(t)):void 0}let t=0;for(let e=0;e<this.maxHandoffPolls&&this.handoffActive&&!this.settled;e++){if(await this.delay(this.pollMs),!this.handoffActive||this.settled)return;try{let e=await this.client.getSession();if(t=0,this.observe(e.status),B.isTerminal(e.status))return this.handoffActive=!1,this.showResult(e.status)}catch(e){if(e instanceof g&&e.status===401)return this.handoffActive=!1,this.showResult(`expired`);if(++t>=5)return}}}pushWatch(e,t,n){return new Promise(r=>{let i=!1,a=e=>{i||(i=!0,this.stopWatch=void 0,s(),r(e))},o=this.realtimeConfig.channel,s=e.subscribe(o,(e,t)=>{if(e!==L.sessionTransition)return;let n=t.status;this.observe(n),B.isTerminal(n)&&a(n)});this.stopWatch=()=>a(null),this.client.getSession().then(e=>{this.observe(e.status),B.isTerminal(e.status)&&a(e.status)}).catch(e=>{e instanceof g&&e.status===401&&a(`expired`)});let c=async e=>{if(!i){if(!n()||e>=t)return a(null);await this.delay(this.pollMs),c(e+1)}};c(0)})}resolveLiveness(e){this.livenessChallenges=e.liveness_challenges??[];let t=e.capture_model??`passive`;this.captureModel=t;let n=t===`active`||t===`both`;this.livenessMode=n&&(t===`active`||this.view.cameraSupported)?`active`:`passive`}async onImage(e){let t=this.config.signals;switch(this.step){case`front_capture`:return await this.client.submitDocumentFront({image:e,country:this.country,documentType:this.documentType,signals:t}),this.enter(this.next());case`back_capture`:return await this.client.submitDocumentBack({image:e,country:this.country,documentType:this.documentType}),this.enter(`ocr_processing`);case`selfie_capture`:return this.selfie=e,this.enter(`passive_liveness`)}}async enter(e){if(this.settled)return;this.step=e;let t=Xe[e];if(t&&!this.instructionAcked){this.view.renderInstruction(e,t.title,t.body,t.cta??`Continue`,()=>{this.instructionAcked=!0,this.run(()=>this.enter(e))});return}switch(this.instructionAcked=!1,this.render(),e){case`ocr_processing`:return await this.delay(this.transientMs),this.enter(this.next());case`address_processing`:return await this.submitAddress(),this.enter(this.next());case`passive_liveness`:return await this.client.submitLiveness({selfie:this.selfie,signals:this.config.signals}),this.enter(this.next());case`face_match`:return await this.client.complete({signals:this.config.signals}),this.enter(this.next());case`processing`:return this.poll()}}async poll(){let e=await this.resolveRealtime();if(e){let t=await this.pushWatch(e,this.maxPolls,()=>!this.settled);return this.showResult(t??`requires_review`)}for(let e=0;e<this.maxPolls&&!this.settled;e++){let e=await this.client.getSession();if(this.observe(e.status),B.isTerminal(e.status))return this.showResult(e.status);await this.delay(this.pollMs)}this.showResult(`requires_review`)}showResult(e){this.result={status:e,decision:B.statusToDecision(e)},this.step=`result`,this.render()}showTerminal(e){this.result={status:e,decision:B.statusToDecision(e)},this.step=`result`,this.terminalOnLoad=!0,this.render(),this.result.decision!=null&&(this.dispatch(`complete`,this.result),this.config.onComplete?.(this.result))}render(){this.view.render({step:this.step,documentType:this.documentType,decision:this.result?.decision,status:this.result?.status,terminalNotice:this.terminalOnLoad,allowSkip:!!this.config.signals,livenessChallenges:this.livenessChallenges,requireLiveCamera:this.captureModel===`active`,strictCapture:this.livenessMode===`active`,handoffAvailable:this.handoffReady,addressMethods:ye(this.workflow)?.methods??[]})}async onAddress(e){return this.addressData=e,e.useLocation?this.addressCoords||(this.addressCoords=await this.geolocate()):this.addressCoords=null,this.enter(`address_processing`)}async shareLocation(){return this.addressCoords=await this.geolocate(),!!this.addressCoords}async submitAddress(){let e=this.addressData;e&&await this.client.submitAddress({line1:e.line1,line2:e.line2,city:e.city,region:e.region,postalCode:e.postalCode,country:e.country,poa:e.poa,latitude:this.addressCoords?.latitude??null,longitude:this.addressCoords?.longitude??null,signals:this.config.signals})}geolocate(){let e=this.nav?.geolocation;return e?new Promise(t=>{e.getCurrentPosition(e=>t({latitude:e.coords.latitude,longitude:e.coords.longitude}),()=>t(null),{enableHighAccuracy:!1,timeout:1e4,maximumAge:6e4})}):Promise.resolve(null)}next(){return B.nextStep(this.step,{documentType:this.documentType,livenessMode:this.livenessMode,workflow:this.workflow})}delay(e){return new Promise(t=>this.scheduler(t,e))}async run(e){try{await e()}catch(e){this.fail(e)}}fail(e){if(this.settled||this.pendingError)return;let t=e instanceof Error?e:Error(String(e));this.pendingError=t,this.step=`result`,this.view.render({step:`result`,documentType:this.documentType,errorMessage:t.message}),this.dispatch(`error`,this.errorData(t)),this.config.onError?.(t)}errorData(e){return e instanceof g?{message:e.message,status:e.status,error:e.error}:{message:e.message}}finishResult(){this.settled||(this.settled=!0,this.teardownRealtime(),this.pendingError?this.post(`arkyc:error`,{error:$e(this.pendingError)}):this.result&&(this.post(`arkyc:complete`,{payload:this.result}),this.dispatch(`complete`,this.result),this.config.onComplete?.(this.result)),this.destroy(),this.config.onSettle?.())}finishClose(){this.settled||(this.settled=!0,this.teardownRealtime(),this.post(`arkyc:close`,{}),this.dispatch(`close`,void 0),this.config.onClose?.(),this.destroy(),this.config.onSettle?.())}teardownRealtime(){this.stopWatch?.(),this.rtClient?.disconnect(),this.rtClient=null}post(e,t){if(this.postToParent)try{this.win.parent?.postMessage({type:e,...t},`*`)}catch{}}};function $e(e){return{message:e.message,name:e.name}}function et(e){try{return new URL(e).origin}catch{return``}}let tt=(e,t,n,r)=>{let i=`${e}${e.includes(`?`)?`&`:`?`}token=${encodeURIComponent(t)}`,a=et(n);return a&&a!==r&&(i+=`&baseUrl=${encodeURIComponent(n)}`),i},nt=(e,t)=>{let n=typeof e==`string`?t.querySelector(e):e;if(!n)throw Error(`ArkycWidget.mount: container "${String(e)}" not found.`);return n},rt=(e,t)=>{let n=t.defaultView?.getComputedStyle?.(e),r=n?.position??e.style.position;(!r||r===`static`)&&(e.style.position=`relative`);let i=n?.zIndex??e.style.zIndex;(!i||i===`auto`)&&(e.style.zIndex=`1`),e.style.isolation||(e.style.isolation=`isolate`)},it=(e,t)=>{if(!e.token)throw Error("ArkycWidget requires a client `token`.");return new Qe({token:e.token,baseUrl:e.baseUrl,handoff:e.handoff,handoffUrl:e.handoffUrl,branding:e.branding,signals:e.signals,onComplete:e.onComplete,onError:e.onError,onClose:e.onClose,onEvent:e.onEvent,onSettle:t,fetch:e.fetch,doc:e.doc,win:e.win,nav:e.nav,faceAnalyzer:e.faceAnalyzer,faceTuning:e.faceTuning,documentAnalyzer:e.documentAnalyzer,documentTuning:e.documentTuning})};var $=class{constructor(e){this.controller=e}close(){return this.controller.close()}on(e,t){return this.controller.on(e,t)}},at=class e{static open(e){let t=e.doc??globalThis.document,n=t.createElement(`div`);n.setAttribute(`data-arkyc-widget`,``),n.style.cssText=e.fullscreen?`position:fixed;inset:0;z-index:2147483647;background:rgba(0,0,0,0.55);display:flex;align-items:center;justify-content:center;padding:0;`:`position:fixed;inset:0;z-index:2147483647;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;padding:16px;`;let r=it(e,()=>n.remove());return r.element.classList.add(`arkyc-overlay`),e.fullscreen&&r.element.classList.add(`arkyc-fullscreen`),n.appendChild(r.element),(t.body??t.documentElement).appendChild(n),r.start(),new $(r)}static mount(e){let t=e.doc??globalThis.document,n=nt(e.container,t),r=it(e,()=>r.element.remove());return rt(n,t),r.element.classList.add(`arkyc-inline`),n.appendChild(r.element),r.start(),new $(r)}static hosted(t={}){let n=t.win??globalThis.window,r=new URLSearchParams(n.location.search),i=t.token??r.get(`token`)??``,a=t.baseUrl??r.get(`baseUrl`)??void 0;return e.open({...t,token:i,baseUrl:a})}};return e.ArkycClient=b,e.ArkycWidget=at,e.Camera=z,e.DEFAULT_DOCUMENT_TUNING=J,e.DEFAULT_TUNING=G,e.Flow=B,e.PACKAGE_NAME=`@arkyc/widget`,e.Theme=R,e.VERSION=`0.1.0`,e.WidgetApiError=g,e.WidgetHandler=$,e.analyzeDocumentGray=Ne,e.createDefaultDocumentAnalyzer=Ie,e.createDefaultFaceAnalyzer=W,e.createWidgetRealtimeClient=Te,e.documentGuidance=X,e.isDocumentReady=Pe,e.isSelfieReady=q,e.makeChallengeDetector=K,e})({});
736
736
  var ArkycWidget=Arkyc.ArkycWidget;var ArkycClient=Arkyc.ArkycClient;
737
737
  //# sourceMappingURL=arkyc-widget.iife.global.js.map