@mikashboks/capture-intelligence-core 0.2.10 → 0.2.12

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 (55) hide show
  1. package/dist/cjs/capture-envelope.d.ts +30 -0
  2. package/dist/cjs/capture-envelope.d.ts.map +1 -1
  3. package/dist/cjs/capture-envelope.js +3 -0
  4. package/dist/cjs/capture-envelope.js.map +1 -1
  5. package/dist/cjs/capture-trust.d.ts +22 -0
  6. package/dist/cjs/capture-trust.d.ts.map +1 -1
  7. package/dist/cjs/capture-trust.js +86 -0
  8. package/dist/cjs/capture-trust.js.map +1 -1
  9. package/dist/cjs/document-classifier.js +5 -5
  10. package/dist/cjs/document-classifier.js.map +1 -1
  11. package/dist/cjs/document-crop-arbitration.d.ts +33 -3
  12. package/dist/cjs/document-crop-arbitration.d.ts.map +1 -1
  13. package/dist/cjs/document-crop-arbitration.js +54 -11
  14. package/dist/cjs/document-crop-arbitration.js.map +1 -1
  15. package/dist/cjs/glare-mask.d.ts +99 -0
  16. package/dist/cjs/glare-mask.d.ts.map +1 -0
  17. package/dist/cjs/glare-mask.js +210 -0
  18. package/dist/cjs/glare-mask.js.map +1 -0
  19. package/dist/cjs/index.d.ts +6 -4
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js +14 -3
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/types.d.ts +6 -0
  24. package/dist/cjs/types.d.ts.map +1 -1
  25. package/dist/cjs/types.js.map +1 -1
  26. package/dist/cjs/version.d.ts +1 -1
  27. package/dist/cjs/version.js +1 -1
  28. package/dist/esm/capture-envelope.d.ts +30 -0
  29. package/dist/esm/capture-envelope.d.ts.map +1 -1
  30. package/dist/esm/capture-envelope.js +3 -0
  31. package/dist/esm/capture-envelope.js.map +1 -1
  32. package/dist/esm/capture-trust.d.ts +22 -0
  33. package/dist/esm/capture-trust.d.ts.map +1 -1
  34. package/dist/esm/capture-trust.js +84 -0
  35. package/dist/esm/capture-trust.js.map +1 -1
  36. package/dist/esm/document-classifier.js +5 -5
  37. package/dist/esm/document-classifier.js.map +1 -1
  38. package/dist/esm/document-crop-arbitration.d.ts +33 -3
  39. package/dist/esm/document-crop-arbitration.d.ts.map +1 -1
  40. package/dist/esm/document-crop-arbitration.js +51 -10
  41. package/dist/esm/document-crop-arbitration.js.map +1 -1
  42. package/dist/esm/glare-mask.d.ts +99 -0
  43. package/dist/esm/glare-mask.d.ts.map +1 -0
  44. package/dist/esm/glare-mask.js +204 -0
  45. package/dist/esm/glare-mask.js.map +1 -0
  46. package/dist/esm/index.d.ts +6 -4
  47. package/dist/esm/index.d.ts.map +1 -1
  48. package/dist/esm/index.js +3 -2
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/types.d.ts +6 -0
  51. package/dist/esm/types.d.ts.map +1 -1
  52. package/dist/esm/types.js.map +1 -1
  53. package/dist/esm/version.d.ts +1 -1
  54. package/dist/esm/version.js +1 -1
  55. package/package.json +1 -1
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDocumentCropRejectedReason = exports.isDocumentCropVerified = exports.canTrustReadySafeCardEvidenceOverNativeUnsafeRisk = exports.hasNativeClampedCaptureRisk = exports.hasNativeOverfullCaptureRisk = exports.hasHardCaptureCutOffEvidence = exports.hasReadySafeCardLiveEvidence = exports.hasReadyCaptureCandidateDecision = exports.hasTrustedCardFrontRecognitionReason = exports.hasTrustedMrzCaptureEvidence = exports.getCapturePageRecognitionText = exports.hasUnsafeInsetReliableCaptureQuad = exports.hasMarginSafeReliableCaptureQuad = exports.hasMarginSafeDocumentCropEvidence = exports.hasCaptureDocumentCutOffEvidence = exports.hasExplicitUnsafeCaptureReason = exports.hasExplicitDocumentCutOffReason = exports.getMeasuredDocumentCropMinAreaRatio = exports.isDocumentCropAspectSafe = exports.getDocumentCropSafetyAspectRatio = exports.getDocumentCropSafetyThresholds = exports.getDocumentCropShapeFamily = exports.isCardLikeCropAspect = exports.SAFE_LIVE_QUAD_INSET_MIN = exports.QUIET_ZONE_CLAMP_CUT_OFF_RISK_LOSS = exports.CARD_LIKE_MEASURED_CROP_MIN_AREA_RATIO = exports.DOCUMENT_CROP_ASPECT_MAX = exports.DOCUMENT_CROP_ASPECT_MIN = exports.DEFAULT_SUBMIT_CROP_INSET_FLOOR_ENABLED = exports.DEFAULT_RECTANGLE_CROP_CONFIDENCE_THRESHOLD = exports.DEFAULT_CROP_CONFIDENCE_THRESHOLD = void 0;
3
+ exports.getDocumentCropRejectedReason = exports.isDocumentCropVerified = exports.canTrustReadySafeCardEvidenceOverNativeUnsafeRisk = exports.hasNativeClampedCaptureRisk = exports.hasNativeOverfullCaptureRisk = exports.hasHardCaptureCutOffEvidence = exports.hasReadySafeCardLiveEvidence = exports.hasReadyCaptureCandidateDecision = exports.hasTrustedCardFrontRecognitionReason = exports.hasTrustedMrzCaptureEvidence = exports.getCapturePageRecognitionText = exports.isCardFrontCaptureContext = exports.isCardLikeCaptureContext = exports.hasUnsafeInsetReliableCaptureQuad = exports.hasMarginSafeReliableCaptureQuad = exports.hasMarginSafeDocumentCropEvidence = exports.hasCaptureDocumentCutOffEvidence = exports.hasExplicitUnsafeCaptureReason = exports.hasExplicitDocumentCutOffReason = exports.getMeasuredDocumentCropMinAreaRatio = exports.isDocumentCropAspectSafe = exports.getDocumentCropSafetyAspectRatio = exports.getDocumentCropSafetyThresholds = exports.getDocumentCropShapeFamily = exports.isCardLikeCropAspect = exports.SAFE_LIVE_QUAD_INSET_MIN = exports.QUIET_ZONE_CLAMP_CUT_OFF_RISK_LOSS = exports.CARD_LIKE_MEASURED_CROP_MIN_AREA_RATIO = exports.DOCUMENT_CROP_ASPECT_MAX = exports.DOCUMENT_CROP_ASPECT_MIN = exports.DEFAULT_SUBMIT_CROP_INSET_FLOOR_ENABLED = exports.DEFAULT_RECTANGLE_CROP_CONFIDENCE_THRESHOLD = exports.DEFAULT_CROP_CONFIDENCE_THRESHOLD = void 0;
4
4
  exports.assessDocumentCropCandidate = assessDocumentCropCandidate;
