@didit-protocol/sdk-web 0.1.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/LICENSE +21 -0
- package/README.md +410 -0
- package/dist/didit-sdk.cjs.js +738 -0
- package/dist/didit-sdk.cjs.js.map +1 -0
- package/dist/didit-sdk.esm.js +732 -0
- package/dist/didit-sdk.esm.js.map +1 -0
- package/dist/didit-sdk.umd.js +744 -0
- package/dist/didit-sdk.umd.js.map +1 -0
- package/dist/didit-sdk.umd.min.js +7 -0
- package/dist/didit-sdk.umd.min.js.map +1 -0
- package/dist/index.d.ts +95 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"didit-sdk.esm.js","sources":["../src/constants.ts","../src/utils.ts","../src/modal.ts","../src/DiditSdk.ts"],"sourcesContent":["export const DEFAULT_CONFIG = {\n zIndex: 9999,\n showCloseButton: true,\n showExitConfirmation: true,\n loggingEnabled: false,\n} as const;\n\nexport const CSS_CLASSES = {\n overlay: \"didit-modal-overlay\",\n container: \"didit-modal-container\",\n content: \"didit-modal-content\",\n iframe: \"didit-verification-iframe\",\n closeButton: \"didit-close-button\",\n loading: \"didit-loading\",\n confirmOverlay: \"didit-confirm-overlay\",\n confirmBox: \"didit-confirm-box\"\n} as const;\n\nexport const SDK_VERSION = \"0.1.0\";\n","class SDKLogger {\n private static _enabled = false;\n\n static get isEnabled(): boolean {\n return this._enabled;\n }\n\n static set isEnabled(value: boolean) {\n this._enabled = value;\n }\n\n static log(...args: unknown[]): void {\n if (this._enabled) {\n console.log(\"[DiditSDK]\", ...args);\n }\n }\n\n static warn(...args: unknown[]): void {\n if (this._enabled) {\n console.warn(\"[DiditSDK]\", ...args);\n }\n }\n\n static error(...args: unknown[]): void {\n if (this._enabled) {\n console.error(\"[DiditSDK]\", ...args);\n }\n }\n}\n\nexport { SDKLogger };\n\nexport function generateModalId(): string {\n return `didit-modal-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n}\n\nexport function isAllowedOrigin(origin: string): boolean {\n try {\n const url = new URL(origin);\n return url.hostname.endsWith('.didit.me');\n } catch {\n return false;\n }\n}\n\nexport function createVerificationError(\n type: \"sessionExpired\" | \"networkError\" | \"cameraAccessDenied\" | \"unknown\",\n customMessage?: string\n): { type: typeof type; message: string } {\n const messages = {\n sessionExpired: \"Your verification session has expired.\",\n networkError: \"A network error occurred. Please try again.\",\n cameraAccessDenied: \"Camera access is required for verification.\",\n unknown: customMessage || \"An unknown error occurred.\"\n };\n\n return {\n type,\n message: customMessage || messages[type]\n };\n}\n","import type { DiditSdkConfiguration, VerificationEvent } from \"./types\";\nimport { DEFAULT_CONFIG, CSS_CLASSES } from \"./constants\";\nimport { SDKLogger, generateModalId, isAllowedOrigin } from \"./utils\";\n\nexport interface ModalState {\n isOpen: boolean;\n isLoading: boolean;\n showConfirmation: boolean;\n}\n\nexport interface ModalCallbacks {\n onClose: () => void;\n onCloseConfirmed: () => void;\n onMessage: (event: VerificationEvent) => void;\n onIframeLoad: () => void;\n}\n\nexport class VerificationModal {\n private modalId: string;\n private config: Required<Pick<DiditSdkConfiguration, \"zIndex\" | \"showCloseButton\" | \"showExitConfirmation\">>;\n private callbacks: ModalCallbacks;\n private state: ModalState = {\n isOpen: false,\n isLoading: true,\n showConfirmation: false\n };\n\n private overlay: HTMLDivElement | null = null;\n private container: HTMLDivElement | null = null;\n private iframe: HTMLIFrameElement | null = null;\n private loadingEl: HTMLDivElement | null = null;\n private confirmOverlay: HTMLDivElement | null = null;\n private containerElement: HTMLElement;\n\n private boundHandleMessage: ((event: MessageEvent) => void) | null = null;\n private boundHandleKeydown: ((event: KeyboardEvent) => void) | null = null;\n\n constructor(configuration: DiditSdkConfiguration | undefined, callbacks: ModalCallbacks) {\n this.modalId = generateModalId();\n this.config = {\n zIndex: configuration?.zIndex ?? DEFAULT_CONFIG.zIndex,\n showCloseButton: configuration?.showCloseButton ?? DEFAULT_CONFIG.showCloseButton,\n showExitConfirmation: configuration?.showExitConfirmation ?? DEFAULT_CONFIG.showExitConfirmation\n };\n this.callbacks = callbacks;\n this.containerElement = configuration?.containerElement ?? document.body;\n }\n\n private injectStyles(): void {\n const styleId = \"didit-sdk-styles\";\n if (document.getElementById(styleId)) {\n return;\n }\n\n const styles = document.createElement(\"style\");\n styles.id = styleId;\n styles.textContent = `\n .${CSS_CLASSES.overlay} {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.6);\n z-index: ${this.config.zIndex};\n justify-content: center;\n align-items: center;\n padding: 1rem;\n opacity: 0;\n transition: opacity 0.2s ease-out;\n }\n\n .${CSS_CLASSES.overlay}.active {\n display: flex;\n opacity: 1;\n }\n\n .${CSS_CLASSES.container} {\n position: relative;\n width: 100%;\n max-width: 500px;\n max-height: 90vh;\n border-radius: 16px;\n overflow: hidden;\n background: transparent;\n }\n\n .${CSS_CLASSES.overlay}.active .${CSS_CLASSES.container} {\n transform: scale(1);\n }\n\n .${CSS_CLASSES.iframe} {\n width: 100%;\n height: 700px;\n border: none;\n display: block;\n }\n\n .${CSS_CLASSES.closeButton} {\n position: absolute;\n top: 12px;\n right: 12px;\n width: 24px;\n height: 24px;\n background: transparent;\n border: none;\n cursor: pointer;\n padding: 0;\n z-index: 10;\n outline: none;\n }\n\n .${CSS_CLASSES.closeButton}:hover,\n .${CSS_CLASSES.closeButton}:focus {\n background: transparent;\n opacity: 0.5;\n }\n\n .${CSS_CLASSES.closeButton} svg {\n stroke: #666;\n stroke-width: 2;\n stroke-linecap: round;\n }\n\n .${CSS_CLASSES.loading} {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #fafafa;\n z-index: 5;\n }\n\n .${CSS_CLASSES.loading}.hidden {\n display: none;\n }\n\n .${CSS_CLASSES.loading} svg {\n width: 48px;\n height: 48px;\n animation: didit-spin 1s linear infinite;\n }\n\n .${CSS_CLASSES.loading} circle {\n stroke: #e5e5e5;\n stroke-width: 3;\n fill: none;\n }\n\n .${CSS_CLASSES.loading} path {\n stroke: #525252;\n stroke-width: 3;\n stroke-linecap: round;\n fill: none;\n }\n\n @keyframes didit-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n\n .${CSS_CLASSES.confirmOverlay} {\n display: none;\n position: absolute;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 20;\n justify-content: center;\n align-items: center;\n opacity: 0;\n transition: opacity 0.15s ease-out;\n }\n\n .${CSS_CLASSES.confirmOverlay}.active {\n display: flex;\n opacity: 1;\n }\n\n .${CSS_CLASSES.confirmBox} {\n background: #fff;\n border-radius: 12px;\n padding: 1.5rem;\n text-align: center;\n max-width: 300px;\n margin: 1rem;\n transform: scale(0.95);\n transition: transform 0.15s ease-out;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n }\n\n .${CSS_CLASSES.confirmOverlay}.active .${CSS_CLASSES.confirmBox} {\n transform: scale(1);\n }\n\n .${CSS_CLASSES.confirmBox} h3 {\n color: #1a1a2e;\n margin: 0 0 0.5rem 0;\n font-size: 1.125rem;\n font-weight: 600;\n }\n\n .${CSS_CLASSES.confirmBox} p {\n color: #666;\n font-size: 0.875rem;\n margin: 0 0 1.25rem 0;\n line-height: 1.5;\n }\n\n .didit-confirm-actions {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n }\n\n .didit-confirm-actions button {\n background: #2563eb;\n color: #fff;\n border: none;\n padding: 0.625rem 1.25rem;\n border-radius: 8px;\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .didit-confirm-actions button:hover {\n background: #1d4ed8;\n }\n\n .didit-confirm-actions span {\n color: #666;\n font-size: 0.875rem;\n cursor: pointer;\n padding: 0.625rem;\n transition: color 0.15s ease;\n }\n\n .didit-confirm-actions span:hover {\n color: #1a1a2e;\n }\n\n @media (max-width: 540px) {\n .${CSS_CLASSES.overlay} {\n padding: 0;\n }\n\n .${CSS_CLASSES.container} {\n max-width: 100%;\n max-height: 100vh;\n border-radius: 0;\n }\n\n .${CSS_CLASSES.iframe} {\n height: 100vh;\n }\n }\n `;\n\n document.head.appendChild(styles);\n }\n\n private createDOM(): void {\n this.injectStyles();\n\n this.overlay = document.createElement(\"div\");\n this.overlay.id = this.modalId;\n this.overlay.className = CSS_CLASSES.overlay;\n this.overlay.setAttribute(\"role\", \"dialog\");\n this.overlay.setAttribute(\"aria-modal\", \"true\");\n this.overlay.setAttribute(\"aria-label\", \"Didit Verification\");\n\n this.container = document.createElement(\"div\");\n this.container.className = CSS_CLASSES.container;\n\n this.loadingEl = document.createElement(\"div\");\n this.loadingEl.className = CSS_CLASSES.loading;\n this.loadingEl.innerHTML = `\n <svg viewBox=\"0 0 24 24\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 2a10 10 0 0 1 10 10\" />\n </svg>\n `;\n\n if (this.config.showCloseButton) {\n const closeBtn = document.createElement(\"button\");\n closeBtn.className = CSS_CLASSES.closeButton;\n closeBtn.setAttribute(\"aria-label\", \"Close verification\");\n closeBtn.innerHTML = `\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\">\n <line x1=\"1\" y1=\"1\" x2=\"13\" y2=\"13\" />\n <line x1=\"13\" y1=\"1\" x2=\"1\" y2=\"13\" />\n </svg>\n `;\n closeBtn.addEventListener(\"click\", () => this.handleCloseRequest());\n this.container.appendChild(closeBtn);\n }\n\n this.iframe = document.createElement(\"iframe\");\n this.iframe.className = CSS_CLASSES.iframe;\n this.iframe.setAttribute(\"allow\", \"camera; microphone; fullscreen; autoplay; encrypted-media; geolocation\");\n this.iframe.setAttribute(\"title\", \"Didit Verification\");\n this.iframe.addEventListener(\"load\", () => this.handleIframeLoad());\n\n this.confirmOverlay = document.createElement(\"div\");\n this.confirmOverlay.className = CSS_CLASSES.confirmOverlay;\n this.confirmOverlay.innerHTML = `\n <div class=\"${CSS_CLASSES.confirmBox}\">\n <h3>Exit verification?</h3>\n <p>Exiting will end your verification process. Are you sure?</p>\n <div class=\"didit-confirm-actions\">\n <button type=\"button\" data-action=\"continue\">Continue</button>\n <span data-action=\"exit\">Exit</span>\n </div>\n </div>\n `;\n\n this.confirmOverlay.querySelector('[data-action=\"continue\"]')?.addEventListener(\"click\", () => {\n this.hideConfirmation();\n });\n this.confirmOverlay.querySelector('[data-action=\"exit\"]')?.addEventListener(\"click\", () => {\n this.confirmExit();\n });\n\n this.container.appendChild(this.loadingEl);\n this.container.appendChild(this.iframe);\n this.container.appendChild(this.confirmOverlay);\n this.overlay.appendChild(this.container);\n\n this.overlay.addEventListener(\"click\", (e) => {\n if (e.target === this.overlay) {\n this.handleCloseRequest();\n }\n });\n\n this.containerElement.appendChild(this.overlay);\n }\n\n private setupEventListeners(): void {\n this.boundHandleMessage = this.handleMessage.bind(this);\n window.addEventListener(\"message\", this.boundHandleMessage);\n\n this.boundHandleKeydown = this.handleKeydown.bind(this);\n document.addEventListener(\"keydown\", this.boundHandleKeydown);\n }\n\n private removeEventListeners(): void {\n if (this.boundHandleMessage) {\n window.removeEventListener(\"message\", this.boundHandleMessage);\n this.boundHandleMessage = null;\n }\n if (this.boundHandleKeydown) {\n document.removeEventListener(\"keydown\", this.boundHandleKeydown);\n this.boundHandleKeydown = null;\n }\n }\n\n private handleMessage(event: MessageEvent): void {\n if (!isAllowedOrigin(event.origin)) {\n return;\n }\n\n SDKLogger.log(\"Received postMessage:\", event.data);\n\n let messageData: VerificationEvent;\n try {\n if (typeof event.data === \"string\") {\n messageData = JSON.parse(event.data);\n } else {\n messageData = event.data;\n }\n } catch {\n SDKLogger.warn(\"Failed to parse postMessage:\", event.data);\n return;\n }\n\n if (messageData.type === \"didit:close_request\") {\n this.handleCloseRequest();\n return;\n }\n\n this.callbacks.onMessage(messageData);\n }\n\n private handleKeydown(event: KeyboardEvent): void {\n if (!this.state.isOpen) return;\n\n if (event.key === \"Escape\") {\n event.preventDefault();\n if (this.state.showConfirmation) {\n this.hideConfirmation();\n } else {\n this.handleCloseRequest();\n }\n }\n }\n\n private handleIframeLoad(): void {\n if (this.iframe?.src && this.iframe.src !== \"about:blank\") {\n this.state.isLoading = false;\n this.loadingEl?.classList.add(\"hidden\");\n this.callbacks.onIframeLoad();\n }\n }\n\n private handleCloseRequest(): void {\n if (this.config.showExitConfirmation) {\n this.showConfirmation();\n } else {\n this.callbacks.onCloseConfirmed();\n }\n }\n\n private showConfirmation(): void {\n this.state.showConfirmation = true;\n this.confirmOverlay?.classList.add(\"active\");\n this.callbacks.onClose();\n }\n\n private hideConfirmation(): void {\n this.state.showConfirmation = false;\n this.confirmOverlay?.classList.remove(\"active\");\n }\n\n private confirmExit(): void {\n this.hideConfirmation();\n this.callbacks.onCloseConfirmed();\n }\n\n open(verificationUrl: string): void {\n if (!this.overlay) {\n this.createDOM();\n this.setupEventListeners();\n }\n\n SDKLogger.log(\"Opening modal with URL:\", verificationUrl);\n\n this.state.isLoading = true;\n this.state.showConfirmation = false;\n this.loadingEl?.classList.remove(\"hidden\");\n this.confirmOverlay?.classList.remove(\"active\");\n\n if (this.iframe) {\n this.iframe.src = verificationUrl;\n }\n\n this.state.isOpen = true;\n this.overlay?.classList.add(\"active\");\n\n document.body.style.overflow = \"hidden\";\n }\n\n close(): void {\n SDKLogger.log(\"Closing modal\");\n\n this.state.isOpen = false;\n this.state.isLoading = true;\n this.state.showConfirmation = false;\n\n this.overlay?.classList.remove(\"active\");\n\n if (this.iframe) {\n this.iframe.src = \"about:blank\";\n }\n\n document.body.style.overflow = \"\";\n }\n\n destroy(): void {\n SDKLogger.log(\"Destroying modal\");\n\n this.close();\n this.removeEventListeners();\n\n if (this.overlay && this.overlay.parentNode) {\n this.overlay.parentNode.removeChild(this.overlay);\n }\n\n this.overlay = null;\n this.container = null;\n this.iframe = null;\n this.loadingEl = null;\n this.confirmOverlay = null;\n }\n\n isOpen(): boolean {\n return this.state.isOpen;\n }\n\n isLoading(): boolean {\n return this.state.isLoading;\n }\n}\n","import type {\n DiditSdkState,\n DiditSdkConfiguration,\n VerificationResult,\n VerificationCallback,\n StateChangeCallback,\n EventCallback,\n VerificationEvent,\n SessionData,\n VerificationStatus,\n StartVerificationOptions\n} from \"./types\";\n\nimport { VerificationModal } from \"./modal\";\nimport { DEFAULT_CONFIG } from \"./constants\";\nimport { SDKLogger, createVerificationError } from \"./utils\";\n\nexport class DiditSdk {\n private static _instance: DiditSdk | null = null;\n\n public static get shared(): DiditSdk {\n if (!DiditSdk._instance) {\n DiditSdk._instance = new DiditSdk();\n }\n return DiditSdk._instance;\n }\n\n public static reset(): void {\n if (DiditSdk._instance) {\n DiditSdk._instance.destroy();\n DiditSdk._instance = null;\n }\n }\n\n private _state: DiditSdkState = \"idle\";\n private _configuration: DiditSdkConfiguration | undefined;\n private _sessionId: string | undefined;\n private _url: string | undefined;\n private _modal: VerificationModal | null = null;\n private _errorMessage: string | undefined;\n\n public onComplete: VerificationCallback | undefined;\n public onStateChange: StateChangeCallback | undefined;\n public onEvent: EventCallback | undefined;\n\n public get state(): DiditSdkState {\n return this._state;\n }\n\n public get configuration(): DiditSdkConfiguration | undefined {\n return this._configuration;\n }\n\n public get isPresented(): boolean {\n return this._modal?.isOpen() ?? false;\n }\n\n public get errorMessage(): string | undefined {\n return this._errorMessage;\n }\n\n private constructor() {\n SDKLogger.log(\"DiditSdk initialized\");\n }\n\n public async startVerification(options: StartVerificationOptions): Promise<void> {\n const config = options.configuration;\n this._configuration = config;\n\n SDKLogger.isEnabled = config?.loggingEnabled ?? DEFAULT_CONFIG.loggingEnabled;\n\n SDKLogger.log(\"Starting verification with options:\", options);\n\n this._modal = new VerificationModal(config, {\n onClose: () => this.handleModalClose(),\n onCloseConfirmed: () => this.handleModalCloseConfirmed(),\n onMessage: (event) => this.handleVerificationEvent(event),\n onIframeLoad: () => this.handleIframeLoad()\n });\n\n try {\n const { url } = options;\n\n if (!url || typeof url !== \"string\") {\n throw new Error(\"Invalid options: url is required\");\n }\n\n this._url = url;\n this.setState(\"loading\");\n\n this.emitInternalEvent(\"didit:started\", {});\n\n this._modal?.open(this._url);\n this.setState(\"ready\");\n } catch (error) {\n this.handleError(error);\n }\n }\n\n public close(): void {\n SDKLogger.log(\"Closing verification programmatically\");\n this.handleModalCloseConfirmed();\n }\n\n public destroy(): void {\n SDKLogger.log(\"Destroying SDK instance\");\n this._modal?.destroy();\n this._modal = null;\n this.reset();\n }\n\n private handleModalClose(): void {\n SDKLogger.log(\"Modal close requested\");\n }\n\n private handleModalCloseConfirmed(): void {\n SDKLogger.log(\"Modal close confirmed\");\n\n const sessionData = this.buildSessionData();\n\n this._modal?.close();\n this.reset();\n\n const result: VerificationResult = {\n type: \"cancelled\",\n session: sessionData\n };\n\n this.onComplete?.(result);\n }\n\n private handleIframeLoad(): void {\n SDKLogger.log(\"Iframe loaded\");\n\n this.emitInternalEvent(\"didit:ready\", {\n sessionId: this._sessionId\n });\n }\n\n private emitInternalEvent(type: VerificationEvent[\"type\"], data?: VerificationEvent[\"data\"]): void {\n const event: VerificationEvent = {\n type,\n data,\n timestamp: Date.now()\n };\n\n SDKLogger.log(\"Emitting internal event:\", event);\n this.onEvent?.(event);\n }\n\n private handleVerificationEvent(event: VerificationEvent): void {\n SDKLogger.log(\"Verification event:\", event);\n\n this.onEvent?.(event);\n\n switch (event.type) {\n case \"didit:ready\":\n SDKLogger.log(\"Verification iframe ready\");\n break;\n\n case \"didit:started\":\n SDKLogger.log(\"User started verification\");\n break;\n\n case \"didit:step_started\":\n SDKLogger.log(\"Step started:\", event.data?.step);\n break;\n\n case \"didit:step_completed\":\n SDKLogger.log(\"Step completed:\", event.data?.step, \"-> next:\", event.data?.nextStep);\n break;\n\n case \"didit:media_started\":\n SDKLogger.log(\"Media started:\", event.data?.mediaType, \"for step:\", event.data?.step);\n break;\n\n case \"didit:media_captured\":\n SDKLogger.log(\"Media captured for step:\", event.data?.step, \"isAuto:\", event.data?.isAuto);\n break;\n\n case \"didit:document_selected\":\n SDKLogger.log(\"Document selected:\", event.data?.documentType, \"country:\", event.data?.country);\n break;\n\n case \"didit:verification_submitted\":\n SDKLogger.log(\"Verification submitted for step:\", event.data?.step);\n break;\n\n case \"didit:code_sent\":\n SDKLogger.log(\"Code sent via:\", event.data?.channel, \"codeSize:\", event.data?.codeSize);\n break;\n\n case \"didit:code_verified\":\n SDKLogger.log(\"Code verified via:\", event.data?.channel);\n break;\n\n case \"didit:status_updated\":\n SDKLogger.log(\"Status updated:\", event.data?.status, \"step:\", event.data?.step);\n break;\n\n case \"didit:completed\":\n this.handleVerificationCompleted(event);\n break;\n\n case \"didit:cancelled\":\n this.handleVerificationCancelled(event);\n break;\n\n case \"didit:error\":\n this.handleVerificationError(event);\n break;\n\n case \"didit:step_changed\":\n SDKLogger.log(\"Step changed:\", event.data?.step);\n break;\n\n case \"didit:close_request\":\n break;\n }\n }\n\n private handleVerificationCompleted(event: VerificationEvent): void {\n SDKLogger.log(\"Verification completed:\", event.data);\n\n const sessionData = this.buildSessionData(event.data);\n\n this._modal?.close();\n this.reset();\n\n const result: VerificationResult = {\n type: \"completed\",\n session: sessionData\n };\n\n this.onComplete?.(result);\n }\n\n private handleVerificationCancelled(event: VerificationEvent): void {\n SDKLogger.log(\"Verification cancelled:\", event.data);\n\n const sessionData = this.buildSessionData(event.data);\n\n this._modal?.close();\n this.reset();\n\n const result: VerificationResult = {\n type: \"cancelled\",\n session: sessionData\n };\n\n this.onComplete?.(result);\n }\n\n private handleVerificationError(event: VerificationEvent): void {\n SDKLogger.log(\"Verification error:\", event.data);\n\n const sessionData = this.buildSessionData(event.data);\n const error = createVerificationError(\"unknown\", event.data?.error);\n\n this._modal?.close();\n this.reset();\n\n const result: VerificationResult = {\n type: \"failed\",\n session: sessionData,\n error\n };\n\n this.onComplete?.(result);\n }\n\n private handleError(error: unknown): void {\n SDKLogger.error(\"SDK error:\", error);\n\n let verificationError;\n\n if (error instanceof Error) {\n verificationError = createVerificationError(\"unknown\", error.message);\n } else {\n verificationError = createVerificationError(\"unknown\", \"An unknown error occurred\");\n }\n\n this._errorMessage = verificationError.message;\n this.setState(\"error\");\n\n this._modal?.close();\n this.reset();\n\n const result: VerificationResult = {\n type: \"failed\",\n error: verificationError\n };\n\n this.onComplete?.(result);\n }\n\n private setState(state: DiditSdkState): void {\n const previousState = this._state;\n this._state = state;\n\n if (previousState !== state) {\n SDKLogger.log(\"State changed:\", previousState, \"->\", state);\n this.onStateChange?.(state, this._errorMessage);\n }\n }\n\n private reset(): void {\n this._state = \"idle\";\n this._sessionId = undefined;\n this._url = undefined;\n this._errorMessage = undefined;\n this._configuration = undefined;\n }\n\n private buildSessionData(eventData?: VerificationEvent[\"data\"]): SessionData | undefined {\n const sessionId = eventData?.sessionId || this._sessionId;\n\n if (!sessionId) {\n return undefined;\n }\n\n return {\n sessionId,\n status: (eventData?.status || \"Pending\") as VerificationStatus,\n country: eventData?.country,\n documentType: eventData?.documentType\n };\n }\n}\n"],"names":[],"mappings":"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"}
|