@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.
@@ -1 +1 @@
1
- {"version":3,"file":"region_mapping.js","sourceRoot":"","sources":["../../src/config/region_mapping.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAsE;IAC7F,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,eAAe,EAAE;YACb,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,yBAAyB;oBACpC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,yBAAyB;oBACpC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,yBAAyB;oBACpC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,yBAAyB;oBACpC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,yBAAyB;oBACpC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,iBAAiB,EAAE;YACf,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,kBAAkB;oBAC7B,OAAO,EAAE,YAAY;iBACxB;aACJ;YACD,kBAAkB,EAAE;gBAChB;oBACI,SAAS,EAAE,0BAA0B;oBACrC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,2BAA2B;oBACtC,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,8BAA8B;oBACzC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,UAAU,EAAE;gBACR;oBACI,SAAS,EAAE,kBAAkB;oBAC7B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,eAAe,EAAE;gBACb;oBACI,SAAS,EAAE,uBAAuB;oBAClC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,wBAAwB;oBACnC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,2BAA2B,EAAE;gBACzB;oBACI,SAAS,EAAE,sBAAsB;oBACjC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,uBAAuB;oBAClC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,uBAAuB,EAAE;gBACrB;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,aAAa,EAAE;gBACX;oBACI,SAAS,EAAE,qBAAqB;oBAChC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,sBAAsB;oBACjC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,kBAAkB;oBAC7B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,kBAAkB;oBAC7B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,sBAAsB,EAAE;gBACpB;oBACI,SAAS,EAAE,YAAY;oBACvB,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,aAAa;oBACxB,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,QAAQ,EAAE;gBACN;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,cAAc,EAAE;gBACZ;oBACI,SAAS,EAAE,sBAAsB;oBACjC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,uBAAuB;oBAClC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,OAAO,EAAE;gBACL;oBACI,SAAS,EAAE,eAAe;oBAC1B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,uBAAuB,EAAE;YACrB,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,kBAAkB;oBAC7B,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,QAAQ,EAAE;gBACN;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,YAAY;iBACxB;aACJ;SACJ;QACD,eAAe,EAAE;YACb,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,qBAAqB;oBAChC,OAAO,EAAE,YAAY;iBACxB;aACJ;YACD,kBAAkB,EAAE;gBAChB;oBACI,SAAS,EAAE,6BAA6B;oBACxC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,8BAA8B;oBACzC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,eAAe,EAAE;gBACb;oBACI,SAAS,EAAE,0BAA0B;oBACrC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,2BAA2B;oBACtC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,aAAa,EAAE;gBACX;oBACI,SAAS,EAAE,wBAAwB;oBACnC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,yBAAyB;oBACpC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,SAAS,EAAE;gBACP;oBACI,SAAS,EAAE,oBAAoB;oBAC/B,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,qBAAqB;oBAChC,YAAY,EAAE,IAAI;iBACrB;aACJ;YACD,cAAc,EAAE;gBACZ;oBACI,SAAS,EAAE,yBAAyB;oBACpC,MAAM,EAAE,YAAY;iBACvB;gBACD;oBACI,SAAS,EAAE,0BAA0B;oBACrC,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;QACD,qBAAqB,EAAE;YACnB,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,eAAe;oBAC1B,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,eAAe;oBAC1B,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,WAAW;oBACtB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,yBAAyB;oBACpC,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,gBAAgB;oBAC3B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,eAAe,EAAE;YACb,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,cAAc;oBACzB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,eAAe,EAAE;YACb,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,WAAW;oBACtB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,eAAe,EAAE;YACb,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,SAAS,EAAE,YAAY;oBACvB,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,YAAY;oBACvB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,mBAAmB;oBAC9B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,eAAe,EAAE;YACb,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,sBAAsB;oBACjC,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,uBAAuB;oBAClC,YAAY,EAAE,IAAI;iBACrB;aACJ;SACJ;QACD,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;gBACD;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,eAAe;oBAC1B,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;IACD,IAAI,EAAE;QACF,UAAU,EAAE;YACR,MAAM,EAAE;gBACJ;oBACI,SAAS,EAAE,YAAY;oBACvB,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,KAAK;iBACpB;aACJ;SACJ;KACJ;CACJ,CAAA","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;GAwGjC;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,gBA4KrC;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,gBAkDzJ"}
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
- // --- STRICT FRAMING CHECK ---
47
- if (cardData && typeof cardData.card_in_frame !== 'undefined') {
48
- const isCardInFrame = cardData.card_in_frame === true;
49
- const hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
50
- // If it is NOT in the frame, OR if any side is cropped, block progression
51
- if (!isCardInFrame || hasCroppedSides) {
52
- logger.log(`Framing failed. Cropped sides: ${hasCroppedSides ? cardData.cropped_sides?.join(', ') : 'none'}`);
53
- throw new Error('CARD_NOT_FULLY_IN_FRAME');
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
- mrz = await kycService.extractMrzText({
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:', JSON.stringify(errorMessage(e), null, 2));
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
- parsed_data: {
212
- status: 'success',
213
- document_type: result.selectedDocumentType,
214
- mrz_type: result.mrzType || 'TD1'
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
- barcode_data: 'SANDBOX_MOCK_BARCODE',
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
- // STRICT FRAMING CHECK
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 && typeof cardData.card_in_frame !== 'undefined') {
243
- const isCardInFrame = cardData.card_in_frame === true;
244
- const hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
245
- if (!isCardInFrame || hasCroppedSides) {
246
- logger.log(`Back Framing failed. Cropped sides: ${hasCroppedSides ? cardData.cropped_sides?.join(', ') : 'none'}`);
247
- throw new Error('CARD_NOT_FULLY_IN_FRAME');
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 tryMrzWithBarcodeFallback = async () => {
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 mrz = await kycService.extractMrzText({
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, // Use the verified template
275
- mrz_type: result?.mrzType || ''
350
+ template_path: activeTemplatePath,
351
+ mrz_type: result?.mrzType || '' // Safe to send empty string
276
352
  }, env);
277
- let bbox;
278
- let croppedBase64;
279
- try {
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
- catch { }
286
- return { ...mrz, bbox, croppedBase64 };
357
+ extractionResult = { mrz };
287
358
  }
288
359
  catch (mrzError) {
289
- logger.log("MRZ échoué, tentative d'extraction barcode");
290
- try {
291
- const barcode = await kycService.extractBarcode({ fileUri: result.path, token: token }, env);
292
- return barcode;
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
- catch (barcodeError) {
295
- throw new Error(`MRZ et barcode ont échoué. MRZ: ${mrzError?.message}, Barcode: ${barcodeError?.message}`);
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
- if (result.regionMapping?.authMethod?.length > 0 && result.regionMapping.authMethod.includes('MRZ') && result?.mrzType && result?.mrzType.length > 0) {
375
+ // --- 5. Try Barcode Only ---
376
+ else if (hasBarcode) {
303
377
  try {
304
- const mrz = await kycService.extractMrzText({
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
- let bbox;
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 (barcodeError) {
338
- throw new Error(`Barcode et MRZ ont échoué. Barcode: ${barcodeError?.message}, MRZ: ${barcodeError?.message}`);
382
+ catch (e) {
383
+ throw new Error(`Lecture Barcode échouée: ${e?.message}`);
339
384
  }
340
385
  }
341
- return null;
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; // Bubble the strict framing error specifically
346
- throw new Error(e?.message || 'Erreur de détection du MRZ ou barcode');
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 && typeof cardData.card_in_frame !== 'undefined') {
373
- const isCardInFrame = cardData.card_in_frame === true;
374
- const hasCroppedSides = Array.isArray(cardData.cropped_sides) && cardData.cropped_sides.length > 0;
375
- if (!isCardInFrame || hasCroppedSides) {
376
- logger.log(`Template Framing failed. Cropped sides: ${hasCroppedSides ? cardData.cropped_sides?.join(', ') : 'none'}`);
377
- throw new Error('CARD_NOT_FULLY_IN_FRAME');
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}`);