@sanctum-key/react-native-sdk 1.0.46 → 1.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/build/package.json +1 -1
  2. package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -1
  3. package/build/src/components/KYCElements/IDCardCapture.js +85 -23
  4. package/build/src/components/KYCElements/IDCardCapture.js.map +1 -1
  5. package/build/src/components/KYCElements/VerificationProgressTemplate.d.ts.map +1 -1
  6. package/build/src/components/KYCElements/VerificationProgressTemplate.js +49 -53
  7. package/build/src/components/KYCElements/VerificationProgressTemplate.js.map +1 -1
  8. package/build/src/hooks/useTemplateKYCFlow.d.ts.map +1 -1
  9. package/build/src/hooks/useTemplateKYCFlow.js +15 -1
  10. package/build/src/hooks/useTemplateKYCFlow.js.map +1 -1
  11. package/build/src/modules/api/CardAuthentification.d.ts.map +1 -1
  12. package/build/src/modules/api/CardAuthentification.js +37 -59
  13. package/build/src/modules/api/CardAuthentification.js.map +1 -1
  14. package/build/src/modules/api/KYCService.d.ts.map +1 -1
  15. package/build/src/modules/api/KYCService.js +7 -2
  16. package/build/src/modules/api/KYCService.js.map +1 -1
  17. package/build/src/types/KYC.types.d.ts +1 -0
  18. package/build/src/types/KYC.types.d.ts.map +1 -1
  19. package/build/src/types/KYC.types.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/components/KYCElements/IDCardCapture.tsx +99 -24
  22. package/src/components/KYCElements/VerificationProgressTemplate.tsx +52 -49
  23. package/src/hooks/useTemplateKYCFlow.tsx +19 -1
  24. package/src/modules/api/CardAuthentification.ts +205 -238
  25. package/src/modules/api/KYCService.ts +9 -2
  26. package/src/types/KYC.types.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"CardAuthentification.js","sourceRoot":"","sources":["../../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"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","sourcesContent":["import kycService, { authentification, errorMessage, truncateFields } from \"./KYCService\";\nimport { cropByObb, getObbConfidence, OBB_CONFIDENCE_THRESHOLD } from \"../../utils/cropByObb\";\nimport { GovernmentDocumentType, IBbox } from \"../../types/KYC.types\";\nimport { KycEnvironment } from \"../../types/env.types\";\nimport { logger } from \"../../utils/logger\";\nimport { countryData } from \"../../config/countriesData\";\n\ninterface CardObbData {\n obb: number[][];\n confidence: number;\n card_in_frame?: boolean;\n cropped_sides?: string[];\n}\n\ninterface ApiVerificationResponse {\n result?: boolean;\n success?: boolean;\n detail?: any[];\n card_obb?: CardObbData[] | any;\n template_path?: string;\n Error?: any;\n [key: string]: any;\n}\n\nexport async function frontVerification(\n result: {\n path?: string,\n regionMapping: { authMethod: string[], mrzTypes: string[] },\n selectedDocumentType: string,\n code: string,\n currentSide: string,\n templatePath?: string,\n mrzType?: string,\n issuingSubdivision?: string,\n clientSideBarcodeData?: string // 🚨 ADDED: Accept the SDK barcode data\n },\n env: KycEnvironment = 'PRODUCTION'\n) {\n try {\n console.log(\"Front verification START\", JSON.stringify({ result }, null, 2));\n logger.log(\"Front verification\", JSON.stringify({ result }, null, 2));\n \n const authMethods = Array.isArray(result.regionMapping?.authMethod)\n ? result.regionMapping.authMethod.map(m => String(m).toUpperCase())\n : [];\n \n const hasMrz = authMethods.some(m => m.includes('MRZ'));\n const hasBarcode = authMethods.some(m => m.includes('BARCODE') || m.includes('2D'));\n \n if (env === 'SANDBOX') {\n console.log(\"SANDBOX mode: Skipping AI verification for front document\");\n const mockBbox: IBbox = { minX: 400, minY: 800, width: 2200, height: 1400 };\n const mockResponse = {\n result: true,\n detail: [{ confidence: 0.95 }],\n card_obb: [{\n obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]],\n confidence: 0.95,\n card_in_frame: true,\n cropped_sides: []\n }],\n bbox: mockBbox,\n ...(hasMrz ? {\n mrz: {\n success: true,\n parsed_data: { status: 'SUCCESS', document_type: result.selectedDocumentType, mrz_type: result.mrzType || 'TD1' }\n }\n } : {}),\n ...(hasBarcode ? {\n barcode: { barcode_data: 'SANDBOX_MOCK_BARCODE' }\n } : {})\n };\n return mockResponse;\n }\n \n const token = await authentification();\n const detected = await kycService.detectFaceOnId(\n result?.path || '', token, result?.selectedDocumentType || '', env\n ) as ApiVerificationResponse;\n \n if (!detected.result) {\n throw new Error('Aucun visage détecté sur la carte. Veuillez reprendre.');\n }\n \n const cardData = detected.card_obb && Array.isArray(detected.card_obb) && detected.card_obb.length > 0\n ? detected.card_obb[0]\n : null;\n \n let points: number[][] | null = null;\n console.log(points);\n let isCardInFrame = true;\n let hasCroppedSides = false;\n \n if (cardData) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Front Framing failed. Cropped sides detected by backend.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const obbConfidence = getObbConfidence(detected.card_obb);\n if (obbConfidence !== null && obbConfidence < OBB_CONFIDENCE_THRESHOLD) {\n throw new Error('Carte non entièrement visible. Positionnez toute la carte dans le cadre.');\n }\n \n let croppedBase64: string | undefined;\n let bbox: IBbox | undefined;\n let mrz: any | undefined;\n let barcode: any | undefined;\n let documentData: any | undefined;\n \n try {\n const crop = await cropByObb(result?.path || '', detected.card_obb);\n croppedBase64 = crop.base64;\n bbox = crop.bbox;\n } catch { }\n \n if (result.code === 'CA') {\n try {\n logger.log(\"Tentative d'extraction OCR (Front) - Canada Only\");\n documentData = await kycService.extractDocumentInformation({\n fileUri: result.path || '',\n docType: result.selectedDocumentType,\n docRegion: result.code,\n templatePath: result.templatePath || '',\n issuingSubdivision: result.issuingSubdivision,\n token: token,\n postfix: result.currentSide || 'front'\n });\n if (documentData?.no_data || (documentData && documentData.data && Object.keys(documentData.data).length === 0)) {\n logger.log(\"Front OCR Extraction Failed: Backend returned empty data dict.\");\n if (!hasBarcode && !hasMrz) {\n throw new Error(\"Impossible de lire les informations du document. L'image est peut-être floue ou mal éclairée.\");\n }\n }\n } catch (err: any) {\n const errorMsg = typeof err === 'object' ? JSON.stringify(err) : err;\n logger.log(\"Front OCR Extraction Error:\", errorMsg);\n throw new Error(err?.message || \"Impossible d'extraire les données. Veuillez reprendre la photo.\");\n }\n }\n \n if (hasMrz) {\n try {\n logger.log(\"Tentative d'extraction MRZ (Front)\");\n const mrzResponse = await kycService.extractMrzText(\n {\n fileUri: result.path || '',\n docType: result?.selectedDocumentType || '',\n docRegion: result?.code || \"\",\n postfix: result?.currentSide || 'front',\n token: token,\n template_path: result?.templatePath || '',\n mrz_type: result?.mrzType || 'TD1'\n },\n env\n );\n \n mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;\n \n if (mrz?.parsed_data?.status === 'FAILURE' || mrz?.success === false) {\n logger.log(\"Front MRZ Extraction Failed:\", mrz?.parsed_data?.status_message);\n throw new Error(`MRZ illisible: ${mrz?.parsed_data?.status_message || 'Veuillez nettoyer l\\'objectif et réessayer'}`);\n }\n } catch (err: any) {\n logger.log(\"MRZ Extraction Error:\", err);\n throw new Error(err?.message || \"Erreur lors de l'extraction MRZ. Veuillez reprendre la photo.\");\n }\n }\n \n\n \n return {\n ...detected,\n croppedBase64,\n bbox,\n ...(mrz ? { mrz } : {}),\n ...(barcode ? { barcode } : {}),\n ...(documentData ? { documentData } : {})\n };\n \n } catch (e: any) {\n logger.log('Error front verification:', e?.message);\n throw new Error(e?.message || 'Erreur de détection du visage');\n }\n}\n\nexport async function backVerification(\n result: {\n path?: string,\n regionMapping: { authMethod: string[], mrzTypes: string[] },\n selectedDocumentType: string,\n code: string,\n currentSide: string,\n templatePath?: string,\n mrzType?: string,\n templateResponse?: ApiVerificationResponse,\n issuingSubdivision?: string,\n frontTemplatePath?: string,\n clientSideBarcodeData?: string // 🚨 ADDED: Accept the SDK barcode data\n },\n env: KycEnvironment = 'PRODUCTION'\n) {\n try {\n if (!result.path) throw new Error('No path provided');\n logger.log(\"result.regionMapping\", result.regionMapping, result.currentSide, result.code);\n \n const authMethods = Array.isArray(result.regionMapping?.authMethod)\n ? result.regionMapping.authMethod.map(m => String(m).toUpperCase())\n : [];\n \n const hasMrz = authMethods.some(m => m.includes('MRZ'));\n const hasBarcode = authMethods.some(m => m.includes('BARCODE') || m.includes('2D'));\n \n if (env === 'SANDBOX') {\n console.log(\"SANDBOX mode: Skipping AI verification for back document\");\n const mockBbox: IBbox = { minX: 400, minY: 800, width: 2200, height: 1400 };\n const mockCardObb = [{\n obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]],\n confidence: 0.95,\n card_in_frame: true,\n cropped_sides: []\n }];\n \n if (hasMrz) {\n return {\n success: true,\n mrz: {\n success: true,\n parsed_data: { status: 'SUCCESS', document_type: result.selectedDocumentType, mrz_type: result.mrzType || 'TD1' }\n },\n bbox: mockBbox,\n card_obb: mockCardObb\n };\n } else if (hasBarcode) {\n return {\n success: true,\n barcode: { barcode_data: 'SANDBOX_MOCK_BARCODE' },\n bbox: mockBbox,\n card_obb: mockCardObb\n };\n }\n return { success: true, bbox: mockBbox, card_obb: mockCardObb };\n }\n \n const token = await authentification();\n logger.log(\"1. Checking template and framing for back document...\");\n \n const templateResponse: ApiVerificationResponse = result.templateResponse ||\n await kycService.checkTemplateType({\n fileUri: result.path,\n docType: result.selectedDocumentType as any,\n docRegion: result.code,\n postfix: 'back',\n token: token,\n }, env);\n \n if (templateResponse.success === false || templateResponse.Error) {\n throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');\n }\n \n const cardData = templateResponse?.card_obb && Array.isArray(templateResponse.card_obb) && templateResponse.card_obb.length > 0\n ? templateResponse.card_obb[0]\n : null;\n \n if (!cardData) throw new Error('CARD_NOT_FULLY_IN_FRAME');\n \n let points: number[][] | null = null;\n console.log(points);\n let isCardInFrame = false;\n let hasCroppedSides = true;\n \n if (cardData.obb) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n } else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {\n points = cardData[0];\n isCardInFrame = true;\n hasCroppedSides = false;\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Back Framing failed. Backend reported document out of bounds.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const obbConf = getObbConfidence(templateResponse?.card_obb);\n if (obbConf !== null && obbConf < OBB_CONFIDENCE_THRESHOLD) {\n throw new Error('Carte non entièrement visible. Positionnez toute la carte dans le cadre.');\n }\n \n const activeTemplatePath = templateResponse.template_path || result.templatePath || '';\n \n if (activeTemplatePath) {\n const countryInfo = countryData[result.code];\n \n const countryName = countryInfo?.name_en || countryInfo?.name || '';\n \n const hasCodeMatch = activeTemplatePath.toUpperCase().includes(`_${result.code.toUpperCase()}_`) || \n activeTemplatePath.toUpperCase().includes(`${result.code.toUpperCase()}/`);\n \n const hasNameMatch = countryName && activeTemplatePath.toLowerCase().includes(countryName.toLowerCase());\n\n // 5. If NEITHER match, throw the error\n if (!hasCodeMatch && !hasNameMatch) {\n logger.log(`Template mismatch! Expected region: ${result.code} (${countryName}), Detected: ${activeTemplatePath}`);\n throw new Error(`Le document ne correspond pas au pays sélectionné (${result.code}).`);\n }\n }\n \n if (result.frontTemplatePath && activeTemplatePath) {\n try {\n const frontPy = result.frontTemplatePath.split(\"/\").pop()?.replace(/\\.(jpg|png)$/i, \".py\");\n const backPy = activeTemplatePath.split(\"/\").pop()?.replace(/\\.(jpg|png)$/i, \".py\");\n \n if (frontPy && backPy) {\n logger.log(`Validating Front (${frontPy}) vs Back (${backPy}) for region ${result.code}`);\n \n const isCanadianSubRegionDoc = result.code === 'CA' && ['pr'].includes(result.selectedDocumentType);\n const safeSubRegion = isCanadianSubRegionDoc ? (result.issuingSubdivision || \"\") : \"\";\n \n const matchValidation = await kycService.validateBackTemplate({\n region: result.code,\n docType: result.selectedDocumentType,\n frontTemplateName: frontPy,\n backTemplateName: backPy,\n subRegion: safeSubRegion,\n token: token\n }, env);\n \n if (!matchValidation || matchValidation.is_match === false) {\n logger.log(`Front/Back Mismatch: ${matchValidation?.status_message}`);\n throw new Error(`Le verso ne correspond pas au recto fourni. Vous avez scanné un document différent.`);\n }\n }\n } catch (err: any) {\n if (err?.message?.includes('ne correspond pas')) throw err;\n logger.log(\"Template matching validation skipped/failed internally:\", err?.message);\n }\n }\n \n logger.log(\"Framing, Country, and Match verified successfully. Proceeding to Data Extraction.\");\n let extractionResult: any = {};\n \n if (result.code === 'CA') {\n try {\n logger.log(\"Tentative d'extraction OCR (Back) - Canada Only\");\n const documentData = await kycService.extractDocumentInformation({\n fileUri: result.path!,\n docType: result.selectedDocumentType,\n docRegion: result.code,\n templatePath: activeTemplatePath,\n issuingSubdivision: result.issuingSubdivision,\n token: token,\n postfix: result.currentSide || 'back'\n });\n \n if (documentData?.no_data || (documentData?.data && Object.keys(documentData.data).length === 0)) {\n logger.log(\"Back OCR Extraction: No text data found (Normal for barcode-only sides).\");\n if (!hasBarcode && !hasMrz) {\n throw new Error(\"Impossible de lire les informations du document. L'image est peut-être floue ou mal éclairée.\");\n }\n } else {\n extractionResult.documentData = documentData;\n }\n } catch (err: any) {\n const errorMsg = typeof err === 'object' ? JSON.stringify(err) : err;\n logger.log(\"Back OCR Extraction Error:\", errorMsg);\n throw new Error(err?.message || \"Impossible d'extraire les données. Veuillez reprendre la photo.\");\n }\n }\n \n if (hasMrz) {\n try {\n logger.log(\"Tentative d'extraction MRZ (Back)\");\n const mrzResponse = await kycService.extractMrzText({\n fileUri: result.path!,\n docType: result?.selectedDocumentType || '',\n docRegion: result?.code || '',\n postfix: result?.currentSide || 'back',\n token: token,\n template_path: activeTemplatePath,\n mrz_type: result?.mrzType || 'TD1'\n }, env);\n \n const mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;\n \n if (mrz?.parsed_data?.status === 'FAILURE' || mrz?.success === false) {\n throw new Error(mrz?.parsed_data?.status_message || 'Lecture MRZ échouée');\n }\n extractionResult.mrz = mrz;\n } catch (mrzError: any) {\n logger.log(`MRZ échoué: ${mrzError?.message}`);\n throw new Error(`Lecture MRZ invalide: ${mrzError?.message || 'Veuillez nettoyer l\\'objectif et réessayer'}`);\n }\n }\n \n \n let bbox: IBbox | undefined;\n let croppedBase64: string | undefined;\n try {\n const crop = await cropByObb(result?.path || '', templateResponse.card_obb);\n bbox = crop.bbox;\n croppedBase64 = crop.base64;\n } catch { }\n \n return {\n success: true,\n ...extractionResult,\n bbox,\n croppedBase64,\n card_obb: templateResponse.card_obb\n };\n \n } catch (e: any) {\n if (e?.message === 'CARD_NOT_FULLY_IN_FRAME') throw e;\n throw new Error(e?.message || 'Erreur de détection des données');\n }\n}\n\nexport async function checkTemplateType(\n result: { \n path?: string, \n docType: string, \n docRegion: string, \n postfix: string,\n issuingSubdivision?: string \n },\n env: KycEnvironment = 'PRODUCTION'\n) {\n try {\n if (env === 'SANDBOX') {\n return {\n template_path: `templates/${result.docType}_${result.docRegion}_${result.postfix}.jpg`,\n card_obb: [{\n obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]],\n confidence: 0.95,\n card_in_frame: true,\n cropped_sides: []\n }]\n };\n }\n \n const token = await authentification();\n const isCanada = result.docRegion?.toUpperCase() === 'CA';\n \n const templateType = await kycService.checkTemplateType({\n fileUri: result.path || '',\n docType: result?.docType as GovernmentDocumentType,\n docRegion: result?.docRegion || \"\",\n postfix: result?.postfix,\n token: token,\n issuingSubdivision: isCanada ? result.issuingSubdivision : undefined\n }, env);\n \n if (templateType.success === false || templateType.Error) {\n logger.log(\"Backend returned an error:\", templateType.Error);\n throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');\n }\n \n const cardData = templateType.card_obb && Array.isArray(templateType.card_obb) && templateType.card_obb.length > 0\n ? templateType.card_obb[0]\n : null;\n \n if (!cardData) throw new Error('CARD_NOT_FULLY_IN_FRAME');\n \n let points: number[][] | null = null;\n console.log(points)\n let isCardInFrame = false;\n let hasCroppedSides = true;\n \n if (cardData.obb) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n } else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {\n points = cardData[0];\n isCardInFrame = true;\n hasCroppedSides = false;\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Template Framing failed by backend check.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const LPIPS_THRESHOLD = 0.75;\n if (templateType.lpips_score !== undefined && templateType.lpips_score > LPIPS_THRESHOLD) {\n logger.log(`Country Mismatch! LPIPS: ${templateType.lpips_score}`);\n throw new Error(`Le document présenté ne correspond pas au pays sélectionné (${result.docRegion}).`);\n }\n \n logger.log(\"templateType result\", JSON.stringify(truncateFields(templateType), null, 2));\n return templateType;\n \n } catch (e: any) {\n logger.log('Error checking template type:', JSON.stringify(errorMessage(e), null, 2));\n if (e?.response?.status === 401 || e?.response?.status === 403 || e?.isAxiosError) {\n throw e; \n }\n if (e?.message === 'CARD_NOT_FULLY_IN_FRAME' || e?.message?.includes('ne correspond pas')) throw e;\n throw new Error(e?.message || 'Erreur de vérification du template');\n }\n}"]}
