@mikashboks/capture-intelligence-core 0.1.10 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/cjs/capture-normalization.d.ts +21 -1
  2. package/dist/cjs/capture-normalization.d.ts.map +1 -1
  3. package/dist/cjs/capture-normalization.js +85 -13
  4. package/dist/cjs/capture-normalization.js.map +1 -1
  5. package/dist/cjs/document-classifier.d.ts.map +1 -1
  6. package/dist/cjs/document-classifier.js +59 -2
  7. package/dist/cjs/document-classifier.js.map +1 -1
  8. package/dist/cjs/document-placement.d.ts +21 -0
  9. package/dist/cjs/document-placement.d.ts.map +1 -0
  10. package/dist/cjs/document-placement.js +69 -0
  11. package/dist/cjs/document-placement.js.map +1 -0
  12. package/dist/cjs/index.d.ts +12 -4
  13. package/dist/cjs/index.d.ts.map +1 -1
  14. package/dist/cjs/index.js +27 -2
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/issuing-country.d.ts +16 -0
  17. package/dist/cjs/issuing-country.d.ts.map +1 -0
  18. package/dist/cjs/issuing-country.js +77 -0
  19. package/dist/cjs/issuing-country.js.map +1 -0
  20. package/dist/cjs/kyc-mobile-contract.d.ts +13 -1
  21. package/dist/cjs/kyc-mobile-contract.d.ts.map +1 -1
  22. package/dist/cjs/kyc-mobile-contract.js +64 -6
  23. package/dist/cjs/kyc-mobile-contract.js.map +1 -1
  24. package/dist/cjs/mrz-band-detector.d.ts +12 -5
  25. package/dist/cjs/mrz-band-detector.d.ts.map +1 -1
  26. package/dist/cjs/mrz-band-detector.js +29 -14
  27. package/dist/cjs/mrz-band-detector.js.map +1 -1
  28. package/dist/cjs/mrz-check-digits.d.ts +74 -0
  29. package/dist/cjs/mrz-check-digits.d.ts.map +1 -0
  30. package/dist/cjs/mrz-check-digits.js +478 -0
  31. package/dist/cjs/mrz-check-digits.js.map +1 -0
  32. package/dist/cjs/mrz-policy.d.ts +18 -0
  33. package/dist/cjs/mrz-policy.d.ts.map +1 -0
  34. package/dist/cjs/mrz-policy.js +90 -0
  35. package/dist/cjs/mrz-policy.js.map +1 -0
  36. package/dist/cjs/quality-checks.d.ts +14 -0
  37. package/dist/cjs/quality-checks.d.ts.map +1 -1
  38. package/dist/cjs/quality-checks.js +43 -5
  39. package/dist/cjs/quality-checks.js.map +1 -1
  40. package/dist/cjs/types.d.ts +2 -2
  41. package/dist/cjs/types.js +2 -2
  42. package/dist/esm/capture-normalization.d.ts +21 -1
  43. package/dist/esm/capture-normalization.d.ts.map +1 -1
  44. package/dist/esm/capture-normalization.js +84 -13
  45. package/dist/esm/capture-normalization.js.map +1 -1
  46. package/dist/esm/document-classifier.d.ts.map +1 -1
  47. package/dist/esm/document-classifier.js +59 -2
  48. package/dist/esm/document-classifier.js.map +1 -1
  49. package/dist/esm/document-placement.d.ts +21 -0
  50. package/dist/esm/document-placement.d.ts.map +1 -0
  51. package/dist/esm/document-placement.js +65 -0
  52. package/dist/esm/document-placement.js.map +1 -0
  53. package/dist/esm/index.d.ts +12 -4
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +7 -3
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/issuing-country.d.ts +16 -0
  58. package/dist/esm/issuing-country.d.ts.map +1 -0
  59. package/dist/esm/issuing-country.js +71 -0
  60. package/dist/esm/issuing-country.js.map +1 -0
  61. package/dist/esm/kyc-mobile-contract.d.ts +13 -1
  62. package/dist/esm/kyc-mobile-contract.d.ts.map +1 -1
  63. package/dist/esm/kyc-mobile-contract.js +63 -5
  64. package/dist/esm/kyc-mobile-contract.js.map +1 -1
  65. package/dist/esm/mrz-band-detector.d.ts +12 -5
  66. package/dist/esm/mrz-band-detector.d.ts.map +1 -1
  67. package/dist/esm/mrz-band-detector.js +29 -14
  68. package/dist/esm/mrz-band-detector.js.map +1 -1
  69. package/dist/esm/mrz-check-digits.d.ts +74 -0
  70. package/dist/esm/mrz-check-digits.d.ts.map +1 -0
  71. package/dist/esm/mrz-check-digits.js +471 -0
  72. package/dist/esm/mrz-check-digits.js.map +1 -0
  73. package/dist/esm/mrz-policy.d.ts +18 -0
  74. package/dist/esm/mrz-policy.d.ts.map +1 -0
  75. package/dist/esm/mrz-policy.js +87 -0
  76. package/dist/esm/mrz-policy.js.map +1 -0
  77. package/dist/esm/quality-checks.d.ts +14 -0
  78. package/dist/esm/quality-checks.d.ts.map +1 -1
  79. package/dist/esm/quality-checks.js +42 -5
  80. package/dist/esm/quality-checks.js.map +1 -1
  81. package/dist/esm/types.d.ts +2 -2
  82. package/dist/esm/types.js +2 -2
  83. package/package.json +8 -4
