@sanctum-key/react-native-sdk 1.0.57 → 1.0.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/package.json +12 -2
- package/build/src/components/EnhancedCameraView.d.ts.map +1 -1
- package/build/src/components/EnhancedCameraView.js +5 -1
- package/build/src/components/EnhancedCameraView.js.map +1 -1
- package/build/src/components/KYCElements/IDCardCapture.d.ts.map +1 -1
- package/build/src/components/KYCElements/IDCardCapture.js +34 -13
- package/build/src/components/KYCElements/IDCardCapture.js.map +1 -1
- package/build/src/components/TemplateKYCExample.d.ts +2 -1
- package/build/src/components/TemplateKYCExample.d.ts.map +1 -1
- package/build/src/components/TemplateKYCExample.js +2 -2
- package/build/src/components/TemplateKYCExample.js.map +1 -1
- package/build/src/components/TemplateKYCFlowRefactored.d.ts +1 -0
- package/build/src/components/TemplateKYCFlowRefactored.d.ts.map +1 -1
- package/build/src/components/TemplateKYCFlowRefactored.js +56 -12
- package/build/src/components/TemplateKYCFlowRefactored.js.map +1 -1
- package/build/src/config/countriesData.d.ts.map +1 -1
- package/build/src/config/countriesData.js +249 -77
- package/build/src/config/countriesData.js.map +1 -1
- package/build/src/config/region_mapping.d.ts.map +1 -1
- package/build/src/config/region_mapping.js +45 -15
- package/build/src/config/region_mapping.js.map +1 -1
- package/build/src/modules/api/CardAuthentification.d.ts.map +1 -1
- package/build/src/modules/api/CardAuthentification.js +10 -2
- package/build/src/modules/api/CardAuthentification.js.map +1 -1
- package/build/src/utils/cropByObb.d.ts +1 -1
- package/build/src/utils/cropByObb.d.ts.map +1 -1
- package/build/src/utils/cropByObb.js +112 -5
- package/build/src/utils/cropByObb.js.map +1 -1
- package/build/src/utils/logger.d.ts +1 -0
- package/build/src/utils/logger.d.ts.map +1 -1
- package/build/src/utils/logger.js +37 -73
- package/build/src/utils/logger.js.map +1 -1
- package/build/src/web/WebKYCEntry.d.ts.map +1 -1
- package/build/src/web/WebKYCEntry.js +0 -2
- package/build/src/web/WebKYCEntry.js.map +1 -1
- package/package.json +12 -2
- package/src/components/EnhancedCameraView.tsx +4 -0
- package/src/components/KYCElements/IDCardCapture.tsx +49 -21
- package/src/components/TemplateKYCExample.tsx +4 -1
- package/src/components/TemplateKYCFlowRefactored.tsx +66 -11
- package/src/config/countriesData.ts +250 -78
- package/src/config/region_mapping.ts +700 -670
- package/src/modules/api/CardAuthentification.ts +11 -3
- package/src/utils/cropByObb.ts +160 -6
- package/src/utils/logger.ts +42 -93
- package/src/web/WebKYCEntry.tsx +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"region_mapping.js","sourceRoot":"","sources":["../../../src/config/region_mapping.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICountryMapping } from \"../types/KYC.types\";\r\n\r\nexport const countryMapping: Record<string, Record<string, Record<string, ICountryMapping[]>>> = \r\n{\r\n \"BE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"belgium_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BJ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"benin_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"benin_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"brazil_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"brazil_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GB\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"britain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"britain_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"burkina_faso_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CM\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_id_back_1_1_new.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD2\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_1_1_new.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CA\": {\r\n \"drivers_licence\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front_01.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Manitoba\": [\r\n {\r\n \"py_file\": \"manitoba_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"manitoba_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Newfoundland and Labrador\": [\r\n {\r\n \"py_file\": \"newfoundland_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"newfoundland_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Northwest Territories\": [\r\n {\r\n \"py_file\": \"northwest_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"northwest_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nunavut\": [\r\n {\r\n \"py_file\": \"nunavut_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nunavut_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Prince Edward Island\": [\r\n {\r\n \"py_file\": \"pe_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"pe_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Quebec\": [\r\n {\r\n \"py_file\": \"quebec_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"quebec_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Yukon\": [\r\n {\r\n \"py_file\": \"yukon_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"yukon_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"health_insurance_card\": {\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n // \"Quebec\": [\r\n // {\r\n // \"py_file\": \"quebec_01_back.py\",\r\n // \"back\": \"2D_barcode\"\r\n // },\r\n // {\r\n // \"py_file\": \"quebec_01_front.py\",\r\n // \"keys_found\": null\r\n // },\r\n // {\r\n // \"py_file\": \"quebec_02_front.py\",\r\n // \"front\": \"2D_barcode\"\r\n // }\r\n // ]\r\n },\r\n \"identity_card\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_id_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"canada_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"canada_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n },\r\n \"permanent_residence\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"pr_01_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_01_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_02_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_02_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_03_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_03_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n }\r\n },\r\n \"CF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"caf_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TD\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"tchad_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"congo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GQ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ecuatorial_guinea_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ET\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ethiopia_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"FR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"france_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GA\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"gabon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"gabon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"DE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"germany_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"germany_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GH\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ghana_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"guinee_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"HT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"haiti_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"IT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"italy_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CI\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ivory_coast_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"ivory_coast_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"KE\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_3.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"kenya_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_back_3.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ML\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"mali_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NL\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"netherlands_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"niger_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NG\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_id_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_id_front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"SN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"senegal_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ES\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"spain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"togo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n }\r\n}"]}
|
|
1
|
+
{"version":3,"file":"region_mapping.js","sourceRoot":"","sources":["../../../src/config/region_mapping.ts"],"names":[],"mappings":"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","sourcesContent":["import { ICountryMapping } from \"../types/KYC.types\";\r\n\r\nexport const countryMapping: Record<string, Record<string, Record<string, ICountryMapping[]>>> = \r\n{\r\n \"BE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"belgium_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BJ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"benin_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"benin_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"brazil_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"brazil_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GB\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"britain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"britain_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"BF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"burkina_faso_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CM\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_id_back_1_1_new.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD2\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_back_3_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_1_1_new.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_2_2.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_3_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"cameroon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"cameroon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CA\": {\r\n \"drivers_licence\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"british_columbia_front_01.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Manitoba\": [\r\n {\r\n \"py_file\": \"manitoba_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"manitoba_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Newfoundland and Labrador\": [\r\n {\r\n \"py_file\": \"newfoundland_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"newfoundland_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Northwest Territories\": [\r\n {\r\n \"py_file\": \"northwest_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"northwest_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nunavut\": [\r\n {\r\n \"py_file\": \"nunavut_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nunavut_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Prince Edward Island\": [\r\n {\r\n \"py_file\": \"pe_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"pe_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Quebec\": [\r\n {\r\n \"py_file\": \"quebec_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"quebec_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Yukon\": [\r\n {\r\n \"py_file\": \"yukon_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"yukon_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"health_insurance_card\": {\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"identity_card\": {\r\n \"Alberta\": [\r\n {\r\n \"py_file\": \"alberta_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"alberta_id_front.py\",\r\n \"front\": \"2D_barcode\"\r\n }\r\n ],\r\n \"British Columbia\": [\r\n {\r\n \"py_file\": \"british_columbia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"british_columbia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"New Brunswick\": [\r\n {\r\n \"py_file\": \"new_brunswick_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"new_brunswick_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Nova Scotia\": [\r\n {\r\n \"py_file\": \"nova_scotia_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"nova_scotia_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Ontario\": [\r\n {\r\n \"py_file\": \"ontario_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"ontario_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ],\r\n \"Saskatchewan\": [\r\n {\r\n \"py_file\": \"saskatchewan_id_back.py\",\r\n \"back\": \"2D_barcode\"\r\n },\r\n {\r\n \"py_file\": \"saskatchewan_id_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"canada_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"canada_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n },\r\n \"permanent_residence\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"pr_01_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_01_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_02_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_02_front.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"pr_03_back.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"pr_03_front.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n }\r\n },\r\n \"CF\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"caf_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TD\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"tchad_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"congo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GQ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ecuatorial_guinea_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ET\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ethiopia_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"FR\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"france_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GA\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"gabon_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"gabon_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GM\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"DE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"germany_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"germany_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GH\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ghana_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"GN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"guinee_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"HT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"haiti_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"IT\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"italy_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"CI\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_1.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"ivory_coast_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"ivory_coast_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"KE\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"back_2.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"front_3.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"kenya_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_back_3.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"kenya_front_2.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ML\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"mali_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NL\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"netherlands_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NE\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"niger_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"NG\": {\r\n \"identity_card\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_id_back_1.py\",\r\n \"back\": \"MRZ\",\r\n \"mrz_type\": \"TD1\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_id_front_1.py\",\r\n \"keys_found\": null\r\n }\r\n ]\r\n },\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"nigeria_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n },\r\n {\r\n \"py_file\": \"nigeria_02.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"RW\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"SN\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"senegal_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"ES\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"spain_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TZ\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"TG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"togo_01.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n },\r\n \"UG\": {\r\n \"passport\": {\r\n \"root\": [\r\n {\r\n \"py_file\": \"passport_1.py\",\r\n \"front\": \"MRZ\",\r\n \"mrz_type\": \"TD3\"\r\n }\r\n ]\r\n }\r\n }\r\n }"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardAuthentification.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,EACD,GAAG,GAAE,cAA6B;;;;;;aArBzB,OAAO;cACN,OAAO;aACR,GAAG,EAAE;eACH,WAAW,EAAE,GAAG,GAAG;oBACd,MAAM;YACd,GAAG;GAmJZ;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,EACD,GAAG,GAAE,cAA6B,
|
|
1
|
+
{"version":3,"file":"CardAuthentification.d.ts","sourceRoot":"","sources":["../../../../src/modules/api/CardAuthentification.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,EACD,GAAG,GAAE,cAA6B;;;;;;aArBzB,OAAO;cACN,OAAO;aACR,GAAG,EAAE;eACH,WAAW,EAAE,GAAG,GAAG;oBACd,MAAM;YACd,GAAG;GAmJZ;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE;IACN,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,EACD,GAAG,GAAE,cAA6B,gBAyLnC;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3G,GAAG,GAAE,cAA6B,gBAgFnC"}
|
|
@@ -204,6 +204,7 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
204
204
|
}
|
|
205
205
|
logger.log("Framing, Country, and Match verified successfully. Proceeding to Data Extraction.");
|
|
206
206
|
let extractionResult = {};
|
|
207
|
+
let mrzCardObb;
|
|
207
208
|
if (result.code === 'CA') {
|
|
208
209
|
try {
|
|
209
210
|
logger.log("Tentative d'extraction OCR (Back) - Canada Only");
|
|
@@ -249,6 +250,9 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
249
250
|
throw new Error(mrz?.parsed_data?.status_message || 'Lecture MRZ échouée');
|
|
250
251
|
}
|
|
251
252
|
extractionResult.mrz = mrz;
|
|
253
|
+
if (mrz?.card_obb) {
|
|
254
|
+
mrzCardObb = mrz.card_obb;
|
|
255
|
+
}
|
|
252
256
|
}
|
|
253
257
|
catch (mrzError) {
|
|
254
258
|
logger.log(`MRZ échoué: ${mrzError?.message}`);
|
|
@@ -257,8 +261,12 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
257
261
|
}
|
|
258
262
|
let bbox;
|
|
259
263
|
let croppedBase64;
|
|
264
|
+
// For MRZ-backed documents, extract_mrz sees the final verified back image
|
|
265
|
+
// and provides the authoritative card bounds. Keep the template OBB as a
|
|
266
|
+
// fallback for barcode-only and non-MRZ document backs.
|
|
267
|
+
const finalCardObb = mrzCardObb || templateResponse.card_obb;
|
|
260
268
|
try {
|
|
261
|
-
const crop = await cropByObb(result?.path || '',
|
|
269
|
+
const crop = await cropByObb(result?.path || '', finalCardObb);
|
|
262
270
|
bbox = crop.bbox;
|
|
263
271
|
croppedBase64 = crop.base64;
|
|
264
272
|
}
|
|
@@ -269,7 +277,7 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
269
277
|
...extractionResult,
|
|
270
278
|
bbox,
|
|
271
279
|
croppedBase64,
|
|
272
|
-
card_obb:
|
|
280
|
+
card_obb: finalCardObb
|
|
273
281
|
};
|
|
274
282
|
}
|
|
275
283
|
catch (e) {
|
|
@@ -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\";\nimport { Platform } from \"react-native\";\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\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) ? 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 const token = await authentification();\n const detected = await kycService.detectFaceOnId(\n result?.path || '',\n token,\n result?.selectedDocumentType || '',\n 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\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\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 if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\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 if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\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 {\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 if (e?.response?.status || e?.status || e?.isAxiosError) {\n throw e;\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\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) ? 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 const token = await authentification();\n logger.log(\"1. Checking template and framing for back document...\");\n\n const templateResponse: ApiVerificationResponse = result.templateResponse || 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 ? templateResponse.card_obb[0] : null;\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 const countryName = countryInfo?.name_en || countryInfo?.name || '';\n \n const hasCodeMatch = activeTemplatePath.toUpperCase().includes(`_${result.code.toUpperCase()}_`) || activeTemplatePath.toUpperCase().includes(`${result.code.toUpperCase()}/`);\n const hasNameMatch = countryName && activeTemplatePath.toLowerCase().includes(countryName.toLowerCase());\n\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 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 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 let bbox: IBbox | undefined;\n let croppedBase64: string | undefined;\n\n try {\n const crop = await cropByObb(result?.path || '', templateResponse.card_obb);\n bbox = crop.bbox;\n croppedBase64 = crop.base64;\n } catch {\n }\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 const token = await authentification();\n const isCanada = result.docRegion?.toUpperCase() === 'CA';\n\n let safeCapturePath = result.path || '';\n if (Platform.OS === 'ios' && safeCapturePath && !safeCapturePath.startsWith('file://')) {\n safeCapturePath = `file://${safeCapturePath}`;\n }\n \n const templateType = await kycService.checkTemplateType({\n fileUri: safeCapturePath || '',\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 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 const rawMessage = (typeof e === 'string' ? e : (e?.message || '')).toLowerCase();\n\n if (\n e?.response?.status === 401 || e?.response?.status === 403 || \n e?.status === 401 || rawMessage.includes('unauthorized') || 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 throw new Error(typeof e === 'string' ? e : (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":"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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\";\nimport { Platform } from \"react-native\";\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\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) ? 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 const token = await authentification();\n const detected = await kycService.detectFaceOnId(\n result?.path || '',\n token,\n result?.selectedDocumentType || '',\n 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\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\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 if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\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 if (err?.response?.status === 401 || err?.response?.status === 403 || err?.status === 401) throw err;\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 {\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 if (e?.response?.status || e?.status || e?.isAxiosError) {\n throw e;\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\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) ? 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 const token = await authentification();\n logger.log(\"1. Checking template and framing for back document...\");\n\n const templateResponse: ApiVerificationResponse = result.templateResponse || 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 ? templateResponse.card_obb[0] : null;\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 const countryName = countryInfo?.name_en || countryInfo?.name || '';\n \n const hasCodeMatch = activeTemplatePath.toUpperCase().includes(`_${result.code.toUpperCase()}_`) || activeTemplatePath.toUpperCase().includes(`${result.code.toUpperCase()}/`);\n const hasNameMatch = countryName && activeTemplatePath.toLowerCase().includes(countryName.toLowerCase());\n\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 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 let mrzCardObb: 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 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 if (mrz?.card_obb) {\n mrzCardObb = mrz.card_obb;\n }\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 let bbox: IBbox | undefined;\n let croppedBase64: string | undefined;\n // For MRZ-backed documents, extract_mrz sees the final verified back image\n // and provides the authoritative card bounds. Keep the template OBB as a\n // fallback for barcode-only and non-MRZ document backs.\n const finalCardObb = mrzCardObb || templateResponse.card_obb;\n\n try {\n const crop = await cropByObb(result?.path || '', finalCardObb);\n bbox = crop.bbox;\n croppedBase64 = crop.base64;\n } catch {\n }\n\n return {\n success: true,\n ...extractionResult,\n bbox,\n croppedBase64,\n card_obb: finalCardObb\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 const token = await authentification();\n const isCanada = result.docRegion?.toUpperCase() === 'CA';\n\n let safeCapturePath = result.path || '';\n if (Platform.OS === 'ios' && safeCapturePath && !safeCapturePath.startsWith('file://')) {\n safeCapturePath = `file://${safeCapturePath}`;\n }\n \n const templateType = await kycService.checkTemplateType({\n fileUri: safeCapturePath || '',\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 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 const rawMessage = (typeof e === 'string' ? e : (e?.message || '')).toLowerCase();\n\n if (\n e?.response?.status === 401 || e?.response?.status === 403 || \n e?.status === 401 || rawMessage.includes('unauthorized') || 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 throw new Error(typeof e === 'string' ? e : (e?.message || 'Erreur de vérification du template'));\n }\n}\n"]}
|
|
@@ -14,7 +14,7 @@ export declare function cropByObb(uri: string, cardObb: any): Promise<{
|
|
|
14
14
|
height: number;
|
|
15
15
|
};
|
|
16
16
|
}>;
|
|
17
|
-
export declare function cropImageWithBBoxWithTolerance(uri: string, bbox: any, tolerance?: number): Promise<string>;
|
|
17
|
+
export declare function cropImageWithBBoxWithTolerance(uri: string, bbox: any, tolerance?: number, preferredCardOrientation?: 'landscape' | 'portrait' | 'either'): Promise<string>;
|
|
18
18
|
export declare function cropToCenterScanArea(uri: string, scanWidthRatio?: number, // Match Kotlin's 0.91f
|
|
19
19
|
scanAreaAspectRatio?: number): Promise<string>;
|
|
20
20
|
//# sourceMappingURL=cropByObb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cropByObb.d.ts","sourceRoot":"","sources":["../../../src/utils/cropByObb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cropByObb.d.ts","sourceRoot":"","sources":["../../../src/utils/cropByObb.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAG7C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAc5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,GAAG,IAAI,CAyB3D;AA0JD,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAwB7J;AA4BD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,EACT,SAAS,GAAE,MAAa,EACxB,wBAAwB,GAAE,WAAW,GAAG,UAAU,GAAG,QAAsB,GAC1E,OAAO,CAAC,MAAM,CAAC,CA4HjB;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,MAAa,EAAE,uBAAuB;AACtD,mBAAmB,GAAE,MAAa,GACjC,OAAO,CAAC,MAAM,CAAC,CAsDjB"}
|
|
@@ -67,6 +67,87 @@ function computeAabb(points) {
|
|
|
67
67
|
const maxY = Math.max(...ys);
|
|
68
68
|
return { minX, minY, maxX, maxY, width: maxX - minX, height: maxY - minY };
|
|
69
69
|
}
|
|
70
|
+
function getInFrameRatio(bbox, imageWidth, imageHeight) {
|
|
71
|
+
const left = Math.max(0, bbox.minX);
|
|
72
|
+
const top = Math.max(0, bbox.minY);
|
|
73
|
+
const right = Math.min(imageWidth, bbox.minX + bbox.width);
|
|
74
|
+
const bottom = Math.min(imageHeight, bbox.minY + bbox.height);
|
|
75
|
+
const intersectionArea = Math.max(0, right - left) * Math.max(0, bottom - top);
|
|
76
|
+
const bboxArea = bbox.width * bbox.height;
|
|
77
|
+
return bboxArea > 0 ? intersectionArea / bboxArea : 0;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The API can return OBB coordinates in the camera sensor's pixel space while
|
|
81
|
+
* ImageManipulator returns an EXIF-normalized image. On phones held sideways,
|
|
82
|
+
* those spaces are 90 degrees apart. Select the representation which best fits
|
|
83
|
+
* the normalized image instead of applying the server coordinates blindly.
|
|
84
|
+
*/
|
|
85
|
+
function resolveBboxOrientation(bbox, imageWidth, imageHeight, preferredCardOrientation = 'landscape') {
|
|
86
|
+
const candidates = [
|
|
87
|
+
{
|
|
88
|
+
bbox,
|
|
89
|
+
orientation: 'direct',
|
|
90
|
+
priority: 0.75,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
// Source canvas is imageHeight x imageWidth and is rotated clockwise.
|
|
94
|
+
bbox: {
|
|
95
|
+
minX: imageWidth - bbox.minY - bbox.height,
|
|
96
|
+
minY: bbox.minX,
|
|
97
|
+
width: bbox.height,
|
|
98
|
+
height: bbox.width,
|
|
99
|
+
},
|
|
100
|
+
orientation: 'clockwise',
|
|
101
|
+
priority: 0,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
// Source canvas is imageHeight x imageWidth and is rotated counter-clockwise.
|
|
105
|
+
bbox: {
|
|
106
|
+
minX: bbox.minY,
|
|
107
|
+
minY: imageHeight - bbox.minX - bbox.width,
|
|
108
|
+
width: bbox.height,
|
|
109
|
+
height: bbox.width,
|
|
110
|
+
},
|
|
111
|
+
orientation: 'counter-clockwise',
|
|
112
|
+
priority: 0,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
bbox: {
|
|
116
|
+
minX: imageWidth - bbox.minX - bbox.width,
|
|
117
|
+
minY: imageHeight - bbox.minY - bbox.height,
|
|
118
|
+
width: bbox.width,
|
|
119
|
+
height: bbox.height,
|
|
120
|
+
},
|
|
121
|
+
orientation: 'upside-down',
|
|
122
|
+
priority: -0.25,
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
const scoredCandidates = candidates.map((candidate) => {
|
|
126
|
+
const candidateBbox = candidate.bbox;
|
|
127
|
+
const inFrameRatio = getInFrameRatio(candidateBbox, imageWidth, imageHeight);
|
|
128
|
+
const centerX = candidateBbox.minX + candidateBbox.width / 2;
|
|
129
|
+
const centerY = candidateBbox.minY + candidateBbox.height / 2;
|
|
130
|
+
const normalizedCenterDistance = Math.hypot((centerX - imageWidth / 2) / Math.max(1, imageWidth / 2), (centerY - imageHeight / 2) / Math.max(1, imageHeight / 2));
|
|
131
|
+
const centerScore = 1 - Math.min(1, normalizedCenterDistance);
|
|
132
|
+
const isLandscapeCard = candidateBbox.width >= candidateBbox.height;
|
|
133
|
+
const preferredOrientationScore = preferredCardOrientation === 'either'
|
|
134
|
+
? 0
|
|
135
|
+
: ((preferredCardOrientation === 'landscape') === isLandscapeCard ? 1 : 0);
|
|
136
|
+
const areaRatio = (candidateBbox.width * candidateBbox.height) / Math.max(1, imageWidth * imageHeight);
|
|
137
|
+
const plausibleAreaScore = Math.min(1, areaRatio / 0.08);
|
|
138
|
+
return {
|
|
139
|
+
bbox: candidateBbox,
|
|
140
|
+
orientation: candidate.orientation,
|
|
141
|
+
inFrameRatio,
|
|
142
|
+
score: inFrameRatio * 100
|
|
143
|
+
+ centerScore * 3
|
|
144
|
+
+ preferredOrientationScore * 2
|
|
145
|
+
+ plausibleAreaScore
|
|
146
|
+
+ candidate.priority,
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
return scoredCandidates.reduce((best, candidate) => (candidate.score > best.score ? candidate : best));
|
|
150
|
+
}
|
|
70
151
|
async function cropWeb(uri, points) {
|
|
71
152
|
return new Promise((resolve, reject) => {
|
|
72
153
|
const img = new Image();
|
|
@@ -127,7 +208,7 @@ async function normalizeOrientationAndGetDimensions(uri) {
|
|
|
127
208
|
});
|
|
128
209
|
return { normalizedUri: result.uri, width: result.width, height: result.height };
|
|
129
210
|
}
|
|
130
|
-
export async function cropImageWithBBoxWithTolerance(uri, bbox, tolerance = 0.02) {
|
|
211
|
+
export async function cropImageWithBBoxWithTolerance(uri, bbox, tolerance = 0.02, preferredCardOrientation = 'landscape') {
|
|
131
212
|
return new Promise((resolve) => {
|
|
132
213
|
let isResolved = false;
|
|
133
214
|
// Safety Timeout (15 seconds — slightly longer to account for normalization step)
|
|
@@ -158,10 +239,36 @@ export async function cropImageWithBBoxWithTolerance(uri, bbox, tolerance = 0.02
|
|
|
158
239
|
pixelHeight = bbox.height * actualHeight;
|
|
159
240
|
}
|
|
160
241
|
else {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
242
|
+
const resolvedBbox = resolveBboxOrientation({
|
|
243
|
+
minX: bbox.minX,
|
|
244
|
+
minY: bbox.minY,
|
|
245
|
+
width: bbox.width,
|
|
246
|
+
height: bbox.height,
|
|
247
|
+
}, actualWidth, actualHeight, preferredCardOrientation);
|
|
248
|
+
if (resolvedBbox.inFrameRatio < 0.6) {
|
|
249
|
+
if (!isResolved) {
|
|
250
|
+
isResolved = true;
|
|
251
|
+
clearTimeout(timeout);
|
|
252
|
+
console.warn('OBB does not match the normalized image bounds; returning the full image.', {
|
|
253
|
+
bbox,
|
|
254
|
+
imageSize: { width: actualWidth, height: actualHeight },
|
|
255
|
+
bestOrientation: resolvedBbox.orientation,
|
|
256
|
+
inFrameRatio: resolvedBbox.inFrameRatio,
|
|
257
|
+
});
|
|
258
|
+
resolve(normalizedUri);
|
|
259
|
+
}
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (resolvedBbox.orientation !== 'direct') {
|
|
263
|
+
console.info('Adjusted OBB coordinates for the normalized camera orientation.', {
|
|
264
|
+
orientation: resolvedBbox.orientation,
|
|
265
|
+
imageSize: { width: actualWidth, height: actualHeight },
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
pixelMinX = resolvedBbox.bbox.minX;
|
|
269
|
+
pixelMinY = resolvedBbox.bbox.minY;
|
|
270
|
+
pixelWidth = resolvedBbox.bbox.width;
|
|
271
|
+
pixelHeight = resolvedBbox.bbox.height;
|
|
165
272
|
}
|
|
166
273
|
// STEP 3: Add tolerance and clamp to image bounds.
|
|
167
274
|
const toleranceX = pixelWidth * tolerance;
|