1
+ {"version":3,"file":"CardAuthentification.js","sourceRoot":"","sources":["../../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAG9F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAmBzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAA6P,EAC7P,MAAsB,YAAY;IAElC,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7I,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;YACzE,MAAM,QAAQ,GAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5E,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC5C,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;gBACnI,IAAI,EAAE,QAAQ;gBACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChK,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;YACF,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,cAAc,CAC9C,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,IAAI,EAAE,EAAE,GAAG,CACxC,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrI,IAAI,MAAM,GAAsB,IAAI,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;YACtB,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAClD,aAAa,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC;gBAChD,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,GAAG,wBAAwB,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,aAAiC,CAAC;QACtC,IAAI,IAAuB,CAAC;QAC5B,IAAI,GAAoB,CAAC;QACzB,IAAI,OAAwB,CAAC;QAC7B,IAAI,YAA6B,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpE,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QAEX,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAC/D,YAAY,GAAG,MAAM,UAAU,CAAC,0BAA0B,CAAC;oBACzD,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,oBAAoB,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,OAAO;iBACvO,CAAC,CAAC;gBAEH,IAAI,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBAChH,MAAM,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;oBAC7E,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;oBACnH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,sDAAsD;gBACtD,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;oBAAE,MAAM,GAAG,CAAC;gBAErG,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrE,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,iEAAiE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBACjD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CACjD,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,EAAE,EAAE,GAAG,CACtP,CAAC;gBACF,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAE9E,IAAI,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,SAAS,IAAI,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;oBACrE,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;oBAC7E,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,WAAW,EAAE,cAAc,IAAI,4CAA4C,EAAE,CAAC,CAAC;gBACxH,CAAC;YACH,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,sDAAsD;gBACtD,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG;oBAAE,MAAM,GAAG,CAAC;gBAErG,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,+DAA+D,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,OAAO,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAEnJ,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,2BAA2B,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAEpD,mFAAmF;QACnF,sFAAsF;QACtF,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;YACxD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,+BAA+B,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,MAYC,EACD,MAAsB,YAAY;IAElC,IAAI,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAE1F,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC;YAC/D,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACnE,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpF,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAC5E,MAAM,WAAW,GAAG,CAAC;oBACjB,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBACzD,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,IAAI;oBACnB,aAAa,EAAE,EAAE;iBACpB,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,GAAG,EAAE;wBACD,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE;qBACpH;oBACD,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,WAAW;iBACxB,CAAC;YACN,CAAC;iBAAM,IAAI,UAAU,EAAE,CAAC;gBACpB,OAAO;oBACH,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,EAAE,YAAY,EAAE,sBAAsB,EAAE;oBACjD,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,WAAW;iBACxB,CAAC;YACN,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAEpE,MAAM,gBAAgB,GAA4B,MAAM,CAAC,gBAAgB;YACrE,MAAM,UAAU,CAAC,iBAAiB,CAAC;gBAC/B,OAAO,EAAE,MAAM,CAAC,IAAI;gBACpB,OAAO,EAAE,MAAM,CAAC,oBAA2B;gBAC3C,SAAS,EAAE,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,KAAK;aACf,EAAE,GAAG,CAAC,CAAC;QAEZ,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACzG,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC3H,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1D,IAAI,MAAM,GAAsB,IAAI,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,eAAe,GAAG,IAAI,CAAC;QAE3B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;YACtB,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAChD,aAAa,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC;gBAChD,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YACjG,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrB,aAAa,GAAG,IAAI,CAAC;YACrB,eAAe,GAAG,KAAK,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,GAAG,wBAAwB,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QAEvF,IAAI,kBAAkB,EAAE,CAAC;YACrB,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,WAAW,GAAG,WAAW,EAAE,OAAO,IAAI,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;YAEpE,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;gBAC5E,kBAAkB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAE/F,MAAM,YAAY,GAAG,WAAW,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YAEzG,uCAAuC;YACvC,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,uCAAuC,MAAM,CAAC,IAAI,KAAK,WAAW,gBAAgB,kBAAkB,EAAE,CAAC,CAAC;gBACnH,MAAM,IAAI,KAAK,CAAC,sDAAsD,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACjD,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAC3F,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;gBAEpF,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;oBACpB,MAAM,CAAC,GAAG,CAAC,qBAAqB,OAAO,cAAc,MAAM,gBAAgB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAE1F,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;oBACpG,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEtF,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC;wBAC1D,MAAM,EAAE,MAAM,CAAC,IAAI;wBACnB,OAAO,EAAE,MAAM,CAAC,oBAAoB;wBACpC,iBAAiB,EAAE,OAAO;wBAC1B,gBAAgB,EAAE,MAAM;wBACxB,SAAS,EAAE,aAAa;wBACxB,KAAK,EAAE,KAAK;qBACf,EAAE,GAAG,CAAC,CAAC;oBAER,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;wBACzD,MAAM,CAAC,GAAG,CAAC,wBAAwB,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;wBACtE,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;oBAC3G,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,IAAI,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAC3D,MAAM,CAAC,GAAG,CAAC,yDAAyD,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,mFAAmF,CAAC,CAAC;QAChG,IAAI,gBAAgB,GAAQ,EAAE,CAAC;QAE/B,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC9D,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,0BAA0B,CAAC;oBAC7D,OAAO,EAAE,MAAM,CAAC,IAAK;oBACrB,OAAO,EAAE,MAAM,CAAC,oBAAoB;oBACpC,SAAS,EAAE,MAAM,CAAC,IAAI;oBACtB,YAAY,EAAE,kBAAkB;oBAChC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,MAAM,CAAC,WAAW,IAAI,MAAM;iBACxC,CAAC,CAAC;gBAEH,IAAI,YAAY,EAAE,OAAO,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC/F,MAAM,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;oBACvF,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;wBACzB,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;oBACrH,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAC;gBACjD,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrE,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,IAAI,iEAAiE,CAAC,CAAC;YACvG,CAAC;QACL,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC;oBAChD,OAAO,EAAE,MAAM,CAAC,IAAK;oBACrB,OAAO,EAAE,MAAM,EAAE,oBAAoB,IAAI,EAAE;oBAC3C,SAAS,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;oBAC7B,OAAO,EAAE,MAAM,EAAE,WAAW,IAAI,MAAM;oBACtC,KAAK,EAAE,KAAK;oBACZ,aAAa,EAAE,kBAAkB;oBACjC,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;iBACrC,EAAE,GAAG,CAAC,CAAC;gBAER,MAAM,GAAG,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBAEpF,IAAI,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,SAAS,IAAI,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;oBACnE,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,cAAc,IAAI,qBAAqB,CAAC,CAAC;gBAC/E,CAAC;gBACD,gBAAgB,CAAC,GAAG,GAAG,GAAG,CAAC;YAC/B,CAAC;YAAC,OAAO,QAAa,EAAE,CAAC;gBACrB,MAAM,CAAC,GAAG,CAAC,eAAe,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,OAAO,IAAI,4CAA4C,EAAE,CAAC,CAAC;YAClH,CAAC;QACL,CAAC;QAGD,IAAI,IAAuB,CAAC;QAC5B,IAAI,aAAiC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC5E,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC,CAAC,CAAC;QAEX,OAAO;YACH,OAAO,EAAE,IAAI;YACb,GAAG,gBAAgB;YACnB,IAAI;YACJ,aAAa;YACb,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;SACtC,CAAC;IAEN,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,KAAK,yBAAyB;YAAE,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,iCAAiC,CAAC,CAAC;IACrE,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACnC,MAA2G,EAC3G,MAAsB,YAAY;IAElC,IAAI,CAAC;QACH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO;gBACL,aAAa,EAAE,aAAa,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,MAAM;gBACtF,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;aACpI,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;QAE1D,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC;YACtD,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YAC1B,OAAO,EAAE,MAAM,EAAE,OAAiC;YAClD,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE;YAClC,OAAO,EAAE,MAAM,EAAE,OAAO;YACxB,KAAK,EAAE,KAAK;YACZ,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;SACrE,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,YAAY,CAAC,OAAO,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;YACzD,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErJ,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE1D,IAAI,MAAM,GAAsB,IAAI,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,eAAe,GAAG,IAAI,CAAC;QAE3B,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;YACtB,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAClD,aAAa,GAAG,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC;gBAChD,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrB,aAAa,GAAG,IAAI,CAAC;YACrB,eAAe,GAAG,KAAK,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC;QAC7B,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS,IAAI,YAAY,CAAC,WAAW,GAAG,eAAe,EAAE,CAAC;YACzF,MAAM,CAAC,GAAG,CAAC,4BAA4B,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,+DAA+D,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzF,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtF,sFAAsF;QACtF,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAElF,wGAAwG;QACxG,IACE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG;YAC3B,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG;YAC3B,CAAC,EAAE,MAAM,KAAK,GAAG;YACjB,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC;YACnC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1B,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;QAED,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC;QACV,CAAC;QAED,IAAI,CAAC,EAAE,OAAO,KAAK,yBAAyB,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC1F,MAAM,CAAC,CAAC;QACV,CAAC;QAED,0DAA0D;QAC1D,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,oCAAoC,CAAC,CAAC,CAAC;IACpG,CAAC;AACH,CAAC","sourcesContent":["import kycService, { authentification, errorMessage, truncateFields } from \"./KYCService\";\nimport { cropByObb, getObbConfidence, OBB_CONFIDENCE_THRESHOLD } from \"../../utils/cropByObb\";\nimport { GovernmentDocumentType, IBbox } from \"../../types/KYC.types\";\nimport { KycEnvironment } from \"../../types/env.types\";\nimport { logger } from \"../../utils/logger\";\nimport { countryData } from \"../../config/countriesData\";\n\ninterface CardObbData {\n obb: number[][];\n confidence: number;\n card_in_frame?: boolean;\n cropped_sides?: string[];\n}\n\ninterface ApiVerificationResponse {\n result?: boolean;\n success?: boolean;\n detail?: any[];\n card_obb?: CardObbData[] | any;\n template_path?: string;\n Error?: any;\n [key: string]: any;\n}\n\nexport async function frontVerification(\n result: { path?: string, regionMapping: { authMethod: string[], mrzTypes: string[] }, selectedDocumentType: string, code: string, currentSide: string, templatePath?: string, mrzType?: string, issuingSubdivision?: string, clientSideBarcodeData?: string },\n env: KycEnvironment = 'PRODUCTION'\n ) {\n try {\n console.log(\"Front verification START\", JSON.stringify({ result }, null, 2));\n logger.log(\"Front verification\", JSON.stringify({ result }, null, 2));\n \n const authMethods = Array.isArray(result.regionMapping?.authMethod) ? result.regionMapping.authMethod.map(m => String(m).toUpperCase()) : [];\n const hasMrz = authMethods.some(m => m.includes('MRZ'));\n const hasBarcode = authMethods.some(m => m.includes('BARCODE') || m.includes('2D'));\n \n if (env === 'SANDBOX') {\n console.log(\"SANDBOX mode: Skipping AI verification for front document\");\n const mockBbox: IBbox = { minX: 400, minY: 800, width: 2200, height: 1400 };\n const mockResponse = {\n result: true, detail: [{ confidence: 0.95 }],\n card_obb: [{ obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]], confidence: 0.95, card_in_frame: true, cropped_sides: [] }],\n bbox: mockBbox,\n ...(hasMrz ? { mrz: { success: true, parsed_data: { status: 'SUCCESS', document_type: result.selectedDocumentType, mrz_type: result.mrzType || 'TD1' } } } : {}),\n ...(hasBarcode ? { barcode: { barcode_data: 'SANDBOX_MOCK_BARCODE' } } : {})\n };\n return mockResponse;\n }\n \n const token = await authentification();\n const detected = await kycService.detectFaceOnId(\n result?.path || '', token, result?.selectedDocumentType || '', env\n ) as ApiVerificationResponse;\n \n if (!detected.result) {\n throw new Error('Aucun visage détecté sur la carte. Veuillez reprendre.');\n }\n \n const cardData = detected.card_obb && Array.isArray(detected.card_obb) && detected.card_obb.length > 0 ? detected.card_obb[0] : null;\n let points: number[][] | null = null;\n console.log(points)\n let isCardInFrame = true;\n let hasCroppedSides = false;\n \n if (cardData) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Front Framing failed. Cropped sides detected by backend.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const obbConfidence = getObbConfidence(detected.card_obb);\n if (obbConfidence !== null && obbConfidence < OBB_CONFIDENCE_THRESHOLD) {\n throw new Error('Carte non entièrement visible. Positionnez toute la carte dans le cadre.');\n }\n \n let croppedBase64: string | undefined;\n let bbox: IBbox | undefined;\n let mrz: any | undefined;\n let barcode: any | undefined;\n let documentData: any | undefined;\n \n try {\n const crop = await cropByObb(result?.path || '', detected.card_obb);\n croppedBase64 = crop.base64;\n bbox = crop.bbox;\n } catch { }\n \n if (result.code === 'CA') {\n try {\n logger.log(\"Tentative d'extraction OCR (Front) - Canada Only\");\n documentData = await kycService.extractDocumentInformation({\n fileUri: result.path || '', docType: result.selectedDocumentType, docRegion: result.code, templatePath: result.templatePath || '', issuingSubdivision: result.issuingSubdivision, token: token, postfix: result.currentSide || 'front'\n });\n \n if (documentData?.no_data || (documentData && documentData.data && Object.keys(documentData.data).length === 0)) {\n logger.log(\"Front OCR Extraction Failed: Backend returned empty data dict.\");\n if (!hasBarcode && !hasMrz) {\n throw new Error(\"Impossible de lire les informations du document. L'image est peut-être floue ou mal éclairée.\");\n }\n }\n } catch (err: any) {\n // 🚨 FIX: Allow 401/403 errors to bubble up directly!\n if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\n \n const errorMsg = typeof err === 'object' ? JSON.stringify(err) : err;\n logger.log(\"Front OCR Extraction Error:\", errorMsg);\n throw new Error(err?.message || \"Impossible d'extraire les données. Veuillez reprendre la photo.\");\n }\n }\n \n if (hasMrz) {\n try {\n logger.log(\"Tentative d'extraction MRZ (Front)\");\n const mrzResponse = await kycService.extractMrzText(\n { fileUri: result.path || '', docType: result?.selectedDocumentType || '', docRegion: result?.code || \"\", postfix: result?.currentSide || 'front', token: token, template_path: result?.templatePath || '', mrz_type: result?.mrzType || 'TD1' }, env\n );\n mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;\n \n if (mrz?.parsed_data?.status === 'FAILURE' || mrz?.success === false) {\n logger.log(\"Front MRZ Extraction Failed:\", mrz?.parsed_data?.status_message);\n throw new Error(`MRZ illisible: ${mrz?.parsed_data?.status_message || 'Veuillez nettoyer l\\'objectif et réessayer'}`);\n }\n } catch (err: any) {\n // 🚨 FIX: Allow 401/403 errors to bubble up directly!\n if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\n \n logger.log(\"MRZ Extraction Error:\", err);\n throw new Error(err?.message || \"Erreur lors de l'extraction MRZ. Veuillez reprendre la photo.\");\n }\n }\n \n return { ...detected, croppedBase64, bbox, ...(mrz ? { mrz } : {}), ...(barcode ? { barcode } : {}), ...(documentData ? { documentData } : {}) };\n \n } catch (e: any) {\n logger.log('Error front verification:', e?.message);\n \n // 🚨 FINAL FIX: If the root catch block receives an API error with a status code, \n // we must throw the RAW object so `handleSilentCapture` can read `e.response.status`.\n if (e?.response?.status || e?.status || e?.isAxiosError) {\n throw e;\n }\n \n throw new Error(e?.message || 'Erreur de détection du visage');\n }\n }\n\nexport async function backVerification(\n result: {\n path?: string,\n regionMapping: { authMethod: string[], mrzTypes: string[] },\n selectedDocumentType: string,\n code: string,\n currentSide: string,\n templatePath?: string,\n mrzType?: string,\n templateResponse?: ApiVerificationResponse,\n issuingSubdivision?: string,\n frontTemplatePath?: string,\n clientSideBarcodeData?: string // 🚨 ADDED: Accept the SDK barcode data\n },\n env: KycEnvironment = 'PRODUCTION'\n) {\n try {\n if (!result.path) throw new Error('No path provided');\n logger.log(\"result.regionMapping\", result.regionMapping, result.currentSide, result.code);\n \n const authMethods = Array.isArray(result.regionMapping?.authMethod)\n ? result.regionMapping.authMethod.map(m => String(m).toUpperCase())\n : [];\n \n const hasMrz = authMethods.some(m => m.includes('MRZ'));\n const hasBarcode = authMethods.some(m => m.includes('BARCODE') || m.includes('2D'));\n \n if (env === 'SANDBOX') {\n console.log(\"SANDBOX mode: Skipping AI verification for back document\");\n const mockBbox: IBbox = { minX: 400, minY: 800, width: 2200, height: 1400 };\n const mockCardObb = [{\n obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]],\n confidence: 0.95,\n card_in_frame: true,\n cropped_sides: []\n }];\n \n if (hasMrz) {\n return {\n success: true,\n mrz: {\n success: true,\n parsed_data: { status: 'SUCCESS', document_type: result.selectedDocumentType, mrz_type: result.mrzType || 'TD1' }\n },\n bbox: mockBbox,\n card_obb: mockCardObb\n };\n } else if (hasBarcode) {\n return {\n success: true,\n barcode: { barcode_data: 'SANDBOX_MOCK_BARCODE' },\n bbox: mockBbox,\n card_obb: mockCardObb\n };\n }\n return { success: true, bbox: mockBbox, card_obb: mockCardObb };\n }\n \n const token = await authentification();\n logger.log(\"1. Checking template and framing for back document...\");\n \n const templateResponse: ApiVerificationResponse = result.templateResponse ||\n await kycService.checkTemplateType({\n fileUri: result.path,\n docType: result.selectedDocumentType as any,\n docRegion: result.code,\n postfix: 'back',\n token: token,\n }, env);\n \n if (templateResponse.success === false || templateResponse.Error) {\n throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');\n }\n \n const cardData = templateResponse?.card_obb && Array.isArray(templateResponse.card_obb) && templateResponse.card_obb.length > 0\n ? templateResponse.card_obb[0]\n : null;\n \n if (!cardData) throw new Error('CARD_NOT_FULLY_IN_FRAME');\n \n let points: number[][] | null = null;\n console.log(points);\n let isCardInFrame = false;\n let hasCroppedSides = true;\n \n if (cardData.obb) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n } else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {\n points = cardData[0];\n isCardInFrame = true;\n hasCroppedSides = false;\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Back Framing failed. Backend reported document out of bounds.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const obbConf = getObbConfidence(templateResponse?.card_obb);\n if (obbConf !== null && obbConf < OBB_CONFIDENCE_THRESHOLD) {\n throw new Error('Carte non entièrement visible. Positionnez toute la carte dans le cadre.');\n }\n \n const activeTemplatePath = templateResponse.template_path || result.templatePath || '';\n \n if (activeTemplatePath) {\n const countryInfo = countryData[result.code];\n \n const countryName = countryInfo?.name_en || countryInfo?.name || '';\n \n const hasCodeMatch = activeTemplatePath.toUpperCase().includes(`_${result.code.toUpperCase()}_`) || \n activeTemplatePath.toUpperCase().includes(`${result.code.toUpperCase()}/`);\n \n const hasNameMatch = countryName && activeTemplatePath.toLowerCase().includes(countryName.toLowerCase());\n\n // 5. If NEITHER match, throw the error\n if (!hasCodeMatch && !hasNameMatch) {\n logger.log(`Template mismatch! Expected region: ${result.code} (${countryName}), Detected: ${activeTemplatePath}`);\n throw new Error(`Le document ne correspond pas au pays sélectionné (${result.code}).`);\n }\n }\n \n if (result.frontTemplatePath && activeTemplatePath) {\n try {\n const frontPy = result.frontTemplatePath.split(\"/\").pop()?.replace(/\\.(jpg|png)$/i, \".py\");\n const backPy = activeTemplatePath.split(\"/\").pop()?.replace(/\\.(jpg|png)$/i, \".py\");\n \n if (frontPy && backPy) {\n logger.log(`Validating Front (${frontPy}) vs Back (${backPy}) for region ${result.code}`);\n \n const isCanadianSubRegionDoc = result.code === 'CA' && ['pr'].includes(result.selectedDocumentType);\n const safeSubRegion = isCanadianSubRegionDoc ? (result.issuingSubdivision || \"\") : \"\";\n \n const matchValidation = await kycService.validateBackTemplate({\n region: result.code,\n docType: result.selectedDocumentType,\n frontTemplateName: frontPy,\n backTemplateName: backPy,\n subRegion: safeSubRegion,\n token: token\n }, env);\n \n if (!matchValidation || matchValidation.is_match === false) {\n logger.log(`Front/Back Mismatch: ${matchValidation?.status_message}`);\n throw new Error(`Le verso ne correspond pas au recto fourni. Vous avez scanné un document différent.`);\n }\n }\n } catch (err: any) {\n if (err?.message?.includes('ne correspond pas')) throw err;\n logger.log(\"Template matching validation skipped/failed internally:\", err?.message);\n }\n }\n \n logger.log(\"Framing, Country, and Match verified successfully. Proceeding to Data Extraction.\");\n let extractionResult: any = {};\n \n if (result.code === 'CA') {\n try {\n logger.log(\"Tentative d'extraction OCR (Back) - Canada Only\");\n const documentData = await kycService.extractDocumentInformation({\n fileUri: result.path!,\n docType: result.selectedDocumentType,\n docRegion: result.code,\n templatePath: activeTemplatePath,\n issuingSubdivision: result.issuingSubdivision,\n token: token,\n postfix: result.currentSide || 'back'\n });\n \n if (documentData?.no_data || (documentData?.data && Object.keys(documentData.data).length === 0)) {\n logger.log(\"Back OCR Extraction: No text data found (Normal for barcode-only sides).\");\n if (!hasBarcode && !hasMrz) {\n throw new Error(\"Impossible de lire les informations du document. L'image est peut-être floue ou mal éclairée.\");\n }\n } else {\n extractionResult.documentData = documentData;\n }\n } catch (err: any) {\n const errorMsg = typeof err === 'object' ? JSON.stringify(err) : err;\n logger.log(\"Back OCR Extraction Error:\", errorMsg);\n throw new Error(err?.message || \"Impossible d'extraire les données. Veuillez reprendre la photo.\");\n }\n }\n \n if (hasMrz) {\n try {\n logger.log(\"Tentative d'extraction MRZ (Back)\");\n const mrzResponse = await kycService.extractMrzText({\n fileUri: result.path!,\n docType: result?.selectedDocumentType || '',\n docRegion: result?.code || '',\n postfix: result?.currentSide || 'back',\n token: token,\n template_path: activeTemplatePath,\n mrz_type: result?.mrzType || 'TD1'\n }, env);\n \n const mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;\n \n if (mrz?.parsed_data?.status === 'FAILURE' || mrz?.success === false) {\n throw new Error(mrz?.parsed_data?.status_message || 'Lecture MRZ échouée');\n }\n extractionResult.mrz = mrz;\n } catch (mrzError: any) {\n logger.log(`MRZ échoué: ${mrzError?.message}`);\n throw new Error(`Lecture MRZ invalide: ${mrzError?.message || 'Veuillez nettoyer l\\'objectif et réessayer'}`);\n }\n }\n \n \n let bbox: IBbox | undefined;\n let croppedBase64: string | undefined;\n try {\n const crop = await cropByObb(result?.path || '', templateResponse.card_obb);\n bbox = crop.bbox;\n croppedBase64 = crop.base64;\n } catch { }\n \n return {\n success: true,\n ...extractionResult,\n bbox,\n croppedBase64,\n card_obb: templateResponse.card_obb\n };\n \n } catch (e: any) {\n if (e?.message === 'CARD_NOT_FULLY_IN_FRAME') throw e;\n throw new Error(e?.message || 'Erreur de détection des données');\n }\n}\n\nexport async function checkTemplateType(\n result: { path?: string, docType: string, docRegion: string, postfix: string, issuingSubdivision?: string },\n env: KycEnvironment = 'PRODUCTION'\n ) {\n try {\n if (env === 'SANDBOX') {\n return {\n template_path: `templates/${result.docType}_${result.docRegion}_${result.postfix}.jpg`,\n card_obb: [{ obb: [[400, 800], [2600, 800], [2600, 2200], [400, 2200]], confidence: 0.95, card_in_frame: true, cropped_sides: [] }]\n };\n }\n \n const token = await authentification();\n const isCanada = result.docRegion?.toUpperCase() === 'CA';\n \n const templateType = await kycService.checkTemplateType({\n fileUri: result.path || '',\n docType: result?.docType as GovernmentDocumentType,\n docRegion: result?.docRegion || \"\",\n postfix: result?.postfix,\n token: token,\n issuingSubdivision: isCanada ? result.issuingSubdivision : undefined\n }, env);\n \n if (templateType.success === false || templateType.Error) {\n logger.log(\"Backend returned an error:\", templateType.Error);\n throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');\n }\n \n const cardData = templateType.card_obb && Array.isArray(templateType.card_obb) && templateType.card_obb.length > 0 ? templateType.card_obb[0] : null;\n \n if (!cardData) throw new Error('CARD_NOT_FULLY_IN_FRAME');\n \n let points: number[][] | null = null;\n console.log(points);\n let isCardInFrame = false;\n let hasCroppedSides = true;\n \n if (cardData.obb) {\n points = cardData.obb;\n if (typeof cardData.card_in_frame !== 'undefined') {\n isCardInFrame = cardData.card_in_frame === true;\n hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;\n }\n } else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {\n points = cardData[0];\n isCardInFrame = true;\n hasCroppedSides = false;\n }\n \n if (!isCardInFrame || hasCroppedSides) {\n logger.log(`Template Framing failed by backend check.`);\n throw new Error('CARD_NOT_FULLY_IN_FRAME');\n }\n \n const LPIPS_THRESHOLD = 0.75;\n if (templateType.lpips_score !== undefined && templateType.lpips_score > LPIPS_THRESHOLD) {\n logger.log(`Country Mismatch! LPIPS: ${templateType.lpips_score}`);\n throw new Error(`Le document présenté ne correspond pas au pays sélectionné (${result.docRegion}).`);\n }\n \n logger.log(\"templateType result\", JSON.stringify(truncateFields(templateType), null, 2));\n \n return templateType;\n } catch (e: any) {\n logger.log('Error checking template type:', JSON.stringify(errorMessage(e), null, 2));\n \n // Safely extract the raw message to check for string-based errors like \"Unauthorized\"\n const rawMessage = (typeof e === 'string' ? e : (e?.message || '')).toLowerCase();\n \n // 🚨 CRITICAL FIX: Ensure 401/403 and string-based \"Unauthorized\" errors bubble up exactly as they are!\n if (\n e?.response?.status === 401 || \n e?.response?.status === 403 || \n e?.status === 401 ||\n rawMessage.includes('unauthorized') ||\n rawMessage.includes('401')\n ) {\n throw e; \n }\n \n if (e?.isAxiosError) {\n throw e;\n }\n \n if (e?.message === 'CARD_NOT_FULLY_IN_FRAME' || e?.message?.includes('ne correspond pas')) {\n throw e;\n }\n \n // Safely fall back without swallowing string-based errors\n throw new Error(typeof e === 'string' ? e : (e?.message || 'Erreur de vérification du template'));\n }\n }"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KYCService.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KYCService.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"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"}
@@ -440,12 +440,14 @@ export const authentification = async () => {
440
440
  }
441
441
  cachedToken = token;
442
442
  tokenExpiryTime = Date.now() + ((res.data.expires_in || 300) * 1000);
443
- return cachedToken; // 🚨 Guaranteed string to satisfy TypeScript
443
+ activeAuthRequest = null; // 🚨 FIX: Clear the promise once resolved
444
+ return cachedToken;
444
445
  })();
