@mikashboks/capture-intelligence-core 0.1.22 → 0.2.0

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 (65) hide show
  1. package/dist/cjs/capture-guidance.d.ts +105 -0
  2. package/dist/cjs/capture-guidance.d.ts.map +1 -0
  3. package/dist/cjs/capture-guidance.js +386 -0
  4. package/dist/cjs/capture-guidance.js.map +1 -0
  5. package/dist/cjs/capture-normalization.d.ts.map +1 -1
  6. package/dist/cjs/capture-normalization.js +12 -3
  7. package/dist/cjs/capture-normalization.js.map +1 -1
  8. package/dist/cjs/document-classifier.d.ts.map +1 -1
  9. package/dist/cjs/document-classifier.js +72 -37
  10. package/dist/cjs/document-classifier.js.map +1 -1
  11. package/dist/cjs/document-placement.d.ts +1 -0
  12. package/dist/cjs/document-placement.d.ts.map +1 -1
  13. package/dist/cjs/document-placement.js +11 -1
  14. package/dist/cjs/document-placement.js.map +1 -1
  15. package/dist/cjs/index.d.ts +4 -1
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +26 -2
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/metrics.d.ts.map +1 -1
  20. package/dist/cjs/metrics.js +6 -1
  21. package/dist/cjs/metrics.js.map +1 -1
  22. package/dist/cjs/quality-checks.d.ts +6 -3
  23. package/dist/cjs/quality-checks.d.ts.map +1 -1
  24. package/dist/cjs/quality-checks.js +62 -8
  25. package/dist/cjs/quality-checks.js.map +1 -1
  26. package/dist/cjs/types.d.ts +21 -0
  27. package/dist/cjs/types.d.ts.map +1 -1
  28. package/dist/cjs/types.js.map +1 -1
  29. package/dist/cjs/version.d.ts +7 -0
  30. package/dist/cjs/version.d.ts.map +1 -0
  31. package/dist/cjs/version.js +10 -0
  32. package/dist/cjs/version.js.map +1 -0
  33. package/dist/esm/capture-guidance.d.ts +105 -0
  34. package/dist/esm/capture-guidance.d.ts.map +1 -0
  35. package/dist/esm/capture-guidance.js +378 -0
  36. package/dist/esm/capture-guidance.js.map +1 -0
  37. package/dist/esm/capture-normalization.d.ts.map +1 -1
  38. package/dist/esm/capture-normalization.js +12 -3
  39. package/dist/esm/capture-normalization.js.map +1 -1
  40. package/dist/esm/document-classifier.d.ts.map +1 -1
  41. package/dist/esm/document-classifier.js +72 -37
  42. package/dist/esm/document-classifier.js.map +1 -1
  43. package/dist/esm/document-placement.d.ts +1 -0
  44. package/dist/esm/document-placement.d.ts.map +1 -1
  45. package/dist/esm/document-placement.js +10 -0
  46. package/dist/esm/document-placement.js.map +1 -1
  47. package/dist/esm/index.d.ts +4 -1
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js +4 -1
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/metrics.d.ts.map +1 -1
  52. package/dist/esm/metrics.js +8 -3
  53. package/dist/esm/metrics.js.map +1 -1
  54. package/dist/esm/quality-checks.d.ts +6 -3
  55. package/dist/esm/quality-checks.d.ts.map +1 -1
  56. package/dist/esm/quality-checks.js +62 -8
  57. package/dist/esm/quality-checks.js.map +1 -1
  58. package/dist/esm/types.d.ts +21 -0
  59. package/dist/esm/types.d.ts.map +1 -1
  60. package/dist/esm/types.js.map +1 -1
  61. package/dist/esm/version.d.ts +7 -0
  62. package/dist/esm/version.d.ts.map +1 -0
  63. package/dist/esm/version.js +7 -0
  64. package/dist/esm/version.js.map +1 -0
  65. package/package.json +1 -1
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Capture guidance — the shared semantic layer tying a guidance reason code
3
+ * to its traffic-light state, directional action, and presented copy.
4
+ *
5
+ * This is the cross-client home of the vocabulary first shipped in the web
6
+ * SDK's `capture-guidance-signal.ts`. The web SDK's local table must stay
7
+ * byte-identical to the `'self'` persona here (pinned by a parity test in
8
+ * `sdks/web-ui-sdk`); React Native clients (agent-kyc-app) consume this
9
+ * module directly with the `'agent'` persona.
10
+ *
11
+ * Persona rule: `'self'` is the end customer holding their own phone
12
+ * (kyc-mobile). `'agent'` is a trained field operator capturing on behalf of
13
+ * a customer — same semantics, third-person copy, faster damping.
14
+ */
15
+ import type { OverlayVariant } from './types.js';
16
+ import type { DocumentPlacementReason } from './document-placement.js';
17
+ export type CaptureGuidanceState = 'looking' | 'adjust' | 'ready';
18
+ /**
19
+ * Every non-'none' value MUST have a matching directional glyph in each
20
+ * client (web Overlay arrow CSS / RN GuidanceArrow component). Condition-only
21
+ * situations (blur/dark/glare) present as state 'adjust' with action 'none'.
22
+ */
23
+ export type CaptureGuidanceAction = 'none' | 'closer' | 'back' | 'left' | 'right' | 'up' | 'down' | 'center';
24
+ export type CaptureGuidancePersona = 'self' | 'agent';
25
+ export type CaptureGuidanceReasonCode = 'searching' | 'camera_preparing' | 'hold_still' | 'almost_ready' | 'document_found' | 'auto_safe' | 'review_safe' | 'manual_ready' | 'taking_photo' | 'too_small' | 'too_large_or_cutoff' | 'off_center' | 'nudge_left' | 'nudge_right' | 'nudge_up' | 'nudge_down' | 'too_dark' | 'glare' | 'blurry' | 'flatten_document' | 'mrz_band_closer' | 'mrz_band_lines' | 'readable_text_closer' | 'back_text_closer' | 'passport_code_lines_bottom' | 'keep_passport_page_in_frame' | 'keep_document_in_frame' | 'show_page_and_code' | 'burst_abort' | 'selfie_searching' | 'selfie_multiple_faces' | 'selfie_too_dark' | 'selfie_too_bright' | 'selfie_cropped' | 'selfie_too_small' | 'selfie_too_large' | 'selfie_off_center' | 'selfie_blurry' | 'selfie_hold_still' | 'selfie_ready' | 'unclassified';
26
+ export type ResolvedCaptureGuidanceReasonCode = Exclude<CaptureGuidanceReasonCode, 'unclassified'>;
27
+ export declare const MANUAL_CAPTURE_READY_FEEDBACK = "Tap button to take photo";
28
+ export declare const GOOD_HOLD_STILL_FEEDBACK = "Good. Hold still";
29
+ export declare const TAKING_PHOTO_META = "Hold still\u2026";
30
+ export declare const INITIAL_DOCUMENT_FEEDBACK = "Put your document inside the box";
31
+ export declare const AUTO_CAPTURE_BURST_ABORT_FEEDBACK = "No clear photo yet. Hold still.";
32
+ export declare function getDocumentSubjectLabel(overlayVariant: OverlayVariant): string;
33
+ export declare function getTiltAwayFromLightGuidance(overlayVariant: OverlayVariant): string;
34
+ export declare function getMoveToMiddleFeedback(overlayVariant: OverlayVariant): string;
35
+ export interface CaptureGuidanceSignalEntry {
36
+ reasonCode: ResolvedCaptureGuidanceReasonCode;
37
+ /** Pre-isReady state; isReady=true always promotes to 'ready'. */
38
+ state: CaptureGuidanceState;
39
+ action: CaptureGuidanceAction;
40
+ text: (overlayVariant: OverlayVariant, persona?: CaptureGuidancePersona) => string;
41
+ }
42
+ export interface PresentedCaptureGuidanceSignal {
43
+ text: string;
44
+ state: CaptureGuidanceState;
45
+ action: CaptureGuidanceAction;
46
+ reasonCode: CaptureGuidanceReasonCode;
47
+ }
48
+ export declare const CAPTURE_GUIDANCE_SIGNAL_TABLE: Record<ResolvedCaptureGuidanceReasonCode, CaptureGuidanceSignalEntry>;
49
+ export declare function resolveCaptureGuidanceSignal(reasonCode: ResolvedCaptureGuidanceReasonCode, isReady: boolean, overlayVariant?: OverlayVariant, persona?: CaptureGuidancePersona): PresentedCaptureGuidanceSignal;
50
+ /**
51
+ * Map a document placement failure to its guidance reason code. `ok` maps to
52
+ * the hold-still family because a passing placement frame is, by definition,
53
+ * waiting on stability/sharpness rather than a correction.
54
+ */
55
+ export declare const DOCUMENT_PLACEMENT_GUIDANCE_REASON: Record<DocumentPlacementReason, ResolvedCaptureGuidanceReasonCode>;
56
+ export declare function mapSelfieIssueToGuidanceReason(issueKey: string): ResolvedCaptureGuidanceReasonCode | null;
57
+ /**
58
+ * Presentation damping for live guidance. Dwell times are wall-clock floors a
59
+ * presented signal holds before a replacement renders; confirm frames are the
60
+ * consecutive analysis frames a NEW corrective signal must persist before it
61
+ * is allowed on screen at all. Frame counts assume each client's own analysis
62
+ * cadence (web ~15fps video loop; RN ~1.5-2fps snapshot loop), which is why
63
+ * the agent profile uses smaller frame counts, not just smaller dwells.
64
+ */
65
+ export interface CaptureGuidanceDampingProfile {
66
+ /** Normal corrective guidance (dark / blur / glare / placement). */
67
+ correctiveMinDwellMs: number;
68
+ correctiveConfirmFrames: number;
69
+ /** Distance reversals (closer<->back) flip-flop easily; damp harder. */
70
+ distanceReversalMinDwellMs: number;
71
+ distanceReversalConfirmFrames: number;
72
+ /** Once a ready state has been shown, corrections may swap faster. */
73
+ postReadyMinDwellMs: number;
74
+ postReadyConfirmFrames: number;
75
+ /** Urgent signals (glare/dark/blur) keep the screen at least this long. */
76
+ urgentMinDisplayMs: number;
77
+ /** Consecutive glare frames required before glare guidance latches. */
78
+ glareConfirmFrames: number;
79
+ }
80
+ export declare const CAPTURE_GUIDANCE_DAMPING_PROFILES: Record<CaptureGuidancePersona, CaptureGuidanceDampingProfile>;
81
+ export type CaptureSignalKind = 'ready' | 'review' | 'fail';
82
+ /**
83
+ * Vibration patterns per signal kind. Invariant (test-locked): ready stays
84
+ * the strongest pattern — it is the one signal that must cut through when the
85
+ * user's eyes are on the document, not the screen.
86
+ */
87
+ export declare const CAPTURE_SIGNAL_VIBRATION_PATTERNS: Record<CaptureSignalKind, number | number[]>;
88
+ /** Cooldown for the ready haptic+chime pair; boundary thrash never spams. */
89
+ export declare const READY_SIGNAL_COOLDOWN_MS = 2500;
90
+ /** How long the stored frame is held on screen as capture confirmation. */
91
+ export declare const CAPTURE_CONFIRMATION_HOLD_MS = 750;
92
+ /** Two-note ready chime (web parity: 660→880 Hz, 100ms apart). */
93
+ export declare const READY_CHIME_NOTES: ReadonlyArray<{
94
+ frequencyHz: number;
95
+ startOffsetMs: number;
96
+ durationMs: number;
97
+ }>;
98
+ export declare const READY_CHIME_GAIN = 0.12;
99
+ /**
100
+ * After the selfie manual-fallback timer expires onto a hard-block reason,
101
+ * the shutter holds through ONE bounded extension of this length, then
102
+ * unlocks permanently. Mirrors web selfie-detection semantics.
103
+ */
104
+ export declare const SELFIE_MANUAL_FALLBACK_HARD_BLOCK_EXTENSION_MS = 8000;
105
+ //# sourceMappingURL=capture-guidance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-guidance.d.ts","sourceRoot":"","sources":["../../src/capture-guidance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,386 @@
1
+ "use strict";
2
+ /**
3
+ * Capture guidance — the shared semantic layer tying a guidance reason code
4
+ * to its traffic-light state, directional action, and presented copy.
5
+ *
6
+ * This is the cross-client home of the vocabulary first shipped in the web
7
+ * SDK's `capture-guidance-signal.ts`. The web SDK's local table must stay
8
+ * byte-identical to the `'self'` persona here (pinned by a parity test in
9
+ * `sdks/web-ui-sdk`); React Native clients (agent-kyc-app) consume this
10
+ * module directly with the `'agent'` persona.
11
+ *
12
+ * Persona rule: `'self'` is the end customer holding their own phone
13
+ * (kyc-mobile). `'agent'` is a trained field operator capturing on behalf of
14
+ * a customer — same semantics, third-person copy, faster damping.
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.SELFIE_MANUAL_FALLBACK_HARD_BLOCK_EXTENSION_MS = exports.READY_CHIME_GAIN = exports.READY_CHIME_NOTES = exports.CAPTURE_CONFIRMATION_HOLD_MS = exports.READY_SIGNAL_COOLDOWN_MS = exports.CAPTURE_SIGNAL_VIBRATION_PATTERNS = exports.CAPTURE_GUIDANCE_DAMPING_PROFILES = exports.DOCUMENT_PLACEMENT_GUIDANCE_REASON = exports.CAPTURE_GUIDANCE_SIGNAL_TABLE = exports.AUTO_CAPTURE_BURST_ABORT_FEEDBACK = exports.INITIAL_DOCUMENT_FEEDBACK = exports.TAKING_PHOTO_META = exports.GOOD_HOLD_STILL_FEEDBACK = exports.MANUAL_CAPTURE_READY_FEEDBACK = void 0;
18
+ exports.getDocumentSubjectLabel = getDocumentSubjectLabel;
19
+ exports.getTiltAwayFromLightGuidance = getTiltAwayFromLightGuidance;
20
+ exports.getMoveToMiddleFeedback = getMoveToMiddleFeedback;
21
+ exports.resolveCaptureGuidanceSignal = resolveCaptureGuidanceSignal;
22
+ exports.mapSelfieIssueToGuidanceReason = mapSelfieIssueToGuidanceReason;
23
+ /* -- Canonical copy constants (self persona = web kyc-mobile verbatim) ----- */
24
+ exports.MANUAL_CAPTURE_READY_FEEDBACK = 'Tap button to take photo';
25
+ exports.GOOD_HOLD_STILL_FEEDBACK = 'Good. Hold still';
26
+ // Shown while an armed capture decision is pending and during the burst.
27
+ // Deliberately NOT "Taking photo now": the armed capture can still abort, and
28
+ // announcing a photo that may never exist proved trust-destroying in
29
+ // production replays. The stored photo is confirmed by the freeze-flash at
30
+ // actual capture time instead.
31
+ exports.TAKING_PHOTO_META = 'Hold still…';
32
+ exports.INITIAL_DOCUMENT_FEEDBACK = 'Put your document inside the box';
33
+ exports.AUTO_CAPTURE_BURST_ABORT_FEEDBACK = 'No clear photo yet. Hold still.';
34
+ function getDocumentSubjectLabel(overlayVariant) {
35
+ if (overlayVariant === 'passport')
36
+ return 'passport photo page';
37
+ return 'document';
38
+ }
39
+ function getTiltAwayFromLightGuidance(overlayVariant) {
40
+ return `Tilt ${getDocumentSubjectLabel(overlayVariant)} away from light`;
41
+ }
42
+ function getMoveToMiddleFeedback(overlayVariant) {
43
+ if (overlayVariant === 'passport')
44
+ return 'Move passport photo page to the middle';
45
+ return 'Move document to the middle';
46
+ }
47
+ const selfOnly = (text) => (_overlayVariant, _persona = 'self') => text;
48
+ const byPersona = (self, agent) => (_overlayVariant, persona = 'self') => persona === 'agent' ? agent : self;
49
+ exports.CAPTURE_GUIDANCE_SIGNAL_TABLE = {
50
+ searching: {
51
+ reasonCode: 'searching',
52
+ state: 'looking',
53
+ action: 'none',
54
+ text: byPersona(exports.INITIAL_DOCUMENT_FEEDBACK, 'Put the document inside the box'),
55
+ },
56
+ camera_preparing: {
57
+ reasonCode: 'camera_preparing',
58
+ state: 'adjust',
59
+ action: 'none',
60
+ text: selfOnly('Preparing camera...'),
61
+ },
62
+ hold_still: {
63
+ reasonCode: 'hold_still',
64
+ state: 'adjust',
65
+ action: 'none',
66
+ text: selfOnly(exports.GOOD_HOLD_STILL_FEEDBACK),
67
+ },
68
+ almost_ready: {
69
+ reasonCode: 'almost_ready',
70
+ state: 'adjust',
71
+ action: 'none',
72
+ text: selfOnly(exports.GOOD_HOLD_STILL_FEEDBACK),
73
+ },
74
+ document_found: {
75
+ reasonCode: 'document_found',
76
+ state: 'adjust',
77
+ action: 'none',
78
+ text: selfOnly(exports.GOOD_HOLD_STILL_FEEDBACK),
79
+ },
80
+ auto_safe: {
81
+ reasonCode: 'auto_safe',
82
+ state: 'adjust',
83
+ action: 'none',
84
+ text: selfOnly(exports.GOOD_HOLD_STILL_FEEDBACK),
85
+ },
86
+ review_safe: {
87
+ reasonCode: 'review_safe',
88
+ state: 'adjust',
89
+ action: 'none',
90
+ text: selfOnly(exports.GOOD_HOLD_STILL_FEEDBACK),
91
+ },
92
+ manual_ready: {
93
+ reasonCode: 'manual_ready',
94
+ state: 'ready',
95
+ action: 'none',
96
+ text: selfOnly(exports.MANUAL_CAPTURE_READY_FEEDBACK),
97
+ },
98
+ taking_photo: {
99
+ reasonCode: 'taking_photo',
100
+ state: 'ready',
101
+ action: 'none',
102
+ text: selfOnly(exports.TAKING_PHOTO_META),
103
+ },
104
+ too_small: {
105
+ reasonCode: 'too_small',
106
+ state: 'adjust',
107
+ action: 'closer',
108
+ text: selfOnly('Bring phone closer'),
109
+ },
110
+ too_large_or_cutoff: {
111
+ reasonCode: 'too_large_or_cutoff',
112
+ state: 'adjust',
113
+ action: 'back',
114
+ text: selfOnly('Move phone back. Show all 4 corners'),
115
+ },
116
+ off_center: {
117
+ reasonCode: 'off_center',
118
+ state: 'adjust',
119
+ action: 'center',
120
+ text: (overlayVariant) => getMoveToMiddleFeedback(overlayVariant),
121
+ },
122
+ nudge_left: {
123
+ reasonCode: 'nudge_left',
124
+ state: 'adjust',
125
+ action: 'left',
126
+ text: selfOnly('Move left'),
127
+ },
128
+ nudge_right: {
129
+ reasonCode: 'nudge_right',
130
+ state: 'adjust',
131
+ action: 'right',
132
+ text: selfOnly('Move right'),
133
+ },
134
+ nudge_up: {
135
+ reasonCode: 'nudge_up',
136
+ state: 'adjust',
137
+ action: 'up',
138
+ text: selfOnly('Move up'),
139
+ },
140
+ nudge_down: {
141
+ reasonCode: 'nudge_down',
142
+ state: 'adjust',
143
+ action: 'down',
144
+ text: selfOnly('Move down'),
145
+ },
146
+ too_dark: {
147
+ reasonCode: 'too_dark',
148
+ state: 'adjust',
149
+ action: 'none',
150
+ text: selfOnly('Find better light'),
151
+ },
152
+ glare: {
153
+ reasonCode: 'glare',
154
+ state: 'adjust',
155
+ action: 'none',
156
+ text: (overlayVariant) => getTiltAwayFromLightGuidance(overlayVariant),
157
+ },
158
+ blurry: {
159
+ reasonCode: 'blurry',
160
+ state: 'adjust',
161
+ action: 'none',
162
+ text: selfOnly('Hold still. Photo is blurry'),
163
+ },
164
+ flatten_document: {
165
+ reasonCode: 'flatten_document',
166
+ state: 'adjust',
167
+ action: 'none',
168
+ text: selfOnly('Tilt to flatten the document'),
169
+ },
170
+ mrz_band_closer: {
171
+ reasonCode: 'mrz_band_closer',
172
+ state: 'adjust',
173
+ action: 'closer',
174
+ text: selfOnly('Bring phone closer so the passport code is clear'),
175
+ },
176
+ mrz_band_lines: {
177
+ reasonCode: 'mrz_band_lines',
178
+ state: 'adjust',
179
+ action: 'none',
180
+ text: selfOnly('Show the two passport code lines'),
181
+ },
182
+ readable_text_closer: {
183
+ reasonCode: 'readable_text_closer',
184
+ state: 'adjust',
185
+ action: 'closer',
186
+ text: selfOnly('Bring phone closer so the text is clear'),
187
+ },
188
+ back_text_closer: {
189
+ reasonCode: 'back_text_closer',
190
+ state: 'adjust',
191
+ action: 'closer',
192
+ text: selfOnly('Bring phone closer so the code is clear'),
193
+ },
194
+ passport_code_lines_bottom: {
195
+ reasonCode: 'passport_code_lines_bottom',
196
+ state: 'adjust',
197
+ action: 'none',
198
+ text: selfOnly('Show the two code lines at the bottom'),
199
+ },
200
+ keep_passport_page_in_frame: {
201
+ reasonCode: 'keep_passport_page_in_frame',
202
+ state: 'adjust',
203
+ action: 'none',
204
+ text: selfOnly('Keep the passport photo page in frame'),
205
+ },
206
+ keep_document_in_frame: {
207
+ reasonCode: 'keep_document_in_frame',
208
+ state: 'adjust',
209
+ action: 'none',
210
+ text: selfOnly('Keep the document in frame'),
211
+ },
212
+ show_page_and_code: {
213
+ reasonCode: 'show_page_and_code',
214
+ state: 'adjust',
215
+ action: 'none',
216
+ text: selfOnly('Show the passport photo page and code'),
217
+ },
218
+ burst_abort: {
219
+ reasonCode: 'burst_abort',
220
+ state: 'adjust',
221
+ action: 'none',
222
+ text: selfOnly(exports.AUTO_CAPTURE_BURST_ABORT_FEEDBACK),
223
+ },
224
+ selfie_searching: {
225
+ reasonCode: 'selfie_searching',
226
+ state: 'looking',
227
+ action: 'none',
228
+ text: byPersona('Show your face in the oval', "Put the customer's face in the oval"),
229
+ },
230
+ selfie_multiple_faces: {
231
+ reasonCode: 'selfie_multiple_faces',
232
+ state: 'adjust',
233
+ action: 'none',
234
+ text: byPersona('Only one face in the photo', 'One face only'),
235
+ },
236
+ selfie_too_dark: {
237
+ reasonCode: 'selfie_too_dark',
238
+ state: 'adjust',
239
+ action: 'none',
240
+ text: selfOnly('Find more light'),
241
+ },
242
+ selfie_too_bright: {
243
+ reasonCode: 'selfie_too_bright',
244
+ state: 'adjust',
245
+ action: 'none',
246
+ text: selfOnly('Move away from bright light'),
247
+ },
248
+ selfie_cropped: {
249
+ reasonCode: 'selfie_cropped',
250
+ state: 'adjust',
251
+ action: 'back',
252
+ text: byPersona('Move phone back', 'Keep the full face inside the oval'),
253
+ },
254
+ selfie_too_small: {
255
+ reasonCode: 'selfie_too_small',
256
+ state: 'adjust',
257
+ action: 'closer',
258
+ text: byPersona('Move phone closer', 'Move closer. Fill the oval.'),
259
+ },
260
+ selfie_too_large: {
261
+ reasonCode: 'selfie_too_large',
262
+ state: 'adjust',
263
+ action: 'back',
264
+ text: byPersona('Move phone back', 'Move back a little'),
265
+ },
266
+ selfie_off_center: {
267
+ reasonCode: 'selfie_off_center',
268
+ state: 'adjust',
269
+ action: 'center',
270
+ text: byPersona('Center your face', 'Center the face in the oval'),
271
+ },
272
+ selfie_blurry: {
273
+ reasonCode: 'selfie_blurry',
274
+ state: 'adjust',
275
+ action: 'none',
276
+ text: selfOnly('Hold steady — too blurry'),
277
+ },
278
+ selfie_hold_still: {
279
+ reasonCode: 'selfie_hold_still',
280
+ state: 'adjust',
281
+ action: 'none',
282
+ text: selfOnly('Hold still…'),
283
+ },
284
+ selfie_ready: {
285
+ reasonCode: 'selfie_ready',
286
+ state: 'ready',
287
+ action: 'none',
288
+ text: byPersona('Ready — tap to take selfie', 'Ready — tap to capture'),
289
+ },
290
+ };
291
+ /* -- Resolution ------------------------------------------------------------ */
292
+ function resolveCaptureGuidanceSignal(reasonCode, isReady, overlayVariant = 'card', persona = 'self') {
293
+ const entry = exports.CAPTURE_GUIDANCE_SIGNAL_TABLE[reasonCode];
294
+ return {
295
+ text: entry.text(overlayVariant, persona),
296
+ state: isReady ? 'ready' : entry.state,
297
+ action: entry.action,
298
+ reasonCode: entry.reasonCode,
299
+ };
300
+ }
301
+ /* -- Producer-side reason mapping ------------------------------------------ */
302
+ /**
303
+ * Map a document placement failure to its guidance reason code. `ok` maps to
304
+ * the hold-still family because a passing placement frame is, by definition,
305
+ * waiting on stability/sharpness rather than a correction.
306
+ */
307
+ exports.DOCUMENT_PLACEMENT_GUIDANCE_REASON = {
308
+ too_small: 'too_small',
309
+ too_large: 'too_large_or_cutoff',
310
+ off_center: 'off_center',
311
+ edge_tight: 'too_large_or_cutoff',
312
+ ok: 'hold_still',
313
+ };
314
+ /**
315
+ * Map live/static selfie assessment issue keys to guidance reason codes.
316
+ * Tolerant of both dialects in use today (web selfie-detection assessment
317
+ * reasons and the RN MLKit face-detection issue keys).
318
+ */
319
+ const SELFIE_ISSUE_GUIDANCE_REASON = {
320
+ no_face: 'selfie_searching',
321
+ multiple_faces: 'selfie_multiple_faces',
322
+ face_too_dark: 'selfie_too_dark',
323
+ face_too_bright: 'selfie_too_bright',
324
+ face_cropped: 'selfie_cropped',
325
+ face_cut_off: 'selfie_cropped',
326
+ face_too_small: 'selfie_too_small',
327
+ face_too_large: 'selfie_too_large',
328
+ face_off_center: 'selfie_off_center',
329
+ face_blurry: 'selfie_blurry',
330
+ face_ready: 'selfie_hold_still',
331
+ };
332
+ function mapSelfieIssueToGuidanceReason(issueKey) {
333
+ return SELFIE_ISSUE_GUIDANCE_REASON[issueKey] ?? null;
334
+ }
335
+ exports.CAPTURE_GUIDANCE_DAMPING_PROFILES = {
336
+ // Web kyc-mobile values, verbatim (auto-capture.ts dwell tiers).
337
+ self: {
338
+ correctiveMinDwellMs: 3000,
339
+ correctiveConfirmFrames: 6,
340
+ distanceReversalMinDwellMs: 4500,
341
+ distanceReversalConfirmFrames: 10,
342
+ postReadyMinDwellMs: 1500,
343
+ postReadyConfirmFrames: 3,
344
+ urgentMinDisplayMs: 1500,
345
+ glareConfirmFrames: 3,
346
+ },
347
+ // Trained repeat operators tolerate faster swaps; cadence is also ~10x
348
+ // slower (snapshot loop), so frame counts shrink with it.
349
+ agent: {
350
+ correctiveMinDwellMs: 1500,
351
+ correctiveConfirmFrames: 2,
352
+ distanceReversalMinDwellMs: 2500,
353
+ distanceReversalConfirmFrames: 3,
354
+ postReadyMinDwellMs: 750,
355
+ postReadyConfirmFrames: 1,
356
+ urgentMinDisplayMs: 1000,
357
+ glareConfirmFrames: 2,
358
+ },
359
+ };
360
+ /**
361
+ * Vibration patterns per signal kind. Invariant (test-locked): ready stays
362
+ * the strongest pattern — it is the one signal that must cut through when the
363
+ * user's eyes are on the document, not the screen.
364
+ */
365
+ exports.CAPTURE_SIGNAL_VIBRATION_PATTERNS = {
366
+ ready: [40, 60, 90],
367
+ review: 50,
368
+ fail: [30, 50, 30],
369
+ };
370
+ /** Cooldown for the ready haptic+chime pair; boundary thrash never spams. */
371
+ exports.READY_SIGNAL_COOLDOWN_MS = 2500;
372
+ /** How long the stored frame is held on screen as capture confirmation. */
373
+ exports.CAPTURE_CONFIRMATION_HOLD_MS = 750;
374
+ /** Two-note ready chime (web parity: 660→880 Hz, 100ms apart). */
375
+ exports.READY_CHIME_NOTES = [
376
+ { frequencyHz: 660, startOffsetMs: 0, durationMs: 120 },
377
+ { frequencyHz: 880, startOffsetMs: 100, durationMs: 160 },
378
+ ];
379
+ exports.READY_CHIME_GAIN = 0.12;
380
+ /**
381
+ * After the selfie manual-fallback timer expires onto a hard-block reason,
382
+ * the shutter holds through ONE bounded extension of this length, then
383
+ * unlocks permanently. Mirrors web selfie-detection semantics.
384
+ */
385
+ exports.SELFIE_MANUAL_FALLBACK_HARD_BLOCK_EXTENSION_MS = 8000;
386
+ //# sourceMappingURL=capture-guidance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-guidance.js","sourceRoot":"","sources":["../../src/capture-guidance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"capture-normalization.d.ts","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture-normalization.d.ts","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,19 @@ exports.getDocumentCaptureFrameAspectRatio = getDocumentCaptureFrameAspectRatio;
8
8
  const document_classifier_js_1 = require("./document-classifier.js");
