@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.
- package/dist/cjs/capture-guidance.d.ts +105 -0
- package/dist/cjs/capture-guidance.d.ts.map +1 -0
- package/dist/cjs/capture-guidance.js +386 -0
- package/dist/cjs/capture-guidance.js.map +1 -0
- package/dist/cjs/capture-normalization.d.ts.map +1 -1
- package/dist/cjs/capture-normalization.js +12 -3
- 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 +72 -37
- package/dist/cjs/document-classifier.js.map +1 -1
- package/dist/cjs/document-placement.d.ts +1 -0
- package/dist/cjs/document-placement.d.ts.map +1 -1
- package/dist/cjs/document-placement.js +11 -1
- package/dist/cjs/document-placement.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +26 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/metrics.d.ts.map +1 -1
- package/dist/cjs/metrics.js +6 -1
- package/dist/cjs/metrics.js.map +1 -1
- package/dist/cjs/quality-checks.d.ts +6 -3
- package/dist/cjs/quality-checks.d.ts.map +1 -1
- package/dist/cjs/quality-checks.js +62 -8
- package/dist/cjs/quality-checks.js.map +1 -1
- package/dist/cjs/types.d.ts +21 -0
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/version.d.ts +7 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +10 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/capture-guidance.d.ts +105 -0
- package/dist/esm/capture-guidance.d.ts.map +1 -0
- package/dist/esm/capture-guidance.js +378 -0
- package/dist/esm/capture-guidance.js.map +1 -0
- package/dist/esm/capture-normalization.d.ts.map +1 -1
- package/dist/esm/capture-normalization.js +12 -3
- 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 +72 -37
- package/dist/esm/document-classifier.js.map +1 -1
- package/dist/esm/document-placement.d.ts +1 -0
- package/dist/esm/document-placement.d.ts.map +1 -1
- package/dist/esm/document-placement.js +10 -0
- package/dist/esm/document-placement.js.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metrics.d.ts.map +1 -1
- package/dist/esm/metrics.js +8 -3
- package/dist/esm/metrics.js.map +1 -1
- package/dist/esm/quality-checks.d.ts +6 -3
- package/dist/esm/quality-checks.d.ts.map +1 -1
- package/dist/esm/quality-checks.js +62 -8
- package/dist/esm/quality-checks.js.map +1 -1
- package/dist/esm/types.d.ts +21 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/version.d.ts +7 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +7 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,378 @@
|
|
|
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
|
+
/* -- Canonical copy constants (self persona = web kyc-mobile verbatim) ----- */
|
|
16
|
+
export const MANUAL_CAPTURE_READY_FEEDBACK = 'Tap button to take photo';
|
|
17
|
+
export const GOOD_HOLD_STILL_FEEDBACK = 'Good. Hold still';
|
|
18
|
+
// Shown while an armed capture decision is pending and during the burst.
|
|
19
|
+
// Deliberately NOT "Taking photo now": the armed capture can still abort, and
|
|
20
|
+
// announcing a photo that may never exist proved trust-destroying in
|
|
21
|
+
// production replays. The stored photo is confirmed by the freeze-flash at
|
|
22
|
+
// actual capture time instead.
|
|
23
|
+
export const TAKING_PHOTO_META = 'Hold still…';
|
|
24
|
+
export const INITIAL_DOCUMENT_FEEDBACK = 'Put your document inside the box';
|
|
25
|
+
export const AUTO_CAPTURE_BURST_ABORT_FEEDBACK = 'No clear photo yet. Hold still.';
|
|
26
|
+
export function getDocumentSubjectLabel(overlayVariant) {
|
|
27
|
+
if (overlayVariant === 'passport')
|
|
28
|
+
return 'passport photo page';
|
|
29
|
+
return 'document';
|
|
30
|
+
}
|
|
31
|
+
export function getTiltAwayFromLightGuidance(overlayVariant) {
|
|
32
|
+
return `Tilt ${getDocumentSubjectLabel(overlayVariant)} away from light`;
|
|
33
|
+
}
|
|
34
|
+
export function getMoveToMiddleFeedback(overlayVariant) {
|
|
35
|
+
if (overlayVariant === 'passport')
|
|
36
|
+
return 'Move passport photo page to the middle';
|
|
37
|
+
return 'Move document to the middle';
|
|
38
|
+
}
|
|
39
|
+
const selfOnly = (text) => (_overlayVariant, _persona = 'self') => text;
|
|
40
|
+
const byPersona = (self, agent) => (_overlayVariant, persona = 'self') => persona === 'agent' ? agent : self;
|
|
41
|
+
export const CAPTURE_GUIDANCE_SIGNAL_TABLE = {
|
|
42
|
+
searching: {
|
|
43
|
+
reasonCode: 'searching',
|
|
44
|
+
state: 'looking',
|
|
45
|
+
action: 'none',
|
|
46
|
+
text: byPersona(INITIAL_DOCUMENT_FEEDBACK, 'Put the document inside the box'),
|
|
47
|
+
},
|
|
48
|
+
camera_preparing: {
|
|
49
|
+
reasonCode: 'camera_preparing',
|
|
50
|
+
state: 'adjust',
|
|
51
|
+
action: 'none',
|
|
52
|
+
text: selfOnly('Preparing camera...'),
|
|
53
|
+
},
|
|
54
|
+
hold_still: {
|
|
55
|
+
reasonCode: 'hold_still',
|
|
56
|
+
state: 'adjust',
|
|
57
|
+
action: 'none',
|
|
58
|
+
text: selfOnly(GOOD_HOLD_STILL_FEEDBACK),
|
|
59
|
+
},
|
|
60
|
+
almost_ready: {
|
|
61
|
+
reasonCode: 'almost_ready',
|
|
62
|
+
state: 'adjust',
|
|
63
|
+
action: 'none',
|
|
64
|
+
text: selfOnly(GOOD_HOLD_STILL_FEEDBACK),
|
|
65
|
+
},
|
|
66
|
+
document_found: {
|
|
67
|
+
reasonCode: 'document_found',
|
|
68
|
+
state: 'adjust',
|
|
69
|
+
action: 'none',
|
|
70
|
+
text: selfOnly(GOOD_HOLD_STILL_FEEDBACK),
|
|
71
|
+
},
|
|
72
|
+
auto_safe: {
|
|
73
|
+
reasonCode: 'auto_safe',
|
|
74
|
+
state: 'adjust',
|
|
75
|
+
action: 'none',
|
|
76
|
+
text: selfOnly(GOOD_HOLD_STILL_FEEDBACK),
|
|
77
|
+
},
|
|
78
|
+
review_safe: {
|
|
79
|
+
reasonCode: 'review_safe',
|
|
80
|
+
state: 'adjust',
|
|
81
|
+
action: 'none',
|
|
82
|
+
text: selfOnly(GOOD_HOLD_STILL_FEEDBACK),
|
|
83
|
+
},
|
|
84
|
+
manual_ready: {
|
|
85
|
+
reasonCode: 'manual_ready',
|
|
86
|
+
state: 'ready',
|
|
87
|
+
action: 'none',
|
|
88
|
+
text: selfOnly(MANUAL_CAPTURE_READY_FEEDBACK),
|
|
89
|
+
},
|
|
90
|
+
taking_photo: {
|
|
91
|
+
reasonCode: 'taking_photo',
|
|
92
|
+
state: 'ready',
|
|
93
|
+
action: 'none',
|
|
94
|
+
text: selfOnly(TAKING_PHOTO_META),
|
|
95
|
+
},
|
|
96
|
+
too_small: {
|
|
97
|
+
reasonCode: 'too_small',
|
|
98
|
+
state: 'adjust',
|
|
99
|
+
action: 'closer',
|
|
100
|
+
text: selfOnly('Bring phone closer'),
|
|
101
|
+
},
|
|
102
|
+
too_large_or_cutoff: {
|
|
103
|
+
reasonCode: 'too_large_or_cutoff',
|
|
104
|
+
state: 'adjust',
|
|
105
|
+
action: 'back',
|
|
106
|
+
text: selfOnly('Move phone back. Show all 4 corners'),
|
|
107
|
+
},
|
|
108
|
+
off_center: {
|
|
109
|
+
reasonCode: 'off_center',
|
|
110
|
+
state: 'adjust',
|
|
111
|
+
action: 'center',
|
|
112
|
+
text: (overlayVariant) => getMoveToMiddleFeedback(overlayVariant),
|
|
113
|
+
},
|
|
114
|
+
nudge_left: {
|
|
115
|
+
reasonCode: 'nudge_left',
|
|
116
|
+
state: 'adjust',
|
|
117
|
+
action: 'left',
|
|
118
|
+
text: selfOnly('Move left'),
|
|
119
|
+
},
|
|
120
|
+
nudge_right: {
|
|
121
|
+
reasonCode: 'nudge_right',
|
|
122
|
+
state: 'adjust',
|
|
123
|
+
action: 'right',
|
|
124
|
+
text: selfOnly('Move right'),
|
|
125
|
+
},
|
|
126
|
+
nudge_up: {
|
|
127
|
+
reasonCode: 'nudge_up',
|
|
128
|
+
state: 'adjust',
|
|
129
|
+
action: 'up',
|
|
130
|
+
text: selfOnly('Move up'),
|
|
131
|
+
},
|
|
132
|
+
nudge_down: {
|
|
133
|
+
reasonCode: 'nudge_down',
|
|
134
|
+
state: 'adjust',
|
|
135
|
+
action: 'down',
|
|
136
|
+
text: selfOnly('Move down'),
|
|
137
|
+
},
|
|
138
|
+
too_dark: {
|
|
139
|
+
reasonCode: 'too_dark',
|
|
140
|
+
state: 'adjust',
|
|
141
|
+
action: 'none',
|
|
142
|
+
text: selfOnly('Find better light'),
|
|
143
|
+
},
|
|
144
|
+
glare: {
|
|
145
|
+
reasonCode: 'glare',
|
|
146
|
+
state: 'adjust',
|
|
147
|
+
action: 'none',
|
|
148
|
+
text: (overlayVariant) => getTiltAwayFromLightGuidance(overlayVariant),
|
|
149
|
+
},
|
|
150
|
+
blurry: {
|
|
151
|
+
reasonCode: 'blurry',
|
|
152
|
+
state: 'adjust',
|
|
153
|
+
action: 'none',
|
|
154
|
+
text: selfOnly('Hold still. Photo is blurry'),
|
|
155
|
+
},
|
|
156
|
+
flatten_document: {
|
|
157
|
+
reasonCode: 'flatten_document',
|
|
158
|
+
state: 'adjust',
|
|
159
|
+
action: 'none',
|
|
160
|
+
text: selfOnly('Tilt to flatten the document'),
|
|
161
|
+
},
|
|
162
|
+
mrz_band_closer: {
|
|
163
|
+
reasonCode: 'mrz_band_closer',
|
|
164
|
+
state: 'adjust',
|
|
165
|
+
action: 'closer',
|
|
166
|
+
text: selfOnly('Bring phone closer so the passport code is clear'),
|
|
167
|
+
},
|
|
168
|
+
mrz_band_lines: {
|
|
169
|
+
reasonCode: 'mrz_band_lines',
|
|
170
|
+
state: 'adjust',
|
|
171
|
+
action: 'none',
|
|
172
|
+
text: selfOnly('Show the two passport code lines'),
|
|
173
|
+
},
|
|
174
|
+
readable_text_closer: {
|
|
175
|
+
reasonCode: 'readable_text_closer',
|
|
176
|
+
state: 'adjust',
|
|
177
|
+
action: 'closer',
|
|
178
|
+
text: selfOnly('Bring phone closer so the text is clear'),
|
|
179
|
+
},
|
|
180
|
+
back_text_closer: {
|
|
181
|
+
reasonCode: 'back_text_closer',
|
|
182
|
+
state: 'adjust',
|
|
183
|
+
action: 'closer',
|
|
184
|
+
text: selfOnly('Bring phone closer so the code is clear'),
|
|
185
|
+
},
|
|
186
|
+
passport_code_lines_bottom: {
|
|
187
|
+
reasonCode: 'passport_code_lines_bottom',
|
|
188
|
+
state: 'adjust',
|
|
189
|
+
action: 'none',
|
|
190
|
+
text: selfOnly('Show the two code lines at the bottom'),
|
|
191
|
+
},
|
|
192
|
+
keep_passport_page_in_frame: {
|
|
193
|
+
reasonCode: 'keep_passport_page_in_frame',
|
|
194
|
+
state: 'adjust',
|
|
195
|
+
action: 'none',
|
|
196
|
+
text: selfOnly('Keep the passport photo page in frame'),
|
|
197
|
+
},
|
|
198
|
+
keep_document_in_frame: {
|
|
199
|
+
reasonCode: 'keep_document_in_frame',
|
|
200
|
+
state: 'adjust',
|
|
201
|
+
action: 'none',
|
|
202
|
+
text: selfOnly('Keep the document in frame'),
|
|
203
|
+
},
|
|
204
|
+
show_page_and_code: {
|
|
205
|
+
reasonCode: 'show_page_and_code',
|
|
206
|
+
state: 'adjust',
|
|
207
|
+
action: 'none',
|
|
208
|
+
text: selfOnly('Show the passport photo page and code'),
|
|
209
|
+
},
|
|
210
|
+
burst_abort: {
|
|
211
|
+
reasonCode: 'burst_abort',
|
|
212
|
+
state: 'adjust',
|
|
213
|
+
action: 'none',
|
|
214
|
+
text: selfOnly(AUTO_CAPTURE_BURST_ABORT_FEEDBACK),
|
|
215
|
+
},
|
|
216
|
+
selfie_searching: {
|
|
217
|
+
reasonCode: 'selfie_searching',
|
|
218
|
+
state: 'looking',
|
|
219
|
+
action: 'none',
|
|
220
|
+
text: byPersona('Show your face in the oval', "Put the customer's face in the oval"),
|
|
221
|
+
},
|
|
222
|
+
selfie_multiple_faces: {
|
|
223
|
+
reasonCode: 'selfie_multiple_faces',
|
|
224
|
+
state: 'adjust',
|
|
225
|
+
action: 'none',
|
|
226
|
+
text: byPersona('Only one face in the photo', 'One face only'),
|
|
227
|
+
},
|
|
228
|
+
selfie_too_dark: {
|
|
229
|
+
reasonCode: 'selfie_too_dark',
|
|
230
|
+
state: 'adjust',
|
|
231
|
+
action: 'none',
|
|
232
|
+
text: selfOnly('Find more light'),
|
|
233
|
+
},
|
|
234
|
+
selfie_too_bright: {
|
|
235
|
+
reasonCode: 'selfie_too_bright',
|
|
236
|
+
state: 'adjust',
|
|
237
|
+
action: 'none',
|
|
238
|
+
text: selfOnly('Move away from bright light'),
|
|
239
|
+
},
|
|
240
|
+
selfie_cropped: {
|
|
241
|
+
reasonCode: 'selfie_cropped',
|
|
242
|
+
state: 'adjust',
|
|
243
|
+
action: 'back',
|
|
244
|
+
text: byPersona('Move phone back', 'Keep the full face inside the oval'),
|
|
245
|
+
},
|
|
246
|
+
selfie_too_small: {
|
|
247
|
+
reasonCode: 'selfie_too_small',
|
|
248
|
+
state: 'adjust',
|
|
249
|
+
action: 'closer',
|
|
250
|
+
text: byPersona('Move phone closer', 'Move closer. Fill the oval.'),
|
|
251
|
+
},
|
|
252
|
+
selfie_too_large: {
|
|
253
|
+
reasonCode: 'selfie_too_large',
|
|
254
|
+
state: 'adjust',
|
|
255
|
+
action: 'back',
|
|
256
|
+
text: byPersona('Move phone back', 'Move back a little'),
|
|
257
|
+
},
|
|
258
|
+
selfie_off_center: {
|
|
259
|
+
reasonCode: 'selfie_off_center',
|
|
260
|
+
state: 'adjust',
|
|
261
|
+
action: 'center',
|
|
262
|
+
text: byPersona('Center your face', 'Center the face in the oval'),
|
|
263
|
+
},
|
|
264
|
+
selfie_blurry: {
|
|
265
|
+
reasonCode: 'selfie_blurry',
|
|
266
|
+
state: 'adjust',
|
|
267
|
+
action: 'none',
|
|
268
|
+
text: selfOnly('Hold steady — too blurry'),
|
|
269
|
+
},
|
|
270
|
+
selfie_hold_still: {
|
|
271
|
+
reasonCode: 'selfie_hold_still',
|
|
272
|
+
state: 'adjust',
|
|
273
|
+
action: 'none',
|
|
274
|
+
text: selfOnly('Hold still…'),
|
|
275
|
+
},
|
|
276
|
+
selfie_ready: {
|
|
277
|
+
reasonCode: 'selfie_ready',
|
|
278
|
+
state: 'ready',
|
|
279
|
+
action: 'none',
|
|
280
|
+
text: byPersona('Ready — tap to take selfie', 'Ready — tap to capture'),
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
/* -- Resolution ------------------------------------------------------------ */
|
|
284
|
+
export function resolveCaptureGuidanceSignal(reasonCode, isReady, overlayVariant = 'card', persona = 'self') {
|
|
285
|
+
const entry = CAPTURE_GUIDANCE_SIGNAL_TABLE[reasonCode];
|
|
286
|
+
return {
|
|
287
|
+
text: entry.text(overlayVariant, persona),
|
|
288
|
+
state: isReady ? 'ready' : entry.state,
|
|
289
|
+
action: entry.action,
|
|
290
|
+
reasonCode: entry.reasonCode,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/* -- Producer-side reason mapping ------------------------------------------ */
|
|
294
|
+
/**
|
|
295
|
+
* Map a document placement failure to its guidance reason code. `ok` maps to
|
|
296
|
+
* the hold-still family because a passing placement frame is, by definition,
|
|
297
|
+
* waiting on stability/sharpness rather than a correction.
|
|
298
|
+
*/
|
|
299
|
+
export const DOCUMENT_PLACEMENT_GUIDANCE_REASON = {
|
|
300
|
+
too_small: 'too_small',
|
|
301
|
+
too_large: 'too_large_or_cutoff',
|
|
302
|
+
off_center: 'off_center',
|
|
303
|
+
edge_tight: 'too_large_or_cutoff',
|
|
304
|
+
ok: 'hold_still',
|
|
305
|
+
};
|
|
306
|
+
/**
|
|
307
|
+
* Map live/static selfie assessment issue keys to guidance reason codes.
|
|
308
|
+
* Tolerant of both dialects in use today (web selfie-detection assessment
|
|
309
|
+
* reasons and the RN MLKit face-detection issue keys).
|
|
310
|
+
*/
|
|
311
|
+
const SELFIE_ISSUE_GUIDANCE_REASON = {
|
|
312
|
+
no_face: 'selfie_searching',
|
|
313
|
+
multiple_faces: 'selfie_multiple_faces',
|
|
314
|
+
face_too_dark: 'selfie_too_dark',
|
|
315
|
+
face_too_bright: 'selfie_too_bright',
|
|
316
|
+
face_cropped: 'selfie_cropped',
|
|
317
|
+
face_cut_off: 'selfie_cropped',
|
|
318
|
+
face_too_small: 'selfie_too_small',
|
|
319
|
+
face_too_large: 'selfie_too_large',
|
|
320
|
+
face_off_center: 'selfie_off_center',
|
|
321
|
+
face_blurry: 'selfie_blurry',
|
|
322
|
+
face_ready: 'selfie_hold_still',
|
|
323
|
+
};
|
|
324
|
+
export function mapSelfieIssueToGuidanceReason(issueKey) {
|
|
325
|
+
return SELFIE_ISSUE_GUIDANCE_REASON[issueKey] ?? null;
|
|
326
|
+
}
|
|
327
|
+
export const CAPTURE_GUIDANCE_DAMPING_PROFILES = {
|
|
328
|
+
// Web kyc-mobile values, verbatim (auto-capture.ts dwell tiers).
|
|
329
|
+
self: {
|
|
330
|
+
correctiveMinDwellMs: 3000,
|
|
331
|
+
correctiveConfirmFrames: 6,
|
|
332
|
+
distanceReversalMinDwellMs: 4500,
|
|
333
|
+
distanceReversalConfirmFrames: 10,
|
|
334
|
+
postReadyMinDwellMs: 1500,
|
|
335
|
+
postReadyConfirmFrames: 3,
|
|
336
|
+
urgentMinDisplayMs: 1500,
|
|
337
|
+
glareConfirmFrames: 3,
|
|
338
|
+
},
|
|
339
|
+
// Trained repeat operators tolerate faster swaps; cadence is also ~10x
|
|
340
|
+
// slower (snapshot loop), so frame counts shrink with it.
|
|
341
|
+
agent: {
|
|
342
|
+
correctiveMinDwellMs: 1500,
|
|
343
|
+
correctiveConfirmFrames: 2,
|
|
344
|
+
distanceReversalMinDwellMs: 2500,
|
|
345
|
+
distanceReversalConfirmFrames: 3,
|
|
346
|
+
postReadyMinDwellMs: 750,
|
|
347
|
+
postReadyConfirmFrames: 1,
|
|
348
|
+
urgentMinDisplayMs: 1000,
|
|
349
|
+
glareConfirmFrames: 2,
|
|
350
|
+
},
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Vibration patterns per signal kind. Invariant (test-locked): ready stays
|
|
354
|
+
* the strongest pattern — it is the one signal that must cut through when the
|
|
355
|
+
* user's eyes are on the document, not the screen.
|
|
356
|
+
*/
|
|
357
|
+
export const CAPTURE_SIGNAL_VIBRATION_PATTERNS = {
|
|
358
|
+
ready: [40, 60, 90],
|
|
359
|
+
review: 50,
|
|
360
|
+
fail: [30, 50, 30],
|
|
361
|
+
};
|
|
362
|
+
/** Cooldown for the ready haptic+chime pair; boundary thrash never spams. */
|
|
363
|
+
export const READY_SIGNAL_COOLDOWN_MS = 2500;
|
|
364
|
+
/** How long the stored frame is held on screen as capture confirmation. */
|
|
365
|
+
export const CAPTURE_CONFIRMATION_HOLD_MS = 750;
|
|
366
|
+
/** Two-note ready chime (web parity: 660→880 Hz, 100ms apart). */
|
|
367
|
+
export const READY_CHIME_NOTES = [
|
|
368
|
+
{ frequencyHz: 660, startOffsetMs: 0, durationMs: 120 },
|
|
369
|
+
{ frequencyHz: 880, startOffsetMs: 100, durationMs: 160 },
|
|
370
|
+
];
|
|
371
|
+
export const READY_CHIME_GAIN = 0.12;
|
|
372
|
+
/**
|
|
373
|
+
* After the selfie manual-fallback timer expires onto a hard-block reason,
|
|
374
|
+
* the shutter holds through ONE bounded extension of this length, then
|
|
375
|
+
* unlocks permanently. Mirrors web selfie-detection semantics.
|
|
376
|
+
*/
|
|
377
|
+
export const SELFIE_MANUAL_FALLBACK_HARD_BLOCK_EXTENSION_MS = 8000;
|
|
378
|
+
//# 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":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,SAAS,CAAC;AAC3D,MAAM,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;AACxD,MAAM,MAAM,gCAAgC,GACxC,cAAc,GACd,WAAW,GACX,WAAW,GACX,YAAY,GACZ,mBAAmB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,+BAA+B;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,mBAAmB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,gCAAgC,GAAG,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,6BAA8B,SAAQ,2BAA2B;IAChF,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,+BAA+B,CAAC;CAC9C;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,kBAAkB,GAAG,YAAY,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"capture-normalization.d.ts","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { getDocumentReviewProfile } from './document-classifier.js';
|
|
2
2
|
const CARD_CAPTURE_FRAME_ASPECT_RATIO = 1.585;
|
|
3
3
|
const ADDRESS_DOCUMENT_CAPTURE_FRAME_ASPECT_RATIO = 0.72;
|
|
4
|
-
const DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE = {
|
|
4
|
+
const DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE = Object.freeze({
|
|
5
5
|
minAreaRatio: 0.04,
|
|
6
6
|
nearFullFrameAreaRatio: 0.9,
|
|
7
7
|
maxAreaRatio: 0.92,
|
|
8
|
-
};
|
|
8
|
+
});
|
|
9
9
|
const CAPTURE_NORMALIZATION_MIN_ASPECT_RATIO = 0.35;
|
|
10
10
|
const CAPTURE_NORMALIZATION_MAX_ASPECT_RATIO = 2.4;
|
|
11
|
+
// Crop diagnostics must flag `nearly_full_frame` strictly before
|
|
12
|
+
// `maxAreaRatio` stops allowing the crop. Without this enforced margin the
|
|
13
|
+
// page profile (nearFullFrame 0.98, max 0.99) left a ~0.97–0.98 window where
|
|
14
|
+
// a degenerate frame-border quad produced `unsafeReason: null` and could
|
|
15
|
+
// masquerade as a trusted applied crop.
|
|
16
|
+
const CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN = 0.02;
|
|
11
17
|
function clamp(value, min, max) {
|
|
12
18
|
return Math.min(max, Math.max(min, value));
|
|
13
19
|
}
|
|
@@ -35,7 +41,10 @@ function resolveCaptureNormalizationAreaRange(documentType) {
|
|
|
35
41
|
: DEFAULT_CAPTURE_NORMALIZATION_AREA_RANGE.nearFullFrameAreaRatio;
|
|
36
42
|
return {
|
|
37
43
|
minAreaRatio,
|
|
38
|
-
|
|
44
|
+
// Enforce the nearly-full-frame margin below the hard max (see
|
|
45
|
+
// CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN) so the profile values
|
|
46
|
+
// cannot open an unflagged window just under maxAreaRatio.
|
|
47
|
+
nearFullFrameAreaRatio: clamp(Math.min(nearFullFrameAreaRatio, resolvedMaxAreaRatio - CAPTURE_NORMALIZATION_NEAR_FULL_FRAME_MARGIN), minAreaRatio, resolvedMaxAreaRatio),
|
|
39
48
|
maxAreaRatio: resolvedMaxAreaRatio,
|
|
40
49
|
};
|
|
41
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture-normalization.js","sourceRoot":"","sources":["../../src/capture-normalization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAkFpE,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAC9C,MAAM,2CAA2C,GAAG,IAAI,CAAC;AACzD,MAAM,wCAAwC,GAAqB;
|
|
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;
|
|
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"}
|