@@ -14,7 +14,9 @@
14
14
  *
15
15
  * Algorithm (cheap enough for 15 fps on 320×240 mid-range Android):
16
16
  * 1. Restrict search to the bottom ~40% and mirrored top ~40% of the overlay
17
- * region so upside-down passports still surface the MRZ signal.
17
+ * region so upside-down passports still surface the MRZ signal. Callers
18
+ * can opt into additional lower-page slices for live passport capture,
19
+ * where the data page may sit high inside a tall viewfinder.
18
20
  * 2. For each row in that slice, count pixels where the absolute
19
21
  * horizontal gradient |I(x+1) − I(x−1)| exceeds a fixed threshold,
20
22
  * and record the leftmost / rightmost strong-gradient column.
@@ -38,7 +40,7 @@ export declare const MRZ_MAX_LINE_GAP = 8;
38
40
  export declare const MRZ_MIN_BAND_WIDTH_FRAC = 0.4;
39
41
  export declare const MRZ_MIN_BAND_ASPECT = 4;
40
42
  export declare const MRZ_MAX_BAND_ASPECT = 30;
41
- /** MRZ search window: bottom 0.55 1.0 of the overlay region (excludes the photo half). */
43
+ /** MRZ search window: bottom 0.55 -> 1.0 of the overlay region (excludes the photo half). */
42
44
  export declare const MRZ_SEARCH_TOP_FRAC = 0.55;
43
45
  /** Density at which the row-density score saturates (1.0). */
44
46
  export declare const MRZ_DENSITY_SCORE_SATURATION = 0.45;