9
9
  const CARD_CAPTURE_FRAME_ASPECT_RATIO = 1.585;
10
10
  const ADDRESS_DOCUMENT_CAPTURE_FRAME_ASPECT_RATIO = 0.72;
11
- const DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE = {
11
+ const DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE = Object.freeze({
12
12
  minAreaRatio: 0.04,
13
13
  nearFullFrameAreaRatio: 0.9,
14
14
  maxAreaRatio: 0.92,
15
- };
15
+ });
16
16
  const CAPTURE_NORMALIZATION_MIN_ASPECT_RATIO = 0.35;
17
17
  const CAPTURE_NORMALIZATION_MAX_ASPECT_RATIO = 2.4;
18
+ // Crop diagnostics must flag `nearly_full_frame` strictly before
19
+ // `maxAreaRatio` stops allowing the crop. Without this enforced margin the
20
+ // page profile (nearFullFrame 0.98, max 0.99) left a ~0.97–0.98 window where
21
+ // a degenerate frame-border quad produced `unsafeReason: null` and could
22
+ // masquerade as a trusted applied crop.
23
+ const CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN = 0.02;
18
24
  function clamp(value, min, max) {
19
25
  return Math.min(max, Math.max(min, value));
20
26
  }
@@ -42,7 +48,10 @@ function resolveCaptureNormalizationAreaRange(documentType) {
42
48
  : DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE.nearFullFrameAreaRatio;
43
49
  return {
44
50
  minAreaRatio,
45
- nearFullFrameAreaRatio: clamp(nearFullFrameAreaRatio, minAreaRatio, resolvedMaxAreaRatio),
51
+ // Enforce the nearly-full-frame margin below the hard max (see
52
+ // CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN) so the profile values
53
+ // cannot open an unflagged window just under maxAreaRatio.
54
+ nearFullFrameAreaRatio: clamp(Math.min(nearFullFrameAreaRatio, resolvedMaxAreaRatio - CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN), minAreaRatio, resolvedMaxAreaRatio),
46
55
  maxAreaRatio: resolvedMaxAreaRatio,
47
56
  };
48
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"capture-normalization.js","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capture-normalization.js","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-classifier.d.ts","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAmIpB,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,sBAAsB,CAuCxB;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,qBAAqB,CAgFvB;AAID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,wBAAwB,CAqQ1B"}
1
+ {"version":3,"file":"document-classifier.d.ts","sourceRoot":"","sources":["../../src/document-classifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAEV,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAiKpB,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,sBAAsB,CAuCxB;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,qBAAqB,CAkEvB;AAID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,wBAAwB,CAmR1B"}