smartcomply-web-sdk 1.0.64 → 1.0.66

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 (31) hide show
  1. package/dist/esm/flow/DocumentCapture.d.ts +16 -9
  2. package/dist/esm/flow/DocumentCapture.d.ts.map +1 -1
  3. package/dist/esm/flow/DocumentCapture.js +77 -121
  4. package/dist/esm/flow/DocumentCapture.js.map +1 -1
  5. package/dist/esm/flow/SmartComplyFlow.d.ts.map +1 -1
  6. package/dist/esm/flow/SmartComplyFlow.js +17 -5
  7. package/dist/esm/flow/SmartComplyFlow.js.map +1 -1
  8. package/dist/esm/modules/liveness/liveness.d.ts.map +1 -1
  9. package/dist/esm/modules/liveness/liveness.js +13 -9
  10. package/dist/esm/modules/liveness/liveness.js.map +1 -1
  11. package/dist/esm/utils/documentRules.d.ts +9 -2
  12. package/dist/esm/utils/documentRules.d.ts.map +1 -1
  13. package/dist/esm/utils/documentRules.js +7 -2
  14. package/dist/esm/utils/documentRules.js.map +1 -1
  15. package/dist/flow/DocumentCapture.d.ts +16 -9
  16. package/dist/flow/DocumentCapture.d.ts.map +1 -1
  17. package/dist/flow/DocumentCapture.js +76 -120
  18. package/dist/flow/DocumentCapture.js.map +1 -1
  19. package/dist/flow/SmartComplyFlow.d.ts.map +1 -1
  20. package/dist/flow/SmartComplyFlow.js +17 -5
  21. package/dist/flow/SmartComplyFlow.js.map +1 -1
  22. package/dist/modules/liveness/liveness.d.ts.map +1 -1
  23. package/dist/modules/liveness/liveness.js +13 -9
  24. package/dist/modules/liveness/liveness.js.map +1 -1
  25. package/dist/smartcomply.browser.js +77 -223
  26. package/dist/smartcomply.browser.js.map +4 -4
  27. package/dist/utils/documentRules.d.ts +9 -2
  28. package/dist/utils/documentRules.d.ts.map +1 -1
  29. package/dist/utils/documentRules.js +7 -2
  30. package/dist/utils/documentRules.js.map +1 -1
  31. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { ThemeColors } from "./theme";
2
+ import { BackSideMode } from "../utils/documentRules";
2
3
  /**
3
4
  * Document capture UI — camera-based or file-upload for ID documents.
4
5
  *
@@ -30,9 +31,13 @@ export declare class DocumentCapture {
30
31
  * Mount the document capture UI and return a promise that resolves
31
32
  * with the captured document image(s).
32
33
  */
33
- capture(container: HTMLElement, theme: ThemeColors, documentType: string, requiresBack?: boolean): Promise<DocumentCaptureResult>;
34
+ capture(container: HTMLElement, theme: ThemeColors, documentType: string, requiresBack?: BackSideMode): Promise<DocumentCaptureResult>;
34
35
  destroy(): void;
36
+ private getBackSideMode;
37
+ /** Whether a back-side step should be shown at all (required OR optional). */
35
38
  private shouldCaptureBackSide;
39
+ /** Whether the back-side step, once shown, can be skipped by the user. */
40
+ private isBackSideOptional;
36
41
  private renderChoiceScreen;
37
42
  /** Returns the icon name matching the document type. */
38
43
  private _docIcon;