@@ -50,9 +52,9 @@ export interface MrzBandDetectionInput {
50
52
  /** Height of the greyscale buffer. */
51
53
  greyH: number;
52
54
  /**
53
- * Region of interest in greyW×greyH pixel coords. The MRZ is searched in
54
- * the bottom `MRZ_SEARCH_TOP_FRAC..1.0` of this region and a mirrored top
55
- * slice for 180-degree rotations.
55
+ * Region of interest in greyW×greyH pixel coords. The MRZ is searched in
56
+ * the bottom `MRZ_SEARCH_TOP_FRAC..1.0` of this region and a mirrored top
57
+ * slice for 180-degree rotations.
56
58
  */
57
59
  region: {
58
60
  x1: number;
@@ -60,6 +62,11 @@ export interface MrzBandDetectionInput {
60
62
  x2: number;
61
63
  y2: number;
62
64
  };
65
+ /**
66
+ * Optional additional lower-page search starts as fractions of the region
67
+ * height. Existing callers omit this and keep the original fixed search.
68
+ */
69
+ extraSearchTopFracs?: readonly number[];
63
70
  }
64
71
  export interface MrzBandBoundingBox {
65
72
  x: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mrz-band-detector.d.ts","sourceRoot":"","sources":["../../src/mrz-band-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACrC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChC,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;CACzB;AAoBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAsC1F"}
1
+ {"version":3,"file":"mrz-band-detector.d.ts","sourceRoot":"","sources":["../../src/mrz-band-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACrC,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChC,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;CACzB;AAmCD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CA2C1F"}
@@ -14,7 +14,9 @@
14
14
  *
15
15
  * Algorithm (cheap enough for 15 fps on 320×240 mid-range Android):
16
16
  * 1. Restrict search to the bottom ~40% and mirrored top ~40% of the overlay
17
- * region so upside-down passports still surface the MRZ signal.
17
+ * region so upside-down passports still surface the MRZ signal. Callers
18
+ * can opt into additional lower-page slices for live passport capture,
19
+ * where the data page may sit high inside a tall viewfinder.
18
20
  * 2. For each row in that slice, count pixels where the absolute
19
21
  * horizontal gradient |I(x+1) − I(x−1)| exceeds a fixed threshold,
20
22
  * and record the leftmost / rightmost strong-gradient column.
@@ -38,7 +40,7 @@ export const MRZ_MAX_LINE_GAP = 8;
38
40
  export const MRZ_MIN_BAND_WIDTH_FRAC = 0.4;
39
41
  export const MRZ_MIN_BAND_ASPECT = 4;
40
42
  export const MRZ_MAX_BAND_ASPECT = 30;
41
- /** MRZ search window: bottom 0.55 1.0 of the overlay region (excludes the photo half). */
43
+ /** MRZ search window: bottom 0.55 -> 1.0 of the overlay region (excludes the photo half). */
42
44
  export const MRZ_SEARCH_TOP_FRAC = 0.55;
43
45
  /** Density at which the row-density score saturates (1.0). */
44
46
  export const MRZ_DENSITY_SCORE_SATURATION = 0.45;
@@ -60,8 +62,20 @@ function chooseMrzDetectionResult(results) {
60
62
  });
61
63
  return best ?? EMPTY_RESULT;
62
64
  }
65
+ function getSearchTopFracs(extraSearchTopFracs) {
66
+ const fracs = [MRZ_SEARCH_TOP_FRAC, ...(extraSearchTopFracs ?? [])]
67
+ .filter(frac => Number.isFinite(frac) && frac > 0 && frac < 1)
68
+ .sort((a, b) => a - b);
69
+ const unique = [];
70
+ for (const frac of fracs) {
71
+ if (!unique.some(existing => Math.abs(existing - frac) < 0.001)) {
72
+ unique.push(frac);
73
+ }
74
+ }
75
+ return unique;
76
+ }
63
77
  export function detectPassportMrzBand(input) {
64
- const { grey, greyW, greyH, region } = input;
78
+ const { grey, greyW, greyH, region, extraSearchTopFracs } = input;
65
79
  if (!grey || grey.length < greyW * greyH)
66
80
  return EMPTY_RESULT;
67
81
  const rx1 = Math.max(1, Math.min(greyW - 2, Math.round(region.x1)));
@@ -72,13 +86,14 @@ export function detectPassportMrzBand(input) {
72
86
  const regionH = ry2 - ry1;
73
87
  if (regionW < 32 || regionH < 18)
74
88
  return EMPTY_RESULT;
75
- const bottomSliceY1 = ry1 + Math.floor(regionH * MRZ_SEARCH_TOP_FRAC);
76
- const bottomSliceY2 = ry2;
77
- const sliceHeight = bottomSliceY2 - bottomSliceY1;
78
- const topSliceY1 = ry1;
79
- const topSliceY2 = Math.min(ry2, topSliceY1 + sliceHeight);
80
- return chooseMrzDetectionResult([
81
- detectPassportMrzBandInSlice({
89
+ const results = [];
90
+ for (const topFrac of getSearchTopFracs(extraSearchTopFracs)) {
91
+ const bottomSliceY1 = ry1 + Math.floor(regionH * topFrac);
92
+ const bottomSliceY2 = ry2;
93
+ const sliceHeight = bottomSliceY2 - bottomSliceY1;
94
+ const topSliceY1 = ry1;
95
+ const topSliceY2 = Math.min(ry2, topSliceY1 + sliceHeight);
96
+ results.push(detectPassportMrzBandInSlice({
82
97
  grey,
83
98
  greyW,
84
99
  rx1,
@@ -86,8 +101,7 @@ export function detectPassportMrzBand(input) {
86
101
  regionW,
87
102
  sliceY1: bottomSliceY1,
88
103
  sliceY2: bottomSliceY2,
89
- }),
90
- detectPassportMrzBandInSlice({
104
+ }), detectPassportMrzBandInSlice({
91
105
  grey,
92
106
  greyW,
93
107
  rx1,
@@ -95,8 +109,9 @@ export function detectPassportMrzBand(input) {
95
109
  regionW,
96
110
  sliceY1: topSliceY1,
97
111
  sliceY2: topSliceY2,
98
- }),
99
- ]);
112
+ }));
113
+ }
114
+ return chooseMrzDetectionResult(results);
100
115
  }
101
116
  function detectPassportMrzBandInSlice(input) {
102
117
  const { grey, greyW, rx1, rx2, regionW, sliceY1, sliceY2 } = input;
@@ -1 +1 @@
1
- {"version":3,"file":"mrz-band-detector.js","sourceRoot":"","sources":["../../src/mrz-band-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mrz-band-detector.js","sourceRoot":"","sources":["../../src/mrz-band-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export type MrzDocumentFormat = 'TD1' | 'TD2' | 'TD3';
2
+ export type MrzCheckDigitField = 'documentNumber' | 'dateOfBirth' | 'expirationDate' | 'optionalData' | 'composite';
3
+ export interface MrzCheckDigitResult {
4
+ field: MrzCheckDigitField;
5
+ value: string;
6
+ expected: string;
7
+ actual: string;
8
+ valid: boolean;
9
+ }
10
+ export interface MrzAutocorrection {
11
+ line: number;
12
+ column: number;
13
+ original: string;
14
+ corrected: string;
15
+ }
16
+ export interface MrzParsedFields {
17
+ documentCode?: string;
18
+ issuingState?: string;
19
+ documentNumber?: string;
20
+ dateOfBirth?: string;
21
+ birthDate?: string;
22
+ expirationDate?: string;
23
+ expiryDate?: string;
24
+ nationality?: string;
25
+ sex?: string;
26
+ firstName?: string;
27
+ lastName?: string;
28
+ optional?: string;
29
+ optional1?: string;
30
+ optional2?: string;
31
+ personalNumber?: string;
32
+ }
33
+ export interface MrzParserDetail {
34
+ label?: string;
35
+ field?: string;
36
+ value?: string | null;
37
+ valid?: boolean;
38
+ error?: string;
39
+ autocorrect?: MrzAutocorrection[];
40
+ }
41
+ export interface MrzParseOptions {
42
+ autocorrect?: boolean;
43
+ allowedFormats?: readonly MrzDocumentFormat[];
44
+ requireParserValidity?: boolean;
45
+ }
46
+ export interface MrzValidationResult {
47
+ valid: boolean;
48
+ format: MrzDocumentFormat | null;
49
+ normalizedLines: string[];
50
+ checks: MrzCheckDigitResult[];
51
+ errors: string[];
52
+ checkDigitsValid?: boolean;
53
+ parserValid?: boolean | null;
54
+ autocorrections?: MrzAutocorrection[];
55
+ }
56
+ export interface MrzParseResult {
57
+ valid: boolean;
58
+ format: MrzDocumentFormat | null;
59
+ normalizedLines: string[];
60
+ fields: MrzParsedFields;
61
+ checks: MrzCheckDigitResult[];
62
+ checkDigitsValid: boolean;
63
+ parserValid: boolean | null;
64
+ details: MrzParserDetail[];
65
+ autocorrections: MrzAutocorrection[];
66
+ errors: string[];
67
+ raw: unknown | null;
68
+ }
69
+ export declare function getMrzCharacterValue(char: string): number | null;
70
+ export declare function computeMrzCheckDigit(value: string): string;
71
+ export declare function normalizeMrzLines(input: string | string[]): string[];
72
+ export declare function parseMrzText(input: string | string[], options?: MrzParseOptions): MrzParseResult;
73
+ export declare function validateMrzCheckDigits(input: string | string[]): MrzValidationResult;
74
+ //# sourceMappingURL=mrz-check-digits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mrz-check-digits.d.ts","sourceRoot":"","sources":["../../src/mrz-check-digits.ts"],"names":[],"mappings":"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"}