5
5
  exports.getDocumentCropReviewPolicy = getDocumentCropReviewPolicy;
6
6
  exports.getDocumentCropTrustTier = getDocumentCropTrustTier;
7
7
  const capture_trust_js_1 = require("./capture-trust.js");
8
+ const document_profiles_js_1 = require("./document-profiles.js");
9
+ const glare_mask_js_1 = require("./glare-mask.js");
8
10
  exports.DEFAULT_CROP_CONFIDENCE_THRESHOLD = 0.8;
9
11
  exports.DEFAULT_RECTANGLE_CROP_CONFIDENCE_THRESHOLD = 0.88;
10
12
  exports.DEFAULT_SUBMIT_CROP_INSET_FLOOR_ENABLED = true;
@@ -302,15 +304,38 @@ const normalizeEvidenceKey = (value) => String(value || '')
302
304
  .toLowerCase()
303
305
  .replace(/[\s-]+/g, '_');
304
306
  const isBackSideStrategy = (strategy) => normalizeEvidenceKey(strategy).endsWith('_back');
305
- const isCardFrontCaptureContext = (metadata) => {
306
- if (metadata?.cropShapeFamily !== 'card-like')
307
+ const getDocumentTypeCropShapeFamily = (documentType) => {
308
+ const trimmed = String(documentType || '').trim();
309
+ if (!trimmed)
310
+ return null;
311
+ switch ((0, document_profiles_js_1.getDocumentProfile)(trimmed).family) {
312
+ case 'card':
313
+ return 'card-like';
314
+ case 'passport':
315
+ return 'passport-like';
316
+ case 'page':
317
+ return 'document-page-like';
318
+ default:
319
+ return null;
320
+ }
321
+ };
322
+ const isCardLikeCaptureContext = (metadata, context = {}) => {
323
+ const contextShapeFamily = context.cropShapeFamily ?? getDocumentTypeCropShapeFamily(context.documentType);
324
+ return (contextShapeFamily ?? metadata?.cropShapeFamily) === 'card-like';
325
+ };
326
+ exports.isCardLikeCaptureContext = isCardLikeCaptureContext;
327
+ const isCardFrontCaptureContext = (metadata, context = {}) => {
328
+ if (!(0, exports.isCardLikeCaptureContext)(metadata, context))
329
+ return false;
330
+ if (context.documentSide === 'back')
307
331
  return false;
308
332
  if (isBackSideStrategy(metadata?.liveRecognitionStrategy))
309
333
  return false;
310
334
  if (metadata?.liveRecognitionStrategy)
311
335
  return true;
312
- return !metadata?.liveRecognitionStrategy;
336
+ return context.documentSide === 'front' || !metadata?.liveRecognitionStrategy;
313
337
  };
338
+ exports.isCardFrontCaptureContext = isCardFrontCaptureContext;
314
339
  const getCapturePageRecognitionText = (metadata, extraText) => `${metadata?.liveRecognitionReason ?? ''} ${metadata?.liveRecognitionPath ?? ''} ${extraText ?? ''}`
315
340
  .trim()
316
341
  .toLowerCase();
@@ -336,9 +361,11 @@ const hasTrustedMrzCaptureEvidence = (metadata, recognitionText) => {
336
361
  return metadata.liveRecognitionAccepted === true && text.includes('mrz');
337
362
  };
338
363
  exports.hasTrustedMrzCaptureEvidence = hasTrustedMrzCaptureEvidence;
339
- const hasTrustedCardFrontRecognitionReason = (metadata) => {
340
- if (!isCardFrontCaptureContext(metadata))
364
+ const hasTrustedCardFrontRecognitionReason = (metadata, context = {}) => {
365
+ if (!(0, exports.isCardFrontCaptureContext)(metadata, context))
341
366
  return true;
367
+ if (!metadata)
368
+ return false;
342
369
  const reason = normalizeEvidenceKey(metadata?.liveRecognitionReason);
343
370
  if (reason === 'quad' || reason === 'classifier')
344
371
  return true;
@@ -353,16 +380,16 @@ const hasReadyCaptureCandidateDecision = (metadata) => metadata?.captureCandidat
353
380
  metadata?.captureCandidateDecision === 'manual_ready' ||
354
381
  metadata?.captureCandidateDecision === 'auto_ready';
355
382
  exports.hasReadyCaptureCandidateDecision = hasReadyCaptureCandidateDecision;
356
- const hasReadySafeCardLiveEvidence = (metadata) => {
383
+ const hasReadySafeCardLiveEvidence = (metadata, context = {}) => {
357
384
  if (!metadata)
358
385
  return false;
359
- if (metadata.cropShapeFamily !== 'card-like')
386
+ if (!(0, exports.isCardLikeCaptureContext)(metadata, context))
360
387
  return false;
361
388
  const hasReadyCandidateDecision = (0, exports.hasReadyCaptureCandidateDecision)(metadata);
362
389
  const hasAcceptedLiveRecognition = metadata.liveRecognitionAccepted === true;
363
390
  if (!hasReadyCandidateDecision && !hasAcceptedLiveRecognition)
364
391
  return false;
365
- if (!(0, exports.hasTrustedCardFrontRecognitionReason)(metadata))
392
+ if (!(0, exports.hasTrustedCardFrontRecognitionReason)(metadata, context))
366
393
  return false;
367
394
  return (0, exports.hasMarginSafeReliableCaptureQuad)(metadata);
368
395
  };
@@ -396,10 +423,10 @@ exports.hasNativeOverfullCaptureRisk = hasNativeOverfullCaptureRisk;
396
423
  const hasNativeClampedCaptureRisk = (metadata) => Boolean(isNativeViewfinderCaptureReason(metadata?.reason) &&
397
424
  (metadata?.clamped === true || metadata?.unsafeReason === 'clamped_edge'));
398
425
  exports.hasNativeClampedCaptureRisk = hasNativeClampedCaptureRisk;
399
- const canTrustReadySafeCardEvidenceOverNativeUnsafeRisk = (metadata) => ((0, exports.hasReadySafeCardLiveEvidence)(metadata) &&
426
+ const canTrustReadySafeCardEvidenceOverNativeUnsafeRisk = (metadata, context = {}) => ((0, exports.hasReadySafeCardLiveEvidence)(metadata, context) &&
400
427
  !(0, exports.hasHardCaptureCutOffEvidence)(metadata) &&
401
428
  (0, exports.hasNativeOverfullCaptureRisk)(metadata)) ||
402
- ((0, exports.hasReadySafeCardLiveEvidence)(metadata) &&
429
+ ((0, exports.hasReadySafeCardLiveEvidence)(metadata, context) &&
403
430
  (0, exports.hasNativeClampedCaptureRisk)(metadata) &&
404
431
  !(0, exports.hasUnsafeInsetReliableCaptureQuad)(metadata));
405
432
  exports.canTrustReadySafeCardEvidenceOverNativeUnsafeRisk = canTrustReadySafeCardEvidenceOverNativeUnsafeRisk;
@@ -512,6 +539,22 @@ function assessDocumentCropCandidate(croppedBase64, cropMetadata) {
512
539
  cropSelectable: false,
513
540
  });
514
541
  }
542
+ if ((0, glare_mask_js_1.isGlareDominantRegion)(cropMetadata.glareCoverageFraction)) {
543
+ // Specular glare dominates the crop region: the detected geometry is not
544
+ // trustworthy (the contour may have locked onto the glare blob). Fail safe
545
+ // to the original frame rather than ship a glare-corrupted crop. This is a
546
+ // demotion, not a hard block — the user still submits the original.
547
+ return buildCropArbitrationAssessment({
548
+ decision: 'original_with_overlay',
549
+ policy: 'original_only',
550
+ score: Math.max(0, Math.round((cropMetadata.confidence ?? 0) * 45)),
551
+ reason: 'glare_dominant',
552
+ reviewSafe: true,
553
+ defaultSafe: false,
554
+ cropVerified: false,
555
+ cropSelectable: false,
556
+ });
557
+ }
515
558
  if (hasUnsafeLiveQuadCropEvidence(cropMetadata)) {
516
559
  return buildCropArbitrationAssessment({
517
560
  decision: 'unsafe_crop',
@@ -1 +1 @@
1
- {"version":3,"file":"document-crop-arbitration.js","sourceRoot":"","sources":["../../src/document-crop-arbitration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-crop-arbitration.js","sourceRoot":"","sources":["../../src/document-crop-arbitration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Glare / specular masking for the document crop path.
3
+ *
4
+ * Problem (prod failure class #4, "glare steals the contour"): on reflective
5
+ * laminated Sierra Leone IDs and glossy security overlays a specular highlight
6
+ * forms a high-contrast blob whose edges out-compete the true document edge.
7
+ * The contour/Sobel detectors run on a plain luma grayscale with NO pre-mask, so
8
+ * (a) the detector can lock onto the glare boundary -> wrong crop, or (b) glare
9
+ * washes out a true edge -> under-segmentation.
10
+ *
11
+ * This module provides two pure, DOM-free primitives over a luma grey buffer:
12
+ *
13
+ * 1. computeSaturatedClusterCoverage() - what fraction of a region is
14
+ * *cluster* glare (a saturated pixel surrounded by saturated pixels - a
15
+ * specular blob, not an isolated bright speck). Used as a fail-safe
16
+ * DEMOTION signal: a crop whose region is glare-dominant should not be
17
+ * trusted (fall back to the original frame) - see document-crop-arbitration.
18
+ *
19
+ * 2. maskSaturatedClusters() - neutralize cluster-glare pixels to a local
20
+ * non-saturated mean BEFORE edge/contour scoring so the blob stops forming
21
+ * a fake edge. Used (flag-gated) on the review/redetect crop grey buffer.
22
+ *
23
+ * "cluster" is the same intent as quality-checks.hasReviewStageGlare's
24
+ * saturated-cluster definition (deliberately NOT a single-pixel maxBrightness -
25
+ * that was the over-sensitive glare bug). A uniformly bright (non-specular)
26
+ * document is NOT cluster glare because its bright pixels are everywhere, not in
27
+ * a tight blob; the neighbor-ratio test is what separates specular blobs from a
28
+ * generally bright frame, protecting bright/over-exposed but valid documents.
29
+ *
30
+ * NOTE: thresholds here are conservative initial values. They MUST be calibrated
31
+ * against real glare images (crop-lab) and device-QA'd before the SDK is allowed
32
+ * to compute + feed coverage into the live decision. The SDK computation is
33
+ * gated OFF by default for exactly this reason (see runtime-flags
34
+ * isGlareAwareCropDemotionEnabled); the arbitration logic below is always-on but
35
+ * inert until a caller supplies glareCoverageFraction.
36
+ */
37
+ /** Luma at/above this is "saturated" (specular white). */
38
+ export declare const GLARE_SATURATION_LUMA = 250;
39
+ /**
40
+ * A saturated pixel is part of a *cluster* (specular blob) only when at least
41
+ * this fraction of its 8-neighborhood is also saturated. Isolated saturated
42
+ * specks (text highlights, single hot pixels) are NOT counted - this is the
43
+ * guard that keeps a generally bright document from reading as glare.
44
+ */
45
+ export declare const GLARE_CLUSTER_MIN_NEIGHBOR_RATIO = 0.625;
46
+ /**
47
+ * Crop-region cluster-glare coverage at/above this fraction => the crop geometry
48
+ * is considered glare-corrupted and the crop should be DEMOTED to the original
49
+ * frame (fail-safe). Conservative initial value; calibrate via crop-lab.
50
+ */
51
+ export declare const GLARE_DOMINANT_COVERAGE = 0.18;
52
+ export interface GlareMaskRegion {
53
+ x: number;
54
+ y: number;
55
+ w: number;
56
+ h: number;
57
+ }
58
+ export interface SaturatedClusterCoverage {
59
+ /** Fraction (0..1) of region pixels that are cluster glare. */
60
+ coverageFraction: number;
61
+ /** Fraction (0..1) of region pixels that are raw-saturated (pre-cluster). */
62
+ saturatedFraction: number;
63
+ /** Pixels examined in the region (0 when the region is empty/invalid). */
64
+ sampledPixels: number;
65
+ }
66
+ type GreyBuffer = Uint8Array | Uint8ClampedArray | ReadonlyArray<number>;
67
+ /**
68
+ * Fraction of the region that is cluster glare (specular blob). Pure; safe on
69
+ * any luma buffer. Returns zeros for an empty/invalid region.
70
+ */
71
+ export declare function computeSaturatedClusterCoverage(grey: GreyBuffer, width: number, height: number, region?: GlareMaskRegion, options?: {
72
+ saturationLuma?: number;
73
+ neighborRatio?: number;
74
+ }): SaturatedClusterCoverage;
75
+ /** True when the region's cluster-glare coverage is dominant enough to distrust the crop. */
76
+ export declare function isGlareDominantRegion(coverage: SaturatedClusterCoverage | number | null | undefined, threshold?: number): boolean;
77
+ export interface MaskSaturatedClustersResult {
78
+ /** New buffer with cluster-glare pixels neutralized to a local non-saturated mean. */
79
+ masked: Uint8ClampedArray;
80
+ /** Fraction (0..1) of the buffer that was masked. */
81
+ coverageFraction: number;
82
+ }
83
+ /**
84
+ * Neutralize cluster-glare pixels to the mean of nearby NON-saturated pixels so
85
+ * the specular blob stops forming a fake edge for Sobel/Canny. Isolated
86
+ * saturated specks are left intact (only clusters are masked). Pixels are
87
+ * replaced with a local non-saturated mean (window radius `radius`); if a
88
+ * cluster pixel has no non-saturated neighbor in range it is left unchanged
89
+ * (avoids smearing a fully-blown region into a fake flat edge).
90
+ *
91
+ * Returns a COPY - never mutates the input. Pure and DOM-free.
92
+ */
93
+ export declare function maskSaturatedClusters(grey: GreyBuffer, width: number, height: number, options?: {
94
+ saturationLuma?: number;
95
+ neighborRatio?: number;
96
+ radius?: number;
97
+ }): MaskSaturatedClustersResult;
98
+ export {};
99
+ //# sourceMappingURL=glare-mask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glare-mask.d.ts","sourceRoot":"","sources":["../../src/glare-mask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,QAAQ,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAS5C,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,gBAAgB,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,UAAU,GAAG,UAAU,GAAG,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAkDzE;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,wBAAwB,CA0C1B;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9D,SAAS,GAAE,MAAgC,GAC1C,OAAO,CAIT;AAED,MAAM,WAAW,2BAA2B;IAC1C,sFAAsF;IACtF,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qDAAqD;IACrD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E,2BAA2B,CA6C7B"}
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ /**
3
+ * Glare / specular masking for the document crop path.
4
+ *
5
+ * Problem (prod failure class #4, "glare steals the contour"): on reflective
6
+ * laminated Sierra Leone IDs and glossy security overlays a specular highlight
7
+ * forms a high-contrast blob whose edges out-compete the true document edge.
8
+ * The contour/Sobel detectors run on a plain luma grayscale with NO pre-mask, so
9
+ * (a) the detector can lock onto the glare boundary -> wrong crop, or (b) glare
10
+ * washes out a true edge -> under-segmentation.
11
+ *
12
+ * This module provides two pure, DOM-free primitives over a luma grey buffer:
13
+ *
14
+ * 1. computeSaturatedClusterCoverage() - what fraction of a region is
15
+ * *cluster* glare (a saturated pixel surrounded by saturated pixels - a
16
+ * specular blob, not an isolated bright speck). Used as a fail-safe
17
+ * DEMOTION signal: a crop whose region is glare-dominant should not be
18
+ * trusted (fall back to the original frame) - see document-crop-arbitration.
19
+ *
20
+ * 2. maskSaturatedClusters() - neutralize cluster-glare pixels to a local
21
+ * non-saturated mean BEFORE edge/contour scoring so the blob stops forming
22
+ * a fake edge. Used (flag-gated) on the review/redetect crop grey buffer.
23
+ *
24
+ * "cluster" is the same intent as quality-checks.hasReviewStageGlare's
25
+ * saturated-cluster definition (deliberately NOT a single-pixel maxBrightness -
26
+ * that was the over-sensitive glare bug). A uniformly bright (non-specular)
27
+ * document is NOT cluster glare because its bright pixels are everywhere, not in
28
+ * a tight blob; the neighbor-ratio test is what separates specular blobs from a
29
+ * generally bright frame, protecting bright/over-exposed but valid documents.
30
+ *
31
+ * NOTE: thresholds here are conservative initial values. They MUST be calibrated
32
+ * against real glare images (crop-lab) and device-QA'd before the SDK is allowed
33
+ * to compute + feed coverage into the live decision. The SDK computation is
34
+ * gated OFF by default for exactly this reason (see runtime-flags
35
+ * isGlareAwareCropDemotionEnabled); the arbitration logic below is always-on but
36
+ * inert until a caller supplies glareCoverageFraction.
37
+ */
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GLARE_DOMINANT_COVERAGE = exports.GLARE_CLUSTER_MIN_NEIGHBOR_RATIO = exports.GLARE_SATURATION_LUMA = void 0;
40
+ exports.computeSaturatedClusterCoverage = computeSaturatedClusterCoverage;
41
+ exports.isGlareDominantRegion = isGlareDominantRegion;
42
+ exports.maskSaturatedClusters = maskSaturatedClusters;
43
+ /** Luma at/above this is "saturated" (specular white). */
44
+ exports.GLARE_SATURATION_LUMA = 250;
45
+ /**
46
+ * A saturated pixel is part of a *cluster* (specular blob) only when at least
47
+ * this fraction of its 8-neighborhood is also saturated. Isolated saturated
48
+ * specks (text highlights, single hot pixels) are NOT counted - this is the
49
+ * guard that keeps a generally bright document from reading as glare.
50
+ */
51
+ exports.GLARE_CLUSTER_MIN_NEIGHBOR_RATIO = 0.625;
52
+ /**
53
+ * Crop-region cluster-glare coverage at/above this fraction => the crop geometry
54
+ * is considered glare-corrupted and the crop should be DEMOTED to the original
55
+ * frame (fail-safe). Conservative initial value; calibrate via crop-lab.
56
+ */
57
+ exports.GLARE_DOMINANT_COVERAGE = 0.18;
58
+ /**
59
+ * If essentially the whole examined region is saturated, treat it as high-key /
60
+ * over-exposed rather than localized specular glare. Keep the raw saturation
61
+ * telemetry, but do not demote or mass-mask the crop on this signal alone.
62
+ */
63
+ const GLARE_HIGH_KEY_SATURATED_FRACTION = 0.9;
64
+ const clampRegion = (width, height, region) => {
65
+ if (!region)
66
+ return { x: 0, y: 0, w: width, h: height };
67
+ const x = Math.max(0, Math.min(width, Math.floor(region.x)));
68
+ const y = Math.max(0, Math.min(height, Math.floor(region.y)));
69
+ const w = Math.max(0, Math.min(width - x, Math.floor(region.w)));
70
+ const h = Math.max(0, Math.min(height - y, Math.floor(region.h)));
71
+ return { x, y, w, h };
72
+ };
73
+ const isSaturatedAt = (grey, width, height, px, py, saturationLuma) => {
74
+ if (px < 0 || py < 0 || px >= width || py >= height)
75
+ return false;
76
+ return (grey[py * width + px] ?? 0) >= saturationLuma;
77
+ };
78
+ const saturatedNeighborRatio = (grey, width, height, px, py, saturationLuma) => {
79
+ let saturated = 0;
80
+ let counted = 0;
81
+ for (let dy = -1; dy <= 1; dy += 1) {
82
+ for (let dx = -1; dx <= 1; dx += 1) {
83
+ if (dx === 0 && dy === 0)
84
+ continue;
85
+ const nx = px + dx;
86
+ const ny = py + dy;
87
+ if (nx < 0 || ny < 0 || nx >= width || ny >= height)
88
+ continue;
89
+ counted += 1;
90
+ if (isSaturatedAt(grey, width, height, nx, ny, saturationLuma))
91
+ saturated += 1;
92
+ }
93
+ }
94
+ return counted === 0 ? 0 : saturated / counted;
95
+ };
96
+ /**
97
+ * Fraction of the region that is cluster glare (specular blob). Pure; safe on
98
+ * any luma buffer. Returns zeros for an empty/invalid region.
99
+ */
100
+ function computeSaturatedClusterCoverage(grey, width, height, region, options) {
101
+ const empty = {
102
+ coverageFraction: 0,
103
+ saturatedFraction: 0,
104
+ sampledPixels: 0,
105
+ };
106
+ if (!grey || !Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
107
+ return empty;
108
+ }
109
+ const saturationLuma = options?.saturationLuma ?? exports.GLARE_SATURATION_LUMA;
110
+ const neighborRatio = options?.neighborRatio ?? exports.GLARE_CLUSTER_MIN_NEIGHBOR_RATIO;
111
+ const { x, y, w, h } = clampRegion(width, height, region);
112
+ if (w <= 0 || h <= 0)
113
+ return empty;
114
+ let saturated = 0;
115
+ let cluster = 0;
116
+ let sampled = 0;
117
+ for (let ry = y; ry < y + h; ry += 1) {
118
+ for (let rx = x; rx < x + w; rx += 1) {
119
+ sampled += 1;
120
+ if (!isSaturatedAt(grey, width, height, rx, ry, saturationLuma))
121
+ continue;
122
+ saturated += 1;
123
+ if (saturatedNeighborRatio(grey, width, height, rx, ry, saturationLuma) >= neighborRatio) {
124
+ cluster += 1;
125
+ }
126
+ }
127
+ }
128
+ if (sampled === 0)
129
+ return empty;
130
+ const saturatedFraction = saturated / sampled;
131
+ if (saturatedFraction >= GLARE_HIGH_KEY_SATURATED_FRACTION) {
132
+ return {
133
+ coverageFraction: 0,
134
+ saturatedFraction,
135
+ sampledPixels: sampled,
136
+ };
137
+ }
138
+ return {
139
+ coverageFraction: cluster / sampled,
140
+ saturatedFraction,
141
+ sampledPixels: sampled,
142
+ };
143
+ }
144
+ /** True when the region's cluster-glare coverage is dominant enough to distrust the crop. */
145
+ function isGlareDominantRegion(coverage, threshold = exports.GLARE_DOMINANT_COVERAGE) {
146
+ if (coverage == null)
147
+ return false;
148
+ const fraction = typeof coverage === 'number' ? coverage : coverage.coverageFraction;
149
+ return Number.isFinite(fraction) && fraction >= threshold;
150
+ }
151
+ /**
152
+ * Neutralize cluster-glare pixels to the mean of nearby NON-saturated pixels so
153
+ * the specular blob stops forming a fake edge for Sobel/Canny. Isolated
154
+ * saturated specks are left intact (only clusters are masked). Pixels are
155
+ * replaced with a local non-saturated mean (window radius `radius`); if a
156
+ * cluster pixel has no non-saturated neighbor in range it is left unchanged
157
+ * (avoids smearing a fully-blown region into a fake flat edge).
158
+ *
159
+ * Returns a COPY - never mutates the input. Pure and DOM-free.
160
+ */
161
+ function maskSaturatedClusters(grey, width, height, options) {
162
+ const saturationLuma = options?.saturationLuma ?? exports.GLARE_SATURATION_LUMA;
163
+ const out = new Uint8ClampedArray(width > 0 && height > 0 ? width * height : 0);
164
+ let saturated = 0;
165
+ for (let i = 0; i < out.length; i += 1) {
166
+ const value = grey[i] ?? 0;
167
+ out[i] = value;
168
+ if (value >= saturationLuma)
169
+ saturated += 1;
170
+ }
171
+ if (out.length === 0)
172
+ return { masked: out, coverageFraction: 0 };
173
+ if (saturated / out.length >= GLARE_HIGH_KEY_SATURATED_FRACTION) {
174
+ return { masked: out, coverageFraction: 0 };
175
+ }
176
+ const neighborRatio = options?.neighborRatio ?? exports.GLARE_CLUSTER_MIN_NEIGHBOR_RATIO;
177
+ const radius = Math.max(1, Math.floor(options?.radius ?? 3));
178
+ let masked = 0;
179
+ for (let py = 0; py < height; py += 1) {
180
+ for (let px = 0; px < width; px += 1) {
181
+ if (!isSaturatedAt(grey, width, height, px, py, saturationLuma))
182
+ continue;
183
+ if (saturatedNeighborRatio(grey, width, height, px, py, saturationLuma) < neighborRatio) {
184
+ continue;
185
+ }
186
+ // cluster pixel - replace with local non-saturated mean
187
+ let sum = 0;
188
+ let count = 0;
189
+ for (let dy = -radius; dy <= radius; dy += 1) {
190
+ for (let dx = -radius; dx <= radius; dx += 1) {
191
+ const nx = px + dx;
192
+ const ny = py + dy;
193
+ if (nx < 0 || ny < 0 || nx >= width || ny >= height)
194
+ continue;
195
+ const v = grey[ny * width + nx] ?? 0;
196
+ if (v >= saturationLuma)
197
+ continue;
198
+ sum += v;
199
+ count += 1;
200
+ }
201
+ }
202
+ if (count > 0) {
203
+ out[py * width + px] = Math.round(sum / count);
204
+ masked += 1;
205
+ }
206
+ }
207
+ }
208
+ return { masked: out, coverageFraction: masked / out.length };
209
+ }
210
+ //# sourceMappingURL=glare-mask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glare-mask.js","sourceRoot":"","sources":["../../src/glare-mask.ts"],"names":[],"mappings":"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"}
@@ -24,14 +24,16 @@ export type { ReviewReason, DocumentRegionBounds, DocumentRegionImageSize, Revie
24
24
  export { DOCUMENT_REVIEW_REGION_MIN_READABLE_WIDTH_PX, evaluateDocumentReviewQuality, hasNoCropClarityUncertainty, } from './review-quality.js';
25
25
  export type { CaptureImageSize, CapturePreviewRect, CaptureCropRect, CapturePreviewResizeMode, CaptureRotationDegrees, CaptureNormalizationUnsafeReason, CaptureClampedEdges, CaptureNormalizationDiagnostics, CaptureFrameMode, PreviewRectToImageCropInput, ExpectedOrientationInput, CaptureNormalizationPlanInput, CaptureResizePlan, CaptureNormalizationPlan, } from './capture-normalization.js';
26
26
  export { mapPreviewRectToImageCropWithDiagnostics, mapPreviewRectToImageCrop, getRotationToExpectedOrientation, buildCaptureNormalizationPlan, getDocumentCaptureFrameAspectRatio, } from './capture-normalization.js';
27
- export type { CaptureTrustClient, CaptureTrustPhase, CaptureTrustCaptureSource, CaptureTrustDocumentSide, CaptureTrustCropProvenance, CaptureTrustReasonCode, CaptureTrustGate, CropTrustTier, DocumentFaceCorroborationTrustStatus, CaptureTrustContextInput, CaptureTrustLiveInput, CaptureTrustClassifierInput, CaptureTrustMrzInput, CaptureTrustGeometryInput, CaptureTrustReadableTextInput, CaptureTrustCropInput, CaptureTrustCaptureInput, CaptureTrustReviewInput, CaptureTrustPolicyInput, CaptureTrustInput, CaptureTrustDiagnostics, CaptureTrustDecision, } from './capture-trust.js';
28
- export { decideCaptureTrust } from './capture-trust.js';
27
+ export type { CaptureTrustClient, CaptureTrustPhase, CaptureTrustCaptureSource, CaptureTrustDocumentSide, CaptureTrustCropProvenance, CaptureTrustReasonCode, CaptureTrustGate, CropTrustTier, DocumentFaceCorroborationTrustStatus, CaptureTrustContextInput, CaptureTrustLiveInput, CaptureTrustClassifierInput, CaptureTrustMrzInput, CaptureTrustGeometryInput, CaptureTrustReadableTextInput, CaptureTrustCropInput, CaptureTrustCaptureInput, CaptureTrustReviewInput, CaptureTrustPolicyInput, CaptureTrustInput, CaptureTrustDiagnostics, CaptureTrustDecision, CaptureTrustMetadataSnapshot, } from './capture-trust.js';
28
+ export { decideCaptureTrust, buildCaptureTrustDecisionSnapshot, buildCaptureTrustDiagnosticsSnapshot, } from './capture-trust.js';
29
29
  export type { SubmittedImageSource, SubmittedImageReason, SubmittedImageInput, CaptureSeams, CaptureDecisionEnvelope, } from './capture-envelope.js';
30
30
  export { CAPTURE_ENVELOPE_SCHEMA_VERSION, CAPTURE_DECISION_ENVELOPE_KEY, decideSubmittedDocumentImage, isCaptureDecisionEnvelope, } from './capture-envelope.js';
31
31
  export type { DocumentProfileFamily, DocumentProfile } from './document-profiles.js';
32
32
  export { getDocumentProfile, normalizeDocumentProfileType } from './document-profiles.js';
33
- export type { DocumentCropShapeFamily, DocumentCropReviewPolicy, DocumentCropArbitrationDecision, DocumentCropArbitrationAssessment, DocumentCropPoint, DocumentCropRect, DocumentCropImageSize, DocumentCropQuadrilateral, DocumentCropArbitrationMetadata, } from './document-crop-arbitration.js';
34
- export { DEFAULT_CROP_CONFIDENCE_THRESHOLD, DEFAULT_RECTANGLE_CROP_CONFIDENCE_THRESHOLD, DEFAULT_SUBMIT_CROP_INSET_FLOOR_ENABLED, DOCUMENT_CROP_ASPECT_MIN, DOCUMENT_CROP_ASPECT_MAX, CARD_LIKE_MEASURED_CROP_MIN_AREA_RATIO, QUIET_ZONE_CLAMP_CUT_OFF_RISK_LOSS, SAFE_LIVE_QUAD_INSET_MIN, isCardLikeCropAspect, getDocumentCropShapeFamily, getDocumentCropSafetyThresholds, getDocumentCropSafetyAspectRatio, isDocumentCropAspectSafe, getMeasuredDocumentCropMinAreaRatio, hasExplicitDocumentCutOffReason, hasExplicitUnsafeCaptureReason, hasCaptureDocumentCutOffEvidence, hasMarginSafeDocumentCropEvidence, hasMarginSafeReliableCaptureQuad, hasUnsafeInsetReliableCaptureQuad, getCapturePageRecognitionText, hasTrustedMrzCaptureEvidence, hasTrustedCardFrontRecognitionReason, hasReadyCaptureCandidateDecision, hasReadySafeCardLiveEvidence, hasHardCaptureCutOffEvidence, hasNativeOverfullCaptureRisk, hasNativeClampedCaptureRisk, canTrustReadySafeCardEvidenceOverNativeUnsafeRisk, isDocumentCropVerified, getDocumentCropRejectedReason, assessDocumentCropCandidate, getDocumentCropReviewPolicy, getDocumentCropTrustTier, } from './document-crop-arbitration.js';
33
+ export type { DocumentCropShapeFamily, DocumentCropReviewPolicy, DocumentCropArbitrationDecision, DocumentCropArbitrationAssessment, DocumentCropPoint, DocumentCropRect, DocumentCropImageSize, DocumentCropQuadrilateral, DocumentCropArbitrationMetadata, DocumentCropCaptureEvidenceContext, } from './document-crop-arbitration.js';
34
+ export { DEFAULT_CROP_CONFIDENCE_THRESHOLD, DEFAULT_RECTANGLE_CROP_CONFIDENCE_THRESHOLD, DEFAULT_SUBMIT_CROP_INSET_FLOOR_ENABLED, DOCUMENT_CROP_ASPECT_MIN, DOCUMENT_CROP_ASPECT_MAX, CARD_LIKE_MEASURED_CROP_MIN_AREA_RATIO, QUIET_ZONE_CLAMP_CUT_OFF_RISK_LOSS, SAFE_LIVE_QUAD_INSET_MIN, isCardLikeCropAspect, getDocumentCropShapeFamily, getDocumentCropSafetyThresholds, getDocumentCropSafetyAspectRatio, isDocumentCropAspectSafe, getMeasuredDocumentCropMinAreaRatio, hasExplicitDocumentCutOffReason, hasExplicitUnsafeCaptureReason, hasCaptureDocumentCutOffEvidence, hasMarginSafeDocumentCropEvidence, hasMarginSafeReliableCaptureQuad, hasUnsafeInsetReliableCaptureQuad, isCardLikeCaptureContext, isCardFrontCaptureContext, getCapturePageRecognitionText, hasTrustedMrzCaptureEvidence, hasTrustedCardFrontRecognitionReason, hasReadyCaptureCandidateDecision, hasReadySafeCardLiveEvidence, hasHardCaptureCutOffEvidence, hasNativeOverfullCaptureRisk, hasNativeClampedCaptureRisk, canTrustReadySafeCardEvidenceOverNativeUnsafeRisk, isDocumentCropVerified, getDocumentCropRejectedReason, assessDocumentCropCandidate, getDocumentCropReviewPolicy, getDocumentCropTrustTier, } from './document-crop-arbitration.js';
35
+ export type { GlareMaskRegion, SaturatedClusterCoverage, MaskSaturatedClustersResult, } from './glare-mask.js';
36
+ export { GLARE_SATURATION_LUMA, GLARE_CLUSTER_MIN_NEIGHBOR_RATIO, GLARE_DOMINANT_COVERAGE, computeSaturatedClusterCoverage, isGlareDominantRegion, maskSaturatedClusters, } from './glare-mask.js';
35
37
  export type { CapturePlacementShape, DocumentPlacementInput, DocumentPlacementDecision, DocumentPlacementReason, } from './document-placement.js';
36
38
  export { CAPTURE_READY_AREA_MIN_BY_SHAPE, RELAXED_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';
37
39
  export type { EdgeEnergyProfile } from './sobel.js';