smartcomply-web-sdk 1.0.3 → 1.0.4

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 (130) hide show
  1. package/README.md +43 -0
  2. package/dist/esm/camera/ActionDetector.d.ts +26 -0
  3. package/dist/esm/camera/ActionDetector.d.ts.map +1 -0
  4. package/dist/esm/camera/ActionDetector.js +110 -0
  5. package/dist/esm/camera/ActionDetector.js.map +1 -0
  6. package/dist/esm/camera/CameraManager.d.ts +7 -0
  7. package/dist/esm/camera/CameraManager.d.ts.map +1 -0
  8. package/dist/esm/camera/CameraManager.js +27 -0
  9. package/dist/esm/camera/CameraManager.js.map +1 -0
  10. package/dist/esm/camera/FaceDetector.d.ts +12 -0
  11. package/dist/esm/camera/FaceDetector.d.ts.map +1 -0
  12. package/dist/esm/camera/FaceDetector.js +51 -0
  13. package/dist/esm/camera/FaceDetector.js.map +1 -0
  14. package/dist/esm/camera/Permission.d.ts +42 -0
  15. package/dist/esm/camera/Permission.d.ts.map +1 -0
  16. package/dist/esm/camera/Permission.js +101 -0
  17. package/dist/esm/camera/Permission.js.map +1 -0
  18. package/dist/esm/camera/VideoRecorder.d.ts +12 -0
  19. package/dist/esm/camera/VideoRecorder.d.ts.map +1 -0
  20. package/dist/esm/camera/VideoRecorder.js +47 -0
  21. package/dist/esm/camera/VideoRecorder.js.map +1 -0
  22. package/dist/esm/client/Config.d.ts +9 -0
  23. package/dist/esm/client/Config.d.ts.map +1 -0
  24. package/dist/esm/client/Config.js +5 -0
  25. package/dist/esm/client/Config.js.map +1 -0
  26. package/dist/esm/client/HttpClient.d.ts +44 -0
  27. package/dist/esm/client/HttpClient.d.ts.map +1 -0
  28. package/dist/esm/client/HttpClient.js +145 -0
  29. package/dist/esm/client/HttpClient.js.map +1 -0
  30. package/dist/esm/client/Smartcomply.d.ts +50 -0
  31. package/dist/esm/client/Smartcomply.d.ts.map +1 -0
  32. package/dist/esm/client/Smartcomply.js +73 -0
  33. package/dist/esm/client/Smartcomply.js.map +1 -0
  34. package/dist/esm/components/CameraView.d.ts +59 -0
  35. package/dist/esm/components/CameraView.d.ts.map +1 -0
  36. package/dist/esm/components/CameraView.js +238 -0
  37. package/dist/esm/components/CameraView.js.map +1 -0
  38. package/dist/esm/components/DocumentUpload.d.ts +21 -0
  39. package/dist/esm/components/DocumentUpload.d.ts.map +1 -0
  40. package/dist/esm/components/DocumentUpload.js +216 -0
  41. package/dist/esm/components/DocumentUpload.js.map +1 -0
  42. package/dist/esm/errors/AuthError.d.ts +8 -0
  43. package/dist/esm/errors/AuthError.d.ts.map +1 -0
  44. package/dist/esm/errors/AuthError.js +11 -0
  45. package/dist/esm/errors/AuthError.js.map +1 -0
  46. package/dist/esm/errors/NetworkError.d.ts +8 -0
  47. package/dist/esm/errors/NetworkError.d.ts.map +1 -0
  48. package/dist/esm/errors/NetworkError.js +11 -0
  49. package/dist/esm/errors/NetworkError.js.map +1 -0
  50. package/dist/esm/errors/SDKError.d.ts +7 -0
  51. package/dist/esm/errors/SDKError.d.ts.map +1 -0
  52. package/dist/esm/errors/SDKError.js +10 -0
  53. package/dist/esm/errors/SDKError.js.map +1 -0
  54. package/dist/esm/flow/DocumentCapture.d.ts +54 -0
  55. package/dist/esm/flow/DocumentCapture.d.ts.map +1 -0
  56. package/dist/esm/flow/DocumentCapture.js +797 -0
  57. package/dist/esm/flow/DocumentCapture.js.map +1 -0
  58. package/dist/esm/flow/SmartComplyFlow.d.ts +104 -0
  59. package/dist/esm/flow/SmartComplyFlow.d.ts.map +1 -0
  60. package/dist/esm/flow/SmartComplyFlow.js +1722 -0
  61. package/dist/esm/flow/SmartComplyFlow.js.map +1 -0
  62. package/dist/esm/flow/theme.d.ts +30 -0
  63. package/dist/esm/flow/theme.d.ts.map +1 -0
  64. package/dist/esm/flow/theme.js +99 -0
  65. package/dist/esm/flow/theme.js.map +1 -0
  66. package/dist/esm/index.d.ts +20 -0
  67. package/dist/esm/index.d.ts.map +1 -0
  68. package/dist/esm/index.js +15 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/modules/liveness/LivenessUI.d.ts +46 -0
  71. package/dist/esm/modules/liveness/LivenessUI.d.ts.map +1 -0
  72. package/dist/esm/modules/liveness/LivenessUI.js +605 -0
  73. package/dist/esm/modules/liveness/LivenessUI.js.map +1 -0
  74. package/dist/esm/modules/liveness/index.d.ts +5 -0
  75. package/dist/esm/modules/liveness/index.d.ts.map +1 -0
  76. package/dist/esm/modules/liveness/index.js +4 -0
  77. package/dist/esm/modules/liveness/index.js.map +1 -0
  78. package/dist/esm/modules/liveness/liveness.d.ts +85 -0
  79. package/dist/esm/modules/liveness/liveness.d.ts.map +1 -0
  80. package/dist/esm/modules/liveness/liveness.js +421 -0
  81. package/dist/esm/modules/liveness/liveness.js.map +1 -0
  82. package/dist/esm/modules/liveness/uploader.d.ts +34 -0
  83. package/dist/esm/modules/liveness/uploader.d.ts.map +1 -0
  84. package/dist/esm/modules/liveness/uploader.js +102 -0
  85. package/dist/esm/modules/liveness/uploader.js.map +1 -0
  86. package/dist/esm/modules/onboarding/index.d.ts +2 -0
  87. package/dist/esm/modules/onboarding/index.d.ts.map +1 -0
  88. package/dist/esm/modules/onboarding/index.js +2 -0
  89. package/dist/esm/modules/onboarding/index.js.map +1 -0
  90. package/dist/esm/modules/onboarding/onboarding.d.ts +25 -0
  91. package/dist/esm/modules/onboarding/onboarding.d.ts.map +1 -0
  92. package/dist/esm/modules/onboarding/onboarding.js +29 -0
  93. package/dist/esm/modules/onboarding/onboarding.js.map +1 -0
  94. package/dist/esm/types/common.d.ts +27 -0
  95. package/dist/esm/types/common.d.ts.map +1 -0
  96. package/dist/esm/types/common.js +2 -0
  97. package/dist/esm/types/common.js.map +1 -0
  98. package/dist/esm/types/liveness.d.ts +142 -0
  99. package/dist/esm/types/liveness.d.ts.map +1 -0
  100. package/dist/esm/types/liveness.js +2 -0
  101. package/dist/esm/types/liveness.js.map +1 -0
  102. package/dist/esm/types/onboarding.d.ts +53 -0
  103. package/dist/esm/types/onboarding.d.ts.map +1 -0
  104. package/dist/esm/types/onboarding.js +2 -0
  105. package/dist/esm/types/onboarding.js.map +1 -0
  106. package/dist/esm/types/quality.d.ts +23 -0
  107. package/dist/esm/types/quality.d.ts.map +1 -0
  108. package/dist/esm/types/quality.js +5 -0
  109. package/dist/esm/types/quality.js.map +1 -0
  110. package/dist/esm/utils/ImageQuality.d.ts +48 -0
  111. package/dist/esm/utils/ImageQuality.d.ts.map +1 -0
  112. package/dist/esm/utils/ImageQuality.js +177 -0
  113. package/dist/esm/utils/ImageQuality.js.map +1 -0
  114. package/dist/esm/utils/constants.d.ts +59 -0
  115. package/dist/esm/utils/constants.d.ts.map +1 -0
  116. package/dist/esm/utils/constants.js +67 -0
  117. package/dist/esm/utils/constants.js.map +1 -0
  118. package/dist/esm/utils/device.d.ts +14 -0
  119. package/dist/esm/utils/device.d.ts.map +1 -0
  120. package/dist/esm/utils/device.js +52 -0
  121. package/dist/esm/utils/device.js.map +1 -0
  122. package/dist/esm/utils/logger.d.ts +28 -0
  123. package/dist/esm/utils/logger.d.ts.map +1 -0
  124. package/dist/esm/utils/logger.js +64 -0
  125. package/dist/esm/utils/logger.js.map +1 -0
  126. package/dist/esm/utils/validator.d.ts +35 -0
  127. package/dist/esm/utils/validator.d.ts.map +1 -0
  128. package/dist/esm/utils/validator.js +102 -0
  129. package/dist/esm/utils/validator.js.map +1 -0
  130. package/package.json +13 -5
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Simple document upload component
3
+ * Shows file input immediately without camera permission
4
+ */
5
+ export class DocumentUpload {
6
+ constructor(container, options = {}) {
7
+ this.previewImage = null;
8
+ this.container = container;
9
+ this.options = options;
10
+ }
11
+ render(theme) {
12
+ // Clear container
13
+ this.container.innerHTML = "";
14
+ // Upload area
15
+ const uploadArea = document.createElement("div");
16
+ uploadArea.style.cssText = `
17
+ width: 100%;
18
+ height: 100%;
19
+ display: flex;
20
+ flex-direction: column;
21
+ align-items: center;
22
+ justify-content: center;
23
+ border: 2px dashed ${theme.border};
24
+ border-radius: 12px;
25
+ background: ${theme.cardBg};
26
+ padding: 40px 20px;
27
+ cursor: pointer;
28
+ transition: border-color 0.2s, background 0.2s;
29
+ `;
30
+ // Hover effect
31
+ uploadArea.addEventListener("mouseenter", () => {
32
+ uploadArea.style.borderColor = theme.primary;
33
+ uploadArea.style.background = theme.surface || theme.cardBg;
34
+ });
35
+ uploadArea.addEventListener("mouseleave", () => {
36
+ uploadArea.style.borderColor = theme.border;
37
+ uploadArea.style.background = theme.cardBg;
38
+ });
39
+ // Icon
40
+ const icon = document.createElement("div");
41
+ icon.textContent = "📁";
42
+ icon.style.cssText = `
43
+ font-size: 48px;
44
+ margin-bottom: 16px;
45
+ `;
46
+ uploadArea.appendChild(icon);
47
+ // Title
48
+ const title = document.createElement("div");
49
+ title.textContent = "Upload Document";
50
+ title.style.cssText = `
51
+ font-size: 16px;
52
+ font-weight: 600;
53
+ color: ${theme.text};
54
+ margin-bottom: 8px;
55
+ `;
56
+ uploadArea.appendChild(title);
57
+ // Subtitle
58
+ const subtitle = document.createElement("div");
59
+ subtitle.textContent = "Click to select or drag & drop";
60
+ subtitle.style.cssText = `
61
+ font-size: 13px;
62
+ color: ${theme.textSecondary};
63
+ margin-bottom: 16px;
64
+ `;
65
+ uploadArea.appendChild(subtitle);
66
+ // Or divider
67
+ const divider = document.createElement("div");
68
+ divider.style.cssText = `
69
+ width: 100%;
70
+ max-width: 200px;
71
+ display: flex;
72
+ align-items: center;
73
+ gap: 12px;
74
+ margin: 8px 0 16px;
75
+ `;
76
+ divider.innerHTML = `
77
+ <span style="flex:1;height:1px;background:${theme.border};"></span>
78
+ <span style="color:${theme.textSecondary};font-size:12px;">OR</span>
79
+ <span style="flex:1;height:1px;background:${theme.border};"></span>
80
+ `;
81
+ uploadArea.appendChild(divider);
82
+ // Camera button
83
+ const cameraBtn = document.createElement("button");
84
+ cameraBtn.textContent = "📷 Use Camera";
85
+ cameraBtn.style.cssText = `
86
+ padding: 10px 20px;
87
+ border-radius: 8px;
88
+ border: 1px solid ${theme.primary};
89
+ background: transparent;
90
+ color: ${theme.primary};
91
+ font-size: 14px;
92
+ cursor: pointer;
93
+ font-weight: 500;
94
+ `;
95
+ cameraBtn.addEventListener("click", (e) => {
96
+ e.stopPropagation();
97
+ this.options.onUseCamera?.();
98
+ });
99
+ uploadArea.appendChild(cameraBtn);
100
+ // Hidden file input
101
+ const fileInput = document.createElement("input");
102
+ fileInput.type = "file";
103
+ fileInput.accept = "image/*";
104
+ fileInput.style.display = "none";
105
+ uploadArea.appendChild(fileInput);
106
+ // Click handlers
107
+ uploadArea.addEventListener("click", (e) => {
108
+ if (e.target !== cameraBtn) {
109
+ fileInput.click();
110
+ }
111
+ });
112
+ // Drag and drop
113
+ uploadArea.addEventListener("dragover", (e) => {
114
+ e.preventDefault();
115
+ uploadArea.style.borderColor = theme.primary;
116
+ uploadArea.style.background = theme.surface || theme.cardBg;
117
+ });
118
+ uploadArea.addEventListener("dragleave", () => {
119
+ uploadArea.style.borderColor = theme.border;
120
+ uploadArea.style.background = theme.cardBg;
121
+ });
122
+ uploadArea.addEventListener("drop", (e) => {
123
+ e.preventDefault();
124
+ uploadArea.style.borderColor = theme.border;
125
+ uploadArea.style.background = theme.cardBg;
126
+ const files = e.dataTransfer?.files;
127
+ if (files && files.length > 0) {
128
+ this.handleFile(files[0]);
129
+ }
130
+ });
131
+ // File select
132
+ fileInput.addEventListener("change", () => {
133
+ if (fileInput.files && fileInput.files[0]) {
134
+ this.handleFile(fileInput.files[0]);
135
+ }
136
+ });
137
+ this.container.appendChild(uploadArea);
138
+ }
139
+ handleFile(file) {
140
+ if (!file.type.startsWith("image/")) {
141
+ this.options.onError?.("Please select an image file");
142
+ return;
143
+ }
144
+ // Show preview
145
+ this.showPreview(file);
146
+ // Notify
147
+ this.options.onFileSelect?.(file);
148
+ }
149
+ showPreview(file) {
150
+ const reader = new FileReader();
151
+ reader.onload = (e) => {
152
+ // Clear and show preview
153
+ this.container.innerHTML = "";
154
+ const previewContainer = document.createElement("div");
155
+ previewContainer.style.cssText = `
156
+ width: 100%;
157
+ height: 100%;
158
+ display: flex;
159
+ flex-direction: column;
160
+ align-items: center;
161
+ gap: 12px;
162
+ `;
163
+ // Image
164
+ const img = document.createElement("img");
165
+ img.src = e.target?.result;
166
+ img.style.cssText = `
167
+ max-width: 100%;
168
+ max-height: 70%;
169
+ object-fit: contain;
170
+ border-radius: 8px;
171
+ border: 1px solid ${this.getTheme().border};
172
+ `;
173
+ previewContainer.appendChild(img);
174
+ // File name
175
+ const name = document.createElement("div");
176
+ name.textContent = file.name;
177
+ name.style.cssText = `
178
+ font-size: 13px;
179
+ color: ${this.getTheme().textSecondary};
180
+ `;
181
+ previewContainer.appendChild(name);
182
+ // Change button
183
+ const changeBtn = document.createElement("button");
184
+ changeBtn.textContent = "Change File";
185
+ changeBtn.style.cssText = `
186
+ padding: 8px 16px;
187
+ border-radius: 6px;
188
+ border: 1px solid ${this.getTheme().border};
189
+ background: ${this.getTheme().cardBg};
190
+ color: ${this.getTheme().text};
191
+ font-size: 13px;
192
+ cursor: pointer;
193
+ `;
194
+ changeBtn.addEventListener("click", () => {
195
+ this.render(this.getTheme());
196
+ });
197
+ previewContainer.appendChild(changeBtn);
198
+ this.container.appendChild(previewContainer);
199
+ };
200
+ reader.readAsDataURL(file);
201
+ }
202
+ getTheme() {
203
+ // Default theme fallback
204
+ return {
205
+ primary: "#3b82f6",
206
+ text: "#1f2937",
207
+ textSecondary: "#6b7280",
208
+ border: "#e5e7eb",
209
+ cardBg: "#ffffff",
210
+ };
211
+ }
212
+ destroy() {
213
+ this.container.innerHTML = "";
214
+ }
215
+ }
216
+ //# sourceMappingURL=DocumentUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentUpload.js","sourceRoot":"","sources":["../../../src/components/DocumentUpload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { SDKError } from "./SDKError";
2
+ /**
3
+ * Thrown when authentication fails (invalid API key, expired session, etc).
4
+ */
5
+ export declare class AuthError extends SDKError {
6
+ constructor(message: string, errorCode?: string);
7
+ }
8
+ //# sourceMappingURL=AuthError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthError.d.ts","sourceRoot":"","sources":["../../../src/errors/AuthError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,qBAAa,SAAU,SAAQ,QAAQ;gBACzB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;CAIhD"}
@@ -0,0 +1,11 @@
1
+ import { SDKError } from "./SDKError";
2
+ /**
3
+ * Thrown when authentication fails (invalid API key, expired session, etc).
4
+ */
5
+ export class AuthError extends SDKError {
6
+ constructor(message, errorCode) {
7
+ super(message, 401, errorCode);
8
+ this.name = "AuthError";
9
+ }
10
+ }
11
+ //# sourceMappingURL=AuthError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthError.js","sourceRoot":"","sources":["../../../src/errors/AuthError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,QAAQ;IACrC,YAAY,OAAe,EAAE,SAAkB;QAC7C,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { SDKError } from "./SDKError";
2
+ /**
3
+ * Thrown when a network request fails (timeout, no connection, DNS failure, etc).
4
+ */
5
+ export declare class NetworkError extends SDKError {
6
+ constructor(message: string);
7
+ }
8
+ //# sourceMappingURL=NetworkError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkError.d.ts","sourceRoot":"","sources":["../../../src/errors/NetworkError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM;CAI5B"}
@@ -0,0 +1,11 @@
1
+ import { SDKError } from "./SDKError";
2
+ /**
3
+ * Thrown when a network request fails (timeout, no connection, DNS failure, etc).
4
+ */
5
+ export class NetworkError extends SDKError {
6
+ constructor(message) {
7
+ super(message, 0, "NETWORK_ERROR");
8
+ this.name = "NetworkError";
9
+ }
10
+ }
11
+ //# sourceMappingURL=NetworkError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkError.js","sourceRoot":"","sources":["../../../src/errors/NetworkError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export declare class SDKError extends Error {
2
+ statusCode: number;
3
+ errorCode?: string;
4
+ errorData?: Record<string, unknown>;
5
+ constructor(message: string, statusCode: number, errorCode?: string, errorData?: Record<string, unknown>);
6
+ }
7
+ //# sourceMappingURL=SDKError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDKError.d.ts","sourceRoot":"","sources":["../../../src/errors/SDKError.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGlC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQtC"}
@@ -0,0 +1,10 @@
1
+ export class SDKError extends Error {
2
+ constructor(message, statusCode, errorCode, errorData) {
3
+ super(message);
4
+ this.name = "SDKError";
5
+ this.statusCode = statusCode;
6
+ this.errorCode = errorCode;
7
+ this.errorData = errorData;
8
+ }
9
+ }
10
+ //# sourceMappingURL=SDKError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDKError.js","sourceRoot":"","sources":["../../../src/errors/SDKError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,QAAS,SAAQ,KAAK;IAKjC,YACE,OAAe,EACf,UAAkB,EAClB,SAAkB,EAClB,SAAmC;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ import { ThemeColors } from "./theme";
2
+ /**
3
+ * Document capture UI — camera-based or file-upload for ID documents.
4
+ *
5
+ * Supports:
6
+ * - Camera capture (rear camera preferred on mobile)
7
+ * - File upload fallback
8
+ * - Preview with retake/confirm
9
+ * - Front and back document capture for documents requiring both sides
10
+ */
11
+ export interface DocumentCaptureResult {
12
+ front: Blob;
13
+ back?: Blob;
14
+ }
15
+ export declare class DocumentCapture {
16
+ private root;
17
+ private videoEl;
18
+ private stream;
19
+ private resolveCapture;
20
+ private rejectCapture;
21
+ private frontBlob;
22
+ private backBlob;
23
+ private currentSide;
24
+ /**
25
+ * Mount the document capture UI and return a promise that resolves
26
+ * with the captured document image(s).
27
+ */
28
+ capture(container: HTMLElement, theme: ThemeColors, documentType: string): Promise<DocumentCaptureResult>;
29
+ destroy(): void;
30
+ private requiresBackSide;
31
+ private renderChoiceScreen;
32
+ private renderCameraView;
33
+ private openCamera;
34
+ private getCameraErrorMessage;
35
+ private captureFrame;
36
+ private showPreview;
37
+ private handleCaptureComplete;
38
+ private handleFileUploadComplete;
39
+ private validateFile;
40
+ private handleFileUpload;
41
+ private stopCamera;
42
+ private createEnhancedButton;
43
+ private showLoadingState;
44
+ private showError;
45
+ private createButton;
46
+ private compressImage;
47
+ /**
48
+ * Read JPEG EXIF orientation tag (1–8) from a Blob/File.
49
+ * Returns 1 (no rotation) if EXIF is absent or unreadable.
50
+ */
51
+ private _readExifOrientation;
52
+ private getDocumentLabel;
53
+ }
54
+ //# sourceMappingURL=DocumentCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentCapture.d.ts","sourceRoot":"","sources":["../../../src/flow/DocumentCapture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,WAAW,CAA6B;IAEhD;;;OAGG;IACH,OAAO,CACL,SAAS,EAAE,WAAW,EACtB,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,CAAC;IA+BjC,OAAO,IAAI,IAAI;IAuBf,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,kBAAkB;IAoL1B,OAAO,CAAC,gBAAgB;YAuEV,UAAU;IAsDxB,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,WAAW;IAqEnB,OAAO,CAAC,qBAAqB;IAqC7B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,oBAAoB;IA0E5B,OAAO,CAAC,gBAAgB;IAwDxB,OAAO,CAAC,SAAS;IAgCjB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,aAAa;IA4ErB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuC5B,OAAO,CAAC,gBAAgB;CASzB"}