445
446
  return await activeAuthRequest;
446
447
  }
447
448
  catch (error) {
448
449
  cachedToken = null;
450
+ tokenExpiryTime = null;
449
451
  activeAuthRequest = null;
450
452
  const safeErrorMessage = error?.response?.data?.error_description || error?.message || 'Unknown error';
451
453
  logger.error('Error authentifying:', safeErrorMessage);
@@ -453,7 +455,10 @@ export const authentification = async () => {
453
455
  }
454
456
  };
455
457
  export const clearAuthToken = () => {
456
- cachedToken = null; // Clear memory cache
458
+ logger.log("Wiping AI services auth token cache...");
459
+ cachedToken = null;
460
+ tokenExpiryTime = null;
461
+ activeAuthRequest = null;
457
462
  };
458
463
  export const errorMessage = (error) => {
459
464
  return error.response?.data?.message || error.response?.data?.detail || error.response?.data?.error || error.response?.data || error.message;
@@ -1 +1 @@
1
- {"version":3,"file":"KYCService.js","sourceRoot":"","sources":["../../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport { GovernmentDocumentType, GovernmentDocumentTypeShorted, OrientationVideoResponse } from '../../types/KYC.types';\nimport { CheckTemplateTypeResponse } from '../../components/OverLay/type';\nimport { SessionResponse, VerificationSessionRequest } from './types';\nimport { KycEnvironment } from '../../types/env.types';\nimport { logger } from '../../utils/logger';\nimport { Platform } from 'react-native';\nimport KYCConfig from '../../config/KYCConfig';\n\nconst appendFileToFormData = async (formData: FormData, key: string, uri: string, name: string = 'file.jpg', type: string = 'image/jpeg') => {\n if (Platform.OS === 'web') {\n const response = await fetch(uri);\n const blob = await response.blob();\n formData.append(key, blob, name);\n } else {\n // React Native Native structure\n formData.append(key, { uri, type, name } as any);\n }\n};\n\nconst documentTypeMap: Record<string, string> = {\n passport: \"passport\",\n driversLicense: \"driving_licence\",\n healthInsuranceCard: \"health_insurance_card\",\n residencePermit: \"permanent_residence_card\",\n identityCard: \"identity_card\",\n nationalId: \"identity_card\",\n national_id: \"identity_card\",\n drivers_licence: \"driving_licence\",\n drivers_license: \"driving_licence\",\n driving_license: \"driving_licence\",\n permanent_residence: \"permanent_residence_card\",\n};\n\nlet cachedToken: string | null = null;\nlet tokenExpiryTime: number | null = null;\nlet activeAuthRequest: Promise<string> | null = null;\n\nexport interface KYCRequest { userId: string; documentImage: string; selfieImage: string; documentType: 'passport' | 'id_card' | 'drivers_license'; }\nexport interface KYCResponse { success: boolean; verificationId: string; status: 'pending' | 'approved' | 'rejected'; message?: string; }\nexport interface FaceDetectionRequest { selfieImage: string; documentImage: string; }\nexport interface FaceDetectionResponse { match: boolean; confidence: number; message: string; }\nexport interface SelfieVideoResponse { orientation_direction: \"center\" | \"left\" | \"right\", turn_score: number; bbox: number[]; capture: boolean; instruction: string; error: string; }\n\nexport class KYCService {\n private baseURL: string;\n private apiKey: string;\n private faceServiceURL = 'https://face-infera.sanctumkey.com';\n private textExtractionServiceURL = 'https://text-infera.sanctumkey.com';\n private mrzServiceURL = 'https://mrz-infera.sanctumkey.com';\n private barcodeServiceURL = 'https://face-infera.sanctumkey.com';\n private orientationServiceURL = 'http://18.188.180.154:8080';\n\n constructor(baseURL: string, apiKey: string) {\n this.baseURL = baseURL;\n this.apiKey = apiKey;\n }\n\n private getHeaders() {\n return {\n 'Authorization': `Bearer ${this.apiKey}`,\n 'Content-Type': 'application/json',\n };\n }\n\n // 🚨 BULLETPROOF MULTIPART FETCHER\n // Replaces Axios for file uploads to guarantee iOS compatibility\n private async crossPlatformMultipartUpload<T>(url: string, formData: FormData, token?: string, timeoutMs: number = 60000): Promise<T> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs);\n\n const headers: Record<string, string> = {\n 'Accept': 'application/json',\n };\n if (token) headers['Authorization'] = `Bearer ${token}`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers, // Do NOT set Content-Type, native fetch sets the boundary\n body: formData,\n signal: controller.signal\n });\n\n clearTimeout(timeoutId);\n\n const responseText = await response.text();\n let responseData;\n try {\n responseData = responseText ? JSON.parse(responseText) : {};\n } catch (e) {\n responseData = { detail: responseText };\n }\n\n if (!response.ok) {\n // Mock Axios error structure so your `errorMessage` helper still works!\n throw { response: { status: response.status, data: responseData } };\n }\n\n return responseData as T;\n } catch (error: any) {\n clearTimeout(timeoutId);\n if (error.name === 'AbortError') {\n throw { response: { data: { message: 'Request timed out' } } };\n }\n throw error;\n }\n }\n\n async submitKYC(data: KYCRequest): Promise<KYCResponse> {\n try {\n const response = await axios.post(`${this.baseURL}/kyc/submit`, data, { headers: this.getHeaders() });\n return response.data;\n } catch (error) { throw error; }\n }\n\n async detectFace(data: FaceDetectionRequest): Promise<FaceDetectionResponse> {\n try {\n const response = await axios.post(`${this.baseURL}/ai/face-detection`, data, { headers: this.getHeaders() });\n return response.data;\n } catch (error) { throw error; }\n }\n\n async processSelfieOrientationPicture(videoFile: string, token: string): Promise<SelfieVideoResponse[]> {\n try {\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', videoFile, 'selfie_picture.jpg', 'image/jpeg');\n \n const data = await this.crossPlatformMultipartUpload<SelfieVideoResponse[]>(\n `${this.faceServiceURL}/detect_face_orientation/`, formData, token, 20000\n );\n return data;\n } catch (error) { throw error; }\n }\n\n async processOrientationVideo(videoFile: string, env: KycEnvironment = 'PRODUCTION'): Promise<OrientationVideoResponse> {\n try {\n if (env === 'SANDBOX') {\n return { success: true, data: { center: { captured: true, frame: 10 }, left: { captured: true, frame: 30 }, right: { captured: true, frame: 50 } }, message: 'SANDBOX Mock' };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', videoFile, 'orientation_video.mp4', 'video/mp4');\n \n const data = await this.crossPlatformMultipartUpload<any>(\n `${this.orientationServiceURL}/process_orientation_video_stream/`, formData, undefined, 90000\n );\n \n return { success: true, data: data, message: 'Orientation video processed successfully' };\n } catch (error: any) {\n if (error.response?.status === 503) {\n return { success: false, error: { code: 'SERVICE_UNAVAILABLE', message: 'Service not ready', details: error.response.data }, message: 'Service temporarily unavailable' };\n }\n return { success: false, error: { code: 'PROCESSING_ERROR', message: error.response?.data?.detail || 'Unknown error occurred' }, message: 'Failed to process orientation video' };\n }\n }\n\n async detectFaceOnId(idCardImageUri: string, token: string, docType: string, env: KycEnvironment = 'PRODUCTION'): Promise<{ result: boolean; detail: any[]; card_obb?: any }> {\n if (env === 'SANDBOX') {\n return { result: true, detail: [{ confidence: 0.95, bbox: [50, 50, 200, 200] }], card_obb: { x: 50, y: 50, width: 200, height: 200 } };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', idCardImageUri, 'id_card_photo.jpg', 'image/jpeg');\n const docTypeShorted = GovernmentDocumentTypeShorted[docType as GovernmentDocumentType] || docType;\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(\n `${this.faceServiceURL}/detect_face/?doc_type=${docTypeShorted}`, formData, token, 20000\n );\n if (data?.result) return data;\n throw new Error(data?.detail || 'detect_face failed');\n } catch (error: any) {\n throw error;\n }\n }\n\n async checkTemplateType(params: { fileUri: string; docType: string; docRegion: string; token: string; postfix: string; issuingSubdivision?: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') {\n return { template_path: `templates/${params.docType}_${params.docRegion}_${params.postfix}.jpg`, card_obb: { x: 50, y: 50, width: 200, height: 200 } };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix}.jpg`, 'image/jpeg');\n const docTypeShorted = GovernmentDocumentTypeShorted[params.docType as GovernmentDocumentType];\n \n let url = `${this.mrzServiceURL}/get_template_version/?doc_type=${encodeURIComponent(docTypeShorted)}&doc_region=${encodeURIComponent(params.docRegion)}&postfix=${params.postfix}`;\n if (params.issuingSubdivision) url += `&issuing_subdivision=${encodeURIComponent(params.issuingSubdivision)}`;\n \n try {\n return await this.crossPlatformMultipartUpload<CheckTemplateTypeResponse>(url, formData, params.token, 60000);\n } catch (e: any) { throw e; }\n }\n\n async extractDocumentInformation(params: { fileUri: string; docType: string; docRegion: string; templatePath: string; issuingSubdivision?: string; token: string; postfix?: string }): Promise<any> {\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix || 'front'}.jpg`, 'image/jpeg');\n \n let queryParams = `doc_type=${encodeURIComponent(params.docType)}&doc_region=${encodeURIComponent(params.docRegion)}&template_path=${encodeURIComponent(params.templatePath)}&postfix=${params.postfix || 'front'}&cleaned=true`;\n if (params.issuingSubdivision) queryParams += `&issuing_subdivision=${encodeURIComponent(params.issuingSubdivision)}`;\n \n const url = `${this.textExtractionServiceURL}/extract_doc_information/?${queryParams}`;\n try {\n const startResData = await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n const jobId = startResData?.job_id;\n if (!jobId) throw new Error(\"Backend did not return a job_id\");\n\n const statusUrl = `${this.textExtractionServiceURL}/extract_doc_information/status/${jobId}`;\n for (let i = 0; i < 15; i++) {\n await new Promise(resolve => setTimeout(resolve, 2000));\n // Status polling can remain Axios as it contains no file uploads\n const statusRes = await axios.get(statusUrl, { headers: { 'Authorization': `Bearer ${params.token}` } });\n if (statusRes.data.status === 'completed') return statusRes.data.result;\n if (statusRes.data.status === 'failed') throw new Error(statusRes.data.error || \"Document extraction failed.\");\n }\n throw new Error(\"Document extraction timed out waiting for results.\");\n } catch (e: any) { throw e; }\n }\n\n async extractBarcode(params: { fileUri: string; token: string; docType: string; postfix?: string }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { barcode_data: 'SANDBOX_MOCK_BARCODE_DATA' };\n \n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_${params.postfix || 'back'}_photo.jpg`, 'image/jpeg');\n const url = `${this.barcodeServiceURL}/decode_barcode/?doc_type=${encodeURIComponent(params.docType)}`;\n \n try {\n return await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n } catch (e: any) { throw e; }\n }\n\n // URL-Encoded data is completely fine with Axios, no multipart files here.\n async formatBarcodeData(params: { textInput: string; token: string }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { barcode_type: \"SANDBOX_MOCK\", first_name: \"JOHN\", last_name: \"DOE\" };\n const formData = new URLSearchParams();\n formData.append('text_input', params.textInput);\n \n try {\n const res = await axios.post(`${this.barcodeServiceURL}/format_barcode_data/`, formData.toString(), {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': `Bearer ${params.token}` },\n timeout: 60000,\n });\n return res.data;\n } catch (e: any) { throw e; }\n }\n\n async extractMrzText(params: { fileUri: string; docType: string; docRegion: string; postfix?: string; token: string; template_path: string; mrz_type?: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { success: true, parsed_data: { status: 'success', document_type: params.docType } };\n \n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix || 'back'}.jpg`, 'image/jpeg');\n \n const safeMrzType = params.mrz_type && params.mrz_type.trim() !== '' ? params.mrz_type : 'TD1';\n const queryParams = new URLSearchParams({ \n doc_type: GovernmentDocumentTypeShorted[params.docType as GovernmentDocumentType] || params.docType, \n doc_region: params.docRegion, postfix: params.postfix || 'back', template_path: params.template_path, mrz_type: safeMrzType, reset_cache: 'true' \n }).toString();\n \n const url = `${this.mrzServiceURL}/extract_mrz_text/?${queryParams}`;\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n if (Object.keys(data).length === 0) throw new Error('No data found');\n if (data?.success === false) throw new Error(`Lecture MRZ refusée: ${data.parsed_data?.status_message}`);\n return data;\n } catch (error: any) { throw error; }\n }\n\n async recognizeFace(params: { idPhotoUri: string; selfiePhotoUri: string }, env: KycEnvironment = 'PRODUCTION'): Promise<{ is_match: boolean; similarity: number; id_bbox?: number[]; selfie_bbox?: number[] }> {\n if (env === 'SANDBOX') return { is_match: true, similarity: 0.95 };\n const formData = new FormData();\n await appendFileToFormData(formData, 'id_photo', params.idPhotoUri, 'id_card_photo.jpg', 'image/jpeg');\n await appendFileToFormData(formData, 'selfie_photo', params.selfiePhotoUri, 'selfie_final.jpg', 'image/jpeg');\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(`${this.faceServiceURL}/recognize_face/`, formData, undefined, 45000);\n if (data?.detail) throw new Error(data.detail);\n return data;\n } catch (error: any) { throw error; }\n }\n\n // --- STANDARD AXIOS REQUESTS BELOW (UNCHANGED, SAFE) ---\n \n async healthFaceDetection(): Promise<any> { return (await axios.get(`${this.faceServiceURL}/health`)).data; }\n async healthTextExtraction(): Promise<any> { return (await axios.get(`${this.textExtractionServiceURL}/health`)).data; }\n async healthMrzService(): Promise<any> { return (await axios.get(`${this.mrzServiceURL}/health`)).data; }\n async healthOrientationService(): Promise<any> { return (await axios.get(`${this.orientationServiceURL}/health`)).data; }\n\n async newSession({ token, apiKey }: { token?: string, apiKey?: string }): Promise<SessionResponse> {\n try {\n const res = await axios.post<SessionResponse>(`${KYCConfig.getBackendUrl()}/verification/sessions/`, { \"status\": \"PENDING\", \"metadata\": {} }, {\n headers: { 'Content-Type': 'application/json', ...(apiKey ? { 'Authorization': `ApiKey ${apiKey}` } : { 'Authorization': `Bearer ${token}` }) }\n });\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async verificationSession(payload: VerificationSessionRequest): Promise<any> {\n try {\n const { session_id, step, data, templateId, action, apiKey } = payload;\n const token = apiKey ? undefined : await authentification();\n const normalizedData = { ...data };\n const rawDocType = normalizedData?.metadata?.document_type || normalizedData?.documentType || normalizedData?.documents?.documentType;\n \n if (rawDocType) {\n const mappedDocType = documentTypeMap[rawDocType] ?? rawDocType;\n normalizedData.metadata = { ...normalizedData.metadata, document_type: mappedDocType };\n normalizedData.documentType = mappedDocType;\n if (normalizedData.documents) {\n normalizedData.documents = { ...normalizedData.documents, documentType: mappedDocType };\n if (['passport', 'visa'].includes(mappedDocType.toLowerCase()) && !normalizedData.documents.back) normalizedData.documents.back = {};\n }\n }\n\n const payloadData = { action, data: { ...normalizedData, step, templateId }, session_id, timestamp: new Date().toISOString() };\n const res = await axios.post<SessionResponse>(`${KYCConfig.getBackendUrl()}/verification/api/kyc/sessions/${session_id}/steps/${step}/`, payloadData, {\n headers: { \"Content-Type\": \"application/json\", ...(apiKey ? { Authorization: `ApiKey ${apiKey}` } : {}), ...(token && !apiKey ? { Authorization: `Bearer ${token}` } : {}) }\n });\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async getVerificationResult(session_id: string, apiKey?: string): Promise<any> {\n try {\n const token = apiKey ? undefined : await authentification();\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 8000);\n const headers: Record<string, string> = { 'Content-Type': 'application/json' };\n if (apiKey) headers[\"Authorization\"] = `ApiKey ${apiKey}`;\n else if (token) headers[\"Authorization\"] = `Bearer ${token}`;\n\n const res = await axios.get(`${KYCConfig.getBackendUrl()}/verification/api/kyc/result/?session_id=${session_id}`, { headers, signal: controller.signal });\n clearTimeout(timeoutId);\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async validateBackTemplate(params: { region: string; docType: string; frontTemplateName: string; backTemplateName: string; subRegion: string; token: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n const queryParams = new URLSearchParams({ region: params.region, doc_type: params.docType, front_template_name: params.frontTemplateName, back_template_name: params.backTemplateName, sub_region: params.subRegion || \"\" }).toString();\n try {\n const res = await axios.post(`${this.mrzServiceURL}/validate_back_template/?${queryParams}`, null, {\n headers: { 'Accept': 'application/json', 'Authorization': `Bearer ${params.token}` }, timeout: 20000,\n });\n return res.data;\n } catch (e: any) { throw e; }\n }\n\n async sendEmailVerificationCode(email: string, auth?: { apiKey?: string; token?: string }): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/email/send/`;\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const res = await axios.post(\n url,\n { email },\n {\n headers: {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n },\n }\n );\n return res.data;\n }\n\n async verifyEmailCode(otp: string, auth?: { apiKey?: string; token?: string }): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/email/verify/`;\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const res = await axios.post(\n url,\n { otp },\n {\n headers: {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n },\n }\n );\n return res.data;\n }\n\n async sendWhatsAppVerificationCode(\n sessionId: string,\n phoneNumber: string,\n auth?: { apiKey?: string; token?: string }\n ): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/send-whatsapp-verification/`;\n const formattedPhoneNumber = phoneNumber.replace(/^\\+/, '');\n const payload = { session_id: sessionId, phone_number: formattedPhoneNumber };\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const headers = {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n };\n try {\n const res = await axios.post(url, payload, { headers });\n logger.log(\"✅ WhatsApp Send Success:\", res.data);\n return res.data;\n } catch (error: any) {\n if (error.response) {\n logger.error(\"🛑 WhatsApp Send Failed (Server Response):\", { status: error.response.status, data: error.response.data, headers: error.response.headers });\n }\n throw error;\n }\n }\n\n async verifyWhatsAppCode(\n sessionId: string,\n otp: string,\n phoneNumber: string,\n auth?: { apiKey?: string; token?: string }\n ): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/verify-whatsapp-code/`;\n const formattedPhoneNumber = phoneNumber.replace(/^\\+/, '');\n const payload = { session_id: sessionId, verification_code: otp, phone_number: formattedPhoneNumber };\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const headers = {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n };\n try {\n const res = await axios.post(url, payload, { headers });\n return res.data;\n } catch (error: any) {\n if (error.response) {\n logger.error(\"🛑 WhatsApp Verification Failed (Server Response):\", { status: error.response.status, data: error.response.data, headers: error.response.headers });\n }\n throw error;\n }\n }\n\n async generateReferralCode(\n payload: { session_id: string; [key: string]: any },\n apiKey: string\n ): Promise<any> {\n try {\n logger.log(`Generating referral code for session: ${payload.session_id}`);\n if (!apiKey) {\n throw new Error(\"Authentication failed: API key is required.\");\n }\n const url = `${KYCConfig.getBackendUrl()}/core/referral-code/generate/`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `ApiKey ${apiKey}`\n };\n const res = await axios.post(url, payload, { headers, timeout: 8000 });\n logger.log(\"generateReferralCode SUCCESS:\", JSON.stringify(res.data, null, 2));\n return res.data;\n } catch (error: any) {\n const parsedError = errorMessage(error);\n const finalErrorMessage = parsedError || error?.message || \"Failed to generate referral code\";\n logger.error(\"Error generating referral code:\", typeof finalErrorMessage === 'string' ? finalErrorMessage : JSON.stringify(finalErrorMessage));\n throw new Error(typeof finalErrorMessage === 'string' ? finalErrorMessage : JSON.stringify(finalErrorMessage));\n }\n }\n}\n\nconst kycService = new KYCService(\"\", \"\");\nexport default kycService;\n\nexport function truncateFields(obj: any, maxLength = 420): any { /* logic unchanged */ return obj; }\n\nexport const authentification = async (): Promise<string> => {\n try {\n if (cachedToken && tokenExpiryTime && Date.now() < tokenExpiryTime - 10000) return cachedToken;\n if (activeAuthRequest) return activeAuthRequest;\n \n activeAuthRequest = (async () => {\n const res = await axios.post(\n `https://idms.sanctumkey.com/realms/kyc/protocol/openid-connect/token`,\n 'client_id=kyc_frontend&client_secret=QhgAmvKgmwODzsEp98dnA4PeUEMMaFHd&grant_type=client_credentials',\n { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }\n );\n \n const token = res.data.access_token;\n if (!token) {\n throw new Error(\"Keycloak returned a success response but no access_token was found.\");\n }\n \n cachedToken = token;\n tokenExpiryTime = Date.now() + ((res.data.expires_in || 300) * 1000);\n \n return cachedToken as string; // 🚨 Guaranteed string to satisfy TypeScript\n })();\n \n return await activeAuthRequest;\n } catch (error: any) {\n cachedToken = null;\n activeAuthRequest = null;\n const safeErrorMessage = error?.response?.data?.error_description || error?.message || 'Unknown error';\n logger.error('Error authentifying:', safeErrorMessage);\n throw new Error(`Échec de l'authentification: ${safeErrorMessage}`);\n }\n}\n\nexport const clearAuthToken = () => {\n cachedToken = null; // Clear memory cache\n};\n\nexport const errorMessage = (error: any) => {\n return error.response?.data?.message || error.response?.data?.detail || error.response?.data?.error || error.response?.data || error.message;\n}"]}
1
+ {"version":3,"file":"KYCService.js","sourceRoot":"","sources":["../../../../src/modules/api/KYCService.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from 'axios';\nimport { GovernmentDocumentType, GovernmentDocumentTypeShorted, OrientationVideoResponse } from '../../types/KYC.types';\nimport { CheckTemplateTypeResponse } from '../../components/OverLay/type';\nimport { SessionResponse, VerificationSessionRequest } from './types';\nimport { KycEnvironment } from '../../types/env.types';\nimport { logger } from '../../utils/logger';\nimport { Platform } from 'react-native';\nimport KYCConfig from '../../config/KYCConfig';\n\nconst appendFileToFormData = async (formData: FormData, key: string, uri: string, name: string = 'file.jpg', type: string = 'image/jpeg') => {\n if (Platform.OS === 'web') {\n const response = await fetch(uri);\n const blob = await response.blob();\n formData.append(key, blob, name);\n } else {\n // React Native Native structure\n formData.append(key, { uri, type, name } as any);\n }\n};\n\nconst documentTypeMap: Record<string, string> = {\n passport: \"passport\",\n driversLicense: \"driving_licence\",\n healthInsuranceCard: \"health_insurance_card\",\n residencePermit: \"permanent_residence_card\",\n identityCard: \"identity_card\",\n nationalId: \"identity_card\",\n national_id: \"identity_card\",\n drivers_licence: \"driving_licence\",\n drivers_license: \"driving_licence\",\n driving_license: \"driving_licence\",\n permanent_residence: \"permanent_residence_card\",\n};\n\nlet cachedToken: string | null = null;\nlet tokenExpiryTime: number | null = null;\nlet activeAuthRequest: Promise<string> | null = null;\n\nexport interface KYCRequest { userId: string; documentImage: string; selfieImage: string; documentType: 'passport' | 'id_card' | 'drivers_license'; }\nexport interface KYCResponse { success: boolean; verificationId: string; status: 'pending' | 'approved' | 'rejected'; message?: string; }\nexport interface FaceDetectionRequest { selfieImage: string; documentImage: string; }\nexport interface FaceDetectionResponse { match: boolean; confidence: number; message: string; }\nexport interface SelfieVideoResponse { orientation_direction: \"center\" | \"left\" | \"right\", turn_score: number; bbox: number[]; capture: boolean; instruction: string; error: string; }\n\nexport class KYCService {\n private baseURL: string;\n private apiKey: string;\n private faceServiceURL = 'https://face-infera.sanctumkey.com';\n private textExtractionServiceURL = 'https://text-infera.sanctumkey.com';\n private mrzServiceURL = 'https://mrz-infera.sanctumkey.com';\n private barcodeServiceURL = 'https://face-infera.sanctumkey.com';\n private orientationServiceURL = 'http://18.188.180.154:8080';\n\n constructor(baseURL: string, apiKey: string) {\n this.baseURL = baseURL;\n this.apiKey = apiKey;\n }\n\n private getHeaders() {\n return {\n 'Authorization': `Bearer ${this.apiKey}`,\n 'Content-Type': 'application/json',\n };\n }\n\n // 🚨 BULLETPROOF MULTIPART FETCHER\n // Replaces Axios for file uploads to guarantee iOS compatibility\n private async crossPlatformMultipartUpload<T>(url: string, formData: FormData, token?: string, timeoutMs: number = 60000): Promise<T> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs);\n\n const headers: Record<string, string> = {\n 'Accept': 'application/json',\n };\n if (token) headers['Authorization'] = `Bearer ${token}`;\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers, // Do NOT set Content-Type, native fetch sets the boundary\n body: formData,\n signal: controller.signal\n });\n\n clearTimeout(timeoutId);\n\n const responseText = await response.text();\n let responseData;\n try {\n responseData = responseText ? JSON.parse(responseText) : {};\n } catch (e) {\n responseData = { detail: responseText };\n }\n\n if (!response.ok) {\n // Mock Axios error structure so your `errorMessage` helper still works!\n throw { response: { status: response.status, data: responseData } };\n }\n\n return responseData as T;\n } catch (error: any) {\n clearTimeout(timeoutId);\n if (error.name === 'AbortError') {\n throw { response: { data: { message: 'Request timed out' } } };\n }\n throw error;\n }\n }\n\n async submitKYC(data: KYCRequest): Promise<KYCResponse> {\n try {\n const response = await axios.post(`${this.baseURL}/kyc/submit`, data, { headers: this.getHeaders() });\n return response.data;\n } catch (error) { throw error; }\n }\n\n async detectFace(data: FaceDetectionRequest): Promise<FaceDetectionResponse> {\n try {\n const response = await axios.post(`${this.baseURL}/ai/face-detection`, data, { headers: this.getHeaders() });\n return response.data;\n } catch (error) { throw error; }\n }\n\n async processSelfieOrientationPicture(videoFile: string, token: string): Promise<SelfieVideoResponse[]> {\n try {\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', videoFile, 'selfie_picture.jpg', 'image/jpeg');\n \n const data = await this.crossPlatformMultipartUpload<SelfieVideoResponse[]>(\n `${this.faceServiceURL}/detect_face_orientation/`, formData, token, 20000\n );\n return data;\n } catch (error) { throw error; }\n }\n\n async processOrientationVideo(videoFile: string, env: KycEnvironment = 'PRODUCTION'): Promise<OrientationVideoResponse> {\n try {\n if (env === 'SANDBOX') {\n return { success: true, data: { center: { captured: true, frame: 10 }, left: { captured: true, frame: 30 }, right: { captured: true, frame: 50 } }, message: 'SANDBOX Mock' };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', videoFile, 'orientation_video.mp4', 'video/mp4');\n \n const data = await this.crossPlatformMultipartUpload<any>(\n `${this.orientationServiceURL}/process_orientation_video_stream/`, formData, undefined, 90000\n );\n \n return { success: true, data: data, message: 'Orientation video processed successfully' };\n } catch (error: any) {\n if (error.response?.status === 503) {\n return { success: false, error: { code: 'SERVICE_UNAVAILABLE', message: 'Service not ready', details: error.response.data }, message: 'Service temporarily unavailable' };\n }\n return { success: false, error: { code: 'PROCESSING_ERROR', message: error.response?.data?.detail || 'Unknown error occurred' }, message: 'Failed to process orientation video' };\n }\n }\n\n async detectFaceOnId(idCardImageUri: string, token: string, docType: string, env: KycEnvironment = 'PRODUCTION'): Promise<{ result: boolean; detail: any[]; card_obb?: any }> {\n if (env === 'SANDBOX') {\n return { result: true, detail: [{ confidence: 0.95, bbox: [50, 50, 200, 200] }], card_obb: { x: 50, y: 50, width: 200, height: 200 } };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', idCardImageUri, 'id_card_photo.jpg', 'image/jpeg');\n const docTypeShorted = GovernmentDocumentTypeShorted[docType as GovernmentDocumentType] || docType;\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(\n `${this.faceServiceURL}/detect_face/?doc_type=${docTypeShorted}`, formData, token, 20000\n );\n if (data?.result) return data;\n throw new Error(data?.detail || 'detect_face failed');\n } catch (error: any) {\n throw error;\n }\n }\n\n async checkTemplateType(params: { fileUri: string; docType: string; docRegion: string; token: string; postfix: string; issuingSubdivision?: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') {\n return { template_path: `templates/${params.docType}_${params.docRegion}_${params.postfix}.jpg`, card_obb: { x: 50, y: 50, width: 200, height: 200 } };\n }\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix}.jpg`, 'image/jpeg');\n const docTypeShorted = GovernmentDocumentTypeShorted[params.docType as GovernmentDocumentType];\n \n let url = `${this.mrzServiceURL}/get_template_version/?doc_type=${encodeURIComponent(docTypeShorted)}&doc_region=${encodeURIComponent(params.docRegion)}&postfix=${params.postfix}`;\n if (params.issuingSubdivision) url += `&issuing_subdivision=${encodeURIComponent(params.issuingSubdivision)}`;\n \n try {\n return await this.crossPlatformMultipartUpload<CheckTemplateTypeResponse>(url, formData, params.token, 60000);\n } catch (e: any) { throw e; }\n }\n\n async extractDocumentInformation(params: { fileUri: string; docType: string; docRegion: string; templatePath: string; issuingSubdivision?: string; token: string; postfix?: string }): Promise<any> {\n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix || 'front'}.jpg`, 'image/jpeg');\n \n let queryParams = `doc_type=${encodeURIComponent(params.docType)}&doc_region=${encodeURIComponent(params.docRegion)}&template_path=${encodeURIComponent(params.templatePath)}&postfix=${params.postfix || 'front'}&cleaned=true`;\n if (params.issuingSubdivision) queryParams += `&issuing_subdivision=${encodeURIComponent(params.issuingSubdivision)}`;\n \n const url = `${this.textExtractionServiceURL}/extract_doc_information/?${queryParams}`;\n try {\n const startResData = await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n const jobId = startResData?.job_id;\n if (!jobId) throw new Error(\"Backend did not return a job_id\");\n\n const statusUrl = `${this.textExtractionServiceURL}/extract_doc_information/status/${jobId}`;\n for (let i = 0; i < 15; i++) {\n await new Promise(resolve => setTimeout(resolve, 2000));\n // Status polling can remain Axios as it contains no file uploads\n const statusRes = await axios.get(statusUrl, { headers: { 'Authorization': `Bearer ${params.token}` } });\n if (statusRes.data.status === 'completed') return statusRes.data.result;\n if (statusRes.data.status === 'failed') throw new Error(statusRes.data.error || \"Document extraction failed.\");\n }\n throw new Error(\"Document extraction timed out waiting for results.\");\n } catch (e: any) { throw e; }\n }\n\n async extractBarcode(params: { fileUri: string; token: string; docType: string; postfix?: string }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { barcode_data: 'SANDBOX_MOCK_BARCODE_DATA' };\n \n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_${params.postfix || 'back'}_photo.jpg`, 'image/jpeg');\n const url = `${this.barcodeServiceURL}/decode_barcode/?doc_type=${encodeURIComponent(params.docType)}`;\n \n try {\n return await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n } catch (e: any) { throw e; }\n }\n\n // URL-Encoded data is completely fine with Axios, no multipart files here.\n async formatBarcodeData(params: { textInput: string; token: string }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { barcode_type: \"SANDBOX_MOCK\", first_name: \"JOHN\", last_name: \"DOE\" };\n const formData = new URLSearchParams();\n formData.append('text_input', params.textInput);\n \n try {\n const res = await axios.post(`${this.barcodeServiceURL}/format_barcode_data/`, formData.toString(), {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': `Bearer ${params.token}` },\n timeout: 60000,\n });\n return res.data;\n } catch (e: any) { throw e; }\n }\n\n async extractMrzText(params: { fileUri: string; docType: string; docRegion: string; postfix?: string; token: string; template_path: string; mrz_type?: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n if (env === 'SANDBOX') return { success: true, parsed_data: { status: 'success', document_type: params.docType } };\n \n const formData = new FormData();\n await appendFileToFormData(formData, 'file', params.fileUri, `id_card_${params.postfix || 'back'}.jpg`, 'image/jpeg');\n \n const safeMrzType = params.mrz_type && params.mrz_type.trim() !== '' ? params.mrz_type : 'TD1';\n const queryParams = new URLSearchParams({ \n doc_type: GovernmentDocumentTypeShorted[params.docType as GovernmentDocumentType] || params.docType, \n doc_region: params.docRegion, postfix: params.postfix || 'back', template_path: params.template_path, mrz_type: safeMrzType, reset_cache: 'true' \n }).toString();\n \n const url = `${this.mrzServiceURL}/extract_mrz_text/?${queryParams}`;\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(url, formData, params.token, 60000);\n if (Object.keys(data).length === 0) throw new Error('No data found');\n if (data?.success === false) throw new Error(`Lecture MRZ refusée: ${data.parsed_data?.status_message}`);\n return data;\n } catch (error: any) { throw error; }\n }\n\n async recognizeFace(params: { idPhotoUri: string; selfiePhotoUri: string }, env: KycEnvironment = 'PRODUCTION'): Promise<{ is_match: boolean; similarity: number; id_bbox?: number[]; selfie_bbox?: number[] }> {\n if (env === 'SANDBOX') return { is_match: true, similarity: 0.95 };\n const formData = new FormData();\n await appendFileToFormData(formData, 'id_photo', params.idPhotoUri, 'id_card_photo.jpg', 'image/jpeg');\n await appendFileToFormData(formData, 'selfie_photo', params.selfiePhotoUri, 'selfie_final.jpg', 'image/jpeg');\n \n try {\n const data = await this.crossPlatformMultipartUpload<any>(`${this.faceServiceURL}/recognize_face/`, formData, undefined, 45000);\n if (data?.detail) throw new Error(data.detail);\n return data;\n } catch (error: any) { throw error; }\n }\n\n // --- STANDARD AXIOS REQUESTS BELOW (UNCHANGED, SAFE) ---\n \n async healthFaceDetection(): Promise<any> { return (await axios.get(`${this.faceServiceURL}/health`)).data; }\n async healthTextExtraction(): Promise<any> { return (await axios.get(`${this.textExtractionServiceURL}/health`)).data; }\n async healthMrzService(): Promise<any> { return (await axios.get(`${this.mrzServiceURL}/health`)).data; }\n async healthOrientationService(): Promise<any> { return (await axios.get(`${this.orientationServiceURL}/health`)).data; }\n\n async newSession({ token, apiKey }: { token?: string, apiKey?: string }): Promise<SessionResponse> {\n try {\n const res = await axios.post<SessionResponse>(`${KYCConfig.getBackendUrl()}/verification/sessions/`, { \"status\": \"PENDING\", \"metadata\": {} }, {\n headers: { 'Content-Type': 'application/json', ...(apiKey ? { 'Authorization': `ApiKey ${apiKey}` } : { 'Authorization': `Bearer ${token}` }) }\n });\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async verificationSession(payload: VerificationSessionRequest): Promise<any> {\n try {\n const { session_id, step, data, templateId, action, apiKey } = payload;\n const token = apiKey ? undefined : await authentification();\n const normalizedData = { ...data };\n const rawDocType = normalizedData?.metadata?.document_type || normalizedData?.documentType || normalizedData?.documents?.documentType;\n \n if (rawDocType) {\n const mappedDocType = documentTypeMap[rawDocType] ?? rawDocType;\n normalizedData.metadata = { ...normalizedData.metadata, document_type: mappedDocType };\n normalizedData.documentType = mappedDocType;\n if (normalizedData.documents) {\n normalizedData.documents = { ...normalizedData.documents, documentType: mappedDocType };\n if (['passport', 'visa'].includes(mappedDocType.toLowerCase()) && !normalizedData.documents.back) normalizedData.documents.back = {};\n }\n }\n\n const payloadData = { action, data: { ...normalizedData, step, templateId }, session_id, timestamp: new Date().toISOString() };\n const res = await axios.post<SessionResponse>(`${KYCConfig.getBackendUrl()}/verification/api/kyc/sessions/${session_id}/steps/${step}/`, payloadData, {\n headers: { \"Content-Type\": \"application/json\", ...(apiKey ? { Authorization: `ApiKey ${apiKey}` } : {}), ...(token && !apiKey ? { Authorization: `Bearer ${token}` } : {}) }\n });\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async getVerificationResult(session_id: string, apiKey?: string): Promise<any> {\n try {\n const token = apiKey ? undefined : await authentification();\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 8000);\n const headers: Record<string, string> = { 'Content-Type': 'application/json' };\n if (apiKey) headers[\"Authorization\"] = `ApiKey ${apiKey}`;\n else if (token) headers[\"Authorization\"] = `Bearer ${token}`;\n\n const res = await axios.get(`${KYCConfig.getBackendUrl()}/verification/api/kyc/result/?session_id=${session_id}`, { headers, signal: controller.signal });\n clearTimeout(timeoutId);\n return res.data;\n } catch (error: any) { throw error; }\n }\n\n async validateBackTemplate(params: { region: string; docType: string; frontTemplateName: string; backTemplateName: string; subRegion: string; token: string; }, env: KycEnvironment = 'PRODUCTION'): Promise<any> {\n const queryParams = new URLSearchParams({ region: params.region, doc_type: params.docType, front_template_name: params.frontTemplateName, back_template_name: params.backTemplateName, sub_region: params.subRegion || \"\" }).toString();\n try {\n const res = await axios.post(`${this.mrzServiceURL}/validate_back_template/?${queryParams}`, null, {\n headers: { 'Accept': 'application/json', 'Authorization': `Bearer ${params.token}` }, timeout: 20000,\n });\n return res.data;\n } catch (e: any) { throw e; }\n }\n\n async sendEmailVerificationCode(email: string, auth?: { apiKey?: string; token?: string }): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/email/send/`;\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const res = await axios.post(\n url,\n { email },\n {\n headers: {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n },\n }\n );\n return res.data;\n }\n\n async verifyEmailCode(otp: string, auth?: { apiKey?: string; token?: string }): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/email/verify/`;\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const res = await axios.post(\n url,\n { otp },\n {\n headers: {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n },\n }\n );\n return res.data;\n }\n\n async sendWhatsAppVerificationCode(\n sessionId: string,\n phoneNumber: string,\n auth?: { apiKey?: string; token?: string }\n ): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/send-whatsapp-verification/`;\n const formattedPhoneNumber = phoneNumber.replace(/^\\+/, '');\n const payload = { session_id: sessionId, phone_number: formattedPhoneNumber };\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const headers = {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n };\n try {\n const res = await axios.post(url, payload, { headers });\n logger.log(\"✅ WhatsApp Send Success:\", res.data);\n return res.data;\n } catch (error: any) {\n if (error.response) {\n logger.error(\"🛑 WhatsApp Send Failed (Server Response):\", { status: error.response.status, data: error.response.data, headers: error.response.headers });\n }\n throw error;\n }\n }\n\n async verifyWhatsAppCode(\n sessionId: string,\n otp: string,\n phoneNumber: string,\n auth?: { apiKey?: string; token?: string }\n ): Promise<unknown> {\n const url = `${KYCConfig.getBackendUrl()}/accounts/verify-whatsapp-code/`;\n const formattedPhoneNumber = phoneNumber.replace(/^\\+/, '');\n const payload = { session_id: sessionId, verification_code: otp, phone_number: formattedPhoneNumber };\n const token = auth?.apiKey ? undefined : (auth?.token ?? await authentification());\n const headers = {\n 'Content-Type': 'application/json',\n ...(auth?.apiKey ? { 'Authorization': `ApiKey ${auth.apiKey}` } : { 'Authorization': `Bearer ${token}` }),\n };\n try {\n const res = await axios.post(url, payload, { headers });\n return res.data;\n } catch (error: any) {\n if (error.response) {\n logger.error(\"🛑 WhatsApp Verification Failed (Server Response):\", { status: error.response.status, data: error.response.data, headers: error.response.headers });\n }\n throw error;\n }\n }\n\n async generateReferralCode(\n payload: { session_id: string; [key: string]: any },\n apiKey: string\n ): Promise<any> {\n try {\n logger.log(`Generating referral code for session: ${payload.session_id}`);\n if (!apiKey) {\n throw new Error(\"Authentication failed: API key is required.\");\n }\n const url = `${KYCConfig.getBackendUrl()}/core/referral-code/generate/`;\n const headers: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `ApiKey ${apiKey}`\n };\n const res = await axios.post(url, payload, { headers, timeout: 8000 });\n logger.log(\"generateReferralCode SUCCESS:\", JSON.stringify(res.data, null, 2));\n return res.data;\n } catch (error: any) {\n const parsedError = errorMessage(error);\n const finalErrorMessage = parsedError || error?.message || \"Failed to generate referral code\";\n logger.error(\"Error generating referral code:\", typeof finalErrorMessage === 'string' ? finalErrorMessage : JSON.stringify(finalErrorMessage));\n throw new Error(typeof finalErrorMessage === 'string' ? finalErrorMessage : JSON.stringify(finalErrorMessage));\n }\n }\n}\n\nconst kycService = new KYCService(\"\", \"\");\nexport default kycService;\n\nexport function truncateFields(obj: any, maxLength = 420): any { /* logic unchanged */ return obj; }\n\nexport const authentification = async (): Promise<string> => {\n try {\n if (cachedToken && tokenExpiryTime && Date.now() < tokenExpiryTime - 10000) return cachedToken;\n if (activeAuthRequest) return activeAuthRequest;\n \n activeAuthRequest = (async () => {\n const res = await axios.post(\n `https://idms.sanctumkey.com/realms/kyc/protocol/openid-connect/token`,\n 'client_id=kyc_frontend&client_secret=QhgAmvKgmwODzsEp98dnA4PeUEMMaFHd&grant_type=client_credentials',\n { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }\n );\n \n const token = res.data.access_token;\n if (!token) {\n throw new Error(\"Keycloak returned a success response but no access_token was found.\");\n }\n \n cachedToken = token;\n tokenExpiryTime = Date.now() + ((res.data.expires_in || 300) * 1000);\n activeAuthRequest = null; // 🚨 FIX: Clear the promise once resolved\n \n return cachedToken as string;\n })();\n \n return await activeAuthRequest;\n } catch (error: any) {\n cachedToken = null;\n tokenExpiryTime = null; \n activeAuthRequest = null;\n \n const safeErrorMessage = error?.response?.data?.error_description || error?.message || 'Unknown error';\n logger.error('Error authentifying:', safeErrorMessage);\n throw new Error(`Échec de l'authentification: ${safeErrorMessage}`);\n }\n}\n\nexport const clearAuthToken = () => {\n logger.log(\"Wiping AI services auth token cache...\");\n cachedToken = null;\n tokenExpiryTime = null;\n activeAuthRequest = null;\n};\n\n\nexport const errorMessage = (error: any) => {\n return error.response?.data?.message || error.response?.data?.detail || error.response?.data?.error || error.response?.data || error.message;\n}"]}
@@ -329,6 +329,7 @@ export interface TemplateActions {
329
329
  validateComponent: (componentId: number, dataOverride?: any) => boolean;
330
330
  submitTemplate: () => Promise<void>;
331
331
  resetTemplate: () => void;
332
+ restartSession: () => void;
332
333
  setLanguage: (language: string) => void;
333
334
  showCustomStepper: (show: boolean) => void;
334
335
  setVerificationState: (state: VerificationState) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"KYC.types.d.ts","sourceRoot":"","sources":["../../../src/types/KYC.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KYC.types.d.ts","sourceRoot":"","sources":["../../../src/types/KYC.types.ts"],"names":[],"mappings":"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"}