@checktiv/sdk-web 1.10.0 → 1.12.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.
- package/README.md +16 -1
- package/dist/agents/AGENTS.md +8 -0
- package/dist/agents/manifest.json +12 -0
- package/dist/capture-ui.d.ts +4 -4
- package/dist/capture-ui.js +6 -5
- package/dist/capture.d.ts +3 -3
- package/dist/capture.js +3 -2
- package/dist/challenge.js +2 -2
- package/dist/chunk-3KEVZCCZ.js +3 -0
- package/dist/chunk-CAI3JWWU.js +12 -0
- package/dist/chunk-EOTGVXW6.js +7 -0
- package/dist/{chunk-HV2QKVJX.js → chunk-FQSJUWRP.js} +1 -1
- package/dist/{chunk-YRM5SYRT.js → chunk-HWABVMID.js} +3 -3
- package/dist/chunk-MLQ2HMTS.js +3 -0
- package/dist/chunk-O3JECGW2.js +3 -0
- package/dist/chunk-PB2THQ3P.js +8 -0
- package/dist/chunk-TKK5CTVG.js +59 -0
- package/dist/chunk-VMWTID63.js +3 -0
- package/dist/{chunk-LRKS6JEP.js → chunk-YE2LWN74.js} +1 -1
- package/dist/collect-user-info.d.ts +3 -3
- package/dist/collect-user-info.js +2 -2
- package/dist/{controller-CO5r6vXD.d.ts → controller-Dh-rSrot.d.ts} +2 -1
- package/dist/{copy-D6Sd0BIe.d.ts → copy-Bsb1n1Wv.d.ts} +1 -1
- package/dist/credit-history.d.ts +4 -0
- package/dist/credit-history.js +12 -0
- package/dist/cross-device.js +2 -2
- package/dist/custom-form.css +1 -1
- package/dist/custom-form.d.ts +3 -3
- package/dist/custom-form.js +4 -4
- package/dist/esign/ceremony-runtime.js +1 -1
- package/dist/esign.d.ts +15 -3
- package/dist/esign.js +10 -5
- package/dist/fraud.d.ts +3 -3
- package/dist/fraud.js +2 -2
- package/dist/idv/cross-device.d.ts +7 -7
- package/dist/idv.d.ts +3 -3
- package/dist/idv.js +9 -9
- package/dist/{api-EY_fOZm-.d.ts → index-CGH7LlPH.d.ts} +266 -108
- package/dist/{index-iyKwn5_z.d.ts → index-CZt19Km4.d.ts} +5 -5
- package/dist/index.d.ts +6 -6
- package/dist/index.js +5 -4
- package/dist/{machine-DXxarDcC.d.ts → machine-EePe2ERe.d.ts} +13 -1
- package/dist/react.d.ts +4 -4
- package/dist/react.js +8 -7
- package/dist/workspace.d.ts +3 -3
- package/dist/workspace.js +1 -1
- package/package.json +29 -10
- package/dist/chunk-2SPZA3CQ.js +0 -3
- package/dist/chunk-GFHNOZVO.js +0 -3
- package/dist/chunk-NHNGQ5BB.js +0 -66
- package/dist/chunk-SU6RE6UR.js +0 -12
- package/dist/chunk-T6NMRTFB.js +0 -7
- package/dist/chunk-XOGHMNBX.js +0 -3
- package/dist/chunk-YK4WW4LX.js +0 -7
package/dist/chunk-SU6RE6UR.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { R, k } from './chunk-XOGHMNBX.js';
|
|
2
|
-
import { parsePublishableKey, createWorkingTokenSource, createWorkingTokenManager } from './chunk-WALPQ6TH.js';
|
|
3
|
-
import { getModule } from './chunk-GFHNOZVO.js';
|
|
4
|
-
import { resolveSession, warnWrongTokenPlane } from './chunk-YK4WW4LX.js';
|
|
5
|
-
import { assertNever } from './chunk-UBQTPS5J.js';
|
|
6
|
-
import { createTokenManager, createChecktivError, isChecktivError } from './chunk-C7GRMEYT.js';
|
|
7
|
-
import { resolveApiBaseOrigin, sdkPublicSettings, shortCodeRefreshPath, PUBLISHABLE_KEY_HEADER, SESSIONS_ME_REFRESH_LINK_PATH } from './chunk-HFQJYEGZ.js';
|
|
8
|
-
import { getServiceOrigin } from './chunk-QFA3K5ZV.js';
|
|
9
|
-
|
|
10
|
-
var HOST_TAG="checktiv-root";var MOUNTED_FLAG="__checktivMounted";var LEGACY_HOST_ATTR="data-autohost-kyc-host";var HOST_ATTR="data-checktiv-host";var shadowCache=new WeakMap;function mountShadowHost(target){const existing=findExistingHost(target);if(existing){const cached=shadowCache.get(existing);if(cached)return cached}const host=document.createElement("div");host.setAttribute(HOST_ATTR,HOST_TAG);host.setAttribute(LEGACY_HOST_ATTR,HOST_TAG);host[MOUNTED_FLAG]=true;target.appendChild(host);const shadow=host.attachShadow({mode:"closed"});shadowCache.set(host,shadow);return shadow}function findExistingHost(target){for(const child of Array.from(target.children)){if(!(child instanceof HTMLElement))continue;const candidate=child;if(candidate[MOUNTED_FLAG]===true)return candidate}return null}function moduleErrorEvent(name,error){switch(name){case "idv":return {type:"checktiv.idv.error",error};case "fraud":return {type:"checktiv.fraud.error",error};case "custom_form":return {type:"checktiv.custom_form.error",error};case "esign":return {type:"checktiv.esign.error",error}}}function missingModuleMessage(name){return `This session requires the '${name}' module. Import '@checktiv/sdk-web/${name}' in your app.`}function missingModuleError(name){const base=createChecktivError("sdk_load_failed");return moduleErrorEvent(name,{...base,message:missingModuleMessage(name)})}function consentGateRequiredError(){const base=createChecktivError("sdk_load_failed");return moduleErrorEvent("fraud",{...base,message:"This session includes the 'fraud' module, which needs a consent gate. Pass onConsent to mountProvisioned() to enable it."})}function customFormConfigRequiredError(){const base=createChecktivError("sdk_load_failed");return moduleErrorEvent("custom_form",{...base,message:"This session includes the 'custom_form' module, which needs its form config. Pass customFormConfig to mountProvisioned() to enable it."})}function unmappedStepTypeError(stepType){const base=createChecktivError("sdk_load_failed");return moduleErrorEvent("idv",{...base,message:`This session's current step ('${stepType}') has no matching visual module in this SDK build. Upgrade '@checktiv/sdk-web' to a version that renders this step.`})}var MODULE_IS_VISUAL={idv:true,fraud:false,custom_form:true,esign:true};var STEP_TYPE_TO_VISUAL_MODULE={id_verification:"idv",custom_form:"custom_form",esign:"esign"};var stepTypeToVisualModuleView=STEP_TYPE_TO_VISUAL_MODULE;function resolveCurrentStepVisualModule(stepType){return stepTypeToVisualModuleView[stepType]}function defaultLoadModule(name){if(name==="idv"){const factory2=getModule("idv");if(factory2===void 0)return Promise.resolve(null);return Promise.resolve({mount:(ctx,opts)=>factory2(ctx,{target:opts.target,onEvent:opts.onEvent,copy:opts.copy,layout:opts.layout,maxWidth:opts.maxWidth,onBeforeSubmit:opts.onBeforeSubmit,onBehaviorSegment:opts.onBehaviorSegment,synthetic:opts.synthetic,crossDeviceCopy:opts.crossDeviceCopy,onOpenCrossDevice:opts.onOpenCrossDevice})})}if(name==="custom_form"){const factory2=getModule("custom_form");if(factory2===void 0)return Promise.resolve(null);return Promise.resolve({mount:(ctx,opts)=>{if(opts.customFormConfig===void 0){opts.onEvent?.(customFormConfigRequiredError());return {destroy:()=>void 0}}return factory2(ctx,{target:opts.target,config:opts.customFormConfig,copy:opts.customFormCopy,onEvent:opts.onEvent,session:opts.session})}})}if(name==="esign"){const factory2=getModule("esign");if(factory2===void 0)return Promise.resolve(null);return Promise.resolve({mount:(ctx,opts)=>factory2(ctx,{target:opts.target,copy:opts.esignCopy,onEvent:opts.onEvent,session:opts.session,onRequestHelp:opts.onRequestHelp})})}const factory=getModule("fraud");if(factory===void 0)return Promise.resolve(null);return Promise.resolve({mount:(ctx,opts)=>{const onConsent=opts.onConsent;if(onConsent===void 0){opts.onEvent?.(consentGateRequiredError());return {destroy:()=>void 0}}return factory(ctx,{onConsent,onEvent:opts.onEvent})}})}function moduleErrorFor(name,code){return moduleErrorEvent(name,createChecktivError(code))}function createMountProvisioned(ctx,opts,deps={}){const emit=e=>opts.onEvent?.(e);const fetchImpl=opts.fetchImpl??fetch;const resolveSession2=deps.resolveSession??(()=>resolveSession(ctx,fetchImpl));const loadModule=deps.loadModule??defaultLoadModule;const handles=[];let destroyed=false;let idvOpenCrossDevice=null;void(async()=>{try{await composeModules();}catch(err){if(destroyed)return;console.warn("[Checktiv] mountProvisioned composition failed.",err);emit(moduleErrorFor("idv","sdk_load_failed"));}})();async function composeModules(){const resolution=await resolveSession2();if(destroyed)return;let session;switch(resolution.kind){case "ok":session=resolution.session;break;case "wrong_token":warnWrongTokenPlane();emit(moduleErrorFor("idv","wrong_token_type"));return;case "unresolved":emit(moduleErrorFor("idv","session_expired"));return;case "parked":emit(moduleErrorFor("idv","session_parked"));return;case "nothing_to_render":emit({type:"checktiv.idv.processing",reason:"no_renderable_step"});return;default:return assertNever(resolution)}const currentStepVisualModule=resolveCurrentStepVisualModule(session.stepType);if(currentStepVisualModule===void 0&&session.modules.some(m=>MODULE_IS_VISUAL[m])){emit(unmappedStepTypeError(session.stepType));return}for(const name of session.modules){if(destroyed)return;if(MODULE_IS_VISUAL[name]&&name!==currentStepVisualModule){continue}if(name==="fraud"&&opts.onConsent===void 0){emit(consentGateRequiredError());continue}const mod=await loadModule(name);if(destroyed)return;if(mod===null){emit(missingModuleError(name));continue}let moduleTarget;let containerToRemove=null;if(MODULE_IS_VISUAL[name]){const resolvedParent=typeof opts.target==="string"?typeof document!=="undefined"?document.querySelector(opts.target):null:opts.target;if(resolvedParent!==null){const container=document.createElement("div");resolvedParent.appendChild(container);containerToRemove=container;moduleTarget=container;}else {moduleTarget=opts.target;}}else {moduleTarget=opts.target;}let innerHandle;try{innerHandle=mod.mount(ctx,{target:moduleTarget,onEvent:opts.onEvent,onConsent:opts.onConsent,copy:opts.copy,layout:opts.layout,maxWidth:opts.maxWidth,onBeforeSubmit:opts.onBeforeSubmit,onBehaviorSegment:opts.onBehaviorSegment,synthetic:opts.synthetic,crossDeviceCopy:opts.crossDeviceCopy,onOpenCrossDevice:opts.onOpenCrossDevice,customFormConfig:opts.customFormConfig,customFormCopy:opts.customFormCopy,esignCopy:opts.esignCopy,onRequestHelp:opts.onRequestHelp,session:{sessionId:session.sessionId,stepId:session.stepId}});}catch(err){containerToRemove?.remove();throw err}if(name==="idv"){idvOpenCrossDevice=innerHandle.openCrossDevice??null;}const capturedContainer=containerToRemove;const handle={destroy(){try{innerHandle.destroy();}finally{capturedContainer?.remove();}}};if(destroyed){handle.destroy();return}handles.push(handle);}}return {destroy(){destroyed=true;while(handles.length>0){const handle=handles.pop();handle?.destroy();}},openCrossDevice(){idvOpenCrossDevice?.();}}}function init(opts,deps={}){const scope="publishableKey"in opts?{...parsePublishableKey(opts.publishableKey),publishableKey:opts.publishableKey}:{region:opts.region,mode:opts.mode,publishableKey:void 0};let sessionId="";const apiBaseOrigin=resolveApiBaseOrigin(opts.apiBase,scope.region,scope.mode);const ctx={region:scope.region,mode:scope.mode,publishableKey:scope.publishableKey,apiBaseOrigin,theme:opts.theme,locale:opts.locale??"en",betas:opts.betas??[],...opts.selfiePromptMap!==void 0?{selfiePromptMap:opts.selfiePromptMap}:{},...opts.selfieChromeCopy!==void 0?{selfieChromeCopy:opts.selfieChromeCopy}:{},...opts.beginScanCopy!==void 0?{beginScanCopy:opts.beginScanCopy}:{},tokens:deps.tokens??createTokenManager(opts.getSessionToken,()=>sessionId),getSessionId:()=>sessionId,setSessionId:id=>{sessionId=id;}};function mount2(...args){if(args[0]==="idv"){const factory2=getModule("idv");if(factory2===void 0)return missingIdvHandle(args[1]);return factory2(ctx,args[1])}if(args[0]==="custom_form"){const factory2=getModule("custom_form");if(factory2===void 0)return missingCustomFormHandle(args[1]);return factory2(ctx,args[1])}if(args[0]==="esign"){const factory2=getModule("esign");if(factory2===void 0)return missingEsignHandle(args[1]);return factory2(ctx,args[1])}const factory=getModule("fraud");if(factory===void 0)return missingFraudHandle(args[1]);return factory(ctx,args[1])}return {mountProvisioned:provOpts=>createMountProvisioned(ctx,provOpts),mount:mount2}}function missingIdvHandle(opts){const base=createChecktivError("sdk_load_failed");opts.onEvent?.({type:"checktiv.idv.error",error:{...base,message:missingModuleMessage("idv")}});return {destroy:()=>void 0,unmount:()=>void 0}}function missingFraudHandle(opts){const base=createChecktivError("sdk_load_failed");opts.onEvent?.({type:"checktiv.fraud.error",error:{...base,message:missingModuleMessage("fraud")}});return {destroy:()=>void 0}}function missingEsignHandle(opts){const base=createChecktivError("sdk_load_failed");const error={type:"checktiv.esign.error",error:{...base,message:missingModuleMessage("esign")}};opts.onEvent?.(error);return {destroy:()=>void 0}}function missingCustomFormHandle(opts){const base=createChecktivError("sdk_load_failed");const error={type:"checktiv.custom_form.error",error:{...base,message:missingModuleMessage("custom_form")}};opts.onEvent?.(error);return {destroy:()=>void 0}}var RESUME_CLIENT_TOKEN_KEY_PREFIX="checktiv.rct.";function safeLocalStorage(){try{return globalThis.localStorage??null}catch{return null}}function createClientTokenStore(resumeKey,storage=safeLocalStorage()){const key=RESUME_CLIENT_TOKEN_KEY_PREFIX+resumeKey;return {read(){if(storage===null)return null;try{const raw=storage.getItem(key);return raw!==null&&raw.length>0?raw:null}catch{return null}},write(token){if(storage===null)return;try{storage.setItem(key,token);}catch{}},clear(){if(storage===null)return;try{storage.removeItem(key);}catch{}}}}var SESSIONS_CREATE_ERROR_CODES=["unauthorized","invalid_template","rate_limited","network","server_error"];function createSessionsCreateError(code,message){return {code,message}}function mapHttpStatusToSessionsCreateError(status){if(status===401||status===403)return "unauthorized";if(status===429)return "rate_limited";if(status===400||status===404||status===422)return "invalid_template";return "server_error"}function isSessionsCreateErrorCode(value){return SESSIONS_CREATE_ERROR_CODES.some(code=>code===value)}function isSessionsCreateError(value){if(typeof value!=="object"||value===null)return false;if(!("code"in value)||!("message"in value))return false;const{code,message}=value;return typeof code==="string"&&isSessionsCreateErrorCode(code)&&typeof message==="string"}async function requestSelfServiceResend(params){const fetchImpl=params.fetchImpl??fetch;const body=JSON.stringify({confirmEmail:params.confirmEmail});try{let res;if(params.mode==="short_code"){res=await fetchImpl(params.origin+shortCodeRefreshPath(params.shortCode),{method:"POST",headers:{"content-type":"application/json"},body});}return {requested:res.ok}}catch{return {requested:false}}}var version="1.10.0";var initialised=new WeakSet;function resolveVerifyOrigin(parsed){return getServiceOrigin(sdkPublicSettings.apps.verify.subdomain,"prod",parsed.region,sdkPublicSettings)}function buildPopupUrl(parsed,opts){const origin=resolveVerifyOrigin(parsed);if(opts.applicantLinkToken){return `${origin}/start?lt=${encodeURIComponent(opts.applicantLinkToken)}`}return `${origin}/`}function launchPopup(url){const w=460;const h=760;const left=Math.max(0,Math.floor((window.screen.width-w)/2));const top=Math.max(0,Math.floor((window.screen.height-h)/2));const features=`popup=yes,width=${w},height=${h},left=${left},top=${top}`;const popup=window.open(url,"checktiv",features);if(!popup){window.location.href=url;return null}return popup}var COMPLETE_EVENT_TYPE="autohost.kyc.complete";function isCompletionMessage(data){if(typeof data!=="object"||data===null)return false;if(!("type"in data))return false;return data.type===COMPLETE_EVENT_TYPE}function listenForCompletion(expectedOrigin,onComplete){if(!onComplete)return;const handler=event=>{if(event.origin!==expectedOrigin)return;const data=event.data;if(!isCompletionMessage(data))return;onComplete(data);};window.addEventListener("message",handler);}function buildButton(onClick){const children="Start verification";return k("button",{type:"button",onClick,style:'display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; font-size: 14px; font-weight: 600; color: #fff; background: #0b5fff; border: none; border-radius: 6px; cursor: pointer;'},children)}function resolveTarget(opts){if(opts.target)return opts.target;return document.querySelector("[data-checktiv]")??document.querySelector("[data-autohost-kyc]")}function mountButton(opts){const parsed=parsePublishableKey(opts.publishableKey);const target=resolveTarget(opts);if(!target){console.warn("[Checktiv] No mount target found. Either pass `target` explicitly or add `<div data-checktiv>` to your page.");return}if(initialised.has(target))return;initialised.add(target);const shadow=mountShadowHost(target);const verifyOrigin=resolveVerifyOrigin(parsed);listenForCompletion(verifyOrigin,opts.onComplete);const onClick=()=>{const popupUrl=buildPopupUrl(parsed,opts);launchPopup(popupUrl);};R(buildButton(onClick),shadow);}function completionSessionId(e){if(e.type!=="checktiv.idv.submitted"&&e.type!=="checktiv.custom_form.submitted"){return null}const sid="sessionId"in e?e.sessionId:void 0;return typeof sid==="string"&&sid.length>0?sid:null}function isSessionExpiredEvent(e){if(!e.type.endsWith(".error")||!("error"in e))return false;const err=e.error;if(typeof err!=="object"||err===null||!("code"in err))return false;return err.code==="session_expired"}function checktivErrorFromEvent(e){if(!e.type.endsWith(".error")||!("error"in e))return null;const err=e.error;return isChecktivError(err)?err:null}function mount(target,opts){const fetchImpl=opts.fetchImpl??fetch;const scope="publishableKey"in opts?{...parsePublishableKey(opts.publishableKey),publishableKey:opts.publishableKey}:{region:opts.region,mode:opts.mode,publishableKey:void 0};const mintOrigin=resolveApiBaseOrigin(opts.apiBase,scope.region,scope.mode);const store=opts.resumeKey!==void 0?createClientTokenStore(opts.resumeKey):null;let clientTokenPromise=null;const getClientToken=()=>{if(clientTokenPromise!==null)return clientTokenPromise;const persisted=store?.read()??null;if(persisted!==null){clientTokenPromise=Promise.resolve(persisted);return clientTokenPromise}const p=opts.fetchToken();clientTokenPromise=p;void p.then(tok=>store?.write(tok),()=>{if(clientTokenPromise===p)clientTokenPromise=null;});return p};const mintWorkingToken=createWorkingTokenSource(mintOrigin,getClientToken,scope.publishableKey,fetchImpl);const tokens=createWorkingTokenManager(mintWorkingToken);const base={getSessionToken:()=>tokens.get(),...opts.apiBase!==void 0?{apiBase:opts.apiBase}:{},...opts.theme!==void 0?{theme:opts.theme}:{}};const initOptions=scope.publishableKey!==void 0?{...base,publishableKey:scope.publishableKey}:{...base,region:scope.region,mode:scope.mode};const needsChannel=opts.onEvent!==void 0||opts.onError!==void 0||opts.onComplete!==void 0||store!==null;const safeCall=fn=>{try{fn();}catch{}};const onEvent=needsChannel?e=>{safeCall(()=>opts.onEvent?.(e));const error=checktivErrorFromEvent(e);if(error!==null)safeCall(()=>opts.onError?.(error));const sessionId=completionSessionId(e);if(sessionId!==null){store?.clear();safeCall(()=>opts.onComplete?.({sessionId}));}else if(isSessionExpiredEvent(e)){store?.clear();}}:void 0;const client=init(initOptions,{tokens});const handle=client.mountProvisioned({target,fetchImpl,onEvent,onConsent:opts.onConsent,...opts.layout!==void 0?{layout:opts.layout}:{},...opts.maxWidth!==void 0?{maxWidth:opts.maxWidth}:{},...opts.copy!==void 0?{copy:opts.copy}:{},...opts.crossDeviceCopy!==void 0?{crossDeviceCopy:opts.crossDeviceCopy}:{},...opts.onOpenCrossDevice!==void 0?{onOpenCrossDevice:opts.onOpenCrossDevice}:{}});const requestResend=confirmEmail=>{if(opts.shortCode===void 0)return Promise.resolve({requested:false});return requestSelfServiceResend({mode:"short_code",origin:mintOrigin,shortCode:opts.shortCode,confirmEmail,fetchImpl})};return {destroy(){handle.destroy();tokens.stop();},openCrossDevice:()=>handle.openCrossDevice?.(),requestResend}}function addressToWire(a){const wire={line1:a.line1,city:a.city,country:a.country};if(a.line2!==void 0)wire.line2=a.line2;if(a.region!==void 0)wire.region=a.region;if(a.postalCode!==void 0)wire.postal_code=a.postalCode;if(a.placeId!==void 0)wire.place_id=a.placeId;if(a.formatted!==void 0)wire.formatted=a.formatted;return wire}function applicantToWire(a){return {external_id:a.externalId,email:a.email,phone:a.phone,family_name:a.familyName,given_names:a.givenNames===void 0?void 0:[...a.givenNames],name_suffix:a.nameSuffix,date_of_birth:a.dateOfBirth,address:a.address===void 0?void 0:addressToWire(a.address),reference_name:a.referenceName}}function readCreatedClientToken(body){if(typeof body!=="object"||body===null||!("data"in body))return null;const data=body.data;if(typeof data!=="object"||data===null||!("client_token"in data))return null;const clientToken=data.client_token;return typeof clientToken==="string"&&clientToken.length>0?clientToken:null}var SESSIONS_CREATE_STATUS_HINT={unauthorized:"Verify your secret key (ah_sk_*) and that it matches the apiBase region.",invalid_template:"Verify the templateId (wt_*) and the request body.",rate_limited:"You have hit the rate ceiling. Retry after a short backoff.",network:"Check the apiBase origin and your network connectivity.",server_error:"This looks like a transient server error. Retry after a short backoff."};function sessionsCreateStatusHint(code){return SESSIONS_CREATE_STATUS_HINT[code]}var sessions={async create(input,options){if(typeof window!=="undefined"||typeof document!=="undefined"){throw new Error("checktiv.sessions.create must run on your server: it needs your secret key. Never call it in the browser.")}const fetchImpl=options.fetchImpl??fetch;const headers={Authorization:`Bearer ${options.secretKey}`,"content-type":"application/json"};if(options.idempotencyKey!==void 0)headers["Idempotency-Key"]=options.idempotencyKey;const body=JSON.stringify({workflow_template_id:input.templateId,applicant:applicantToWire(input.applicant)});let res;try{res=await fetchImpl(`${options.apiBase}/v1/sessions`,{method:"POST",headers,body});}catch{throw createSessionsCreateError("network","Checktiv sessions.create could not reach the API. Check the apiBase origin and your network connectivity.")}if(!res.ok){const code=mapHttpStatusToSessionsCreateError(res.status);throw createSessionsCreateError(code,`Checktiv sessions.create failed (status ${res.status}). ${sessionsCreateStatusHint(code)}`)}let parsed;try{parsed=await res.json();}catch{throw createSessionsCreateError("network","Checktiv sessions.create returned a non-JSON response.")}const clientToken=readCreatedClientToken(parsed);if(clientToken===null){throw createSessionsCreateError("server_error","Checktiv sessions.create response carried no client token. Enable the working-token capability for this environment, then retry.")}return {clientToken}}};
|
|
11
|
-
|
|
12
|
-
export { init, isSessionsCreateError, mount, mountButton, sessions, version };
|
package/dist/chunk-T6NMRTFB.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { external_exports } from './chunk-NHNGQ5BB.js';
|
|
2
|
-
import { detectCameraPolicyBlock, warnCameraPolicyBlock } from './chunk-ZU4L3NDZ.js';
|
|
3
|
-
import { IDV_DOCUMENT_TYPES, isTwoSidedDocumentType } from './chunk-IQKHRPJR.js';
|
|
4
|
-
|
|
5
|
-
var behaviorTraitsSchema=external_exports.object({webdriver:external_exports.boolean(),maxTouchPoints:external_exports.number().int().min(0).max(512),timezone:external_exports.string().max(64).nullable(),pluginCount:external_exports.number().int().min(0).max(256),deviceModelHint:external_exports.string().max(120).nullable()}).strict();var behaviorStepSchema=external_exports.object({stepId:external_exports.string().max(80),seconds:external_exports.number().min(0).max(86400),pasteCount:external_exports.number().int().min(0).max(1e4)}).strict();var behaviorSurfaceEnum=external_exports.enum(["parent","embed"]);var behaviorCapturedPayloadSchema=external_exports.object({steps:external_exports.array(behaviorStepSchema).max(50),traits:behaviorTraitsSchema,segments:external_exports.array(external_exports.object({surface:behaviorSurfaceEnum,steps:external_exports.array(behaviorStepSchema).max(50),traits:behaviorTraitsSchema}).strict()).max(4).optional()}).strict();behaviorCapturedPayloadSchema.extend({ingress:external_exports.enum(["hosted","embedded"]).optional(),stepId:external_exports.string().max(128).optional()}).strict();var REGION_IDS=["us","eu"];var SystemModes=["live","test"];var DataRegions=REGION_IDS;var CURRENT_PROTOCOL_VERSION=2;var IDV_ACQUISITION_WHEN_ABSENT="camera";var LivenessAwsRegions=["us-east-1","eu-west-1"];({us:LivenessAwsRegions[0],eu:LivenessAwsRegions[1]});external_exports.uuid();external_exports.email().toLowerCase();external_exports.object({createdAt:external_exports.iso.datetime(),updatedAt:external_exports.iso.datetime()});var dataRegionEnum=external_exports.enum(DataRegions);var dataModeEnum=external_exports.enum(SystemModes);external_exports.object({orgId:external_exports.string().min(1),mode:dataModeEnum,region:dataRegionEnum});external_exports.object({orgId:external_exports.string().min(1),actorId:external_exports.string().min(1),mode:dataModeEnum,region:dataRegionEnum,traceId:external_exports.string().optional()});var canonicalOriginSchema=external_exports.string().min(1).refine(v=>{if(v.includes("*"))return false;try{return new URL(v).origin===v}catch{return false}},"must be a canonical origin (scheme and host[:port], no path / query / fragment / credentials / wildcard)");canonicalOriginSchema.refine(v=>{try{return new URL(v).protocol==="https:"}catch{return false}},"must be a canonical https-only origin (scheme https: and host[:port], no path / query / fragment / credentials / wildcard)");var MAX_FIELDS_PER_SCREEN=8;var MAX_RULES_PER_SCREEN=10;var MAX_LOCALES=5;var MAX_LABEL_LEN=600;var bcp47LocaleSchema=external_exports.string().regex(/^[a-z]{2,3}(-[A-Z][a-z]{3})?(-([A-Z]{2}|[0-9]{3}))?$/,"must be a BCP-47 locale tag");var bcp47I18nLabelSchema=external_exports.record(bcp47LocaleSchema,external_exports.string().max(MAX_LABEL_LEN)).refine(map=>Object.keys(map).length<=MAX_LOCALES,{message:`at most ${MAX_LOCALES} locales per label`});var FORM_FIELD_TYPES=["short_text","long_text","number","email","phone","date","single_select","multi_select","boolean","file_upload","content_heading","content_paragraph"];var RESERVED_SLUGS=new Set(["__proto__","constructor","prototype"]);var formFieldSlugSchema=external_exports.string().regex(/^[a-z][a-z0-9_]{0,63}$/,"must be a lowercase slug").refine(s=>!RESERVED_SLUGS.has(s),{message:"reserved slug is not allowed"});var formFieldValidationSchema=external_exports.object({minLength:external_exports.number().int().nonnegative().optional(),maxLength:external_exports.number().int().positive().optional(),min:external_exports.number().optional(),max:external_exports.number().optional(),minSelections:external_exports.number().int().nonnegative().optional(),maxSelections:external_exports.number().int().positive().optional()}).strict();var formFieldOptionSchema=external_exports.object({value:external_exports.string().min(1).max(200),label:bcp47I18nLabelSchema}).strict();var formFieldSchema=external_exports.object({id:formFieldSlugSchema,type:external_exports.enum(FORM_FIELD_TYPES),label:bcp47I18nLabelSchema,helpText:bcp47I18nLabelSchema.optional(),required:external_exports.boolean().default(false),validation:formFieldValidationSchema.optional(),options:external_exports.array(formFieldOptionSchema).max(50).optional()}).strict();var formRuleOpEnum=external_exports.enum(["eq","neq","in","gt","gte","lt","lte","includes","not_includes","ends_with"]);var formRuleActionEnum=external_exports.enum(["flag_for_review","notify_email"]);var formRuleValueSchema=external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean(),external_exports.array(external_exports.union([external_exports.string(),external_exports.number(),external_exports.boolean()]))]);var formRuleSchema=external_exports.object({id:formFieldSlugSchema,when:external_exports.object({fieldId:formFieldSlugSchema,op:formRuleOpEnum,value:formRuleValueSchema}).strict(),actions:external_exports.array(formRuleActionEnum).min(1),notifyOrgMemberIds:external_exports.array(external_exports.string().min(1)).max(25).optional()}).strict();var customFormScreenConfigSchema=external_exports.object({supportedLocales:external_exports.array(bcp47LocaleSchema).min(1).max(MAX_LOCALES),fields:external_exports.array(formFieldSchema).min(1).max(MAX_FIELDS_PER_SCREEN),rules:external_exports.array(formRuleSchema).max(MAX_RULES_PER_SCREEN).default([])}).strict();var hexColorSchema=external_exports.string().regex(/^#[0-9a-fA-F]{6}$/,"Must be a 6-digit hex color, e.g. #2563eb");var colorModeSchema=external_exports.enum(["auto","light","dark"]);external_exports.object({primaryColor:hexColorSchema,secondaryColor:hexColorSchema.nullable().default(null),colorMode:colorModeSchema.default("auto")});var organizationBrandingSchema=external_exports.object({brandName:external_exports.string().min(1).max(120).optional(),primaryColor:hexColorSchema.optional(),secondaryColor:hexColorSchema.nullable().optional(),colorMode:colorModeSchema.optional(),logoUrl:external_exports.url().optional()});organizationBrandingSchema.omit({logoUrl:true});var checkTypeEnum=external_exports.enum(["collect_user_info","watchlist","background_us_criminal","background_global","id_verification","custom_form","esign"]);var testHintEnum=external_exports.enum(["pass","review","fail","doc_quality"]);var idvAcquisitionEnum=external_exports.enum(["camera","upload"]);var esignStepConfigSchema=external_exports.object({documentTemplateVersionIds:external_exports.array(external_exports.uuid()).max(1).default([]),requireScrollToEnd:external_exports.boolean().default(false),minimumAgeYears:external_exports.number().int().min(0).max(150).optional(),allowFullIdDocumentNumber:external_exports.boolean().default(false),sendCopyToApplicant:external_exports.boolean().default(true),sendCopyToOperator:external_exports.boolean().default(true)}).strict();var STEP_ID_REGEX=/^step_[0-9A-Za-z_-]{1,64}$/;var ADDRESS_TEXT_REGEX=/^[^\u0000-\u001f\u007f-\u009f\u202a-\u202e\u2066-\u2069<>]+$/;var safeAddressText=max=>external_exports.string().min(1).max(max).regex(ADDRESS_TEXT_REGEX,"invalid characters");var postalCodeField=external_exports.string().max(20).regex(/^[A-Za-z0-9 \-]*$/);var countryField=external_exports.string().length(2).regex(/^[A-Z]{2}$/);var placeIdField=external_exports.string().max(255).regex(/^[A-Za-z0-9_\-:]+$/);function levenshtein(a,b){const m=a.length;const n=b.length;let prev=Array.from({length:n+1},(_,j)=>j);let curr=new Array(n+1).fill(0);for(let i=1;i<=m;i++){curr[0]=i;for(let j=1;j<=n;j++){const cost=a[i-1]===b[j-1]?0:1;curr[j]=Math.min(prev[j]+1,curr[j-1]+1,prev[j-1]+cost);}[prev,curr]=[curr,prev];}return prev[n]}var normalizeKey=key=>key.toLowerCase().replace(/[^a-z0-9]/g,"");var CURATED_KEY_SYNONYMS={zip:"postal_code",zipcode:"postal_code",postcode:"postal_code",templateid:"workflow_template_id",suffix:"name_suffix"};function nearestKnownKey(key,knownKeys){const target=normalizeKey(key);if(target.length===0)return null;const curated=Object.hasOwn(CURATED_KEY_SYNONYMS,target)?CURATED_KEY_SYNONYMS[target]:void 0;if(curated!==void 0){const curatedNormalized=normalizeKey(curated);const match=knownKeys.find(candidate=>normalizeKey(candidate)===curatedNormalized);if(match!==void 0)return match}let best=null;let bestDistance=Number.POSITIVE_INFINITY;for(const candidate of knownKeys){const normalized=normalizeKey(candidate);const distance=normalized===target?0:levenshtein(target,normalized);if(distance<bestDistance){bestDistance=distance;best=candidate;}}const threshold=Math.max(1,Math.ceil(target.length/2));return bestDistance<=threshold?best:null}function unknownKeyErrorMap(knownKeys,retiredKeys={}){const retiredByNormalizedKey=new Map(Object.entries(retiredKeys).map(([retired,message])=>[normalizeKey(retired),message]));return issue=>{if(issue.code!=="unrecognized_keys")return void 0;return issue.keys.map(key=>{const migration=retiredByNormalizedKey.get(normalizeKey(key));if(migration!==void 0)return `Unknown field "${key}". ${migration}`;const suggestion=nearestKnownKey(key,knownKeys);return suggestion?`Unknown field "${key}". Did you mean "${suggestion}"?`:`Unknown field "${key}".`}).join(" ")}}external_exports.object({line1:safeAddressText(120),line2:safeAddressText(120).optional(),city:safeAddressText(80),region:safeAddressText(80).optional(),postalCode:postalCodeField.optional(),country:countryField,placeId:placeIdField.optional(),formatted:safeAddressText(500).optional()});var wireAddressShape={line1:safeAddressText(120),line2:safeAddressText(120).optional(),city:safeAddressText(80),region:safeAddressText(80).optional(),postal_code:postalCodeField.optional(),country:countryField,place_id:placeIdField.optional(),formatted:safeAddressText(500).optional()};external_exports.strictObject(wireAddressShape,{error:unknownKeyErrorMap(Object.keys(wireAddressShape))}).transform(wire=>({line1:wire.line1,line2:wire.line2,city:wire.city,region:wire.region,postalCode:wire.postal_code,country:wire.country,placeId:wire.place_id,formatted:wire.formatted}));var applicantSkipPolicySchema=external_exports.object({minAttemptsBeforeShown:external_exports.number().int().nonnegative().default(0),requireReason:external_exports.boolean().default(false)}).loose();var i18nLabelSchema=external_exports.record(external_exports.string(),external_exports.string());var stepConditionSchema=external_exports.object({field:external_exports.string(),operator:external_exports.enum(["eq","neq","in","not_in"]),value:external_exports.union([external_exports.string(),external_exports.array(external_exports.string())])}).optional();var workflowStepSchema=external_exports.object({checkType:checkTypeEnum,isRequired:external_exports.boolean().default(true),order:external_exports.number().int(),maxAttempts:external_exports.number().int().default(3),condition:stepConditionSchema,label:external_exports.string().optional()});external_exports.array(workflowStepSchema).min(1);var baseStepFields={id:external_exports.string().regex(STEP_ID_REGEX),order:external_exports.number().int().nonnegative(),isRequired:external_exports.boolean().default(true),applicantSkippable:external_exports.boolean().default(false),applicantSkipPolicy:applicantSkipPolicySchema.optional(),maxAttempts:external_exports.number().int().positive().default(3),label:i18nLabelSchema.optional(),description:i18nLabelSchema.optional(),dependsOn:external_exports.array(external_exports.string()).optional(),condition:external_exports.unknown().nullable().optional()};var backgroundConfigSchema=external_exports.object({jurisdictionScope:external_exports.enum(["us","eu","global"]).default("global"),recordTypesIncluded:external_exports.array(external_exports.enum(["criminal","sex_offender","adverse_media"])).min(1).default(["criminal"])}).default({jurisdictionScope:"global",recordTypesIncluded:["criminal"]});var watchlistConfigSchema=external_exports.object({lists:external_exports.array(external_exports.enum(["pep","ofac","eu","un"])).default([]),confidenceThreshold:external_exports.number().min(0).max(1).default(.8)}).default({lists:[],confidenceThreshold:.8});var COLLECT_USER_INFO_FIELDS=["email","phone","dob","address"];var collectUserInfoConfigSchema=external_exports.object({fields:external_exports.preprocess(raw=>{if(!Array.isArray(raw))return raw;return raw.filter(v=>v!=="name")},external_exports.array(external_exports.enum(COLLECT_USER_INFO_FIELDS))).default(["email","phone"]),captureStructuredName:external_exports.boolean().default(false)}).default({fields:["email","phone"],captureStructuredName:false});var idvDocumentTypeEnum=external_exports.enum(IDV_DOCUMENT_TYPES);var idVerificationConfigSchema=external_exports.object({documentTypes:idvDocumentTypeEnum.array().min(1).default([...IDV_DOCUMENT_TYPES]),biometricMode:external_exports.enum(["none","selfie","liveness"]).default("none"),requireMrzMatch:external_exports.boolean().default(false),requireExpiryValid:external_exports.boolean().default(true),requireNameMatch:external_exports.boolean().default(false),documentAuthenticity:external_exports.boolean().default(false),minAge:external_exports.number().int().min(0).max(150).optional(),allowDocumentUpload:external_exports.boolean().default(false).describe("Lets the applicant upload an existing photo of their identity document instead of scanning it with the camera, so a device without a working camera can still supply the document (a template with face match or liveness still requires the camera for that step). Uploaded photos are checked the same way as camera scans and can pass automatically. Every result records which method - scan or upload - produced the document.")}).strict().default({documentTypes:[...IDV_DOCUMENT_TYPES],biometricMode:"none",requireMrzMatch:false,requireExpiryValid:true,requireNameMatch:false,documentAuthenticity:false,allowDocumentUpload:false});var watchlistStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("watchlist"),config:watchlistConfigSchema});var backgroundUsCriminalStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("background_us_criminal"),config:backgroundConfigSchema});var backgroundGlobalStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("background_global"),config:backgroundConfigSchema});var collectUserInfoStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("collect_user_info"),config:collectUserInfoConfigSchema});var idVerificationStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("id_verification"),config:idVerificationConfigSchema});var customFormScreenStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("custom_form"),config:customFormScreenConfigSchema});var esignStepSchema=external_exports.object({...baseStepFields,type:external_exports.literal("esign"),config:esignStepConfigSchema});external_exports.discriminatedUnion("type",[watchlistStepSchema,backgroundUsCriminalStepSchema,backgroundGlobalStepSchema,collectUserInfoStepSchema,idVerificationStepSchema,customFormScreenStepSchema,esignStepSchema]);var captureBrandTokensSchema=external_exports.object({primary:hexColorSchema,primaryHover:hexColorSchema,onPrimary:hexColorSchema,secondary:hexColorSchema,onSecondary:hexColorSchema,ring:hexColorSchema}).strict();var captureThemeSchema=external_exports.object({colorMode:external_exports.enum(["light","dark"]),brandTokens:captureBrandTokensSchema.nullable().default(null)}).strict();var captureDocumentSideEnum=external_exports.enum(["front","back"]);var captureDocumentGroupEnum=external_exports.enum(["unknown","dl","id","passport","passport-card","visa"]);var captureErrorCodeEnum=external_exports.enum(["cv_gate_failed","upload_failed","sdk_load_failed","token_expired","biometric_unsupported","camera_unsupported","selfie_camera_denied","liveness_camera_denied","liveness_timeout","liveness_server_error","liveness_runtime_error","liveness_cancelled","protocol_mismatch"]);external_exports.enum(["no_face","multiple_faces","too_dark","move_closer","not_centered","hold_still","ready"]);var selfiePromptMapSchema=external_exports.object({no_face:external_exports.string().min(1).max(120).optional(),multiple_faces:external_exports.string().min(1).max(120).optional(),too_dark:external_exports.string().min(1).max(120).optional(),move_closer:external_exports.string().min(1).max(120).optional(),not_centered:external_exports.string().min(1).max(120).optional(),hold_still:external_exports.string().min(1).max(120).optional(),ready:external_exports.string().min(1).max(120).optional()}).strict();var selfieChromeCopySchema=external_exports.object({shutterLabel:external_exports.string().min(1).max(80).optional(),shutterHint:external_exports.string().min(1).max(120).optional(),confirm:external_exports.string().min(1).max(80).optional(),retake:external_exports.string().min(1).max(80).optional()}).strict();var beginScanCopySchema=external_exports.object({prompt:external_exports.string().min(1).max(200).optional(),label:external_exports.string().min(1).max(80).optional(),cameraStartingLabel:external_exports.string().min(1).max(80).optional(),cameraUnavailableNotice:external_exports.string().min(1).max(200).optional(),uploadPrompt:external_exports.string().min(1).max(200).optional(),uploadLabel:external_exports.string().min(1).max(80).optional(),uploadSingleSideLabel:external_exports.string().min(1).max(80).optional(),uploadFrontLabel:external_exports.string().min(1).max(80).optional(),uploadBackLabel:external_exports.string().min(1).max(80).optional(),uploadEntryLabel:external_exports.string().min(1).max(80).optional(),uploadBackAction:external_exports.string().min(1).max(80).optional(),uploadChangeDocumentAction:external_exports.string().min(1).max(80).optional(),uploadChooseDocumentPrompt:external_exports.string().min(1).max(200).optional(),documentTypePassport:external_exports.string().min(1).max(80).optional(),documentTypeDriversLicense:external_exports.string().min(1).max(80).optional(),documentTypeIdCard:external_exports.string().min(1).max(80).optional(),documentTypeResidencePermit:external_exports.string().min(1).max(80).optional(),documentTypeVisa:external_exports.string().min(1).max(80).optional(),documentTypeWorkPermit:external_exports.string().min(1).max(80).optional(),uploadPickAction:external_exports.string().min(1).max(80).optional(),uploadReplaceAction:external_exports.string().min(1).max(80).optional(),uploadKeepAction:external_exports.string().min(1).max(80).optional(),uploadPreparingLabel:external_exports.string().min(1).max(80).optional(),uploadAddedNotice:external_exports.string().min(1).max(80).optional(),uploadBusyLabel:external_exports.string().min(1).max(200).optional(),uploadIncompleteNotice:external_exports.string().min(1).max(200).optional(),uploadIncompleteSingleNotice:external_exports.string().min(1).max(200).optional(),uploadTooLargeNotice:external_exports.string().min(1).max(200).optional(),uploadUnsupportedNotice:external_exports.string().min(1).max(200).optional(),uploadUnreadableNotice:external_exports.string().min(1).max(200).optional()}).strict();var captureInitMessageSchema=external_exports.object({type:external_exports.literal("capture:init"),captureToken:external_exports.string().min(1),config:idVerificationConfigSchema,locale:external_exports.string().min(2).max(35),theme:captureThemeSchema,mode:dataModeEnum.optional(),testHint:testHintEnum.optional(),protocolVersion:external_exports.number().int().min(1).optional(),beginScanCopy:beginScanCopySchema.optional(),beginScanPrompt:external_exports.string().min(1).max(200).optional(),beginScanLabel:external_exports.string().min(1).max(80).optional(),selfiePromptMap:selfiePromptMapSchema.optional(),selfieChromeCopy:selfieChromeCopySchema.optional()}).strict();external_exports.object({data:external_exports.object({captureToken:external_exports.string().min(1),embedOrigin:canonicalOriginSchema,runIndex:external_exports.number().int().min(0),expiresAt:external_exports.iso.datetime({offset:true}),embedContextToken:external_exports.string().min(1),mode:dataModeEnum.optional(),testHint:testHintEnum.optional()}).strict()}).strict();var captureReadyMessageSchema=external_exports.object({type:external_exports.literal("capture:ready")}).strict();var captureDocumentCompleteMessageSchema=external_exports.object({type:external_exports.literal("capture:document-complete"),side:captureDocumentSideEnum,r2Key:external_exports.string().min(1)}).strict();var captureSelfieCompleteMessageSchema=external_exports.object({type:external_exports.literal("capture:selfie-complete"),r2Key:external_exports.string().min(1)}).strict();var captureCoachingMessageSchema=external_exports.object({type:external_exports.literal("capture:coaching"),state:external_exports.string().min(1).max(120),attemptIndex:external_exports.number().int().min(0)}).strict();var captureSelfieCvRejectMessageSchema=external_exports.object({type:external_exports.literal("capture:selfie-cv-reject"),retryReason:external_exports.string().min(1).max(120).optional(),attemptIndex:external_exports.number().int().min(0)}).strict();var captureErrorMessageSchema=external_exports.object({type:external_exports.literal("capture:error"),code:captureErrorCodeEnum}).strict();var captureBiometricCameraLiveMessageSchema=external_exports.object({type:external_exports.literal("capture:biometric_camera_live"),timestamp:external_exports.number().optional()}).strict();var idvR2KeysSchema=external_exports.object({front:external_exports.string().min(1),back:external_exports.string().min(1).optional(),selfie:external_exports.string().min(1).optional()}).strict();var captureAllCompleteMessageSchema=external_exports.object({type:external_exports.literal("capture:all-complete"),r2Keys:idvR2KeysSchema,documentGroup:captureDocumentGroupEnum.optional(),acquisition:idvAcquisitionEnum.optional()}).strict();external_exports.object({stepId:external_exports.string().min(1),runIndex:external_exports.number().int().min(0),r2Keys:idvR2KeysSchema,acquisition:idvAcquisitionEnum.optional(),traceId:external_exports.string().optional()}).strict();external_exports.object({stepId:external_exports.string().min(1).optional()}).strict();var idvLivenessStsCredentialsSchema=external_exports.object({accessKeyId:external_exports.string().min(1),secretAccessKey:external_exports.string().min(1),sessionToken:external_exports.string().min(1),expiration:external_exports.string().min(1)}).strict();var livenessAwsRegionEnum=external_exports.enum(LivenessAwsRegions);external_exports.object({awsSessionId:external_exports.string().min(1),awsRegion:livenessAwsRegionEnum,credentials:idvLivenessStsCredentialsSchema}).strict();var captureBehaviorMessageSchema=external_exports.object({type:external_exports.literal("capture:behavior"),steps:external_exports.array(behaviorStepSchema).max(50),traits:behaviorTraitsSchema}).strict();var captureFromIframeMessageSchema=external_exports.discriminatedUnion("type",[captureReadyMessageSchema,captureDocumentCompleteMessageSchema,captureSelfieCompleteMessageSchema,captureCoachingMessageSchema,captureSelfieCvRejectMessageSchema,captureErrorMessageSchema,captureAllCompleteMessageSchema,captureBehaviorMessageSchema,captureBiometricCameraLiveMessageSchema]);external_exports.discriminatedUnion("type",[captureInitMessageSchema]);var idvCvGateRetryReasonEnum=external_exports.enum(["no_face_detected","multiple_faces","low_confidence","no_id_document","image_read_failed"]);external_exports.object({ok:external_exports.boolean(),retryReason:idvCvGateRetryReasonEnum.optional()}).strict();external_exports.enum(["front","back","selfie"]);function reducer(state,action){switch(action.type){case "mint_ok":return {kind:"waiting_for_init",captureToken:action.captureToken,embedOrigin:action.embedOrigin,runIndex:action.runIndex};case "mint_failed":return {kind:"mint_error"};case "iframe_ready":if(state.kind==="waiting_for_init"){return {kind:"ready",embedOrigin:state.embedOrigin,runIndex:state.runIndex}}return state;case "phase":if(state.kind==="ready"||state.kind==="capturing"){return {kind:"capturing",embedOrigin:state.embedOrigin,runIndex:state.runIndex,phase:action.phase,coaching:null,lastCvRejectReason:action.phase==="selfie"&&state.kind==="capturing"?state.lastCvRejectReason:null,biometricLoading:isBiometricPhase(action.phase)}}return state;case "coaching":if(state.kind==="ready"||state.kind==="capturing"){return {kind:"capturing",embedOrigin:state.embedOrigin,runIndex:state.runIndex,phase:"coaching",coaching:action.coaching,lastCvRejectReason:state.kind==="capturing"?state.lastCvRejectReason:null,biometricLoading:state.kind==="capturing"?state.biometricLoading:false}}return state;case "selfie_cv_reject":if(state.kind==="ready"||state.kind==="capturing"){return {kind:"capturing",embedOrigin:state.embedOrigin,runIndex:state.runIndex,phase:state.kind==="capturing"?state.phase:"selfie",coaching:state.kind==="capturing"?state.coaching:null,lastCvRejectReason:action.reason,biometricLoading:false}}return state;case "biometric_camera_live":if(state.kind==="capturing"){return {...state,biometricLoading:false}}return state;case "submitting":return {kind:"submitting"};case "submit_failed":return {kind:"submit_error"};case "submit_pending":return {kind:"submit_pending"};case "capture_superseded":return {kind:"capture_superseded"};case "token_expired":return {kind:"token_expired"};case "capture_error":return {kind:"capture_error",errorKind:action.errorKind,...action.cameraPolicyBlocked===true?{cameraPolicyBlocked:true}:{}};default:return state}}function nextCapturePhaseAfterDocument(side,documentTypes,biometricMode){if(side==="front"&&documentTypes.some(isTwoSidedDocumentType))return "uploading";if(biometricMode==="liveness")return "liveness";if(biometricMode==="selfie")return "selfie";return "uploading"}function isBiometricPhase(phase){return phase==="selfie"||phase==="liveness"}var RETRY_REASON_COACHING={no_face_detected:"hold_steady",multiple_faces:"hold_steady",low_confidence:"move_closer",no_id_document:"hold_steady",image_read_failed:"hold_steady"};function coachingKindForState(state){const retryParsed=idvCvGateRetryReasonEnum.safeParse(state);if(retryParsed.success)return RETRY_REASON_COACHING[retryParsed.data];switch(state){case "camera-too-far":return "move_closer";case "camera-too-close":case "document-too-close-to-frame-edge":return "move_farther";case "glare-detected":return "reduce_glare";case "too-dark":case "lighting-too-dark":return "too_dark";case "wrong-side":return "wrong_side";case "selfie_move_closer":return "move_closer";case "selfie_too_dark":return "too_dark";case "selfie_no_face":case "selfie_multiple_faces":case "selfie_not_centered":return "hold_steady";default:return "hold_steady"}}function createCaptureController(deps){let state={kind:"minting"};const stateListeners=new Set;const eventListeners=new Map;let captureToken=null;let pinnedOrigin=null;let runIndex=null;let mintMode;let mintTestHint;let cameraPolicyChecked=false;let cameraPolicyBlocked=false;let started=false;let destroyed=false;let cancelled=false;let submitStarted=false;let messageListener=null;function setState(next){state=next;for(const listener of stateListeners)listener(state);}function dispatch(action){setState(reducer(state,action));}function emit(event){const listeners=eventListeners.get(event.type);if(listeners===void 0)return;for(const listener of listeners)listener(event);}function checkCameraPolicy(iframe,origin){if(cameraPolicyChecked)return;cameraPolicyChecked=true;try{const block=detectCameraPolicyBlock(iframe,origin);if(block===null)return;warnCameraPolicyBlock(block);cameraPolicyBlocked=true;}catch{}}function postInit(){if(destroyed||captureToken===null||pinnedOrigin===null)return false;const iframe=deps.getIframe();if(iframe===null||iframe.contentWindow===null)return false;checkCameraPolicy(iframe,pinnedOrigin);const mintFields={...mintMode!==void 0?{mode:mintMode}:{},...mintTestHint!==void 0?{testHint:mintTestHint}:{}};const init={type:"capture:init",captureToken,...deps.initPayload(),...mintFields};iframe.contentWindow.postMessage(init,pinnedOrigin);return true}function handleMessage(msg){switch(msg.type){case "capture:ready":{const posted=postInit();if(posted&&state.kind==="waiting_for_init"){dispatch({type:"iframe_ready"});}return}case "capture:coaching":{dispatch({type:"coaching",coaching:coachingKindForState(msg.state)});deps.onCoaching?.(msg.state,msg.attemptIndex);return}case "capture:selfie-cv-reject":{const reason=msg.retryReason??null;dispatch({type:"selfie_cv_reject",reason});emit({type:"selfie-cv-reject",attemptIndex:msg.attemptIndex,reason});return}case "capture:document-complete":{const{config}=deps.initPayload();dispatch({type:"phase",phase:nextCapturePhaseAfterDocument(msg.side,config.documentTypes,config.biometricMode)});return}case "capture:selfie-complete":{dispatch({type:"phase",phase:"uploading"});return}case "capture:error":{if(msg.code==="token_expired"){dispatch({type:"token_expired"});return}dispatch({type:"capture_error",errorKind:msg.code,...cameraPolicyBlocked?{cameraPolicyBlocked:true}:{}});return}case "capture:all-complete":{void submitCapture(msg.r2Keys,msg.acquisition??IDV_ACQUISITION_WHEN_ABSENT);return}case "capture:behavior":{deps.onBehaviorSegment?.({steps:msg.steps,traits:msg.traits});return}case "capture:biometric_camera_live":{dispatch({type:"biometric_camera_live"});return}default:{const _exhaustive=msg;return _exhaustive}}}async function submitCapture(r2Keys,acquisition){if(submitStarted)return;submitStarted=true;if(runIndex===null){dispatch({type:"submit_failed"});return}if(deps.onBeforeSubmit){try{await deps.onBeforeSubmit();}catch{if(!destroyed)dispatch({type:"submit_failed"});return}if(destroyed)return}dispatch({type:"submitting"});let result;const submitWithAcquisition=deps.submit;try{result=await submitWithAcquisition(runIndex,r2Keys,acquisition);}catch{if(!destroyed)dispatch({type:"submit_failed"});return}if(destroyed)return;if(result.ok){emit({type:"all-complete",runIndex});return}if(result.reason==="token_expired"){dispatch({type:"token_expired"});return}if(result.reason==="signal_pending"){dispatch({type:"submit_pending"});return}if(result.reason==="capture_superseded"){dispatch({type:"capture_superseded"});return}dispatch({type:"submit_failed"});}function onWindowMessage(event){if(destroyed||pinnedOrigin===null)return;if(event.origin!==pinnedOrigin)return;if(event.source!==null&&event.source!==deps.getIframe()?.contentWindow)return;const parsed=captureFromIframeMessageSchema.safeParse(event.data);if(!parsed.success)return;handleMessage(parsed.data);}return {start(){if(destroyed||started)return;started=true;void(async()=>{try{const minted=await deps.mintToken();if(cancelled||destroyed)return;captureToken=minted.captureToken;pinnedOrigin=minted.embedOrigin;runIndex=minted.runIndex;mintMode=minted.mode;mintTestHint=minted.testHint;messageListener=onWindowMessage;window.addEventListener("message",messageListener);dispatch({type:"mint_ok",captureToken:minted.captureToken,embedOrigin:minted.embedOrigin,runIndex:minted.runIndex});}catch{if(cancelled||destroyed)return;dispatch({type:"mint_failed"});}})();},on(type,cb){let listeners=eventListeners.get(type);if(listeners===void 0){listeners=new Set;eventListeners.set(type,listeners);}listeners.add(cb);return ()=>{listeners?.delete(cb);}},subscribe(cb){stateListeners.add(cb);cb(state);return ()=>{stateListeners.delete(cb);}},handleReady(){if(destroyed)return;postInit();},destroy(){if(destroyed)return;destroyed=true;cancelled=true;if(messageListener!==null){window.removeEventListener("message",messageListener);messageListener=null;}}}}
|
|
6
|
-
|
|
7
|
-
export { CURRENT_PROTOCOL_VERSION, IDV_ACQUISITION_WHEN_ABSENT, coachingKindForState, createCaptureController, isBiometricPhase, nextCapturePhaseAfterDocument, reducer };
|
package/dist/chunk-XOGHMNBX.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var n;var l;var u;var i;var r;var o;var e;var f;var c;var a;var s;var h;var p;var v;var d={};var w=[];var _=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;var g=Array.isArray;function m(n2,l2){for(var u2 in l2)n2[u2]=l2[u2];return n2}function b(n2){n2&&n2.parentNode&&n2.parentNode.removeChild(n2);}function k(l2,u2,t2){var i2,r2,o2,e2={};for(o2 in u2)"key"==o2?i2=u2[o2]:"ref"==o2?r2=u2[o2]:e2[o2]=u2[o2];if(arguments.length>2&&(e2.children=arguments.length>3?n.call(arguments,2):t2),"function"==typeof l2&&null!=l2.defaultProps)for(o2 in l2.defaultProps) void 0===e2[o2]&&(e2[o2]=l2.defaultProps[o2]);return x(l2,e2,i2,r2,null)}function x(n2,t2,i2,r2,o2){var e2={type:n2,props:t2,key:i2,ref:r2,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o2?++u:o2,__i:-1,__u:0};return null==o2&&null!=l.vnode&&l.vnode(e2),e2}function S(n2){return n2.children}function C(n2,l2){this.props=n2,this.context=l2;}function $(n2,l2){if(null==l2)return n2.__?$(n2.__,n2.__i+1):null;for(var u2;l2<n2.__k.length;l2++)if(null!=(u2=n2.__k[l2])&&null!=u2.__e)return u2.__e;return "function"==typeof n2.type?$(n2):null}function I(n2){if(n2.__P&&n2.__d){var u2=n2.__v,t2=u2.__e,i2=[],r2=[],o2=m({},u2);o2.__v=u2.__v+1,l.vnode&&l.vnode(o2),q(n2.__P,o2,u2,n2.__n,n2.__P.namespaceURI,32&u2.__u?[t2]:null,i2,null==t2?$(u2):t2,!!(32&u2.__u),r2),o2.__v=u2.__v,o2.__.__k[o2.__i]=o2,D(i2,o2,r2),u2.__e=u2.__=null,o2.__e!=t2&&P(o2);}}function P(n2){if(null!=(n2=n2.__)&&null!=n2.__c)return n2.__e=n2.__c.base=null,n2.__k.some(function(l2){if(null!=l2&&null!=l2.__e)return n2.__e=n2.__c.base=l2.__e}),P(n2)}function A(n2){(!n2.__d&&(n2.__d=true)&&i.push(n2)&&!H.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)(H);}function H(){try{for(var n2,l2=1;i.length;)i.length>l2&&i.sort(e),n2=i.shift(),l2=i.length,I(n2);}finally{i.length=H.__r=0;}}function L(n2,l2,u2,t2,i2,r2,o2,e2,f2,c2,a2){var s2,h2,p2,v2,y2,_2,g2,m2=t2&&t2.__k||w,b2=l2.length;for(f2=T(u2,l2,m2,f2,b2),s2=0;s2<b2;s2++)null!=(p2=u2.__k[s2])&&(h2=-1!=p2.__i&&m2[p2.__i]||d,p2.__i=s2,_2=q(n2,p2,h2,i2,r2,o2,e2,f2,c2,a2),v2=p2.__e,p2.ref&&h2.ref!=p2.ref&&(h2.ref&&J(h2.ref,null,p2),a2.push(p2.ref,p2.__c||v2,p2)),null==y2&&null!=v2&&(y2=v2),(g2=!!(4&p2.__u))||h2.__k===p2.__k?(f2=j(p2,f2,n2,g2),g2&&h2.__e&&(h2.__e=null)):"function"==typeof p2.type&&void 0!==_2?f2=_2:v2&&(f2=v2.nextSibling),p2.__u&=-7);return u2.__e=y2,f2}function T(n2,l2,u2,t2,i2){var r2,o2,e2,f2,c2,a2=u2.length,s2=a2,h2=0;for(n2.__k=new Array(i2),r2=0;r2<i2;r2++)null!=(o2=l2[r2])&&"boolean"!=typeof o2&&"function"!=typeof o2?("string"==typeof o2||"number"==typeof o2||"bigint"==typeof o2||o2.constructor==String?o2=n2.__k[r2]=x(null,o2,null,null,null):g(o2)?o2=n2.__k[r2]=x(S,{children:o2},null,null,null):void 0===o2.constructor&&o2.__b>0?o2=n2.__k[r2]=x(o2.type,o2.props,o2.key,o2.ref?o2.ref:null,o2.__v):n2.__k[r2]=o2,f2=r2+h2,o2.__=n2,o2.__b=n2.__b+1,e2=null,-1!=(c2=o2.__i=O(o2,u2,f2,s2))&&(s2--,(e2=u2[c2])&&(e2.__u|=2)),null==e2||null==e2.__v?(-1==c2&&(i2>a2?h2--:i2<a2&&h2++),"function"!=typeof o2.type&&(o2.__u|=4)):c2!=f2&&(c2==f2-1?h2--:c2==f2+1?h2++:(c2>f2?h2--:h2++,o2.__u|=4))):n2.__k[r2]=null;if(s2)for(r2=0;r2<a2;r2++)null!=(e2=u2[r2])&&0==(2&e2.__u)&&(e2.__e==t2&&(t2=$(e2)),K(e2,e2));return t2}function j(n2,l2,u2,t2){var i2,r2;if("function"==typeof n2.type){for(i2=n2.__k,r2=0;i2&&r2<i2.length;r2++)i2[r2]&&(i2[r2].__=n2,l2=j(i2[r2],l2,u2,t2));return l2}n2.__e!=l2&&(t2&&(l2&&n2.type&&!l2.parentNode&&(l2=$(n2)),u2.insertBefore(n2.__e,l2||null)),l2=n2.__e);do{l2=l2&&l2.nextSibling;}while(null!=l2&&8==l2.nodeType);return l2}function O(n2,l2,u2,t2){var i2,r2,o2,e2=n2.key,f2=n2.type,c2=l2[u2],a2=null!=c2&&0==(2&c2.__u);if(null===c2&&null==e2||a2&&e2==c2.key&&f2==c2.type)return u2;if(t2>(a2?1:0)){for(i2=u2-1,r2=u2+1;i2>=0||r2<l2.length;)if(null!=(c2=l2[o2=i2>=0?i2--:r2++])&&0==(2&c2.__u)&&e2==c2.key&&f2==c2.type)return o2}return -1}function z(n2,l2,u2){"-"==l2[0]?n2.setProperty(l2,null==u2?"":u2):n2[l2]=null==u2?"":"number"!=typeof u2||_.test(l2)?u2:u2+"px";}function N(n2,l2,u2,t2,i2){var r2,o2;n:if("style"==l2)if("string"==typeof u2)n2.style.cssText=u2;else {if("string"==typeof t2&&(n2.style.cssText=t2=""),t2)for(l2 in t2)u2&&l2 in u2||z(n2.style,l2,"");if(u2)for(l2 in u2)t2&&u2[l2]==t2[l2]||z(n2.style,l2,u2[l2]);}else if("o"==l2[0]&&"n"==l2[1])r2=l2!=(l2=l2.replace(s,"$1")),o2=l2.toLowerCase(),l2=o2 in n2||"onFocusOut"==l2||"onFocusIn"==l2?o2.slice(2):l2.slice(2),n2.l||(n2.l={}),n2.l[l2+r2]=u2,u2?t2?u2[a]=t2[a]:(u2[a]=h,n2.addEventListener(l2,r2?v:p,r2)):n2.removeEventListener(l2,r2?v:p,r2);else {if("http://www.w3.org/2000/svg"==i2)l2=l2.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=l2&&"height"!=l2&&"href"!=l2&&"list"!=l2&&"form"!=l2&&"tabIndex"!=l2&&"download"!=l2&&"rowSpan"!=l2&&"colSpan"!=l2&&"role"!=l2&&"popover"!=l2&&l2 in n2)try{n2[l2]=null==u2?"":u2;break n}catch(n3){}"function"==typeof u2||(null==u2||false===u2&&"-"!=l2[4]?n2.removeAttribute(l2):n2.setAttribute(l2,"popover"==l2&&1==u2?"":u2));}}function V(n2){return function(u2){if(this.l){var t2=this.l[u2.type+n2];if(null==u2[c])u2[c]=h++;else if(u2[c]<t2[a])return;return t2(l.event?l.event(u2):u2)}}}function q(n2,u2,t2,i2,r2,o2,e2,f2,c2,a2){var s2,h2,p2,v2,y2,d2,_2,k2,x2,M,$2,I2,P2,A2,H2,T2=u2.type;if(void 0!==u2.constructor)return null;128&t2.__u&&(c2=!!(32&t2.__u),o2=[f2=u2.__e=t2.__e]),(s2=l.__b)&&s2(u2);n:if("function"==typeof T2)try{if(k2=u2.props,x2=T2.prototype&&T2.prototype.render,M=(s2=T2.contextType)&&i2[s2.__c],$2=s2?M?M.props.value:s2.__:i2,t2.__c?_2=(h2=u2.__c=t2.__c).__=h2.__E:(x2?u2.__c=h2=new T2(k2,$2):(u2.__c=h2=new C(k2,$2),h2.constructor=T2,h2.render=Q),M&&M.sub(h2),h2.state||(h2.state={}),h2.__n=i2,p2=h2.__d=true,h2.__h=[],h2._sb=[]),x2&&null==h2.__s&&(h2.__s=h2.state),x2&&null!=T2.getDerivedStateFromProps&&(h2.__s==h2.state&&(h2.__s=m({},h2.__s)),m(h2.__s,T2.getDerivedStateFromProps(k2,h2.__s))),v2=h2.props,y2=h2.state,h2.__v=u2,p2)x2&&null==T2.getDerivedStateFromProps&&null!=h2.componentWillMount&&h2.componentWillMount(),x2&&null!=h2.componentDidMount&&h2.__h.push(h2.componentDidMount);else {if(x2&&null==T2.getDerivedStateFromProps&&k2!==v2&&null!=h2.componentWillReceiveProps&&h2.componentWillReceiveProps(k2,$2),u2.__v==t2.__v||!h2.__e&&null!=h2.shouldComponentUpdate&&false===h2.shouldComponentUpdate(k2,h2.__s,$2)){u2.__v!=t2.__v&&(h2.props=k2,h2.state=h2.__s,h2.__d=false),u2.__e=t2.__e,u2.__k=t2.__k,u2.__k.some(function(n3){n3&&(n3.__=u2);}),w.push.apply(h2.__h,h2._sb),h2._sb=[],h2.__h.length&&e2.push(h2);break n}null!=h2.componentWillUpdate&&h2.componentWillUpdate(k2,h2.__s,$2),x2&&null!=h2.componentDidUpdate&&h2.__h.push(function(){h2.componentDidUpdate(v2,y2,d2);});}if(h2.context=$2,h2.props=k2,h2.__P=n2,h2.__e=false,I2=l.__r,P2=0,x2)h2.state=h2.__s,h2.__d=false,I2&&I2(u2),s2=h2.render(h2.props,h2.state,h2.context),w.push.apply(h2.__h,h2._sb),h2._sb=[];else do{h2.__d=false,I2&&I2(u2),s2=h2.render(h2.props,h2.state,h2.context),h2.state=h2.__s;}while(h2.__d&&++P2<25);h2.state=h2.__s,null!=h2.getChildContext&&(i2=m(m({},i2),h2.getChildContext())),x2&&!p2&&null!=h2.getSnapshotBeforeUpdate&&(d2=h2.getSnapshotBeforeUpdate(v2,y2)),A2=null!=s2&&s2.type===S&&null==s2.key?E(s2.props.children):s2,f2=L(n2,g(A2)?A2:[A2],u2,t2,i2,r2,o2,e2,f2,c2,a2),h2.base=u2.__e,u2.__u&=-161,h2.__h.length&&e2.push(h2),_2&&(h2.__E=h2.__=null);}catch(n3){if(u2.__v=null,c2||null!=o2)if(n3.then){for(u2.__u|=c2?160:128;f2&&8==f2.nodeType&&f2.nextSibling;)f2=f2.nextSibling;o2[o2.indexOf(f2)]=null,u2.__e=f2;}else {for(H2=o2.length;H2--;)b(o2[H2]);B(u2);}else u2.__e=t2.__e,u2.__k=t2.__k,n3.then||B(u2);l.__e(n3,u2,t2);}else null==o2&&u2.__v==t2.__v?(u2.__k=t2.__k,u2.__e=t2.__e):f2=u2.__e=G(t2.__e,u2,t2,i2,r2,o2,e2,c2,a2);return (s2=l.diffed)&&s2(u2),128&u2.__u?void 0:f2}function B(n2){n2&&(n2.__c&&(n2.__c.__e=true),n2.__k&&n2.__k.some(B));}function D(n2,u2,t2){for(var i2=0;i2<t2.length;i2++)J(t2[i2],t2[++i2],t2[++i2]);l.__c&&l.__c(u2,n2),n2.some(function(u3){try{n2=u3.__h,u3.__h=[],n2.some(function(n3){n3.call(u3);});}catch(n3){l.__e(n3,u3.__v);}});}function E(n2){return "object"!=typeof n2||null==n2||n2.__b>0?n2:g(n2)?n2.map(E):void 0!==n2.constructor?null:m({},n2)}function G(u2,t2,i2,r2,o2,e2,f2,c2,a2){var s2,h2,p2,v2,y2,w2,_2,m2=i2.props||d,k2=t2.props,x2=t2.type;if("svg"==x2?o2="http://www.w3.org/2000/svg":"math"==x2?o2="http://www.w3.org/1998/Math/MathML":o2||(o2="http://www.w3.org/1999/xhtml"),null!=e2){for(s2=0;s2<e2.length;s2++)if((y2=e2[s2])&&"setAttribute"in y2==!!x2&&(x2?y2.localName==x2:3==y2.nodeType)){u2=y2,e2[s2]=null;break}}if(null==u2){if(null==x2)return document.createTextNode(k2);u2=document.createElementNS(o2,x2,k2.is&&k2),c2&&(l.__m&&l.__m(t2,e2),c2=false),e2=null;}if(null==x2)m2===k2||c2&&u2.data==k2||(u2.data=k2);else {if(e2="textarea"==x2&&null!=k2.defaultValue?null:e2&&n.call(u2.childNodes),!c2&&null!=e2)for(m2={},s2=0;s2<u2.attributes.length;s2++)m2[(y2=u2.attributes[s2]).name]=y2.value;for(s2 in m2)y2=m2[s2],"dangerouslySetInnerHTML"==s2?p2=y2:"children"==s2||s2 in k2||"value"==s2&&"defaultValue"in k2||"checked"==s2&&"defaultChecked"in k2||N(u2,s2,null,y2,o2);for(s2 in k2)y2=k2[s2],"children"==s2?v2=y2:"dangerouslySetInnerHTML"==s2?h2=y2:"value"==s2?w2=y2:"checked"==s2?_2=y2:c2&&"function"!=typeof y2||m2[s2]===y2||N(u2,s2,y2,m2[s2],o2);if(h2)c2||p2&&(h2.__html==p2.__html||h2.__html==u2.innerHTML)||(u2.innerHTML=h2.__html),t2.__k=[];else if(p2&&(u2.innerHTML=""),L("template"==t2.type?u2.content:u2,g(v2)?v2:[v2],t2,i2,r2,"foreignObject"==x2?"http://www.w3.org/1999/xhtml":o2,e2,f2,e2?e2[0]:i2.__k&&$(i2,0),c2,a2),null!=e2)for(s2=e2.length;s2--;)b(e2[s2]);c2&&"textarea"!=x2||(s2="value","progress"==x2&&null==w2?u2.removeAttribute("value"):null!=w2&&(w2!==u2[s2]||"progress"==x2&&!w2||"option"==x2&&w2!=m2[s2])&&N(u2,s2,w2,m2[s2],o2),s2="checked",null!=_2&&_2!=u2[s2]&&N(u2,s2,_2,m2[s2],o2));}return u2}function J(n2,u2,t2){try{if("function"==typeof n2){var i2="function"==typeof n2.__u;i2&&n2.__u(),i2&&null==u2||(n2.__u=n2(u2));}else n2.current=u2;}catch(n3){l.__e(n3,t2);}}function K(n2,u2,t2){var i2,r2;if(l.unmount&&l.unmount(n2),(i2=n2.ref)&&(i2.current&&i2.current!=n2.__e||J(i2,null,u2)),null!=(i2=n2.__c)){if(i2.componentWillUnmount)try{i2.componentWillUnmount();}catch(n3){l.__e(n3,u2);}i2.base=i2.__P=null;}if(i2=n2.__k)for(r2=0;r2<i2.length;r2++)i2[r2]&&K(i2[r2],u2,t2||"function"!=typeof n2.type);t2||b(n2.__e),n2.__c=n2.__=n2.__e=void 0;}function Q(n2,l2,u2){return this.constructor(n2,u2)}function R(u2,t2,i2){var r2,o2,e2,f2;t2==document&&(t2=document.documentElement),l.__&&l.__(u2,t2),o2=(r2="function"==typeof i2)?null:i2&&i2.__k||t2.__k,e2=[],f2=[],q(t2,u2=(!r2&&i2||t2).__k=k(S,null,[u2]),o2||d,d,t2.namespaceURI,!r2&&i2?[i2]:o2?null:t2.firstChild?n.call(t2.childNodes):null,e2,!r2&&i2?i2:o2?o2.__e:t2.firstChild,r2,f2),D(e2,u2,f2);}n=w.slice,l={__e:function(n2,l2,u2,t2){for(var i2,r2,o2;l2=l2.__;)if((i2=l2.__c)&&!i2.__)try{if((r2=i2.constructor)&&null!=r2.getDerivedStateFromError&&(i2.setState(r2.getDerivedStateFromError(n2)),o2=i2.__d),null!=i2.componentDidCatch&&(i2.componentDidCatch(n2,t2||{}),o2=i2.__d),o2)return i2.__E=i2}catch(l3){n2=l3;}throw n2}},u=0,C.prototype.setState=function(n2,l2){var u2;u2=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=m({},this.state),"function"==typeof n2&&(n2=n2(m({},u2),this.props)),n2&&m(u2,n2),null!=n2&&this.__v&&(l2&&this._sb.push(l2),A(this));},C.prototype.forceUpdate=function(n2){this.__v&&(this.__e=true,n2&&this.__h.push(n2),A(this));},C.prototype.render=S,i=[],o="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n2,l2){return n2.__v.__b-l2.__v.__b},H.__r=0,f=Math.random().toString(8),c="__d"+f,a="__a"+f,s=/(PointerCapture)$|Capture$/i,h=0,p=V(false),v=V(true);
|
|
2
|
-
|
|
3
|
-
export { R, S, k, l };
|
package/dist/chunk-YK4WW4LX.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IDV_DOCUMENT_TYPES } from './chunk-IQKHRPJR.js';
|
|
2
|
-
import { withTokenRetry, isChecktivError } from './chunk-C7GRMEYT.js';
|
|
3
|
-
import { sdkPublicSettings, SESSIONS_ME_PATH, dataPlaneHeaders } from './chunk-HFQJYEGZ.js';
|
|
4
|
-
|
|
5
|
-
var SDK_MODULES=["idv","fraud","custom_form","esign"];var BIOMETRIC_MODES=["none","selfie","liveness"];var DOCUMENT_TYPES=IDV_DOCUMENT_TYPES;var SDK_MODES=["live","test"];var DATA_REGIONS=Object.keys(sdkPublicSettings.regions);var COLLECT_USER_INFO_FIELD_VALUES=["email","phone","dob","address"];var COLLECT_USER_INFO_NAME_COMPONENTS_VALUES=["required","requested","optional"];function isRecord(v){return typeof v==="object"&&v!==null}function isNonEmptyString(v){return typeof v==="string"&&v.length>0}function isSdkModule(v){return typeof v==="string"&&SDK_MODULES.includes(v)}function isBiometricMode(v){return typeof v==="string"&&BIOMETRIC_MODES.includes(v)}function isSdkMode(v){return typeof v==="string"&&SDK_MODES.includes(v)}function isSdkRegion(v){return typeof v==="string"&&DATA_REGIONS.includes(v)}function isDocumentType(v){return typeof v==="string"&&DOCUMENT_TYPES.includes(v)}function isCollectUserInfoField(v){return typeof v==="string"&&COLLECT_USER_INFO_FIELD_VALUES.includes(v)}function isNameComponents(v){return typeof v==="string"&&COLLECT_USER_INFO_NAME_COMPONENTS_VALUES.includes(v)}function parseCollectUserInfoConfig(value){if(!isRecord(value))return null;const fields=value.fields;const captureStructuredName=value.capture_structured_name;const nameComponents=value.name_components;if(!Array.isArray(fields))return null;const parsedFields=[];for(const f of fields){if(!isCollectUserInfoField(f))return null;parsedFields.push(f);}if(typeof captureStructuredName!=="boolean")return null;if(!isNameComponents(nameComponents))return null;return {fields:parsedFields,nameComponents,captureStructuredName}}function warnMalformedAllowDocumentUpload(received){console.warn(`[Checktiv] The sessions/me config carried a non-boolean \`allow_document_upload\` (received ${received}). Treating it as false, so this session will not offer document upload even if the template enables it. This is a server or serializer drift, not a client option.`);}function parseIdvConfig(value){if(!isRecord(value))return null;const documentTypes=value.document_types;const biometricMode=value.biometric_mode;const minAge=value.min_age;if(!Array.isArray(documentTypes)||documentTypes.length<1)return null;const types=[];for(const t of documentTypes){if(!isDocumentType(t))return null;types.push(t);}if(!isBiometricMode(biometricMode))return null;if(minAge!==void 0&&typeof minAge!=="number")return null;const rawAllowDocumentUpload=value.allow_document_upload;if(rawAllowDocumentUpload!==void 0&&typeof rawAllowDocumentUpload!=="boolean"){warnMalformedAllowDocumentUpload(typeof rawAllowDocumentUpload);}const allowDocumentUpload=rawAllowDocumentUpload===true;const config={documentTypes:types,biometricMode,allowDocumentUpload};if(typeof minAge==="number")config.minAge=minAge;return config}function parseSessionData(body){if(!isRecord(body)||!isRecord(body.data))return null;const d=body.data;const sessionId=d.session_id;const stepId=d.step_id;const stepType=d.step_type;if(!isNonEmptyString(sessionId)||!isNonEmptyString(stepId)||!isNonEmptyString(stepType)||!isSdkMode(d.mode)||!isSdkRegion(d.region)){return null}if(!Array.isArray(d.modules)||!d.modules.every(isSdkModule))return null;const modules=d.modules;const wantsIdv=stepType==="id_verification";let config=null;if(wantsIdv){config=parseIdvConfig(d.config);if(config===null)return null}const collectUserInfoConfig=stepType==="collect_user_info"?parseCollectUserInfoConfig(d.config)??void 0:void 0;return {sessionId,stepId,stepType,config,mode:d.mode,region:d.region,modules,...collectUserInfoConfig!==void 0?{collectUserInfoConfig}:{}}}function isJourneyPlaneBody(body){if(!isRecord(body)||!isRecord(body.data))return false;const d=body.data;if("session_id"in d)return false;return isRecord(d.session)||isRecord(d.snapshot)}function isNonRenderableMarker(body){if(!isRecord(body)||!isRecord(body.data))return false;return body.data.renderable===false}function warnWrongTokenPlane(){console.warn("[Checktiv] The session token reached the wrong data plane. For the zero-lifecycle APIs (Checktiv.mount() or collectUserInfo), fetchToken must return your durable client token, which the SDK exchanges for a working token. For a customer-embed Checktiv.init(), getSessionToken must return a browser token.");}async function resolveSession(ctx,fetchImpl){const origin=ctx.apiBaseOrigin;let res;try{res=await withTokenRetry(ctx.tokens,token=>fetchImpl(origin+SESSIONS_ME_PATH,{method:"GET",headers:dataPlaneHeaders(ctx,token)}));}catch(err){if(isChecktivError(err)&&err.code==="session_parked")return {kind:"parked"};return {kind:"unresolved"}}if(!res.ok)return {kind:"unresolved"};let body;try{body=await res.json();}catch{return {kind:"unresolved"}}if(isNonRenderableMarker(body))return {kind:"nothing_to_render"};const data=parseSessionData(body);if(data!==null){ctx.setSessionId(data.sessionId);return {kind:"ok",session:data}}if(isJourneyPlaneBody(body))return {kind:"wrong_token"};return {kind:"unresolved"}}
|
|
6
|
-
|
|
7
|
-
export { isJourneyPlaneBody, isRecord, resolveSession, warnWrongTokenPlane };
|