@mikashboks/capture-intelligence-core 0.1.9 → 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.
- package/dist/cjs/capture-normalization.d.ts +21 -1
- package/dist/cjs/capture-normalization.d.ts.map +1 -1
- package/dist/cjs/capture-normalization.js +85 -13
- package/dist/cjs/capture-normalization.js.map +1 -1
- package/dist/cjs/document-classifier.d.ts.map +1 -1
- package/dist/cjs/document-classifier.js +59 -2
- package/dist/cjs/document-classifier.js.map +1 -1
- package/dist/cjs/document-placement.d.ts +21 -0
- package/dist/cjs/document-placement.d.ts.map +1 -0
- package/dist/cjs/document-placement.js +66 -0
- package/dist/cjs/document-placement.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +27 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/issuing-country.d.ts +16 -0
- package/dist/cjs/issuing-country.d.ts.map +1 -0
- package/dist/cjs/issuing-country.js +77 -0
- package/dist/cjs/issuing-country.js.map +1 -0
- package/dist/cjs/kyc-mobile-contract.d.ts +13 -1
- package/dist/cjs/kyc-mobile-contract.d.ts.map +1 -1
- package/dist/cjs/kyc-mobile-contract.js +64 -6
- package/dist/cjs/kyc-mobile-contract.js.map +1 -1
- package/dist/cjs/mrz-band-detector.d.ts +12 -5
- package/dist/cjs/mrz-band-detector.d.ts.map +1 -1
- package/dist/cjs/mrz-band-detector.js +29 -14
- package/dist/cjs/mrz-band-detector.js.map +1 -1
- package/dist/cjs/mrz-check-digits.d.ts +74 -0
- package/dist/cjs/mrz-check-digits.d.ts.map +1 -0
- package/dist/cjs/mrz-check-digits.js +478 -0
- package/dist/cjs/mrz-check-digits.js.map +1 -0
- package/dist/cjs/mrz-policy.d.ts +18 -0
- package/dist/cjs/mrz-policy.d.ts.map +1 -0
- package/dist/cjs/mrz-policy.js +90 -0
- package/dist/cjs/mrz-policy.js.map +1 -0
- package/dist/cjs/quality-checks.d.ts +16 -0
- package/dist/cjs/quality-checks.d.ts.map +1 -1
- package/dist/cjs/quality-checks.js +72 -17
- package/dist/cjs/quality-checks.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -2
- package/dist/cjs/types.js +2 -2
- package/dist/esm/capture-normalization.d.ts +21 -1
- package/dist/esm/capture-normalization.d.ts.map +1 -1
- package/dist/esm/capture-normalization.js +84 -13
- package/dist/esm/capture-normalization.js.map +1 -1
- package/dist/esm/document-classifier.d.ts.map +1 -1
- package/dist/esm/document-classifier.js +59 -2
- package/dist/esm/document-classifier.js.map +1 -1
- package/dist/esm/document-placement.d.ts +21 -0
- package/dist/esm/document-placement.d.ts.map +1 -0
- package/dist/esm/document-placement.js +62 -0
- package/dist/esm/document-placement.js.map +1 -0
- package/dist/esm/index.d.ts +12 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/issuing-country.d.ts +16 -0
- package/dist/esm/issuing-country.d.ts.map +1 -0
- package/dist/esm/issuing-country.js +71 -0
- package/dist/esm/issuing-country.js.map +1 -0
- package/dist/esm/kyc-mobile-contract.d.ts +13 -1
- package/dist/esm/kyc-mobile-contract.d.ts.map +1 -1
- package/dist/esm/kyc-mobile-contract.js +63 -5
- package/dist/esm/kyc-mobile-contract.js.map +1 -1
- package/dist/esm/mrz-band-detector.d.ts +12 -5
- package/dist/esm/mrz-band-detector.d.ts.map +1 -1
- package/dist/esm/mrz-band-detector.js +29 -14
- package/dist/esm/mrz-band-detector.js.map +1 -1
- package/dist/esm/mrz-check-digits.d.ts +74 -0
- package/dist/esm/mrz-check-digits.d.ts.map +1 -0
- package/dist/esm/mrz-check-digits.js +471 -0
- package/dist/esm/mrz-check-digits.js.map +1 -0
- package/dist/esm/mrz-policy.d.ts +18 -0
- package/dist/esm/mrz-policy.d.ts.map +1 -0
- package/dist/esm/mrz-policy.js +87 -0
- package/dist/esm/mrz-policy.js.map +1 -0
- package/dist/esm/quality-checks.d.ts +16 -0
- package/dist/esm/quality-checks.d.ts.map +1 -1
- package/dist/esm/quality-checks.js +71 -17
- package/dist/esm/quality-checks.js.map +1 -1
- package/dist/esm/types.d.ts +2 -2
- package/dist/esm/types.js +2 -2
- package/package.json +8 -4
package/dist/cjs/index.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
* objects, numeric values). Zero browser dependencies.
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
12
|
+
exports.mapPreviewRectToImageCropWithDiagnostics = exports.analyzeImageMetadata = exports.checkDocumentLikelihood = exports.getDocumentReviewProfile = exports.getPreviousFlowStepId = exports.getNextFlowStepId = exports.resolveIssuingCountry = exports.normalizeIssuingCountry = exports.getIssuingCountryMetadata = exports.validateKycMobileWorkflowConfigContract = exports.KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES = exports.KYC_MOBILE_VALID_GPS_POLICIES = exports.KYC_MOBILE_VALID_CAPTURE_MODES = exports.KYC_MOBILE_VALID_ADDRESS_FIELD_MODES = exports.KYC_MOBILE_VALID_ADDRESS_METHODS = exports.KYC_MOBILE_SIERRA_LEONE_STEP_ORDER = exports.KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS = exports.KYC_MOBILE_KNOWN_STEP_IDS = exports.KYC_MOBILE_ADDRESS_STEP_IDS = exports.isAddressStepComplete = exports.hasStructuredAddress = exports.hasAddressProofCoordinates = exports.getEffectiveAddressMethod = exports.getAddressMethodStartBehavior = exports.getRecommendedAddressMethod = exports.sanitizeAllowedAddressMethods = exports.isAddressMethod = exports.ADDRESS_METHOD_ORDER = exports.PICO_ANALYSIS_H = exports.PICO_ANALYSIS_W = exports.ADDRESS_SUBMIT_ANYWAY_FAILURE_THRESHOLD = exports.SELFIE_SUBMIT_ANYWAY_FAILURE_THRESHOLD = exports.DOC_SUBMIT_ANYWAY_FAILURE_THRESHOLD = exports.DOC_GALLERY_FAILURE_THRESHOLD = exports.CAPTURE_DOCUMENT_EDGE_READY_MULTIPLIER = exports.CAPTURE_DOCUMENT_AREA_MIN = exports.CAPTURE_DOCUMENT_MANUAL_FALLBACK_SECS = exports.CAPTURE_DOCUMENT_SHARPNESS_MIN = exports.CAM_DOC_CENTER_OFFSET_MAX = exports.CAM_EDGE_COVERAGE_THRESHOLD = exports.CAM_EDGE_PIXEL_THRESHOLD = exports.CAM_FRAME_DIFF_THRESHOLD = exports.CAM_STABLE_FRAMES_NEEDED = exports.CAM_EDGE_THRESHOLD = exports.CAM_BLUR_THRESHOLD = exports.CAM_BRIGHTNESS_MAX = exports.CAM_BRIGHTNESS_MIN = exports.CAM_ANALYSIS_H = exports.CAM_ANALYSIS_W = exports.CamState = void 0;
|
|
13
|
+
exports.isFaceCentered = exports.checkFaceInImage = exports.runSelfieQualityChecks = exports.runDocumentQualityChecks = exports.getReviewModeFromDocumentType = exports.isRetryEscapableDocumentCornerFailure = exports.hasHardBlockingQualityFailure = exports.shouldShowSubmitAnyway = exports.countFailedReview = exports.createQualityFailureState = exports.getSubmitAnywayThreshold = exports.getQualityBucket = exports.resolveDocumentMrzPolicy = exports.validateMrzCheckDigits = exports.parseMrzText = exports.normalizeMrzLines = exports.computeMrzCheckDigit = exports.getMrzCharacterValue = exports.MRZ_DENSITY_SCORE_SATURATION = exports.MRZ_SEARCH_TOP_FRAC = exports.MRZ_MAX_BAND_ASPECT = exports.MRZ_MIN_BAND_ASPECT = exports.MRZ_MIN_BAND_WIDTH_FRAC = exports.MRZ_MAX_BAND_HEIGHT = exports.MRZ_MIN_BAND_HEIGHT = exports.MRZ_ROW_DENSITY_RATIO_THRESHOLD = exports.MRZ_HORIZONTAL_GRADIENT_THRESHOLD = exports.detectPassportMrzBand = exports.looksLikeDocument = exports.analyzeFrame = exports.computeFrameDiff = exports.detectDocumentRect = exports.computeEdgeEnergy = exports.computeLaplacianVarianceFloat = exports.computeLaplacianVariance = exports.computeBrightness = exports.rgbaToGreyInPlace = exports.detectDocumentCropFromGrey = exports.computeEdgeEnergyProfile = exports.rgbaToGreyscalePico = exports.rgbaToGreyscale = exports.evaluateDocumentPlacement = exports.CAPTURE_READY_SAFE_INSET_MIN = exports.CAPTURE_READY_CENTER_MAX_BY_SHAPE = exports.CAPTURE_READY_AREA_MAX_BY_SHAPE = exports.CAPTURE_READY_AREA_MIN_BY_SHAPE = exports.getDocumentCaptureFrameAspectRatio = exports.buildCaptureNormalizationPlan = exports.getRotationToExpectedOrientation = exports.mapPreviewRectToImageCrop = void 0;
|
|
14
|
+
exports.getOverrideBannerMessage = exports.getOverrideButtonText = exports.getNextButtonDisabledReason = exports.evaluateReviewFailure = exports.evaluateSelfieFailure = exports.evaluateDocumentFailure = void 0;
|
|
14
15
|
var types_js_1 = require("./types.js");
|
|
15
16
|
Object.defineProperty(exports, "CamState", { enumerable: true, get: function () { return types_js_1.CamState; } });
|
|
16
17
|
Object.defineProperty(exports, "CAM_ANALYSIS_W", { enumerable: true, get: function () { return types_js_1.CAM_ANALYSIS_W; } });
|
|
@@ -50,7 +51,15 @@ Object.defineProperty(exports, "KYC_MOBILE_KNOWN_STEP_IDS", { enumerable: true,
|
|
|
50
51
|
Object.defineProperty(exports, "KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS; } });
|
|
51
52
|
Object.defineProperty(exports, "KYC_MOBILE_SIERRA_LEONE_STEP_ORDER", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_SIERRA_LEONE_STEP_ORDER; } });
|
|
52
53
|
Object.defineProperty(exports, "KYC_MOBILE_VALID_ADDRESS_METHODS", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_VALID_ADDRESS_METHODS; } });
|
|
54
|
+
Object.defineProperty(exports, "KYC_MOBILE_VALID_ADDRESS_FIELD_MODES", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_VALID_ADDRESS_FIELD_MODES; } });
|
|
55
|
+
Object.defineProperty(exports, "KYC_MOBILE_VALID_CAPTURE_MODES", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_VALID_CAPTURE_MODES; } });
|
|
56
|
+
Object.defineProperty(exports, "KYC_MOBILE_VALID_GPS_POLICIES", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_VALID_GPS_POLICIES; } });
|
|
57
|
+
Object.defineProperty(exports, "KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES; } });
|
|
53
58
|
Object.defineProperty(exports, "validateKycMobileWorkflowConfigContract", { enumerable: true, get: function () { return kyc_mobile_contract_js_1.validateKycMobileWorkflowConfigContract; } });
|
|
59
|
+
var issuing_country_js_1 = require("./issuing-country.js");
|
|
60
|
+
Object.defineProperty(exports, "getIssuingCountryMetadata", { enumerable: true, get: function () { return issuing_country_js_1.getIssuingCountryMetadata; } });
|
|
61
|
+
Object.defineProperty(exports, "normalizeIssuingCountry", { enumerable: true, get: function () { return issuing_country_js_1.normalizeIssuingCountry; } });
|
|
62
|
+
Object.defineProperty(exports, "resolveIssuingCountry", { enumerable: true, get: function () { return issuing_country_js_1.resolveIssuingCountry; } });
|
|
54
63
|
var flow_routing_js_1 = require("./flow-routing.js");
|
|
55
64
|
Object.defineProperty(exports, "getNextFlowStepId", { enumerable: true, get: function () { return flow_routing_js_1.getNextFlowStepId; } });
|
|
56
65
|
Object.defineProperty(exports, "getPreviousFlowStepId", { enumerable: true, get: function () { return flow_routing_js_1.getPreviousFlowStepId; } });
|
|
@@ -61,10 +70,17 @@ Object.defineProperty(exports, "checkDocumentLikelihood", { enumerable: true, ge
|
|
|
61
70
|
var metadata_review_js_1 = require("./metadata-review.js");
|
|
62
71
|
Object.defineProperty(exports, "analyzeImageMetadata", { enumerable: true, get: function () { return metadata_review_js_1.analyzeImageMetadata; } });
|
|
63
72
|
var capture_normalization_js_1 = require("./capture-normalization.js");
|
|
73
|
+
Object.defineProperty(exports, "mapPreviewRectToImageCropWithDiagnostics", { enumerable: true, get: function () { return capture_normalization_js_1.mapPreviewRectToImageCropWithDiagnostics; } });
|
|
64
74
|
Object.defineProperty(exports, "mapPreviewRectToImageCrop", { enumerable: true, get: function () { return capture_normalization_js_1.mapPreviewRectToImageCrop; } });
|
|
65
75
|
Object.defineProperty(exports, "getRotationToExpectedOrientation", { enumerable: true, get: function () { return capture_normalization_js_1.getRotationToExpectedOrientation; } });
|
|
66
76
|
Object.defineProperty(exports, "buildCaptureNormalizationPlan", { enumerable: true, get: function () { return capture_normalization_js_1.buildCaptureNormalizationPlan; } });
|
|
67
77
|
Object.defineProperty(exports, "getDocumentCaptureFrameAspectRatio", { enumerable: true, get: function () { return capture_normalization_js_1.getDocumentCaptureFrameAspectRatio; } });
|
|
78
|
+
var document_placement_js_1 = require("./document-placement.js");
|
|
79
|
+
Object.defineProperty(exports, "CAPTURE_READY_AREA_MIN_BY_SHAPE", { enumerable: true, get: function () { return document_placement_js_1.CAPTURE_READY_AREA_MIN_BY_SHAPE; } });
|
|
80
|
+
Object.defineProperty(exports, "CAPTURE_READY_AREA_MAX_BY_SHAPE", { enumerable: true, get: function () { return document_placement_js_1.CAPTURE_READY_AREA_MAX_BY_SHAPE; } });
|
|
81
|
+
Object.defineProperty(exports, "CAPTURE_READY_CENTER_MAX_BY_SHAPE", { enumerable: true, get: function () { return document_placement_js_1.CAPTURE_READY_CENTER_MAX_BY_SHAPE; } });
|
|
82
|
+
Object.defineProperty(exports, "CAPTURE_READY_SAFE_INSET_MIN", { enumerable: true, get: function () { return document_placement_js_1.CAPTURE_READY_SAFE_INSET_MIN; } });
|
|
83
|
+
Object.defineProperty(exports, "evaluateDocumentPlacement", { enumerable: true, get: function () { return document_placement_js_1.evaluateDocumentPlacement; } });
|
|
68
84
|
var sobel_js_1 = require("./sobel.js");
|
|
69
85
|
Object.defineProperty(exports, "rgbaToGreyscale", { enumerable: true, get: function () { return sobel_js_1.rgbaToGreyscale; } });
|
|
70
86
|
Object.defineProperty(exports, "rgbaToGreyscalePico", { enumerable: true, get: function () { return sobel_js_1.rgbaToGreyscalePico; } });
|
|
@@ -91,6 +107,14 @@ Object.defineProperty(exports, "MRZ_MIN_BAND_ASPECT", { enumerable: true, get: f
|
|
|
91
107
|
Object.defineProperty(exports, "MRZ_MAX_BAND_ASPECT", { enumerable: true, get: function () { return mrz_band_detector_js_1.MRZ_MAX_BAND_ASPECT; } });
|
|
92
108
|
Object.defineProperty(exports, "MRZ_SEARCH_TOP_FRAC", { enumerable: true, get: function () { return mrz_band_detector_js_1.MRZ_SEARCH_TOP_FRAC; } });
|
|
93
109
|
Object.defineProperty(exports, "MRZ_DENSITY_SCORE_SATURATION", { enumerable: true, get: function () { return mrz_band_detector_js_1.MRZ_DENSITY_SCORE_SATURATION; } });
|
|
110
|
+
var mrz_check_digits_js_1 = require("./mrz-check-digits.js");
|
|
111
|
+
Object.defineProperty(exports, "getMrzCharacterValue", { enumerable: true, get: function () { return mrz_check_digits_js_1.getMrzCharacterValue; } });
|
|
112
|
+
Object.defineProperty(exports, "computeMrzCheckDigit", { enumerable: true, get: function () { return mrz_check_digits_js_1.computeMrzCheckDigit; } });
|
|
113
|
+
Object.defineProperty(exports, "normalizeMrzLines", { enumerable: true, get: function () { return mrz_check_digits_js_1.normalizeMrzLines; } });
|
|
114
|
+
Object.defineProperty(exports, "parseMrzText", { enumerable: true, get: function () { return mrz_check_digits_js_1.parseMrzText; } });
|
|
115
|
+
Object.defineProperty(exports, "validateMrzCheckDigits", { enumerable: true, get: function () { return mrz_check_digits_js_1.validateMrzCheckDigits; } });
|
|
116
|
+
var mrz_policy_js_1 = require("./mrz-policy.js");
|
|
117
|
+
Object.defineProperty(exports, "resolveDocumentMrzPolicy", { enumerable: true, get: function () { return mrz_policy_js_1.resolveDocumentMrzPolicy; } });
|
|
94
118
|
var quality_checks_js_1 = require("./quality-checks.js");
|
|
95
119
|
Object.defineProperty(exports, "getQualityBucket", { enumerable: true, get: function () { return quality_checks_js_1.getQualityBucket; } });
|
|
96
120
|
Object.defineProperty(exports, "getSubmitAnywayThreshold", { enumerable: true, get: function () { return quality_checks_js_1.getSubmitAnywayThreshold; } });
|
|
@@ -98,6 +122,7 @@ Object.defineProperty(exports, "createQualityFailureState", { enumerable: true,
|
|
|
98
122
|
Object.defineProperty(exports, "countFailedReview", { enumerable: true, get: function () { return quality_checks_js_1.countFailedReview; } });
|
|
99
123
|
Object.defineProperty(exports, "shouldShowSubmitAnyway", { enumerable: true, get: function () { return quality_checks_js_1.shouldShowSubmitAnyway; } });
|
|
100
124
|
Object.defineProperty(exports, "hasHardBlockingQualityFailure", { enumerable: true, get: function () { return quality_checks_js_1.hasHardBlockingQualityFailure; } });
|
|
125
|
+
Object.defineProperty(exports, "isRetryEscapableDocumentCornerFailure", { enumerable: true, get: function () { return quality_checks_js_1.isRetryEscapableDocumentCornerFailure; } });
|
|
101
126
|
Object.defineProperty(exports, "getReviewModeFromDocumentType", { enumerable: true, get: function () { return quality_checks_js_1.getReviewModeFromDocumentType; } });
|
|
102
127
|
Object.defineProperty(exports, "runDocumentQualityChecks", { enumerable: true, get: function () { return quality_checks_js_1.runDocumentQualityChecks; } });
|
|
103
128
|
Object.defineProperty(exports, "runSelfieQualityChecks", { enumerable: true, get: function () { return quality_checks_js_1.runSelfieQualityChecks; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveIssuingCountry = exports.getIssuingCountryMetadata = exports.normalizeIssuingCountry = void 0;
|
|
4
|
+
const SIERRA_LEONE_COUNTRY = {
|
|
5
|
+
countryCode: 'SL',
|
|
6
|
+
alpha2: 'SL',
|
|
7
|
+
alpha3: 'SLE',
|
|
8
|
+
name: 'Sierra Leone',
|
|
9
|
+
};
|
|
10
|
+
const ISSUING_COUNTRY_ALIASES = new Map([
|
|
11
|
+
'SL',
|
|
12
|
+
'SLE',
|
|
13
|
+
'SIERRA LEONE',
|
|
14
|
+
'SIERRA_LEONE',
|
|
15
|
+
'SIERRALEONE',
|
|
16
|
+
'SIERRA LEONEAN',
|
|
17
|
+
'SIERRA_LEONEAN',
|
|
18
|
+
'SIERRALEONEAN',
|
|
19
|
+
].map(alias => [alias, SIERRA_LEONE_COUNTRY]));
|
|
20
|
+
const normalizeTokenKey = (value) => value
|
|
21
|
+
.trim()
|
|
22
|
+
.toUpperCase()
|
|
23
|
+
.replace(/[\s-]+/g, '_');
|
|
24
|
+
const firstString = (value) => {
|
|
25
|
+
if (typeof value === 'string' && value.trim()) {
|
|
26
|
+
return value.trim();
|
|
27
|
+
}
|
|
28
|
+
if (Array.isArray(value)) {
|
|
29
|
+
return value
|
|
30
|
+
.find((entry) => typeof entry === 'string' && entry.trim().length > 0)
|
|
31
|
+
?.trim();
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
};
|
|
35
|
+
const normalizeIssuingCountry = (value, source) => {
|
|
36
|
+
const rawValue = firstString(value);
|
|
37
|
+
if (!rawValue) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const normalizedKey = normalizeTokenKey(rawValue);
|
|
41
|
+
const alias = ISSUING_COUNTRY_ALIASES.get(normalizedKey);
|
|
42
|
+
if (alias) {
|
|
43
|
+
return { ...alias, source };
|
|
44
|
+
}
|
|
45
|
+
const upper = rawValue.trim().toUpperCase();
|
|
46
|
+
if (/^[A-Z]{2}$/.test(upper)) {
|
|
47
|
+
return { countryCode: upper, alpha2: upper, source };
|
|
48
|
+
}
|
|
49
|
+
if (/^[A-Z]{3}$/.test(upper)) {
|
|
50
|
+
return { countryCode: upper, alpha3: upper, source };
|
|
51
|
+
}
|
|
52
|
+
return { countryCode: rawValue.trim(), name: rawValue.trim(), source };
|
|
53
|
+
};
|
|
54
|
+
exports.normalizeIssuingCountry = normalizeIssuingCountry;
|
|
55
|
+
const getIssuingCountryMetadata = (country) => {
|
|
56
|
+
if (!country) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
issuingCountry: country.countryCode,
|
|
61
|
+
...(country.alpha2 ? { issuingCountryAlpha2: country.alpha2 } : {}),
|
|
62
|
+
...(country.alpha3 ? { issuingCountryAlpha3: country.alpha3 } : {}),
|
|
63
|
+
...(country.name ? { issuingCountryName: country.name } : {}),
|
|
64
|
+
...(country.source ? { issuingCountrySource: country.source } : {}),
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
exports.getIssuingCountryMetadata = getIssuingCountryMetadata;
|
|
68
|
+
const resolveIssuingCountry = ({ documentMetadata, selectedDocumentAllowedIssuingCountries, documentPolicyAllowedIssuingCountries, }) => {
|
|
69
|
+
const metadataCountry = (0, exports.normalizeIssuingCountry)(documentMetadata?.issuingCountry, 'document_metadata') ??
|
|
70
|
+
(0, exports.normalizeIssuingCountry)(documentMetadata?.issuingCountryAlpha2, 'document_metadata') ??
|
|
71
|
+
(0, exports.normalizeIssuingCountry)(documentMetadata?.issuingCountryAlpha3, 'document_metadata');
|
|
72
|
+
return (metadataCountry ??
|
|
73
|
+
(0, exports.normalizeIssuingCountry)(selectedDocumentAllowedIssuingCountries, 'selected_document_option') ??
|
|
74
|
+
(0, exports.normalizeIssuingCountry)(documentPolicyAllowedIssuingCountries, 'document_policy'));
|
|
75
|
+
};
|
|
76
|
+
exports.resolveIssuingCountry = resolveIssuingCountry;
|
|
77
|
+
//# sourceMappingURL=issuing-country.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issuing-country.js","sourceRoot":"","sources":["../../src/issuing-country.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,9 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KYC_MOBILE_KNOWN_STEP_IDS = exports.KYC_MOBILE_SIERRA_LEONE_STEP_ORDER = exports.KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS = exports.KYC_MOBILE_ADDRESS_STEP_IDS = exports.KYC_MOBILE_VALID_ADDRESS_METHODS = void 0;
|
|
3
|
+
exports.KYC_MOBILE_KNOWN_STEP_IDS = exports.KYC_MOBILE_SIERRA_LEONE_STEP_ORDER = exports.KYC_MOBILE_REQUIRED_TERMINAL_STEP_IDS = exports.KYC_MOBILE_ADDRESS_STEP_IDS = exports.KYC_MOBILE_VALID_GPS_POLICIES = exports.KYC_MOBILE_VALID_ADDRESS_FIELD_MODES = exports.KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES = exports.KYC_MOBILE_VALID_CAPTURE_MODES = exports.KYC_MOBILE_VALID_ADDRESS_METHODS = void 0;
|
|
4
4
|
exports.validateKycMobileWorkflowConfigContract = validateKycMobileWorkflowConfigContract;
|
|
5
5
|
const address_proof_js_1 = require("./address-proof.js");
|
|
6
6
|
exports.KYC_MOBILE_VALID_ADDRESS_METHODS = [...address_proof_js_1.ADDRESS_METHOD_ORDER];
|
|
7
|
+
exports.KYC_MOBILE_VALID_CAPTURE_MODES = ['manual_unlock', 'auto_capture'];
|
|
8
|
+
exports.KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES = [
|
|
9
|
+
'wait_for_workflow',
|
|
10
|
+
'fast_handoff',
|
|
11
|
+
];
|
|
12
|
+
exports.KYC_MOBILE_VALID_ADDRESS_FIELD_MODES = ['legacy_sl', 'street_district_city'];
|
|
13
|
+
exports.KYC_MOBILE_VALID_GPS_POLICIES = ['auto', 'manual', 'disabled'];
|
|
7
14
|
exports.KYC_MOBILE_ADDRESS_STEP_IDS = [
|
|
8
15
|
'address-proof-start',
|
|
9
16
|
'address-input',
|
|
@@ -81,17 +88,64 @@ const pushOrderIssueIfInvalid = (issues, stepIndexById, beforeStepId, afterStepI
|
|
|
81
88
|
return;
|
|
82
89
|
pushInvalidStepOrderIssue(issues, beforeStepId, afterStepId);
|
|
83
90
|
};
|
|
91
|
+
const pushUnsupportedUiFlagIssue = (issues, path, label, value) => {
|
|
92
|
+
issues.push({
|
|
93
|
+
code: 'unsupported_ui_flag',
|
|
94
|
+
path,
|
|
95
|
+
message: `KYC mobile config has unsupported ${label}: ${String(value)}`,
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
const validateOptionalStringEnum = (issues, value, allowed, path, label) => {
|
|
99
|
+
if (typeof value === 'undefined' || value === null || value === '') {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const normalized = typeof value === 'string' ? value.trim().toLowerCase() : '';
|
|
103
|
+
if (allowed.includes(normalized)) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
pushUnsupportedUiFlagIssue(issues, path, label, value);
|
|
107
|
+
};
|
|
84
108
|
function validateKycMobileWorkflowConfigContract(config) {
|
|
85
109
|
const issues = [];
|
|
86
|
-
const
|
|
87
|
-
|
|
110
|
+
const safeConfig = config ?? {};
|
|
111
|
+
const documentOptions = Array.isArray(safeConfig.kycSdkDocumentOptions)
|
|
112
|
+
? safeConfig.kycSdkDocumentOptions
|
|
113
|
+
: [];
|
|
114
|
+
const documentPolicy = safeConfig.kycSdkDocumentPolicy ?? {};
|
|
115
|
+
const uiConfig = safeConfig.kycSdkUi ?? {};
|
|
116
|
+
const steps = Array.isArray(safeConfig.kycSdkSteps)
|
|
117
|
+
? safeConfig.kycSdkSteps.filter((step) => typeof step === 'string')
|
|
88
118
|
: [];
|
|
89
119
|
if (!steps.length) {
|
|
90
120
|
pushMissingArrayIssue(issues, 'kycSdkSteps', 'mobile step configuration');
|
|
91
121
|
}
|
|
92
|
-
if (
|
|
122
|
+
if (documentOptions.length === 0) {
|
|
93
123
|
pushMissingArrayIssue(issues, 'kycSdkDocumentOptions', 'mobile document configuration');
|
|
94
124
|
}
|
|
125
|
+
const allowedPolicyIssuingCountries = Array.isArray(documentPolicy.allowedIssuingCountries)
|
|
126
|
+
? documentPolicy.allowedIssuingCountries.filter((country) => typeof country === 'string' && country.trim().length > 0)
|
|
127
|
+
: [];
|
|
128
|
+
if (allowedPolicyIssuingCountries.length === 0) {
|
|
129
|
+
pushMissingArrayIssue(issues, 'kycSdkDocumentPolicy.allowedIssuingCountries', 'document issuing country policy');
|
|
130
|
+
}
|
|
131
|
+
if (documentOptions.length > 0) {
|
|
132
|
+
documentOptions.forEach((option, index) => {
|
|
133
|
+
const optionRecord = option && typeof option === 'object' && !Array.isArray(option)
|
|
134
|
+
? option
|
|
135
|
+
: {};
|
|
136
|
+
const allowedIssuingCountries = Array.isArray(optionRecord.allowedIssuingCountries)
|
|
137
|
+
? optionRecord.allowedIssuingCountries.filter((country) => typeof country === 'string' && country.trim().length > 0)
|
|
138
|
+
: [];
|
|
139
|
+
if (allowedIssuingCountries.length > 0) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
issues.push({
|
|
143
|
+
code: 'missing_config_array',
|
|
144
|
+
path: `kycSdkDocumentOptions[${index}].allowedIssuingCountries`,
|
|
145
|
+
message: `KYC mobile document option is missing allowed issuing countries: ${typeof optionRecord.type === 'string' ? optionRecord.type : index}`,
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
95
149
|
const seenSteps = new Set();
|
|
96
150
|
const stepIndexById = new Map();
|
|
97
151
|
for (const step of steps) {
|
|
@@ -123,8 +177,8 @@ function validateKycMobileWorkflowConfigContract(config) {
|
|
|
123
177
|
}
|
|
124
178
|
}
|
|
125
179
|
}
|
|
126
|
-
const allowedAddressMethods = Array.isArray(
|
|
127
|
-
?
|
|
180
|
+
const allowedAddressMethods = Array.isArray(uiConfig.allowedAddressMethods)
|
|
181
|
+
? uiConfig.allowedAddressMethods
|
|
128
182
|
: [];
|
|
129
183
|
const validAddressMethods = allowedAddressMethods.filter(address_proof_js_1.isAddressMethod);
|
|
130
184
|
const shouldCollectProofMedia = validAddressMethods.some(method => method !== 'typed_address');
|
|
@@ -154,6 +208,10 @@ function validateKycMobileWorkflowConfigContract(config) {
|
|
|
154
208
|
});
|
|
155
209
|
}
|
|
156
210
|
}
|
|
211
|
+
validateOptionalStringEnum(issues, uiConfig.captureMode, exports.KYC_MOBILE_VALID_CAPTURE_MODES, 'kycSdkUi.captureMode', 'capture mode');
|
|
212
|
+
validateOptionalStringEnum(issues, uiConfig.submissionCompletionMode, exports.KYC_MOBILE_VALID_SUBMISSION_COMPLETION_MODES, 'kycSdkUi.submissionCompletionMode', 'submission completion mode');
|
|
213
|
+
validateOptionalStringEnum(issues, uiConfig.addressFieldMode, exports.KYC_MOBILE_VALID_ADDRESS_FIELD_MODES, 'kycSdkUi.addressFieldMode', 'address field mode');
|
|
214
|
+
validateOptionalStringEnum(issues, uiConfig.gpsPolicy, exports.KYC_MOBILE_VALID_GPS_POLICIES, 'kycSdkUi.gpsPolicy', 'GPS policy');
|
|
157
215
|
pushOrderIssueIfInvalid(issues, stepIndexById, 'address-proof-start', 'address-input');
|
|
158
216
|
if (shouldCollectProofMedia) {
|
|
159
217
|
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":";;;
|
|
1
|
+
{"version":3,"file":"kyc-mobile-contract.js","sourceRoot":"","sources":["../../src/kyc-mobile-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
|
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"}
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
*
|
|
16
16
|
* Algorithm (cheap enough for 15 fps on 320×240 mid-range Android):
|
|
17
17
|
* 1. Restrict search to the bottom ~40% and mirrored top ~40% of the overlay
|
|
18
|
-
* region so upside-down passports still surface the MRZ signal.
|
|
18
|
+
* region so upside-down passports still surface the MRZ signal. Callers
|
|
19
|
+
* can opt into additional lower-page slices for live passport capture,
|
|
20
|
+
* where the data page may sit high inside a tall viewfinder.
|
|
19
21
|
* 2. For each row in that slice, count pixels where the absolute
|
|
20
22
|
* horizontal gradient |I(x+1) − I(x−1)| exceeds a fixed threshold,
|
|
21
23
|
* and record the leftmost / rightmost strong-gradient column.
|
|
@@ -42,7 +44,7 @@ exports.MRZ_MAX_LINE_GAP = 8;
|
|
|
42
44
|
exports.MRZ_MIN_BAND_WIDTH_FRAC = 0.4;
|
|
43
45
|
exports.MRZ_MIN_BAND_ASPECT = 4;
|
|
44
46
|
exports.MRZ_MAX_BAND_ASPECT = 30;
|
|
45
|
-
/** MRZ search window: bottom 0.55
|
|
47
|
+
/** MRZ search window: bottom 0.55 -> 1.0 of the overlay region (excludes the photo half). */
|
|
46
48
|
exports.MRZ_SEARCH_TOP_FRAC = 0.55;
|
|
47
49
|
/** Density at which the row-density score saturates (1.0). */
|
|
48
50
|
exports.MRZ_DENSITY_SCORE_SATURATION = 0.45;
|
|
@@ -64,8 +66,20 @@ function chooseMrzDetectionResult(results) {
|
|
|
64
66
|
});
|
|
65
67
|
return best ?? EMPTY_RESULT;
|
|
66
68
|
}
|
|
69
|
+
function getSearchTopFracs(extraSearchTopFracs) {
|
|
70
|
+
const fracs = [exports.MRZ_SEARCH_TOP_FRAC, ...(extraSearchTopFracs ?? [])]
|
|
71
|
+
.filter(frac => Number.isFinite(frac) && frac > 0 && frac < 1)
|
|
72
|
+
.sort((a, b) => a - b);
|
|
73
|
+
const unique = [];
|
|
74
|
+
for (const frac of fracs) {
|
|
75
|
+
if (!unique.some(existing => Math.abs(existing - frac) < 0.001)) {
|
|
76
|
+
unique.push(frac);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return unique;
|
|
80
|
+
}
|
|
67
81
|
function detectPassportMrzBand(input) {
|
|
68
|
-
const { grey, greyW, greyH, region } = input;
|
|
82
|
+
const { grey, greyW, greyH, region, extraSearchTopFracs } = input;
|
|
69
83
|
if (!grey || grey.length < greyW * greyH)
|
|
70
84
|
return EMPTY_RESULT;
|
|
71
85
|
const rx1 = Math.max(1, Math.min(greyW - 2, Math.round(region.x1)));
|
|
@@ -76,13 +90,14 @@ function detectPassportMrzBand(input) {
|
|
|
76
90
|
const regionH = ry2 - ry1;
|
|
77
91
|
if (regionW < 32 || regionH < 18)
|
|
78
92
|
return EMPTY_RESULT;
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
93
|
+
const results = [];
|
|
94
|
+
for (const topFrac of getSearchTopFracs(extraSearchTopFracs)) {
|
|
95
|
+
const bottomSliceY1 = ry1 + Math.floor(regionH * topFrac);
|
|
96
|
+
const bottomSliceY2 = ry2;
|
|
97
|
+
const sliceHeight = bottomSliceY2 - bottomSliceY1;
|
|
98
|
+
const topSliceY1 = ry1;
|
|
99
|
+
const topSliceY2 = Math.min(ry2, topSliceY1 + sliceHeight);
|
|
100
|
+
results.push(detectPassportMrzBandInSlice({
|
|
86
101
|
grey,
|
|
87
102
|
greyW,
|
|
88
103
|
rx1,
|
|
@@ -90,8 +105,7 @@ function detectPassportMrzBand(input) {
|
|
|
90
105
|
regionW,
|
|
91
106
|
sliceY1: bottomSliceY1,
|
|
92
107
|
sliceY2: bottomSliceY2,
|
|
93
|
-
}),
|
|
94
|
-
detectPassportMrzBandInSlice({
|
|
108
|
+
}), detectPassportMrzBandInSlice({
|
|
95
109
|
grey,
|
|
96
110
|
greyW,
|
|
97
111
|
rx1,
|
|
@@ -99,8 +113,9 @@ function detectPassportMrzBand(input) {
|
|
|
99
113
|
regionW,
|
|
100
114
|
sliceY1: topSliceY1,
|
|
101
115
|
sliceY2: topSliceY2,
|
|
102
|
-
})
|
|
103
|
-
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
return chooseMrzDetectionResult(results);
|
|
104
119
|
}
|
|
105
120
|
function detectPassportMrzBandInSlice(input) {
|
|
106
121
|
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":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAsEH,sDAsCC;AA1GY,QAAA,iCAAiC,GAAG,EAAE,CAAC;AACvC,QAAA,+BAA+B,GAAG,IAAI,CAAC;AACvC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACzB,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAC9B,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,mBAAmB,GAAG,EAAE,CAAC;AACtC,4FAA4F;AAC/E,QAAA,mBAAmB,GAAG,IAAI,CAAC;AACxC,8DAA8D;AACjD,QAAA,4BAA4B,GAAG,IAAI,CAAC;AAsCjD,MAAM,YAAY,GAA2B,MAAM,CAAC,MAAM,CAAC;IACzD,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,IAAI;IACV,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,eAAe,EAAE,CAAC;CACnB,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,OAAiC;IACjE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QACtE,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,IAAI,YAAY,CAAC;AAC9B,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAA4B;IAChE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK;QAAE,OAAO,YAAY,CAAC;IAE9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;IAC1B,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,YAAY,CAAC;IAEtD,MAAM,aAAa,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,2BAAmB,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;IAClD,MAAM,UAAU,GAAG,GAAG,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,CAAC;IAE3D,OAAO,wBAAwB,CAAC;QAC9B,4BAA4B,CAAC;YAC3B,IAAI;YACJ,KAAK;YACL,GAAG;YACH,GAAG;YACH,OAAO;YACP,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,aAAa;SACvB,CAAC;QACF,4BAA4B,CAAC;YAC3B,IAAI;YACJ,KAAK;YACL,GAAG;YACH,GAAG;YACH,OAAO;YACP,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,UAAU;SACpB,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B,CAAC,KAQrC;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACjC,IAAI,MAAM,GAAG,2BAAmB;QAAE,OAAO,YAAY,CAAC;IAEtD,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,EAAE,GAAG,yCAAiC,EAAE,CAAC;gBAC3C,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,KAAK,CAAC,CAAC;oBAAE,KAAK,GAAG,CAAC,CAAC;gBAC5B,IAAI,GAAG,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,oEAAoE;QACpE,wEAAwE;QACxE,+DAA+D;QAC/D,oEAAoE;QACpE,EAAE;QACF,iDAAiD;QACjD,wDAAwD;QACxD,iEAAiE;QACjE,oEAAoE;QACpE,kEAAkE;QAClE,qEAAqE;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QACpE,UAAU,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;QACzB,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACnB,IAAI,OAAO,GAAG,UAAU;YAAE,UAAU,GAAG,OAAO,CAAC;IACjD,CAAC;IAED,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAEnE,wEAAwE;IACxE,yEAAyE;IACzE,yEAAyE;IACzE,kCAAkC;IAClC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,uCAA+B,CAAC,CAAC;IACpF,MAAM,IAAI,GAOL,EAAE,CAAC;IACR,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;QAC9D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,QAAQ,KAAK,CAAC,CAAC;gBAAE,QAAQ,GAAG,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC;YACvB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;YACtB,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;oBAAE,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;oBAAE,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,WAAW;oBAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,2BAAmB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBACrF,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK;oBACL,GAAG;oBACH,SAAS,EAAE,GAAG,GAAG,KAAK,GAAG,CAAC;oBAC1B,IAAI;oBACJ,KAAK;oBACL,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,IAQlB,EAAE,EAAE;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QACrD,MAAM,QAAQ,GACZ,IAAI,CAAC,SAAS,IAAI,2BAAmB;YACrC,YAAY,IAAI,2BAAmB;YACnC,YAAY,IAAI,2BAAmB,CAAC;QACtC,MAAM,OAAO,GAAG,SAAS,IAAI,+BAAuB,CAAC;QACrD,MAAM,QAAQ,GAAG,UAAU,IAAI,2BAAmB,IAAI,UAAU,IAAI,2BAAmB,CAAC;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,GAAG,oCAA4B,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,+BAAuB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAC5B,CAAC,EACD,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,GAAG,YAAY,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,GAAG,SAAS,CAChF,CACF,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC/E,OAAO;YACL,GAAG,IAAI;YACP,YAAY;YACZ,KAAK;YACL,SAAS;YACT,UAAU;YACV,KAAK,EAAE,WAAW,IAAI,QAAQ,IAAI,OAAO,IAAI,QAAQ;YACrD,UAAU;SACX,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,UAAU,GAAmC,EAAE,CAAC;IACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,UAAU,CAAC,IAAI,CACb,SAAS,CAAC;YACR,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B,CAAC,CACH,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,wBAAgB;YAAE,SAAS;QAChD,UAAU,CAAC,IAAI,CACb,SAAS,CAAC;YACR,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;YACzC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;YACtC,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC;SACzD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,GAAG,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;IAElE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO;YACL,GAAG,YAAY;YACf,cAAc,EAAE,UAAU;YAC1B,iBAAiB,EAAE,IAAI,CAAC,SAAS;YACjC,eAAe,EAAE,IAAI,CAAC,UAAU;SACjC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,IAAI,EAAE;YACJ,CAAC,EAAE,IAAI,CAAC,IAAI;YACZ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,KAAK;YACvB,CAAC,EAAE,IAAI,CAAC,KAAK;YACb,CAAC,EAAE,IAAI,CAAC,YAAY;SACrB;QACD,cAAc,EAAE,UAAU;QAC1B,iBAAiB,EAAE,IAAI,CAAC,SAAS;QACjC,eAAe,EAAE,IAAI,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"mrz-band-detector.js","sourceRoot":"","sources":["../../src/mrz-band-detector.ts"],"names":[],"mappings":"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"}
|