@@ -55,18 +60,20 @@ export declare class DocumentCapture {
55
60
  private _unwatchOrientation;
56
61
  private openCamera;
57
62
  private captureFrame;
58
- /**
59
- * Runs the local sharpness/glare/contrast/brightness check against a
60
- * captured frame. Returns null (never blocks) if quality can't be computed
61
- * — e.g. a tainted canvas from a cross-origin file, or an unsupported browser.
62
- */
63
- private _assessImageQuality;
64
- /** Same as _assessImageQuality but starting from a Blob/File (upload path). */
65
- private _assessBlobQuality;
66
63
  private showPreview;
67
64
  private handleCaptureComplete;
68
65
  private handleFileUploadComplete;
69
66
  private validateFile;
67
+ /**
68
+ * Only shrinks/re-encodes when the file exceeds the backend's real upload
69
+ * ceiling — otherwise returns the original bytes completely untouched.
70
+ * Document photos become the face-comparison reference image later
71
+ * (see backend _crop_and_save_face), so any avoidable re-encode is a
72
+ * quality loss with no upside; compression here exists solely to keep
73
+ * oversized captures under MAX_DOCUMENT_BYTES, not to "optimize" images
74
+ * that already fit.
75
+ */
76
+ private ensureUnderUploadLimit;
70
77
  private handleFileUpload;
71
78
  private stopCamera;
72
79
  private showLoadingState;
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentCapture.d.ts","sourceRoot":"","sources":["../../../src/flow/DocumentCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,SAAS,CAAC;AASpD;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IAKZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,oBAAoB,CAAkC;IAE9D;;;OAGG;IACH,OAAO,CACL,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,qBAAqB,CAAC;IAiCjC,OAAO,IAAI,IAAI;IAuBf,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,kBAAkB;IAoK1B,wDAAwD;IACxD,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,gBAAgB;IAyHxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;YAQb,UAAU;IAsExB,OAAO,CAAC,YAAY;IAkCpB;;;;OAIG;YACW,mBAAmB;IAYjC,+EAA+E;YACjE,kBAAkB;IAsBhC,OAAO,CAAC,WAAW;IAiInB,OAAO,CAAC,qBAAqB;YAwCf,wBAAwB;IAUtC,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,SAAS;IAgCjB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,aAAa;IA4ErB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,gBAAgB;CASzB"}
1
+ {"version":3,"file":"DocumentCapture.d.ts","sourceRoot":"","sources":["../../../src/flow/DocumentCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAuC,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3F;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;IAKZ,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,oBAAoB,CAAuC;IAEnE;;;OAGG;IACH,OAAO,CACL,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,qBAAqB,CAAC;IAiCjC,OAAO,IAAI,IAAI;IAuBf,OAAO,CAAC,eAAe;IAOvB,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB;IAI7B,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAqL1B,wDAAwD;IACxD,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,gBAAgB;IAyHxB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;YAQb,UAAU;IAsExB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,WAAW;IAqFnB,OAAO,CAAC,qBAAqB;IAyC7B,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,YAAY;IAsBpB;;;;;;;;OAQG;YACW,sBAAsB;IASpC,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,SAAS;IAgCjB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,aAAa;IA4ErB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,gBAAgB;CASzB"}
@@ -1,9 +1,8 @@
1
1
  import { RADIUS, TYPE } from "./theme";
2
- import { assessQuality } from "../utils/ImageQuality";
3
2
  import { requiresBackSide, computeScaleRatio } from "../utils/documentRules";
4
3
  import { CameraManager, CameraAccessError } from "../camera/CameraManager";
5
4
  import { isRetryableCameraError } from "../camera/Permission";
6
- import { DOC_CAMERA_IDEAL_WIDTH, DOC_CAMERA_IDEAL_HEIGHT } from "../utils/constants";
5
+ import { DOC_CAMERA_IDEAL_WIDTH, DOC_CAMERA_IDEAL_HEIGHT, MAX_DOCUMENT_BYTES } from "../utils/constants";
7
6
  import { icon } from "./icons";
8
7
  import { renderSpinner } from "./spinner";
9
8
  export class DocumentCapture {
@@ -74,12 +73,20 @@ export class DocumentCapture {
74
73
  this.backBlob = null;
75
74
  this.currentSide = 'front';
76
75
  }
77
- shouldCaptureBackSide(documentType) {
76
+ getBackSideMode(documentType) {
78
77
  // Prefer the backend-provided flag; fall back to the shared heuristic only when absent.
79
78
  return this.requiresBackOverride !== undefined
80
79
  ? this.requiresBackOverride
81
80
  : requiresBackSide(documentType);
82
81
  }
82
+ /** Whether a back-side step should be shown at all (required OR optional). */
83
+ shouldCaptureBackSide(documentType) {
84
+ return this.getBackSideMode(documentType) !== false;
85
+ }
86
+ /** Whether the back-side step, once shown, can be skipped by the user. */
87
+ isBackSideOptional(documentType) {
88
+ return this.getBackSideMode(documentType) === "optional";
89
+ }
83
90
  renderChoiceScreen(container, theme, documentType) {
84
91
  this.root = document.createElement("div");
85
92
  this.root.style.cssText = `
@@ -88,6 +95,7 @@ export class DocumentCapture {
88
95
  `;
89
96
  const docLabel = this.getDocumentLabel(documentType);
90
97
  const requiresBack = this.shouldCaptureBackSide(documentType);
98
+ const backOptional = this.isBackSideOptional(documentType);
91
99
  const isCapturingFront = this.currentSide === 'front';
92
100
  const sideLabel = requiresBack
93
101
  ? (isCapturingFront ? ' — Front side' : ' — Back side')
@@ -114,7 +122,9 @@ export class DocumentCapture {
114
122
  const subEl = document.createElement("div");
115
123
  subEl.style.cssText = `color:${theme.textSecondary};font-size:12px;margin-top:2px;`;
116
124
  subEl.textContent = requiresBack
117
- ? (isCapturingFront ? 'Step 1 of 2 — front side' : 'Step 2 of 2 — back side')
125
+ ? (isCapturingFront
126
+ ? 'Step 1 of 2 — front side'
127
+ : backOptional ? 'Step 2 of 2 — back side (optional)' : 'Step 2 of 2 — back side')
118
128
  : 'Choose how to provide your document';
119
129
  titleBlock.appendChild(titleEl);
120
130
  titleBlock.appendChild(subEl);
@@ -197,9 +207,26 @@ export class DocumentCapture {
197
207
  display:flex;align-items:center;gap:8px;
198
208
  font-size:12px;color:${theme.textSecondary};line-height:1.5;
199
209
  `;
200
- notice.innerHTML = `<span style="font-size:16px;flex-shrink:0;">ℹ️</span><span>You'll capture both the <strong style="color:${theme.text}">front</strong> and <strong style="color:${theme.text}">back</strong> of this document.</span>`;
210
+ notice.innerHTML = backOptional
211
+ ? `<span style="font-size:16px;flex-shrink:0;">ℹ️</span><span>After the <strong style="color:${theme.text}">front</strong>, you can optionally add the <strong style="color:${theme.text}">back</strong> if your card has one.</span>`
212
+ : `<span style="font-size:16px;flex-shrink:0;">ℹ️</span><span>You'll capture both the <strong style="color:${theme.text}">front</strong> and <strong style="color:${theme.text}">back</strong> of this document.</span>`;
201
213
  this.root.appendChild(notice);
202
214
  }
215
+ // ── Skip button (back side only, and only when optional) ─────────
216
+ if (requiresBack && !isCapturingFront && backOptional) {
217
+ const skipBtn = document.createElement("button");
218
+ skipBtn.style.cssText = `
219
+ display:block;margin:0 20px 16px;width:calc(100% - 40px);
220
+ padding:10px 12px;background:transparent;color:${theme.textSecondary};
221
+ border:1.5px dashed ${theme.border};border-radius:10px;cursor:pointer;
222
+ font-size:12.5px;font-weight:600;font-family:inherit;
223
+ `;
224
+ skipBtn.textContent = "Skip — this card has no back side";
225
+ skipBtn.addEventListener("click", () => {
226
+ this.handleCaptureComplete(null, container, theme, documentType, false, true);
227
+ });
228
+ this.root.appendChild(skipBtn);
229
+ }
203
230
  // Hidden file input
204
231
  const fileInput = document.createElement("input");
205
232
  fileInput.type = "file";
@@ -214,14 +241,10 @@ export class DocumentCapture {
214
241
  this.showError(err);
215
242
  return;
216
243
  }
217
- this.showLoadingState("Processing image...", theme);
218
- // 2000x1500 @ 0.92 (was 1280x960 @ 0.85) this document photo is
219
- // later cropped down to just the face region for face comparison
220
- // (see backend _crop_and_save_face), so the original needs enough
221
- // headroom that the crop isn't left blurry from compression alone.
222
- this.compressImage(file, 2000, 1500, 0.92)
223
- .then((c) => this.handleFileUploadComplete(c, container, theme, documentType))
224
- .catch(() => this.handleFileUploadComplete(file, container, theme, documentType));
244
+ // Sent as-is unless it's over the upload limit — no re-encoding a
245
+ // file that already fits, so no avoidable quality loss.
246
+ this.ensureUnderUploadLimit(file)
247
+ .then((c) => this.handleFileUploadComplete(c, container, theme, documentType));
225
248
  }
226
249
  });
227
250
  this.root.appendChild(fileInput);
@@ -458,58 +481,14 @@ export class DocumentCapture {
458
481
  if (!ctx)
459
482
  return;
460
483
  ctx.drawImage(this.videoEl, 0, 0, canvas.width, canvas.height);
461
- canvas.toBlob(async (blob) => {
484
+ canvas.toBlob((blob) => {
462
485
  if (blob) {
463
486
  this.stopCamera();
464
- // Quality analysis runs synchronously over the captured frame's
465
- // pixel data — show a loading state so the capture->preview
466
- // transition never looks like a frozen/unresponsive tap on
467
- // slower devices.
468
- this.showLoadingState("Analyzing photo...", theme);
469
- const quality = await this._assessImageQuality(canvas, ctx);
470
- this.showPreview(container, theme, blob, documentType, quality, true);
487
+ this.showPreview(container, theme, blob, documentType, true);
471
488
  }
472
489
  }, "image/jpeg", 0.92);
473
490
  }
474
- /**
475
- * Runs the local sharpness/glare/contrast/brightness check against a
476
- * captured frame. Returns null (never blocks) if quality can't be computed
477
- * — e.g. a tainted canvas from a cross-origin file, or an unsupported browser.
478
- */
479
- async _assessImageQuality(canvas, ctx) {
480
- try {
481
- const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
482
- return assessQuality(imageData);
483
- }
484
- catch {
485
- return null;
486
- }
487
- }
488
- /** Same as _assessImageQuality but starting from a Blob/File (upload path). */
489
- async _assessBlobQuality(blob) {
490
- try {
491
- const url = URL.createObjectURL(blob);
492
- const imgEl = document.createElement("img");
493
- await new Promise((resolve, reject) => {
494
- imgEl.onload = () => resolve();
495
- imgEl.onerror = () => reject(new Error("Image load failed"));
496
- imgEl.src = url;
497
- });
498
- const canvas = document.createElement("canvas");
499
- canvas.width = imgEl.naturalWidth;
500
- canvas.height = imgEl.naturalHeight;
501
- const ctx = canvas.getContext("2d");
502
- URL.revokeObjectURL(url);
503
- if (!ctx)
504
- return null;
505
- ctx.drawImage(imgEl, 0, 0);
506
- return this._assessImageQuality(canvas, ctx);
507
- }
508
- catch {
509
- return null;
510
- }
511
- }
512
- showPreview(container, theme, imageData, documentType, quality, viaCamera) {
491
+ showPreview(container, theme, imageData, documentType, viaCamera) {
513
492
  if (this.root)
514
493
  this.root.innerHTML = "";
515
494
  else {
@@ -549,32 +528,10 @@ export class DocumentCapture {
549
528
  sublabel.style.cssText = `color:${theme.textMuted};font-size:${TYPE.xs}px;text-align:center;line-height:1.6;`;
550
529
  sublabel.textContent = "All text must be readable and all four corners must be visible.";
551
530
  this.root.appendChild(sublabel);
552
- // Quality warning banner — only shown when the local check flags an issue.
553
- // Never blocks (some devices/lighting can't clear the threshold), just warns.
554
- const qualityIsPoor = !!quality && !quality.isValid;
555
- if (qualityIsPoor && quality) {
556
- const warn = document.createElement("div");
557
- warn.style.cssText = `
558
- width:100%;box-sizing:border-box;padding:10px 14px;border-radius:10px;
559
- background:#eab30815;border:1px solid #eab30840;
560
- color:${theme.text};font-size:12px;line-height:1.5;
561
- `;
562
- const issueLine = document.createElement("div");
563
- issueLine.style.cssText = "font-weight:700;color:#b8860b;";
564
- issueLine.textContent = `⚠️ ${quality.message}`;
565
- warn.appendChild(issueLine);
566
- if (quality.recommendations.length > 0) {
567
- const rec = document.createElement("div");
568
- rec.style.cssText = "margin-top:4px;color:" + theme.textSecondary + ";";
569
- rec.textContent = quality.recommendations.join(" · ");
570
- warn.appendChild(rec);
571
- }
572
- this.root.appendChild(warn);
573
- }
574
531
  // Buttons
575
532
  const btnRow = document.createElement("div");
576
533
  btnRow.style.cssText = "display:flex;gap:12px;width:100%;";
577
- const retakeBtn = this.createButton("Retake", theme, qualityIsPoor);
534
+ const retakeBtn = this.createButton("Retake", theme, false);
578
535
  retakeBtn.style.flex = "1";
579
536
  retakeBtn.addEventListener("click", () => {
580
537
  if (img._blobUrl) {
@@ -583,52 +540,32 @@ export class DocumentCapture {
583
540
  this.root.innerHTML = "";
584
541
  this.renderChoiceScreen(container, theme, documentType);
585
542
  });
586
- const proceedWithPhoto = () => {
543
+ const useBtn = this.createButton("Use Photo ✓", theme, true);
544
+ useBtn.style.flex = "1";
545
+ useBtn.addEventListener("click", () => {
587
546
  if (img._blobUrl) {
588
547
  URL.revokeObjectURL(img._blobUrl);
589
548
  }
590
549
  useBtn.textContent = "Processing...";
591
550
  useBtn.disabled = true;
592
- // 2000x1500 @ 0.92 see the matching comment on the upload-path call above.
593
- this.compressImage(imageData, 2000, 1500, 0.92)
594
- .then((compressed) => this.handleCaptureComplete(compressed, container, theme, documentType, viaCamera))
595
- .catch(() => this.handleCaptureComplete(imageData, container, theme, documentType, viaCamera)); // fallback to original
596
- };
597
- const useBtn = this.createButton(qualityIsPoor ? "Use Anyway ⚠" : "Use Photo ✓", theme, !qualityIsPoor);
598
- useBtn.style.flex = "1";
599
- if (qualityIsPoor) {
600
- // A blurry/dark document photo becomes the face-comparison reference
601
- // image later — submitting one here means the user only finds out it's
602
- // unusable after completing the entire liveness scan. Require a second,
603
- // deliberate tap instead of hard-blocking (some devices/lighting
604
- // genuinely can't clear the threshold, and this photo may still be
605
- // perfectly readable — see _assessImageQuality's docstring).
606
- let confirming = false;
607
- useBtn.addEventListener("click", () => {
608
- if (!confirming) {
609
- confirming = true;
610
- useBtn.textContent = "Tap again to confirm ⚠";
611
- return;
612
- }
613
- proceedWithPhoto();
614
- });
615
- }
616
- else {
617
- useBtn.addEventListener("click", proceedWithPhoto);
618
- }
551
+ // Sent as-is unless it's over the upload limit no re-encoding a
552
+ // photo that already fits, so no avoidable quality loss.
553
+ this.ensureUnderUploadLimit(imageData)
554
+ .then((c) => this.handleCaptureComplete(c, container, theme, documentType, viaCamera));
555
+ });
619
556
  btnRow.appendChild(retakeBtn);
620
557
  btnRow.appendChild(useBtn);
621
558
  this.root.appendChild(btnRow);
622
559
  }
623
- handleCaptureComplete(imageData, container, theme, documentType, viaCamera) {
560
+ handleCaptureComplete(imageData, container, theme, documentType, viaCamera, skipped = false) {
624
561
  const requiresBack = this.shouldCaptureBackSide(documentType);
625
562
  const wasCapturingFront = this.currentSide === 'front';
626
- // Store the captured image
563
+ // Store the captured image (skip leaves backBlob unset — front-only submit)
627
564
  if (wasCapturingFront) {
628
565
  this.frontBlob = imageData;
629
566
  this.frontViaCamera = viaCamera;
630
567
  }
631
- else {
568
+ else if (!skipped) {
632
569
  this.backBlob = imageData;
633
570
  }
634
571
  // If we need back side and haven't captured it yet, move to back side
@@ -650,9 +587,8 @@ export class DocumentCapture {
650
587
  };
651
588
  this.resolveCapture?.(result);
652
589
  }
653
- async handleFileUploadComplete(imageData, container, theme, documentType) {
654
- const quality = await this._assessBlobQuality(imageData);
655
- this.showPreview(container, theme, imageData, documentType, quality, false);
590
+ handleFileUploadComplete(imageData, container, theme, documentType) {
591
+ this.showPreview(container, theme, imageData, documentType, false);
656
592
  }
657
593
  validateFile(file) {
658
594
  // Check file type
@@ -660,10 +596,11 @@ export class DocumentCapture {
660
596
  if (!allowedTypes.includes(file.type)) {
661
597
  return "Invalid file type. Please upload a JPEG or PNG image.";
662
598
  }
663
- // Check file size (max 10MB)
664
- const maxSize = 10 * 1024 * 1024;
665
- if (file.size > maxSize) {
666
- return "File is too large. Please upload an image smaller than 10MB.";
599
+ // Anything under this is sent completely untouched (see proceedWithPhoto /
600
+ // the file-input handler) this is the real backend upload ceiling, not
601
+ // a quality target, so it must match MAX_DOCUMENT_BYTES exactly.
602
+ if (file.size > MAX_DOCUMENT_BYTES) {
603
+ return `File is too large. Please upload an image smaller than ${Math.round(MAX_DOCUMENT_BYTES / (1024 * 1024))}MB.`;
667
604
  }
668
605
  // Check minimum file size (at least 1KB to avoid empty files)
669
606
  if (file.size < 1024) {
@@ -671,6 +608,25 @@ export class DocumentCapture {
671
608
  }
672
609
  return null;
673
610
  }
611
+ /**
612
+ * Only shrinks/re-encodes when the file exceeds the backend's real upload
613
+ * ceiling — otherwise returns the original bytes completely untouched.
614
+ * Document photos become the face-comparison reference image later
615
+ * (see backend _crop_and_save_face), so any avoidable re-encode is a
616
+ * quality loss with no upside; compression here exists solely to keep
617
+ * oversized captures under MAX_DOCUMENT_BYTES, not to "optimize" images
618
+ * that already fit.
619
+ */
620
+ async ensureUnderUploadLimit(source) {
621
+ if (source.size <= MAX_DOCUMENT_BYTES)
622
+ return source;
623
+ try {
624
+ return await this.compressImage(source, DOC_CAMERA_IDEAL_WIDTH, DOC_CAMERA_IDEAL_HEIGHT, 0.92);
625
+ }
626
+ catch {
627
+ return source; // fall back to the original rather than block the user
628
+ }
629
+ }
674
630
  handleFileUpload(container, theme) {
675
631
  const input = this.root?.querySelector("#sc-doc-file-input");
676
632
  if (input)
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentCapture.js","sourceRoot":"","sources":["../../../src/flow/DocumentCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentCapture.js","sourceRoot":"","sources":["../../../src/flow/DocumentCapture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIxF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU/C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CAC7C;AA0QD,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAoC;IAGjD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,UAAU,CAA+B;IAGjD,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,qBAAqB,CAA6D;IAC1F,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,gBAAgB,CAAqB;IAK7C,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,eAAe,CAA6C;IAGpE,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IAGxC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,UAAU,CAAc;IAGhC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,gBAAgB,CAAc;IACtC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,gBAAgB,CAA4B;IAGpD,OAAO,CAAC,aAAa,CAA8C;IAGnE,OAAO,CAAC,YAAY,CAA8C;IAGlE,OAAO,CAAC,kBAAkB,CAA8C;IAGxE,OAAO,CAAC,gBAAgB,CAA8C;IAGtE,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO;IAUP;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe;IAOlD;;OAEG;IACH,KAAK,IAAI,IAAI;IAkDb,OAAO,CAAC,KAAK;YAkGC,UAAU;IA4CxB,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,QAAQ;IAmChB,OAAO,CAAC,UAAU;IA4ElB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IA0IrB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,kBAAkB;IAoF1B,OAAO,CAAC,aAAa;IAuWrB,OAAO,CAAC,qBAAqB;IAqD7B,OAAO,CAAC,qBAAqB;IA+E7B,OAAO,CAAC,qBAAqB;IA8H7B,OAAO,CAAC,aAAa;IA6GrB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,UAAU;IA+ClB,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,cAAc;IAUtB;;OAEG;YACW,4BAA4B;IAiB1C;;OAEG;YACW,mBAAmB;IA+GjC,OAAO,CAAC,6BAA6B;IA8DrC,OAAO,CAAC,cAAc;IAwFtB,OAAO,CAAC,aAAa;IAsGrB,OAAO,CAAC,YAAY;IAmGpB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IAkDxB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAmB7B,sGAAsG;IACtG,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,cAAc;IAkFtB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,YAAY;CAiCrB"}
1
+ {"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"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"}
@@ -48,9 +48,19 @@ function resolveIdTypeInfo(typeName, isDocumentFlow) {
48
48
  if (u.includes("BVN") || u.includes("BANK VERIFICATION")) {
49
49
  return { icon: "🏦", desc: "Enter your 11-digit Bank Verification Number (BVN)", requiresBack: false };
50
50
  }
51
- // NIN — always 11 digits (covers nin_with_face, NIN slip, etc.)
51
+ // NIN — always 11 digits (covers nin_with_face, NIN slip, etc.). Not every
52
+ // physical NIN card in circulation has meaningful back-side content, so
53
+ // the back photo is offered but optional rather than required — the
54
+ // plain data-verification flow (just typing the 11-digit number, no
55
+ // document) never captures a photo at all, so requiresBack stays false there.
52
56
  if (u.includes("NIN") || u.includes("NATIONAL IDENTITY NUMBER")) {
53
- return { icon: "🆔", desc: "Enter your 11-digit National Identification Number (NIN)", requiresBack: false };
57
+ return {
58
+ icon: "🆔",
59
+ desc: isDocumentFlow
60
+ ? "Capture or upload your NIN card (back optional)"
61
+ : "Enter your 11-digit National Identification Number (NIN)",
62
+ requiresBack: isDocumentFlow ? "optional" : false,
63
+ };
54
64
  }
55
65
  // Ghana Card / Ghana National ID
56
66
  if (u.includes("GHANA")) {
@@ -782,9 +792,11 @@ export class SmartComplyFlow {
782
792
  // Prefer the backend-provided back-side flag; fall back to local heuristics only when absent.
783
793
  const requiresBackFromBackend = typeof idType !== "string" ? idType.requires_back_side : undefined;
784
794
  const requiresBack = requiresBackFromBackend ?? info.requiresBack;
785
- // Add back side indicator to subtitle if needed
795
+ // Add back side indicator to subtitle if needed (only when strictly
796
+ // required — "optional" already reads correctly from info.desc, e.g.
797
+ // NIN's "back optional", and must not be overwritten with this warning).
786
798
  let subtitle = info.desc;
787
- if (requiresBack && isThisDocFlow) {
799
+ if (requiresBack === true && isThisDocFlow) {
788
800
  subtitle += " ⚠️ Both sides required";
789
801
  }
790
802
  // Clean display name — strip "with face", "(NIN)", "(BVN)" from user-visible label
@@ -1808,7 +1820,7 @@ export class SmartComplyFlow {
1808
1820
  container.appendChild(title);
1809
1821
  const desc = document.createElement("div");
1810
1822
  desc.style.cssText = `color:${this.theme.textSecondary};font-size:13px;margin-top:-8px;line-height:1.5;`;
1811
- desc.textContent = "Position your face in the oval and follow the on-screen instructions.";
1823
+ desc.textContent = "Fit your face inside the oval, then blink naturally while looking around for a few seconds.";
1812
1824
  container.appendChild(desc);
1813
1825
  // Liveness mount point
1814
1826
  const livenessContainer = document.createElement("div");