@mikashboks/capture-intelligence-core 0.1.10 → 0.1.18

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 +66 -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 +62 -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
@@ -11,21 +11,68 @@ function normalizeDocType(docType) {
11
11
  const raw = String(docType).trim().toLowerCase().replace(/[\s-]+/g, '_');
12
12
  switch (raw) {
13
13
  case 'national_id':
14
+ case 'national_id_card':
14
15
  case 'sierraleone_national_id':
16
+ case 'sierraleone_national_id_card':
17
+ case 'id_card_back':
18
+ case 'national_id_back':
19
+ case 'national_id_card_back':
20
+ case 'sierraleone_national_id_back':
21
+ case 'sierraleone_national_id_card_back':
15
22
  return 'id_card';
16
23
  case 'sierraleone_voter_id':
17
24
  case 'voter':
25
+ case 'voter_back':
26
+ case 'voter_card_back':
27
+ case 'voter_id_back':
28
+ case 'sierraleone_voter_id_back':
18
29
  return 'voter_id';
19
30
  case 'driver_license':
20
31
  case 'driver_licence':
21
32
  case 'drivers_licence':
22
33
  case 'sierraleone_driver_license':
23
34
  case 'sierraleone_drivers_license':
35
+ case 'drivers_license_back':
36
+ case 'driver_license_back':
37
+ case 'driver_licence_back':
38
+ case 'drivers_licence_back':
39
+ case 'sierraleone_driver_license_back':
40
+ case 'sierraleone_drivers_license_back':
24
41
  return 'drivers_license';
42
+ case 'market_association':
43
+ case 'market_association_back':
44
+ case 'market_association_card':
45
+ case 'market_association_card_back':
46
+ return 'market_association';
47
+ case 'ghana_card':
48
+ case 'ghana_card_back':
49
+ return 'ghana_card';
50
+ case 'ife_card':
51
+ case 'ife_card_back':
52
+ case 'nigeria_ife_card':
53
+ case 'nigeria_ife_card_back':
54
+ case 'nigerian_ife_card':
55
+ case 'nigerian_ife_card_back':
56
+ return 'ife_card';
57
+ case 'ine_card':
58
+ case 'ine_card_back':
59
+ case 'nigeria_ine_card':
60
+ case 'nigeria_ine_card_back':
61
+ case 'nigerian_ine_card':
62
+ case 'nigerian_ine_card_back':
63
+ return 'ine_card';
64
+ case 'residence_permit_back':
65
+ return 'residence_permit';
66
+ case 'work_permit_back':
67
+ return 'work_permit';
68
+ case 'visa_back':
69
+ return 'visa';
25
70
  case 'sierraleone_passport':
26
71
  return 'passport';
27
72
  case 'address-proof':
28
73
  return 'address_proof';
74
+ case 'mobile_money_statement':
75
+ return 'mobile_money';
29
76
  default:
30
77
  return raw;
31
78
  }
@@ -47,7 +94,14 @@ export function getDocumentReviewProfile(documentType) {
47
94
  normalizedType === 'voter_card' ||
48
95
  normalizedType === 'drivers_license' ||
49
96
  normalizedType === 'driving_license' ||
50
- normalizedType === 'driving_licence') {
97
+ normalizedType === 'driving_licence' ||
98
+ normalizedType === 'market_association' ||
99
+ normalizedType === 'ghana_card' ||
100
+ normalizedType === 'ife_card' ||
101
+ normalizedType === 'ine_card' ||
102
+ normalizedType === 'residence_permit' ||
103
+ normalizedType === 'work_permit' ||
104
+ normalizedType === 'visa') {
51
105
  return {
52
106
  aspectTargets: [1.585],
53
107
  threshold: 62,
@@ -61,7 +115,10 @@ export function getDocumentReviewProfile(documentType) {
61
115
  normalizedType === 'bank_statement' ||
62
116
  normalizedType === 'business_registration' ||
63
117
  normalizedType === 'operating_license' ||
64
- normalizedType === 'proof_of_business_tax_id') {
118
+ normalizedType === 'proof_of_business_tax_id' ||
119
+ normalizedType === 'mobile_money' ||
120
+ normalizedType === 'address_document' ||
121
+ normalizedType === 'tax_id') {
65
122
  return {
66
123
  aspectTargets: [1.414, 1.294],
67
124
  threshold: 55,
@@ -1 +1 @@
1
- {"version":3,"file":"document-classifier.js","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-classifier.js","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type CapturePlacementShape = 'card' | 'passport' | 'a4';
2
+ export type DocumentPlacementReason = 'too_small' | 'too_large' | 'off_center' | 'edge_tight' | 'ok';
3
+ export interface DocumentPlacementInput {
4
+ shape: CapturePlacementShape;
5
+ areaRatio?: number | null;
6
+ centerOffset?: number | null;
7
+ quadInsetMin?: number | null;
8
+ boundsInsetMin?: number | null;
9
+ boundsReliable?: boolean | null;
10
+ }
11
+ export interface DocumentPlacementDecision {
12
+ ready: boolean;
13
+ reason: DocumentPlacementReason;
14
+ guidance: string;
15
+ }
16
+ export declare const CAPTURE_READY_AREA_MIN_BY_SHAPE: Record<CapturePlacementShape, number>;
17
+ export declare const CAPTURE_READY_AREA_MAX_BY_SHAPE: Record<CapturePlacementShape, number>;
18
+ export declare const CAPTURE_READY_CENTER_MAX_BY_SHAPE: Record<CapturePlacementShape, number>;
19
+ export declare const CAPTURE_READY_SAFE_INSET_MIN = 0.02;
20
+ export declare function evaluateDocumentPlacement(input: DocumentPlacementInput): DocumentPlacementDecision;
21
+ //# sourceMappingURL=document-placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-placement.d.ts","sourceRoot":"","sources":["../../src/document-placement.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAC/B,WAAW,GACX,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,IAAI,CAAC;AAET,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAIjF,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAInF,CAAC;AAEF,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAuBjD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,yBAAyB,CAyBlG"}
@@ -0,0 +1,62 @@
1
+ export const CAPTURE_READY_AREA_MIN_BY_SHAPE = {
2
+ card: 0.16,
3
+ passport: 0.14,
4
+ a4: 0.24,
5
+ };
6
+ export const CAPTURE_READY_AREA_MAX_BY_SHAPE = {
7
+ card: 0.9,
8
+ passport: 0.92,
9
+ a4: 0.96,
10
+ };
11
+ export const CAPTURE_READY_CENTER_MAX_BY_SHAPE = {
12
+ card: 0.25,
13
+ passport: 0.3,
14
+ a4: 0.25,
15
+ };
16
+ export const CAPTURE_READY_SAFE_INSET_MIN = 0.02;
17
+ const GUIDANCE_BY_REASON = {
18
+ too_small: 'Move closer',
19
+ too_large: 'Move back a little: show all 4 corners',
20
+ off_center: 'Center the document',
21
+ edge_tight: 'Move back a little: show all 4 corners',
22
+ ok: 'Ready',
23
+ };
24
+ function isFiniteNumber(value) {
25
+ return typeof value === 'number' && Number.isFinite(value);
26
+ }
27
+ function getSafeInsetMin(input) {
28
+ if (input.boundsReliable === false)
29
+ return null;
30
+ const insets = [input.quadInsetMin, input.boundsInsetMin].filter(isFiniteNumber);
31
+ if (insets.length === 0)
32
+ return null;
33
+ return Math.min(...insets);
34
+ }
35
+ export function evaluateDocumentPlacement(input) {
36
+ const shape = input.shape;
37
+ const areaRatio = isFiniteNumber(input.areaRatio) ? input.areaRatio : 0;
38
+ const centerOffset = isFiniteNumber(input.centerOffset) ? input.centerOffset : 1;
39
+ const minArea = CAPTURE_READY_AREA_MIN_BY_SHAPE[shape];
40
+ const maxArea = CAPTURE_READY_AREA_MAX_BY_SHAPE[shape];
41
+ const maxCenterOffset = CAPTURE_READY_CENTER_MAX_BY_SHAPE[shape];
42
+ const safeInsetMin = getSafeInsetMin(input);
43
+ let reason = 'ok';
44
+ if (areaRatio < minArea) {
45
+ reason = 'too_small';
46
+ }
47
+ else if (safeInsetMin !== null && safeInsetMin < CAPTURE_READY_SAFE_INSET_MIN) {
48
+ reason = 'edge_tight';
49
+ }
50
+ else if (areaRatio > maxArea) {
51
+ reason = 'too_large';
52
+ }
53
+ else if (centerOffset > maxCenterOffset) {
54
+ reason = 'off_center';
55
+ }
56
+ return {
57
+ ready: reason === 'ok',
58
+ reason,
59
+ guidance: GUIDANCE_BY_REASON[reason],
60
+ };
61
+ }
62
+ //# sourceMappingURL=document-placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-placement.js","sourceRoot":"","sources":["../../src/document-placement.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAC,MAAM,+BAA+B,GAA0C;IACpF,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,EAAE,EAAE,IAAI;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAA0C;IACpF,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,IAAI;IACd,EAAE,EAAE,IAAI;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAA0C;IACtF,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,GAAG;IACb,EAAE,EAAE,IAAI;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD,MAAM,kBAAkB,GAA4C;IAClE,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,wCAAwC;IACnD,UAAU,EAAE,qBAAqB;IACjC,UAAU,EAAE,wCAAwC;IACpD,EAAE,EAAE,OAAO;CACZ,CAAC;AAEF,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,eAAe,CAAC,KAA6B;IACpD,IAAI,KAAK,CAAC,cAAc,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACjF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAA6B;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,iCAAiC,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE5C,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,WAAW,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,GAAG,4BAA4B,EAAE,CAAC;QAChF,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;SAAM,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,WAAW,CAAC;IACvB,CAAC;SAAM,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;QAC1C,MAAM,GAAG,YAAY,CAAC;IACxB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,KAAK,IAAI;QACtB,MAAM;QACN,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC;KACrC,CAAC;AACJ,CAAC"}
@@ -12,20 +12,28 @@ export { CamState, CAM_ANALYSIS_W, CAM_ANALYSIS_H, CAM_BRIGHTNESS_MIN, CAM_BRIGH
12
12
  export type { AddressMethod, AddressProofMode, AddressCoordinatesLike, AddressStepState, AddressMethodStartBehavior, } from './address-proof.js';
13
13
  export { ADDRESS_METHOD_ORDER, isAddressMethod, sanitizeAllowedAddressMethods, getRecommendedAddressMethod, getAddressMethodStartBehavior, getEffectiveAddressMethod, hasAddressProofCoordinates, hasStructuredAddress, isAddressStepComplete, } from './address-proof.js';
14
14
  export type { KycMobileContractIssue, KycMobileContractIssueCode, KycMobileWorkflowConfigContract, } from './kyc-mobile-contract.js';
15
- export { KYC_MOBILE_ADDRESS_STEP_IDS, KYC_MOBILE_KNOWN_STEP_IDS, KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS, KYC_MOBILE_SIERRA_LEONE_STEP_ORDER, KYC_MOBILE_VALID_ADDRESS_METHODS, validateKycMobileWorkflowConfigContract, } from './kyc-mobile-contract.js';
15
+ export { KYC_MOBILE_ADDRESS_STEP_IDS, KYC_MOBILE_KNOWN_STEP_IDS, KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS, KYC_MOBILE_SIERRA_LEONE_STEP_ORDER, KYC_MOBILE_VALID_ADDRESS_METHODS, KYC_MOBILE_VALID_ADDRESS_FIELD_MODES, KYC_MOBILE_VALID_CAPTURE_MODES, KYC_MOBILE_VALID_GPS_POLICIES, KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES, validateKycMobileWorkflowConfigContract, } from './kyc-mobile-contract.js';
16
+ export type { IssuingCountryResolutionInput, ResolvedIssuingCountry, } from './issuing-country.js';
17
+ export { getIssuingCountryMetadata, normalizeIssuingCountry, resolveIssuingCountry, } from './issuing-country.js';
16
18
  export type { FlowStepDefinition } from './flow-routing.js';
17
19
  export { getNextFlowStepId, getPreviousFlowStepId } from './flow-routing.js';
18
20
  export { getDocumentReviewProfile, checkDocumentLikelihood, } from './document-classifier.js';
19
21
  export type { MetadataReviewInput } from './metadata-review.js';
20
22
  export { analyzeImageMetadata } from './metadata-review.js';
21
- export type { CaptureImageSize, CapturePreviewRect, CaptureCropRect, CapturePreviewResizeMode, CaptureRotationDegrees, CaptureFrameMode, PreviewRectToImageCropInput, ExpectedOrientationInput, CaptureNormalizationPlanInput, CaptureResizePlan, CaptureNormalizationPlan, } from './capture-normalization.js';
22
- export { mapPreviewRectToImageCrop, getRotationToExpectedOrientation, buildCaptureNormalizationPlan, getDocumentCaptureFrameAspectRatio, } from './capture-normalization.js';
23
+ export type { CaptureImageSize, CapturePreviewRect, CaptureCropRect, CapturePreviewResizeMode, CaptureRotationDegrees, CaptureNormalizationUnsafeReason, CaptureClampedEdges, CaptureNormalizationDiagnostics, CaptureFrameMode, PreviewRectToImageCropInput, ExpectedOrientationInput, CaptureNormalizationPlanInput, CaptureResizePlan, CaptureNormalizationPlan, } from './capture-normalization.js';
24
+ export { mapPreviewRectToImageCropWithDiagnostics, mapPreviewRectToImageCrop, getRotationToExpectedOrientation, buildCaptureNormalizationPlan, getDocumentCaptureFrameAspectRatio, } from './capture-normalization.js';
25
+ export type { CapturePlacementShape, DocumentPlacementInput, DocumentPlacementDecision, DocumentPlacementReason, } from './document-placement.js';
26
+ export { CAPTURE_READY_AREA_MIN_BY_SHAPE, CAPTURE_READY_AREA_MAX_BY_SHAPE, CAPTURE_READY_CENTER_MAX_BY_SHAPE, CAPTURE_READY_SAFE_INSET_MIN, evaluateDocumentPlacement, } from './document-placement.js';
23
27
  export type { EdgeEnergyProfile } from './sobel.js';
24
28
  export { rgbaToGreyscale, rgbaToGreyscalePico, computeEdgeEnergyProfile, detectDocumentCropFromGrey, } from './sobel.js';
25
29
  export type { EdgeAnalysisResult } from './metrics.js';
26
30
  export { rgbaToGreyInPlace, computeBrightness, computeLaplacianVariance, computeLaplacianVarianceFloat, computeEdgeEnergy, detectDocumentRect, computeFrameDiff, analyzeFrame, looksLikeDocument, } from './metrics.js';
27
31
  export type { MrzBandDetectionInput, MrzBandDetectionResult, MrzBandBoundingBox, } from './mrz-band-detector.js';
28
32
  export { detectPassportMrzBand, MRZ_HORIZONTAL_GRADIENT_THRESHOLD, MRZ_ROW_DENSITY_RATIO_THRESHOLD, MRZ_MIN_BAND_HEIGHT, MRZ_MAX_BAND_HEIGHT, MRZ_MIN_BAND_WIDTH_FRAC, MRZ_MIN_BAND_ASPECT, MRZ_MAX_BAND_ASPECT, MRZ_SEARCH_TOP_FRAC, MRZ_DENSITY_SCORE_SATURATION, } from './mrz-band-detector.js';
33
+ export type { MrzDocumentFormat, MrzCheckDigitField, MrzCheckDigitResult, MrzValidationResult, MrzAutocorrection, MrzParsedFields, MrzParserDetail, MrzParseOptions, MrzParseResult, } from './mrz-check-digits.js';
34
+ export { getMrzCharacterValue, computeMrzCheckDigit, normalizeMrzLines, parseMrzText, validateMrzCheckDigits, } from './mrz-check-digits.js';
35
+ export type { DocumentMrzPolicy, DocumentMrzPolicyInput, MrzExpectation, MrzPlacement, } from './mrz-policy.js';
36
+ export { resolveDocumentMrzPolicy } from './mrz-policy.js';
29
37
  export type { QualityFailureState, DocumentQualityInput, DocumentQualityResult, SelfieQualityInput, } from './quality-checks.js';
30
- export { getQualityBucket, getSubmitAnywayThreshold, createQualityFailureState, countFailedReview, shouldShowSubmitAnyway, hasHardBlockingQualityFailure, getReviewModeFromDocumentType, runDocumentQualityChecks, runSelfieQualityChecks, checkFaceInImage, isFaceCentered, evaluateDocumentFailure, evaluateSelfieFailure, evaluateReviewFailure, getNextButtonDisabledReason, getOverrideButtonText, getOverrideBannerMessage, } from './quality-checks.js';
38
+ export { getQualityBucket, getSubmitAnywayThreshold, createQualityFailureState, countFailedReview, shouldShowSubmitAnyway, hasHardBlockingQualityFailure, isRetryEscapableDocumentCornerFailure, getReviewModeFromDocumentType, runDocumentQualityChecks, runSelfieQualityChecks, checkFaceInImage, isFaceCentered, evaluateDocumentFailure, evaluateSelfieFailure, evaluateReviewFailure, getNextButtonDisabledReason, getOverrideButtonText, getOverrideBannerMessage, } from './quality-checks.js';
31
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -9,14 +9,18 @@
9
9
  */
10
10
  export { CamState, CAM_ANALYSIS_W, CAM_ANALYSIS_H, CAM_BRIGHTNESS_MIN, CAM_BRIGHTNESS_MAX, CAM_BLUR_THRESHOLD, CAM_EDGE_THRESHOLD, CAM_STABLE_FRAMES_NEEDED, CAM_FRAME_DIFF_THRESHOLD, CAM_EDGE_PIXEL_THRESHOLD, CAM_EDGE_COVERAGE_THRESHOLD, CAM_DOC_CENTER_OFFSET_MAX, CAPTURE_DOCUMENT_SHARPNESS_MIN, CAPTURE_DOCUMENT_MANUAL_FALLBACK_SECS, CAPTURE_DOCUMENT_AREA_MIN, CAPTURE_DOCUMENT_EDGE_READY_MULTIPLIER, DOC_GALLERY_FAILURE_THRESHOLD, DOC_SUBMIT_ANYWAY_FAILURE_THRESHOLD, SELFIE_SUBMIT_ANYWAY_FAILURE_THRESHOLD, ADDRESS_SUBMIT_ANYWAY_FAILURE_THRESHOLD, PICO_ANALYSIS_W, PICO_ANALYSIS_H, } from './types.js';
11
11
  export { ADDRESS_METHOD_ORDER, isAddressMethod, sanitizeAllowedAddressMethods, getRecommendedAddressMethod, getAddressMethodStartBehavior, getEffectiveAddressMethod, hasAddressProofCoordinates, hasStructuredAddress, isAddressStepComplete, } from './address-proof.js';
12
- export { KYC_MOBILE_ADDRESS_STEP_IDS, KYC_MOBILE_KNOWN_STEP_IDS, KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS, KYC_MOBILE_SIERRA_LEONE_STEP_ORDER, KYC_MOBILE_VALID_ADDRESS_METHODS, validateKycMobileWorkflowConfigContract, } from './kyc-mobile-contract.js';
12
+ export { KYC_MOBILE_ADDRESS_STEP_IDS, KYC_MOBILE_KNOWN_STEP_IDS, KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS, KYC_MOBILE_SIERRA_LEONE_STEP_ORDER, KYC_MOBILE_VALID_ADDRESS_METHODS, KYC_MOBILE_VALID_ADDRESS_FIELD_MODES, KYC_MOBILE_VALID_CAPTURE_MODES, KYC_MOBILE_VALID_GPS_POLICIES, KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES, validateKycMobileWorkflowConfigContract, } from './kyc-mobile-contract.js';
13
+ export { getIssuingCountryMetadata, normalizeIssuingCountry, resolveIssuingCountry, } from './issuing-country.js';
13
14
  export { getNextFlowStepId, getPreviousFlowStepId } from './flow-routing.js';
14
15
  /* -- Document classifier -------------------------------------------------- */
15
16
  export { getDocumentReviewProfile, checkDocumentLikelihood, } from './document-classifier.js';
16
17
  export { analyzeImageMetadata } from './metadata-review.js';
17
- export { mapPreviewRectToImageCrop, getRotationToExpectedOrientation, buildCaptureNormalizationPlan, getDocumentCaptureFrameAspectRatio, } from './capture-normalization.js';
18
+ export { mapPreviewRectToImageCropWithDiagnostics, mapPreviewRectToImageCrop, getRotationToExpectedOrientation, buildCaptureNormalizationPlan, getDocumentCaptureFrameAspectRatio, } from './capture-normalization.js';
19
+ export { CAPTURE_READY_AREA_MIN_BY_SHAPE, CAPTURE_READY_AREA_MAX_BY_SHAPE, CAPTURE_READY_CENTER_MAX_BY_SHAPE, CAPTURE_READY_SAFE_INSET_MIN, evaluateDocumentPlacement, } from './document-placement.js';
18
20
  export { rgbaToGreyscale, rgbaToGreyscalePico, computeEdgeEnergyProfile, detectDocumentCropFromGrey, } from './sobel.js';
19
21
  export { rgbaToGreyInPlace, computeBrightness, computeLaplacianVariance, computeLaplacianVarianceFloat, computeEdgeEnergy, detectDocumentRect, computeFrameDiff, analyzeFrame, looksLikeDocument, } from './metrics.js';
20
22
  export { detectPassportMrzBand, MRZ_HORIZONTAL_GRADIENT_THRESHOLD, MRZ_ROW_DENSITY_RATIO_THRESHOLD, MRZ_MIN_BAND_HEIGHT, MRZ_MAX_BAND_HEIGHT, MRZ_MIN_BAND_WIDTH_FRAC, MRZ_MIN_BAND_ASPECT, MRZ_MAX_BAND_ASPECT, MRZ_SEARCH_TOP_FRAC, MRZ_DENSITY_SCORE_SATURATION, } from './mrz-band-detector.js';
21
- export { getQualityBucket, getSubmitAnywayThreshold, createQualityFailureState, countFailedReview, shouldShowSubmitAnyway, hasHardBlockingQualityFailure, getReviewModeFromDocumentType, runDocumentQualityChecks, runSelfieQualityChecks, checkFaceInImage, isFaceCentered, evaluateDocumentFailure, evaluateSelfieFailure, evaluateReviewFailure, getNextButtonDisabledReason, getOverrideButtonText, getOverrideBannerMessage, } from './quality-checks.js';
23
+ export { getMrzCharacterValue, computeMrzCheckDigit, normalizeMrzLines, parseMrzText, validateMrzCheckDigits, } from './mrz-check-digits.js';
24
+ export { resolveDocumentMrzPolicy } from './mrz-policy.js';
25
+ export { getQualityBucket, getSubmitAnywayThreshold, createQualityFailureState, countFailedReview, shouldShowSubmitAnyway, hasHardBlockingQualityFailure, isRetryEscapableDocumentCornerFailure, getReviewModeFromDocumentType, runDocumentQualityChecks, runSelfieQualityChecks, checkFaceInImage, isFaceCentered, evaluateDocumentFailure, evaluateSelfieFailure, evaluateReviewFailure, getNextButtonDisabledReason, getOverrideButtonText, getOverrideBannerMessage, } from './quality-checks.js';
22
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuBH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,qCAAqC,EACrC,yBAAyB,EACzB,sCAAsC,EACtC,6BAA6B,EAC7B,mCAAmC,EACnC,sCAAsC,EACtC,uCAAuC,EACvC,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAUpB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qCAAqC,EACrC,kCAAkC,EAClC,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,+EAA+E;AAC/E,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAgB5D,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAShC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuBH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,8BAA8B,EAC9B,qCAAqC,EACrC,yBAAyB,EACzB,sCAAsC,EACtC,6BAA6B,EAC7B,mCAAmC,EACnC,sCAAsC,EACtC,uCAAuC,EACvC,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAUpB,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,qCAAqC,EACrC,kCAAkC,EAClC,gCAAgC,EAChC,oCAAoC,EACpC,8BAA8B,EAC9B,6BAA6B,EAC7B,4CAA4C,EAC5C,uCAAuC,GACxC,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,+EAA+E;AAC/E,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAmB5D,OAAO,EACL,wCAAwC,EACxC,yBAAyB,EACzB,gCAAgC,EAChC,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AASpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,iCAAiC,EACjC,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAQtB,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAchC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAS3D,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,qCAAqC,EACrC,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface ResolvedIssuingCountry {
2
+ countryCode: string;
3
+ alpha2?: string;
4
+ alpha3?: string;
5
+ name?: string;
6
+ source?: string;
7
+ }
8
+ export interface IssuingCountryResolutionInput {
9
+ documentMetadata?: Record<string, unknown> | null;
10
+ selectedDocumentAllowedIssuingCountries?: unknown;
11
+ documentPolicyAllowedIssuingCountries?: unknown;
12
+ }
13
+ export declare const normalizeIssuingCountry: (value: unknown, source?: string) => ResolvedIssuingCountry | undefined;
14
+ export declare const getIssuingCountryMetadata: (country: ResolvedIssuingCountry | undefined) => Record<string, string>;
15
+ export declare const resolveIssuingCountry: ({ documentMetadata, selectedDocumentAllowedIssuingCountries, documentPolicyAllowedIssuingCountries, }: IssuingCountryResolutionInput) => ResolvedIssuingCountry | undefined;
16
+ //# sourceMappingURL=issuing-country.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issuing-country.d.ts","sourceRoot":"","sources":["../../src/issuing-country.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAClD,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,qCAAqC,CAAC,EAAE,OAAO,CAAC;CACjD;AA4CD,eAAO,MAAM,uBAAuB,GAClC,OAAO,OAAO,EACd,SAAS,MAAM,KACd,sBAAsB,GAAG,SAsB3B,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,sBAAsB,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAYvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,uGAInC,6BAA6B,KAAG,sBAAsB,GAAG,SAc3D,CAAC"}
@@ -0,0 +1,71 @@
1
+ const SIERRA_LEONE_COUNTRY = {
2
+ countryCode: 'SL',
3
+ alpha2: 'SL',
4
+ alpha3: 'SLE',
5
+ name: 'Sierra Leone',
6
+ };
7
+ const ISSUING_COUNTRY_ALIASES = new Map([
8
+ 'SL',
9
+ 'SLE',
10
+ 'SIERRA LEONE',
11
+ 'SIERRA_LEONE',
12
+ 'SIERRALEONE',
13
+ 'SIERRA LEONEAN',
14
+ 'SIERRA_LEONEAN',
15
+ 'SIERRALEONEAN',
16
+ ].map(alias => [alias, SIERRA_LEONE_COUNTRY]));
17
+ const normalizeTokenKey = (value) => value
18
+ .trim()
19
+ .toUpperCase()
20
+ .replace(/[\s-]+/g, '_');
21
+ const firstString = (value) => {
22
+ if (typeof value === 'string' && value.trim()) {
23
+ return value.trim();
24
+ }
25
+ if (Array.isArray(value)) {
26
+ return value
27
+ .find((entry) => typeof entry === 'string' && entry.trim().length > 0)
28
+ ?.trim();
29
+ }
30
+ return undefined;
31
+ };
32
+ export const normalizeIssuingCountry = (value, source) => {
33
+ const rawValue = firstString(value);
34
+ if (!rawValue) {
35
+ return undefined;
36
+ }
37
+ const normalizedKey = normalizeTokenKey(rawValue);
38
+ const alias = ISSUING_COUNTRY_ALIASES.get(normalizedKey);
39
+ if (alias) {
40
+ return { ...alias, source };
41
+ }
42
+ const upper = rawValue.trim().toUpperCase();
43
+ if (/^[A-Z]{2}$/.test(upper)) {
44
+ return { countryCode: upper, alpha2: upper, source };
45
+ }
46
+ if (/^[A-Z]{3}$/.test(upper)) {
47
+ return { countryCode: upper, alpha3: upper, source };
48
+ }
49
+ return { countryCode: rawValue.trim(), name: rawValue.trim(), source };
50
+ };
51
+ export const getIssuingCountryMetadata = (country) => {
52
+ if (!country) {
53
+ return {};
54
+ }
55
+ return {
56
+ issuingCountry: country.countryCode,
57
+ ...(country.alpha2 ? { issuingCountryAlpha2: country.alpha2 } : {}),
58
+ ...(country.alpha3 ? { issuingCountryAlpha3: country.alpha3 } : {}),
59
+ ...(country.name ? { issuingCountryName: country.name } : {}),
60
+ ...(country.source ? { issuingCountrySource: country.source } : {}),
61
+ };
62
+ };
63
+ export const resolveIssuingCountry = ({ documentMetadata, selectedDocumentAllowedIssuingCountries, documentPolicyAllowedIssuingCountries, }) => {
64
+ const metadataCountry = normalizeIssuingCountry(documentMetadata?.issuingCountry, 'document_metadata') ??
65
+ normalizeIssuingCountry(documentMetadata?.issuingCountryAlpha2, 'document_metadata') ??
66
+ normalizeIssuingCountry(documentMetadata?.issuingCountryAlpha3, 'document_metadata');
67
+ return (metadataCountry ??
68
+ normalizeIssuingCountry(selectedDocumentAllowedIssuingCountries, 'selected_document_option') ??
69
+ normalizeIssuingCountry(documentPolicyAllowedIssuingCountries, 'document_policy'));
70
+ };
71
+ //# sourceMappingURL=issuing-country.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issuing-country.js","sourceRoot":"","sources":["../../src/issuing-country.ts"],"names":[],"mappings":"AAcA,MAAM,oBAAoB,GAA2C;IACnE,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF,MAAM,uBAAuB,GAAG,IAAI,GAAG,CACrC;IACE,IAAI;IACJ,KAAK;IACL,cAAc;IACd,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;CAChB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAC9C,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,KAAK;KACF,IAAI,EAAE;KACN,WAAW,EAAE;KACb,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAE7B,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK;aACT,IAAI,CACH,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CACjF;YACD,EAAE,IAAI,EAAE,CAAC;IACb,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,KAAc,EACd,MAAe,EACqB,EAAE;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACzD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,OAA2C,EACnB,EAAE;IAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,WAAW;QACnC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,gBAAgB,EAChB,uCAAuC,EACvC,qCAAqC,GACP,EAAsC,EAAE;IACtE,MAAM,eAAe,GACnB,uBAAuB,CAAC,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,CAAC;QAC9E,uBAAuB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC;QACpF,uBAAuB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IAEvF,OAAO,CACL,eAAe;QACf,uBAAuB,CACrB,uCAAuC,EACvC,0BAA0B,CAC3B;QACD,uBAAuB,CAAC,qCAAqC,EAAE,iBAAiB,CAAC,CAClF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,9 +1,13 @@
1
1
  export declare const KYC_MOBILE_VALID_ADDRESS_METHODS: readonly ["address_document", "front_door_photo", "typed_address"];
2
+ export declare const KYC_MOBILE_VALID_CAPTURE_MODES: readonly ["manual_unlock", "auto_capture"];
3
+ export declare const KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES: readonly ["wait_for_workflow", "fast_handoff"];
4
+ export declare const KYC_MOBILE_VALID_ADDRESS_FIELD_MODES: readonly ["legacy_sl", "street_district_city"];
5
+ export declare const KYC_MOBILE_VALID_GPS_POLICIES: readonly ["auto", "manual", "disabled"];
2
6
  export declare const KYC_MOBILE_ADDRESS_STEP_IDS: readonly ["address-proof-start", "address-input", "address-proof-photo", "check-address-proof"];
3
7
  export declare const KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS: readonly ["loading", "resubmission", "decline", "manual-review", "error", "final"];
4
8
  export declare const KYC_MOBILE_SIERRA_LEONE_STEP_ORDER: readonly ["welcome", "document-selection", "document-start", "document-photo", "check-document", "document-photo-back-start", "document-photo-back", "check-document-photo-back", "selfie-start", "selfie", "check-selfie", "address-proof-start", "address-input", "address-proof-photo", "check-address-proof", "loading", "resubmission", "decline", "manual-review", "error", "final"];
5
9
  export declare const KYC_MOBILE_KNOWN_STEP_IDS: readonly ["welcome", "customer-info", "document-selection", "document-start", "document-photo", "check-document", "document-photo-back-start", "document-photo-back", "check-document-photo-back", "selfie-start", "selfie", "check-selfie", "address-proof-start", "address-input", "address-proof-photo", "check-address-proof", "loading", "resubmission", "decline", "manual-review", "error", "final"];
6
- export type KycMobileContractIssueCode = 'missing_config_array' | 'missing_required_step' | 'duplicate_step' | 'unknown_step' | 'unstable_step_id' | 'unsupported_address_method' | 'invalid_step_order';
10
+ export type KycMobileContractIssueCode = 'missing_config_array' | 'missing_required_step' | 'duplicate_step' | 'unknown_step' | 'unstable_step_id' | 'unsupported_address_method' | 'unsupported_ui_flag' | 'invalid_step_order';
7
11
  export interface KycMobileContractIssue {
8
12
  code: KycMobileContractIssueCode;
9
13
  path: string;
@@ -12,8 +16,16 @@ export interface KycMobileContractIssue {
12
16
  export interface KycMobileWorkflowConfigContract {
13
17
  kycSdkSteps?: unknown;
14
18
  kycSdkDocumentOptions?: unknown;
19
+ kycSdkDocumentPolicy?: {
20
+ allowedDocumentTypes?: unknown;
21
+ allowedIssuingCountries?: unknown;
22
+ } | null;
15
23
  kycSdkUi?: {
16
24
  allowedAddressMethods?: unknown;
25
+ captureMode?: unknown;
26
+ submissionCompletionMode?: unknown;
27
+ addressFieldMode?: unknown;
28
+ gpsPolicy?: unknown;
17
29
  } | null;
18
30
  }
19
31
  export declare function validateKycMobileWorkflowConfigContract(config: KycMobileWorkflowConfigContract | null | undefined): KycMobileContractIssue[];
@@ -1 +1 @@
1
- {"version":3,"file":"kyc-mobile-contract.d.ts","sourceRoot":"","sources":["../../src/kyc-mobile-contract.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,oEAAqC,CAAC;AAEnF,eAAO,MAAM,2BAA2B,iGAK9B,CAAC;AAEX,eAAO,MAAM,qCAAqC,oFAOxC,CAAC;AAEX,eAAO,MAAM,kCAAkC,4XAiBrC,CAAC;AAEX,eAAO,MAAM,yBAAyB,6YAe5B,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,4BAA4B,GAC5B,oBAAoB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE;QACT,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GAAG,IAAI,CAAC;CACV;AA4CD,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,+BAA+B,GAAG,IAAI,GAAG,SAAS,GACzD,sBAAsB,EAAE,CAwG1B"}
1
+ {"version":3,"file":"kyc-mobile-contract.d.ts","sourceRoot":"","sources":["../../src/kyc-mobile-contract.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gCAAgC,oEAAqC,CAAC;AACnF,eAAO,MAAM,8BAA8B,4CAA6C,CAAC;AACzF,eAAO,MAAM,4CAA4C,gDAG/C,CAAC;AACX,eAAO,MAAM,oCAAoC,gDAAiD,CAAC;AACnG,eAAO,MAAM,6BAA6B,yCAA0C,CAAC;AAErF,eAAO,MAAM,2BAA2B,iGAK9B,CAAC;AAEX,eAAO,MAAM,qCAAqC,oFAOxC,CAAC;AAEX,eAAO,MAAM,kCAAkC,4XAiBrC,CAAC;AAEX,eAAO,MAAM,yBAAyB,6YAe5B,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAClC,sBAAsB,GACtB,uBAAuB,GACvB,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,4BAA4B,GAC5B,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE;QACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,GAAG,IAAI,CAAC;IACT,QAAQ,CAAC,EAAE;QACT,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,GAAG,IAAI,CAAC;CACV;AA4ED,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,+BAA+B,GAAG,IAAI,GAAG,SAAS,GACzD,sBAAsB,EAAE,CAoL1B"}
@@ -1,5 +1,12 @@
1
1
  import { ADDRESS_METHOD_ORDER, isAddressMethod } from './address-proof.js';
2
2
  export const KYC_MOBILE_VALID_ADDRESS_METHODS = [...ADDRESS_METHOD_ORDER];
3
+ export const KYC_MOBILE_VALID_CAPTURE_MODES = ['manual_unlock', 'auto_capture'];
4
+ export const KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES = [
5
+ 'wait_for_workflow',
6
+ 'fast_handoff',
7
+ ];
8
+ export const KYC_MOBILE_VALID_ADDRESS_FIELD_MODES = ['legacy_sl', 'street_district_city'];
9
+ export const KYC_MOBILE_VALID_GPS_POLICIES = ['auto', 'manual', 'disabled'];
3
10
  export const KYC_MOBILE_ADDRESS_STEP_IDS = [
4
11
  'address-proof-start',
5
12
  'address-input',
@@ -77,17 +84,64 @@ const pushOrderIssueIfInvalid = (issues, stepIndexById, beforeStepId, afterStepI
77
84
  return;
78
85
  pushInvalidStepOrderIssue(issues, beforeStepId, afterStepId);
79
86
  };
87
+ const pushUnsupportedUiFlagIssue = (issues, path, label, value) => {
88
+ issues.push({
89
+ code: 'unsupported_ui_flag',
90
+ path,
91
+ message: `KYC mobile config has unsupported ${label}: ${String(value)}`,
92
+ });
93
+ };
94
+ const validateOptionalStringEnum = (issues, value, allowed, path, label) => {
95
+ if (typeof value === 'undefined' || value === null || value === '') {
96
+ return;
97
+ }
98
+ const normalized = typeof value === 'string' ? value.trim().toLowerCase() : '';
99
+ if (allowed.includes(normalized)) {
100
+ return;
101
+ }
102
+ pushUnsupportedUiFlagIssue(issues, path, label, value);
103
+ };
80
104
  export function validateKycMobileWorkflowConfigContract(config) {
81
105
  const issues = [];
82
- const steps = Array.isArray(config?.kycSdkSteps)
83
- ? config.kycSdkSteps.filter((step) => typeof step === 'string')
106
+ const safeConfig = config ?? {};
107
+ const documentOptions = Array.isArray(safeConfig.kycSdkDocumentOptions)
108
+ ? safeConfig.kycSdkDocumentOptions
109
+ : [];
110
+ const documentPolicy = safeConfig.kycSdkDocumentPolicy ?? {};
111
+ const uiConfig = safeConfig.kycSdkUi ?? {};
112
+ const steps = Array.isArray(safeConfig.kycSdkSteps)
113
+ ? safeConfig.kycSdkSteps.filter((step) => typeof step === 'string')
84
114
  : [];
85
115
  if (!steps.length) {
86
116
  pushMissingArrayIssue(issues, 'kycSdkSteps', 'mobile step configuration');
87
117
  }
88
- if (!Array.isArray(config?.kycSdkDocumentOptions) || config.kycSdkDocumentOptions.length === 0) {
118
+ if (documentOptions.length === 0) {
89
119
  pushMissingArrayIssue(issues, 'kycSdkDocumentOptions', 'mobile document configuration');
90
120
  }
121
+ const allowedPolicyIssuingCountries = Array.isArray(documentPolicy.allowedIssuingCountries)
122
+ ? documentPolicy.allowedIssuingCountries.filter((country) => typeof country === 'string' && country.trim().length > 0)
123
+ : [];
124
+ if (allowedPolicyIssuingCountries.length === 0) {
125
+ pushMissingArrayIssue(issues, 'kycSdkDocumentPolicy.allowedIssuingCountries', 'document issuing country policy');
126
+ }
127
+ if (documentOptions.length > 0) {
128
+ documentOptions.forEach((option, index) => {
129
+ const optionRecord = option && typeof option === 'object' && !Array.isArray(option)
130
+ ? option
131
+ : {};
132
+ const allowedIssuingCountries = Array.isArray(optionRecord.allowedIssuingCountries)
133
+ ? optionRecord.allowedIssuingCountries.filter((country) => typeof country === 'string' && country.trim().length > 0)
134
+ : [];
135
+ if (allowedIssuingCountries.length > 0) {
136
+ return;
137
+ }
138
+ issues.push({
139
+ code: 'missing_config_array',
140
+ path: `kycSdkDocumentOptions[${index}].allowedIssuingCountries`,
141
+ message: `KYC mobile document option is missing allowed issuing countries: ${typeof optionRecord.type === 'string' ? optionRecord.type : index}`,
142
+ });
143
+ });
144
+ }
91
145
  const seenSteps = new Set();
92
146
  const stepIndexById = new Map();
93
147
  for (const step of steps) {
@@ -119,8 +173,8 @@ export function validateKycMobileWorkflowConfigContract(config) {
119
173
  }
120
174
  }
121
175
  }
122
- const allowedAddressMethods = Array.isArray(config?.kycSdkUi?.allowedAddressMethods)
123
- ? config.kycSdkUi.allowedAddressMethods
176
+ const allowedAddressMethods = Array.isArray(uiConfig.allowedAddressMethods)
177
+ ? uiConfig.allowedAddressMethods
124
178
  : [];
125
179
  const validAddressMethods = allowedAddressMethods.filter(isAddressMethod);
126
180
  const shouldCollectProofMedia = validAddressMethods.some(method => method !== 'typed_address');
@@ -150,6 +204,10 @@ export function validateKycMobileWorkflowConfigContract(config) {
150
204
  });
151
205
  }
152
206
  }
207
+ validateOptionalStringEnum(issues, uiConfig.captureMode, KYC_MOBILE_VALID_CAPTURE_MODES, 'kycSdkUi.captureMode', 'capture mode');
208
+ validateOptionalStringEnum(issues, uiConfig.submissionCompletionMode, KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES, 'kycSdkUi.submissionCompletionMode', 'submission completion mode');
209
+ validateOptionalStringEnum(issues, uiConfig.addressFieldMode, KYC_MOBILE_VALID_ADDRESS_FIELD_MODES, 'kycSdkUi.addressFieldMode', 'address field mode');
210
+ validateOptionalStringEnum(issues, uiConfig.gpsPolicy, KYC_MOBILE_VALID_GPS_POLICIES, 'kycSdkUi.gpsPolicy', 'GPS policy');
153
211
  pushOrderIssueIfInvalid(issues, stepIndexById, 'address-proof-start', 'address-input');
154
212
  if (shouldCollectProofMedia) {
155
213
  pushOrderIssueIfInvalid(issues, stepIndexById, 'address-input', 'address-proof-photo');
@@ -1 +1 @@
1
- {"version":3,"file":"kyc-mobile-contract.js","sourceRoot":"","sources":["../../src/kyc-mobile-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kyc-mobile-contract.js","sourceRoot":"","sources":["../../src/kyc-mobile-contract.ts"],"names":[],"mappings":"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"}