@transfergratis/react-native-sdk 0.1.29 → 0.1.31
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/components/KYCElements/IDCardCapture.d.ts.map +1 -1
- package/build/components/KYCElements/IDCardCapture.js +56 -25
- package/build/components/KYCElements/IDCardCapture.js.map +1 -1
- package/build/config/region_mapping.d.ts.map +1 -1
- package/build/config/region_mapping.js +10 -18
- package/build/config/region_mapping.js.map +1 -1
- package/build/modules/api/CardAuthentification.d.ts.map +1 -1
- package/build/modules/api/CardAuthentification.js +180 -89
- package/build/modules/api/CardAuthentification.js.map +1 -1
- package/build/modules/api/KYCService.d.ts +1 -1
- package/build/modules/api/KYCService.d.ts.map +1 -1
- package/build/modules/api/KYCService.js +10 -6
- package/build/modules/api/KYCService.js.map +1 -1
- package/package.json +1 -1
- package/src/components/KYCElements/IDCardCapture.tsx +78 -37
- package/src/config/region_mapping.json +10 -18
- package/src/config/region_mapping.ts +10 -18
- package/src/modules/api/CardAuthentification.ts +211 -99
- package/src/modules/api/KYCService.ts +28 -7
|
@@ -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 \"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.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.py\",\r\n \"keys_found\": null\r\n },\r\n {\r\n \"py_file\": \"cameroon_id_front_2_1.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_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\": \"back_3.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 \"py_file\": \"front_3.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 \"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 +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;IACjB,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AASD,wBAAsB,iBAAiB,CACnC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAChM,GAAG,GAAE,cAA6B;;;;;;;;;;;;;;;;;;;;;;;;aARzB,OAAO;aACP,GAAG,EAAE;eACH,WAAW,EAAE,GAAG,GAAG;
|
|
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;IACjB,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AASD,wBAAsB,iBAAiB,CACnC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAChM,GAAG,GAAE,cAA6B;;;;;;;;;;;;;;;;;;;;;;;;aARzB,OAAO;aACP,GAAG,EAAE;eACH,WAAW,EAAE,GAAG,GAAG;GA8IjC;AA0HD,wBAAsB,gBAAgB,CAClC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAChM,GAAG,GAAE,cAA6B,gBAoNrC;AAGD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,GAAE,cAA6B,gBAoFzJ"}
|
|
@@ -43,14 +43,34 @@ export async function frontVerification(result, env = 'PRODUCTION') {
|
|
|
43
43
|
const cardData = detected.card_obb && Array.isArray(detected.card_obb) && detected.card_obb.length > 0
|
|
44
44
|
? detected.card_obb[0]
|
|
45
45
|
: null;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
let points = null;
|
|
47
|
+
let isCardInFrame = true;
|
|
48
|
+
let hasCroppedSides = false;
|
|
49
|
+
// Extract data safely
|
|
50
|
+
if (cardData) {
|
|
51
|
+
points = cardData.obb;
|
|
52
|
+
if (typeof cardData.card_in_frame !== 'undefined') {
|
|
53
|
+
isCardInFrame = cardData.card_in_frame === true;
|
|
54
|
+
hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// --- 1. STRICT FRAMING CHECK (MUST HAPPEN FIRST) ---
|
|
58
|
+
if (!isCardInFrame || hasCroppedSides) {
|
|
59
|
+
logger.log(`Front Framing failed. Cropped sides detected.`);
|
|
60
|
+
throw new Error('CARD_NOT_FULLY_IN_FRAME');
|
|
61
|
+
}
|
|
62
|
+
// --- 2. STRICT DISTANCE CHECK (ONLY RUNS IF FULLY IN FRAME) ---
|
|
63
|
+
if (points && points.length === 4) {
|
|
64
|
+
const getDistance = (p1, p2) => Math.sqrt(Math.pow(p2[0] - p1[0], 2) + Math.pow(p2[1] - p1[1], 2));
|
|
65
|
+
const longestCardEdge = Math.max(getDistance(points[0], points[1]), getDistance(points[1], points[2]));
|
|
66
|
+
const maxX = Math.max(points[0][0], points[1][0], points[2][0], points[3][0]);
|
|
67
|
+
const maxY = Math.max(points[0][1], points[1][1], points[2][1], points[3][1]);
|
|
68
|
+
const estimatedImageScale = Math.max(maxX, maxY);
|
|
69
|
+
const fillPercentage = longestCardEdge / estimatedImageScale;
|
|
70
|
+
logger.log(`Front Card Fill Percentage: ${(fillPercentage * 100).toFixed(1)}%`);
|
|
71
|
+
if (fillPercentage < 0.50) {
|
|
72
|
+
logger.log("🛑 Front Image rejected: Document is too far away.");
|
|
73
|
+
throw new Error("TOO_FAR_AWAY");
|
|
54
74
|
}
|
|
55
75
|
}
|
|
56
76
|
// Check Confidence Threshold
|
|
@@ -70,7 +90,7 @@ export async function frontVerification(result, env = 'PRODUCTION') {
|
|
|
70
90
|
catch { }
|
|
71
91
|
// MRZ Extraction
|
|
72
92
|
if (result.regionMapping?.authMethod?.length > 0 && result.regionMapping.authMethod.includes('MRZ')) {
|
|
73
|
-
|
|
93
|
+
const mrzResponse = await kycService.extractMrzText({
|
|
74
94
|
fileUri: result.path || '',
|
|
75
95
|
docType: result?.selectedDocumentType || '',
|
|
76
96
|
docRegion: result?.code || "",
|
|
@@ -79,11 +99,18 @@ export async function frontVerification(result, env = 'PRODUCTION') {
|
|
|
79
99
|
template_path: result?.templatePath || '',
|
|
80
100
|
mrz_type: result?.mrzType || ''
|
|
81
101
|
}, env);
|
|
102
|
+
// Safety check: parse if it was returned as a raw string
|
|
103
|
+
mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;
|
|
104
|
+
if (mrz && (!mrz.success || mrz.parsed_data?.status === 'FAILURE')) {
|
|
105
|
+
logger.log("🛑 Front MRZ Extraction Failed:", mrz.parsed_data?.status_message);
|
|
106
|
+
throw new Error(`MRZ illisible: ${mrz.parsed_data?.status_message || 'Veuillez nettoyer l\'objectif et réessayer'}`);
|
|
107
|
+
}
|
|
82
108
|
}
|
|
83
109
|
return { ...detected, croppedBase64, bbox, ...(mrz ? { mrz } : {}) };
|
|
84
110
|
}
|
|
85
111
|
catch (e) {
|
|
86
|
-
logger.error('Error front verification:',
|
|
112
|
+
logger.error('Error front verification:', e?.message);
|
|
113
|
+
// Do not use LogBox for background silent errors
|
|
87
114
|
throw new Error(e?.message || 'Erreur de détection du visage');
|
|
88
115
|
}
|
|
89
116
|
}
|
|
@@ -208,10 +235,13 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
208
235
|
if (result.regionMapping?.authMethod?.includes('MRZ')) {
|
|
209
236
|
return {
|
|
210
237
|
success: true,
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
238
|
+
mrz: {
|
|
239
|
+
success: true,
|
|
240
|
+
parsed_data: {
|
|
241
|
+
status: 'SUCCESS',
|
|
242
|
+
document_type: result.selectedDocumentType,
|
|
243
|
+
mrz_type: result.mrzType || 'TD1'
|
|
244
|
+
}
|
|
215
245
|
},
|
|
216
246
|
bbox: mockBbox,
|
|
217
247
|
card_obb: mockCardObb
|
|
@@ -219,12 +249,13 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
219
249
|
}
|
|
220
250
|
else if (result.regionMapping?.authMethod?.includes('2D_barcode')) {
|
|
221
251
|
return {
|
|
222
|
-
|
|
252
|
+
success: true,
|
|
253
|
+
barcode: { barcode_data: 'SANDBOX_MOCK_BARCODE' },
|
|
223
254
|
bbox: mockBbox,
|
|
224
255
|
card_obb: mockCardObb
|
|
225
256
|
};
|
|
226
257
|
}
|
|
227
|
-
return { bbox: mockBbox };
|
|
258
|
+
return { success: true, bbox: mockBbox, card_obb: mockCardObb };
|
|
228
259
|
}
|
|
229
260
|
const token = await authentification();
|
|
230
261
|
logger.log("1. Checking template and framing for back document...");
|
|
@@ -235,16 +266,57 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
235
266
|
postfix: 'back',
|
|
236
267
|
token: token
|
|
237
268
|
}, env);
|
|
238
|
-
|
|
269
|
+
if (templateResponse.success === false || templateResponse.Error) {
|
|
270
|
+
logger.log("Backend returned an error:", templateResponse.Error);
|
|
271
|
+
throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');
|
|
272
|
+
}
|
|
239
273
|
const cardData = templateResponse?.card_obb && Array.isArray(templateResponse.card_obb) && templateResponse.card_obb.length > 0
|
|
240
274
|
? templateResponse.card_obb[0]
|
|
241
275
|
: null;
|
|
242
|
-
if (cardData
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
276
|
+
if (!cardData) {
|
|
277
|
+
throw new Error('CARD_NOT_FULLY_IN_FRAME');
|
|
278
|
+
}
|
|
279
|
+
let points = null;
|
|
280
|
+
let isCardInFrame = false;
|
|
281
|
+
let hasCroppedSides = true;
|
|
282
|
+
// Safely extract coordinates and frame status
|
|
283
|
+
if (cardData.obb) {
|
|
284
|
+
points = cardData.obb;
|
|
285
|
+
if (typeof cardData.card_in_frame !== 'undefined') {
|
|
286
|
+
isCardInFrame = cardData.card_in_frame === true;
|
|
287
|
+
hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {
|
|
291
|
+
points = cardData[0];
|
|
292
|
+
isCardInFrame = true;
|
|
293
|
+
hasCroppedSides = false;
|
|
294
|
+
if (points && points.length === 4) {
|
|
295
|
+
const minX = Math.min(...points.map((p) => p[0]));
|
|
296
|
+
const minY = Math.min(...points.map((p) => p[1]));
|
|
297
|
+
if (minX <= 15 || minY <= 15) {
|
|
298
|
+
isCardInFrame = false;
|
|
299
|
+
hasCroppedSides = true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
// --- 2. STRICT FRAMING CHECK (MUST HAPPEN FIRST) ---
|
|
304
|
+
if (!isCardInFrame || hasCroppedSides) {
|
|
305
|
+
logger.log(`Back Framing failed. Coordinates hit image boundary.`);
|
|
306
|
+
throw new Error('CARD_NOT_FULLY_IN_FRAME');
|
|
307
|
+
}
|
|
308
|
+
// --- 3. STRICT DISTANCE CHECK (ONLY RUNS IF FULLY IN FRAME) ---
|
|
309
|
+
if (points && points.length === 4) {
|
|
310
|
+
const getDistance = (p1, p2) => Math.sqrt(Math.pow(p2[0] - p1[0], 2) + Math.pow(p2[1] - p1[1], 2));
|
|
311
|
+
const longestCardEdge = Math.max(getDistance(points[0], points[1]), getDistance(points[1], points[2]));
|
|
312
|
+
const maxX = Math.max(points[0][0], points[1][0], points[2][0], points[3][0]);
|
|
313
|
+
const maxY = Math.max(points[0][1], points[1][1], points[2][1], points[3][1]);
|
|
314
|
+
const estimatedImageScale = Math.max(maxX, maxY);
|
|
315
|
+
const fillPercentage = longestCardEdge / estimatedImageScale;
|
|
316
|
+
logger.log(`Back Card Fill Percentage: ${(fillPercentage * 100).toFixed(1)}%`);
|
|
317
|
+
if (fillPercentage < 0.50) {
|
|
318
|
+
logger.log("🛑 Back Image rejected: Document is too far away.");
|
|
319
|
+
throw new Error("TOO_FAR_AWAY");
|
|
248
320
|
}
|
|
249
321
|
}
|
|
250
322
|
const obbConf = getObbConfidence(templateResponse?.card_obb);
|
|
@@ -262,88 +334,76 @@ export async function backVerification(result, env = 'PRODUCTION') {
|
|
|
262
334
|
}
|
|
263
335
|
}
|
|
264
336
|
logger.log("Framing and Country Template verified successfully. Proceeding to Data Extraction.");
|
|
265
|
-
const
|
|
337
|
+
const hasMrz = result.regionMapping?.authMethod?.includes('MRZ') || !result.regionMapping?.authMethod?.length;
|
|
338
|
+
const hasBarcode = result.regionMapping?.authMethod?.includes('2D_barcode');
|
|
339
|
+
let extractionResult = {};
|
|
340
|
+
// --- 4. Try MRZ First (If required or default) ---
|
|
341
|
+
if (hasMrz) {
|
|
266
342
|
try {
|
|
267
343
|
logger.log("Tentative d'extraction MRZ");
|
|
268
|
-
const
|
|
344
|
+
const mrzResponse = await kycService.extractMrzText({
|
|
269
345
|
fileUri: result.path,
|
|
270
346
|
docType: result?.selectedDocumentType || '',
|
|
271
347
|
docRegion: result?.code || '',
|
|
272
348
|
postfix: 'back',
|
|
273
349
|
token: token,
|
|
274
|
-
template_path: activeTemplatePath,
|
|
275
|
-
mrz_type: result?.mrzType || ''
|
|
350
|
+
template_path: activeTemplatePath,
|
|
351
|
+
mrz_type: result?.mrzType || '' // Safe to send empty string
|
|
276
352
|
}, env);
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
// We use the OBB from our template check to ensure clean cropping
|
|
281
|
-
const crop = await cropByObb(result?.path || '', templateResponse.card_obb);
|
|
282
|
-
bbox = crop.bbox;
|
|
283
|
-
croppedBase64 = crop.base64;
|
|
353
|
+
const mrz = typeof mrzResponse === 'string' ? JSON.parse(mrzResponse) : mrzResponse;
|
|
354
|
+
if (!mrz || !mrz.success || mrz.parsed_data?.status === 'FAILURE') {
|
|
355
|
+
throw new Error(mrz?.parsed_data?.status_message || 'Lecture MRZ échouée');
|
|
284
356
|
}
|
|
285
|
-
|
|
286
|
-
return { ...mrz, bbox, croppedBase64 };
|
|
357
|
+
extractionResult = { mrz };
|
|
287
358
|
}
|
|
288
359
|
catch (mrzError) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
360
|
+
if (hasBarcode) {
|
|
361
|
+
logger.log(`MRZ échoué (${mrzError?.message}), tentative d'extraction barcode...`);
|
|
362
|
+
try {
|
|
363
|
+
const barcode = await kycService.extractBarcode({ fileUri: result.path, token: token }, env);
|
|
364
|
+
extractionResult = { barcode };
|
|
365
|
+
}
|
|
366
|
+
catch (barcodeError) {
|
|
367
|
+
throw new Error(`MRZ et Barcode ont échoué. Veuillez stabiliser la carte.`);
|
|
368
|
+
}
|
|
293
369
|
}
|
|
294
|
-
|
|
295
|
-
throw new Error(`MRZ
|
|
370
|
+
else {
|
|
371
|
+
throw new Error(`Lecture MRZ invalide: ${mrzError?.message}`);
|
|
296
372
|
}
|
|
297
373
|
}
|
|
298
|
-
};
|
|
299
|
-
if (result.regionMapping?.authMethod?.length > 2 && (!result?.mrzType || result?.mrzType.length === 0)) {
|
|
300
|
-
return await tryMrzWithBarcodeFallback();
|
|
301
374
|
}
|
|
302
|
-
|
|
375
|
+
// --- 5. Try Barcode Only ---
|
|
376
|
+
else if (hasBarcode) {
|
|
303
377
|
try {
|
|
304
|
-
|
|
305
|
-
fileUri: result.path,
|
|
306
|
-
docType: result?.selectedDocumentType || '',
|
|
307
|
-
docRegion: result?.code || '',
|
|
308
|
-
postfix: 'back',
|
|
309
|
-
token: token,
|
|
310
|
-
template_path: activeTemplatePath,
|
|
311
|
-
mrz_type: result?.mrzType || ''
|
|
312
|
-
}, env);
|
|
313
|
-
let bbox;
|
|
314
|
-
try {
|
|
315
|
-
const crop = await cropByObb(result?.path || '', templateResponse.card_obb);
|
|
316
|
-
bbox = crop.bbox;
|
|
317
|
-
}
|
|
318
|
-
catch { }
|
|
319
|
-
return { ...mrz, bbox };
|
|
320
|
-
}
|
|
321
|
-
catch (mrzError) {
|
|
322
|
-
throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${mrzError?.message}`);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
if (result.regionMapping?.authMethod?.length > 0 && result.regionMapping.authMethod.includes('2D_barcode')) {
|
|
326
|
-
try {
|
|
327
|
-
logger.log("Tentative d'extraction barcode");
|
|
378
|
+
logger.log("Tentative d'extraction barcode seule");
|
|
328
379
|
const barcode = await kycService.extractBarcode({ fileUri: result.path, token: token }, env);
|
|
329
|
-
|
|
330
|
-
try {
|
|
331
|
-
const crop = await cropByObb(result?.path || '', templateResponse.card_obb);
|
|
332
|
-
bbox = crop.bbox;
|
|
333
|
-
}
|
|
334
|
-
catch { }
|
|
335
|
-
return { ...barcode, bbox };
|
|
380
|
+
extractionResult = { barcode };
|
|
336
381
|
}
|
|
337
|
-
catch (
|
|
338
|
-
throw new Error(`
|
|
382
|
+
catch (e) {
|
|
383
|
+
throw new Error(`Lecture Barcode échouée: ${e?.message}`);
|
|
339
384
|
}
|
|
340
385
|
}
|
|
341
|
-
|
|
386
|
+
let bbox;
|
|
387
|
+
let croppedBase64;
|
|
388
|
+
try {
|
|
389
|
+
const crop = await cropByObb(result?.path || '', templateResponse.card_obb);
|
|
390
|
+
bbox = crop.bbox;
|
|
391
|
+
croppedBase64 = crop.base64;
|
|
392
|
+
}
|
|
393
|
+
catch { }
|
|
394
|
+
return {
|
|
395
|
+
success: true,
|
|
396
|
+
...extractionResult,
|
|
397
|
+
bbox,
|
|
398
|
+
croppedBase64,
|
|
399
|
+
card_obb: templateResponse.card_obb
|
|
400
|
+
};
|
|
342
401
|
}
|
|
343
402
|
catch (e) {
|
|
344
|
-
if (e?.message === 'CARD_NOT_FULLY_IN_FRAME')
|
|
345
|
-
throw e;
|
|
346
|
-
|
|
403
|
+
if (e?.message === 'CARD_NOT_FULLY_IN_FRAME' || e?.message === 'TOO_FAR_AWAY') {
|
|
404
|
+
throw e;
|
|
405
|
+
}
|
|
406
|
+
throw new Error(e?.message || 'Erreur de détection des données');
|
|
347
407
|
}
|
|
348
408
|
}
|
|
349
409
|
/**
|
|
@@ -366,17 +426,48 @@ export async function checkTemplateType(result, env = 'PRODUCTION') {
|
|
|
366
426
|
}
|
|
367
427
|
const token = await authentification();
|
|
368
428
|
const templateType = await kycService.checkTemplateType({ fileUri: result.path || '', docType: result?.docType, docRegion: result?.docRegion || "", postfix: result?.postfix, token: token }, env);
|
|
429
|
+
if (templateType.success === false || templateType.Error) {
|
|
430
|
+
logger.log("Backend returned an error:", templateType.Error);
|
|
431
|
+
throw new Error('Impossible de lire le document. Veuillez vous rapprocher et stabiliser la caméra.');
|
|
432
|
+
}
|
|
369
433
|
const cardData = templateType.card_obb && Array.isArray(templateType.card_obb) && templateType.card_obb.length > 0
|
|
370
434
|
? templateType.card_obb[0]
|
|
371
435
|
: null;
|
|
372
|
-
if (cardData
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
436
|
+
if (!cardData) {
|
|
437
|
+
throw new Error('CARD_NOT_FULLY_IN_FRAME');
|
|
438
|
+
}
|
|
439
|
+
// Default to FALSE so it must prove it is in the frame
|
|
440
|
+
let points = null;
|
|
441
|
+
let isCardInFrame = false;
|
|
442
|
+
let hasCroppedSides = true;
|
|
443
|
+
// Extract data safely based on API response format
|
|
444
|
+
if (cardData.obb) {
|
|
445
|
+
points = cardData.obb;
|
|
446
|
+
if (typeof cardData.card_in_frame !== 'undefined') {
|
|
447
|
+
isCardInFrame = cardData.card_in_frame === true;
|
|
448
|
+
hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
else if (Array.isArray(cardData) && Array.isArray(cardData[0])) {
|
|
452
|
+
points = cardData[0];
|
|
453
|
+
isCardInFrame = true; // Passed initial existence check
|
|
454
|
+
hasCroppedSides = false;
|
|
455
|
+
// MATH FALLBACK: Check if the coordinates are touching the absolute edge of the photo.
|
|
456
|
+
if (points && points.length === 4) {
|
|
457
|
+
const minX = Math.min(...points.map((p) => p[0]));
|
|
458
|
+
const minY = Math.min(...points.map((p) => p[1]));
|
|
459
|
+
// If any corner is within 15 pixels of the edge, it is physically cut off!
|
|
460
|
+
if (minX <= 15 || minY <= 15) {
|
|
461
|
+
isCardInFrame = false;
|
|
462
|
+
hasCroppedSides = true;
|
|
463
|
+
}
|
|
378
464
|
}
|
|
379
465
|
}
|
|
466
|
+
// --- 3. STRICT FRAMING CHECK (MUST HAPPEN FIRST) ---
|
|
467
|
+
if (!isCardInFrame || hasCroppedSides) {
|
|
468
|
+
logger.log(`Template Framing failed. Coordinates hit image boundary.`);
|
|
469
|
+
throw new Error('CARD_NOT_FULLY_IN_FRAME');
|
|
470
|
+
}
|
|
380
471
|
const LPIPS_THRESHOLD = 0.75;
|
|
381
472
|
if (templateType.lpips_score !== undefined && templateType.lpips_score > LPIPS_THRESHOLD) {
|
|
382
473
|
logger.log(`🛑 Country Mismatch! LPIPS Score too high: ${templateType.lpips_score}`);
|