@regulaforensics/vp-frontend-document-components 1.2.0 → 2.0.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 (91) hide show
  1. package/README.md +660 -81
  2. package/dist/main.js +1 -1
  3. package/dist/main.js.LICENSE.txt +41 -0
  4. package/esm/main.js +2 -0
  5. package/esm/main.js.LICENSE.txt +41 -0
  6. package/lib/common/BackCameraIcon.d.ts +6 -0
  7. package/lib/common/Button.d.ts +7 -0
  8. package/lib/common/CameraChangeIcon.d.ts +6 -0
  9. package/lib/common/CameraIcon.d.ts +6 -0
  10. package/lib/common/CheckIcon.d.ts +6 -0
  11. package/lib/common/CrossIcon.d.ts +6 -0
  12. package/lib/common/DocReaderCameraDisabled.d.ts +5 -0
  13. package/lib/common/DocReaderCameraPreparing.d.ts +5 -0
  14. package/lib/common/DocReaderFlip.d.ts +5 -0
  15. package/lib/common/DocReaderProcessing.d.ts +5 -0
  16. package/lib/common/DocReaderProcessingError.d.ts +5 -0
  17. package/lib/common/DocReaderProcessingFinished.d.ts +6 -0
  18. package/lib/common/DocReaderSearch.d.ts +5 -0
  19. package/lib/common/ErrorIcon.d.ts +6 -0
  20. package/lib/common/FromCameraIcon.d.ts +5 -0
  21. package/lib/common/FromGalleryIcon.d.ts +5 -0
  22. package/lib/common/FrontCameraIcon.d.ts +6 -0
  23. package/lib/common/FullscreenExitIcon.d.ts +6 -0
  24. package/lib/common/FullscreenIcon.d.ts +6 -0
  25. package/lib/common/Icon.d.ts +7 -0
  26. package/lib/common/InstructionIconFaceDetection.d.ts +5 -0
  27. package/lib/common/InstructionIconFaceLiveness.d.ts +5 -0
  28. package/lib/common/Message.d.ts +7 -0
  29. package/lib/common/NoGlareIcon.d.ts +5 -0
  30. package/lib/common/NoSmilingIcon.d.ts +5 -0
  31. package/lib/common/RegulaLogo.d.ts +6 -0
  32. package/lib/common/SnapshotIcon.d.ts +6 -0
  33. package/lib/common/Spinner.d.ts +3 -0
  34. package/lib/common/SquareIcon.d.ts +6 -0
  35. package/lib/common/StopIcon.d.ts +6 -0
  36. package/lib/common/VerifiedIcon.d.ts +6 -0
  37. package/lib/components/CameraCapture.d.ts +9 -0
  38. package/lib/components/CameraSnapshot.d.ts +2 -0
  39. package/lib/components/CameraSnapshotFileCapture.d.ts +10 -0
  40. package/lib/components/DocumentCapture.d.ts +10 -0
  41. package/lib/components/DocumentFullScreenOverlay.d.ts +11 -0
  42. package/lib/components/DocumentReader.d.ts +2 -0
  43. package/lib/components/DocumentReaderFileCapture.d.ts +12 -0
  44. package/lib/components/DocumentReaderLayout.d.ts +22 -0
  45. package/lib/components/DocumentReaderStartScreen.d.ts +10 -0
  46. package/lib/components/ErrorBoundary.d.ts +18 -0
  47. package/lib/components/FaceCapture.d.ts +15 -0
  48. package/lib/components/FaceDetection.d.ts +2 -0
  49. package/lib/components/FaceFullScreenOverlay.d.ts +11 -0
  50. package/lib/components/FaceLayout.d.ts +18 -0
  51. package/lib/components/FaceLiveness.d.ts +2 -0
  52. package/lib/components/InfoScreen.d.ts +10 -0
  53. package/lib/components/InstructionScreen.d.ts +9 -0
  54. package/lib/components/ProcessScreen.d.ts +6 -0
  55. package/lib/components/RetryScreen.d.ts +7 -0
  56. package/lib/components/WebCamera.d.ts +19 -0
  57. package/lib/constants.d.ts +568 -0
  58. package/lib/contexts/DocumentAttributesContext.d.ts +24 -0
  59. package/lib/contexts/DocumentSDKContext.d.ts +6 -0
  60. package/lib/contexts/FaceAttributesContext.d.ts +21 -0
  61. package/lib/hoc/withDocumentAttributesContext.d.ts +4 -0
  62. package/lib/hoc/withDocumentSDKContext.d.ts +3 -0
  63. package/lib/hoc/withFaceAttributesContext.d.ts +4 -0
  64. package/lib/hoc/withLocalize.d.ts +7 -0
  65. package/lib/hooks/useDocumentReaderSeries.d.ts +25 -0
  66. package/lib/hooks/useDocumentReaderSingle.d.ts +15 -0
  67. package/lib/hooks/useFaceLiveness.d.ts +30 -0
  68. package/lib/hooks/useImageInputParam.d.ts +9 -0
  69. package/lib/hooks/useOrientationChange.d.ts +10 -0
  70. package/lib/hooks/useStream.d.ts +10 -0
  71. package/lib/hooks/useUserAgent.d.ts +3 -0
  72. package/lib/hooks/useWindowBlur.d.ts +2 -0
  73. package/lib/i18n/dictionaries/_dictionaries.d.ts +2115 -0
  74. package/lib/index-document.d.ts +5 -0
  75. package/lib/models/CameraModel.d.ts +9 -0
  76. package/lib/models/CustomError.d.ts +7 -0
  77. package/lib/models/ImageModel.d.ts +7 -0
  78. package/lib/services/DebugService.d.ts +13 -0
  79. package/lib/services/DocumentReaderProcessor.d.ts +53 -0
  80. package/lib/services/DocumentReaderService.d.ts +44 -0
  81. package/lib/services/EventEmitter.d.ts +9 -0
  82. package/lib/services/FaceLivenessService.d.ts +43 -0
  83. package/lib/services/FaceService.d.ts +12 -0
  84. package/lib/types.d.ts +323 -0
  85. package/lib/utils.d.ts +27 -0
  86. package/lib/web-components/CameraSnapshot.d.ts +11 -0
  87. package/lib/web-components/DocumentReader.d.ts +11 -0
  88. package/lib/web-components/FaceDetection.d.ts +11 -0
  89. package/lib/web-components/FaceLiveness.d.ts +14 -0
  90. package/lib/web-components/FullScreenContainer.d.ts +4 -0
  91. package/package.json +63 -69
@@ -0,0 +1,5 @@
1
+ import '@webcomponents/webcomponentsjs/webcomponents-bundle.js';
2
+ import DocumentReaderService from './services/DocumentReaderService';
3
+ import DocumentReaderProcessor from './services/DocumentReaderProcessor';
4
+ declare function defineComponents(): Promise<Awaited<CustomElementConstructor>[]>;
5
+ export { DocumentReaderService, DocumentReaderProcessor, defineComponents };
@@ -0,0 +1,9 @@
1
+ import { FacingModeType } from '../types';
2
+ declare class CameraModel {
3
+ readonly deviceId: string;
4
+ readonly facing?: FacingModeType;
5
+ readonly groupId: string;
6
+ readonly label: string;
7
+ constructor(mdi: MediaDeviceInfo, facing?: FacingModeType);
8
+ }
9
+ export default CameraModel;
@@ -0,0 +1,7 @@
1
+ import { ErrorTypes } from '../constants';
2
+ declare class CustomError {
3
+ type: ErrorTypes;
4
+ details?: any;
5
+ constructor(type: ErrorTypes, details?: any);
6
+ }
7
+ export default CustomError;
@@ -0,0 +1,7 @@
1
+ declare class ImageModel {
2
+ readonly mimeType: string;
3
+ readonly raw: string;
4
+ readonly extension: string;
5
+ constructor(dataURL: string);
6
+ }
7
+ export default ImageModel;
@@ -0,0 +1,13 @@
1
+ import { logLevels } from '../constants';
2
+ declare class DebugService {
3
+ private readonly logLvl;
4
+ constructor(logLvl: logLevels);
5
+ private log;
6
+ private time;
7
+ debug(message: string, ...optionalParams: Array<any>): void;
8
+ info(message: string, ...optionalParams: Array<any>): void;
9
+ warn(message: string, ...optionalParams: Array<any>): void;
10
+ error(message: string, ...optionalParams: Array<any>): void;
11
+ }
12
+ declare const _default: DebugService;
13
+ export default _default;
@@ -0,0 +1,53 @@
1
+ import { CurrentPage, FacingModeType, SDKImageProcessingRequest, SDKRecognizerProcessingRequest, WidthAndHeight } from '../types';
2
+ import { Response } from '@regulaforensics/document-reader-webclient';
3
+ declare type ServiceListener = ((data: Response) => void) | null;
4
+ declare type ResponseListener = (currentPage: CurrentPage) => void;
5
+ declare type StreamSettings = Partial<StreamParams>;
6
+ declare type StreamParams = {
7
+ cameraMode: FacingModeType;
8
+ preferredCameraId: string;
9
+ resolution: WidthAndHeight;
10
+ };
11
+ declare class DocumentReaderProcessor {
12
+ private _videoElement;
13
+ private _stream;
14
+ private _documentReaderService;
15
+ private _canvas;
16
+ private _streamParam;
17
+ private _frameSizes;
18
+ private _recognizerProcessParam;
19
+ private _imageProcessParam;
20
+ private _videoEventListener;
21
+ private _recognizerListener;
22
+ private _isPrepared;
23
+ private _isInitialized;
24
+ private _isProcessing;
25
+ constructor(videoElement?: HTMLVideoElement);
26
+ get streamParam(): StreamParams;
27
+ set streamParam(params: Partial<StreamSettings>);
28
+ get recognizerProcessParam(): SDKRecognizerProcessingRequest;
29
+ set recognizerProcessParam(params: SDKRecognizerProcessingRequest);
30
+ get imageProcessParam(): SDKImageProcessingRequest;
31
+ set imageProcessParam(params: SDKImageProcessingRequest);
32
+ get recognizeListener(): ServiceListener;
33
+ set recognizeListener(listener: ServiceListener);
34
+ set videoElement(videoElement: HTMLVideoElement | null);
35
+ get videoElement(): HTMLVideoElement | null;
36
+ get isPrepared(): boolean;
37
+ get isInitialized(): boolean;
38
+ get isProcessing(): boolean;
39
+ private get processRequest();
40
+ private startStream;
41
+ private detect;
42
+ private startNewPage;
43
+ private startNewDocument;
44
+ startRecognition(responseListener?: ResponseListener): Promise<Response>;
45
+ processImage(images: FileList | Array<Blob>): Promise<Response>;
46
+ stopRecognition(): void;
47
+ prepare(): Promise<void>;
48
+ initialize(license?: {
49
+ license: string | undefined;
50
+ }): Promise<void>;
51
+ shutdown(): void;
52
+ }
53
+ export default DocumentReaderProcessor;
@@ -0,0 +1,44 @@
1
+ import { DocumentCommandCode } from '../constants';
2
+ import { DocumentReaderRequest } from '../types';
3
+ import { Response } from '@regulaforensics/document-reader-webclient';
4
+ declare type PrepareData = {
5
+ isInitialized: boolean;
6
+ isPrepared: boolean;
7
+ };
8
+ declare type PrepareListener = (status: PrepareData) => void;
9
+ declare class DocumentReaderService {
10
+ private _isPrepared;
11
+ private _isInitialized;
12
+ private _isProcessing;
13
+ private _worker;
14
+ private _prepareListener;
15
+ private _currentPromise;
16
+ constructor();
17
+ get isInitialized(): boolean;
18
+ private set isInitialized(value);
19
+ get isPrepared(): boolean;
20
+ private set isPrepared(value);
21
+ get isProcessing(): boolean;
22
+ get prepareListener(): PrepareListener | null;
23
+ set prepareListener(listener: PrepareListener | null);
24
+ private postCustomMessage;
25
+ private createProcessImageRequest;
26
+ private createPromise;
27
+ private finishPromise;
28
+ private rejectPromise;
29
+ private print;
30
+ private printErr;
31
+ private onWorkerMessage;
32
+ private callPrepareListener;
33
+ prepare(): Promise<void>;
34
+ initialize(initData?: {
35
+ license: string | undefined;
36
+ }): Promise<void>;
37
+ processImage(base64ImagesArray: Array<string>, params: DocumentReaderRequest): Promise<Response>;
38
+ process(imageDataArray: Array<ImageData>, request: DocumentReaderRequest, commandCode: DocumentCommandCode): Promise<Response>;
39
+ startNewPage(): Promise<void>;
40
+ startNewDocument(): Promise<void>;
41
+ shutdown(): void;
42
+ showVersion(): void;
43
+ }
44
+ export default DocumentReaderService;
@@ -0,0 +1,9 @@
1
+ declare class EventEmitter {
2
+ callbacks: Record<string, any>;
3
+ constructor();
4
+ on(event: string, cb: (data: any) => any): void;
5
+ emit(event: string, data: any): void;
6
+ unsubscribe(event: string, listener: any): void;
7
+ unsubscribeAll(): void;
8
+ }
9
+ export default EventEmitter;
@@ -0,0 +1,43 @@
1
+ import { UserAgentType } from '../types';
2
+ import EventEmitter from './EventEmitter';
3
+ import CameraModel from '../models/CameraModel';
4
+ declare type MetadataType = {
5
+ metadata: {
6
+ hostAppId: string;
7
+ sdkVersion: string;
8
+ deviceModel: string;
9
+ camera: CameraModel;
10
+ };
11
+ try_id?: number;
12
+ guid?: string;
13
+ userAgent: UserAgentType;
14
+ mode?: number;
15
+ };
16
+ declare class FaceLivenessService {
17
+ initialized: boolean;
18
+ processing: boolean;
19
+ prepared: boolean;
20
+ worker: Worker | null;
21
+ params: {
22
+ width: number;
23
+ height: number;
24
+ metadata?: MetadataType;
25
+ };
26
+ eventEmitter: EventEmitter;
27
+ constructor();
28
+ prepare(listener: (data: any) => void): Promise<void>;
29
+ initialize(params: {
30
+ width: number;
31
+ height: number;
32
+ metadata: MetadataType;
33
+ debug?: boolean;
34
+ }): void;
35
+ private postCustomMessage;
36
+ private emit;
37
+ private print;
38
+ private printErr;
39
+ private onWorkerMessage;
40
+ shutdown(): void;
41
+ processImage(videoFrame: Uint8ClampedArray): void;
42
+ }
43
+ export default FaceLivenessService;
@@ -0,0 +1,12 @@
1
+ import { FaceLivenessResultType } from '../types';
2
+ declare type GetLivenessResultOptions = {
3
+ uuid: string;
4
+ try_id: number;
5
+ backendURL?: string;
6
+ headers?: Record<string, string>;
7
+ };
8
+ declare function getLivenessResult(encryptedBody: Uint8Array, { uuid, try_id, backendURL, headers }: GetLivenessResultOptions): Promise<FaceLivenessResultType>;
9
+ declare const _default: {
10
+ getLivenessResult: typeof getLivenessResult;
11
+ };
12
+ export default _default;
package/lib/types.d.ts ADDED
@@ -0,0 +1,323 @@
1
+ import { Response } from '@regulaforensics/document-reader-webclient';
2
+ import { DocumentEventActions, FaceEventActions, InternalScenarios, ObjectFit, ResponseCode, StreamStatus, ErrorTypes, CameraFacingMode } from './constants';
3
+ import CameraModel from './models/CameraModel';
4
+ export declare type XY = {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ export declare type Oval = {
9
+ axisX: number;
10
+ axisY: number;
11
+ center: XY;
12
+ };
13
+ export declare type FrameObject = {
14
+ left: number;
15
+ top: number;
16
+ width: number;
17
+ height: number;
18
+ };
19
+ export declare type WidthAndHeight = {
20
+ width: number;
21
+ height: number;
22
+ };
23
+ export declare type VideoParamsType = {
24
+ videoElement: HTMLVideoElement | null;
25
+ videoParams: WidthAndHeight;
26
+ videoContainerParams: WidthAndHeight;
27
+ };
28
+ export declare type FacingModeType = keyof typeof CameraFacingMode;
29
+ export declare type VideoStatusParamsType = {
30
+ videoStatus: StreamStatus;
31
+ camera: CameraTypes;
32
+ twoFacingModesAvailable: boolean;
33
+ };
34
+ export declare type CaptureFrameType = {
35
+ imageData: Array<ImageData>;
36
+ raw: string;
37
+ mimeType: string;
38
+ };
39
+ export declare type CaptureType = Array<Omit<CaptureFrameType, 'imageData'>>;
40
+ export declare type CodeType = {
41
+ code: number;
42
+ images?: null;
43
+ };
44
+ export declare type UserAgentType = {
45
+ appCodeName: string;
46
+ appName: string;
47
+ appVersion: string;
48
+ language: string;
49
+ languages: readonly string[];
50
+ platform: string;
51
+ product: string;
52
+ productSub: string;
53
+ userAgent: string;
54
+ vendor: string;
55
+ vendorSub: string;
56
+ };
57
+ declare type FaceLivenessEyesType = {
58
+ predLeft: number;
59
+ predRight: number;
60
+ probLeft: number;
61
+ probRight: number;
62
+ };
63
+ declare type FaceLivenessOcclusionType = {
64
+ foreheadGlasses: boolean;
65
+ glasses: boolean;
66
+ hat: boolean;
67
+ medicineMask: boolean;
68
+ occlusion: boolean;
69
+ openedMouth: boolean;
70
+ sunglasses: boolean;
71
+ };
72
+ declare type FaceLivenessQualityType = {
73
+ blur: number;
74
+ brightness: number;
75
+ noise: number;
76
+ };
77
+ export declare type FaceLivenessResponseType = {
78
+ code: number;
79
+ msg: string;
80
+ results: {
81
+ faceIdx: number;
82
+ livenessStatus: number;
83
+ metadata: {
84
+ ageNear: string;
85
+ ageNormal: string;
86
+ distance: number;
87
+ evaluationTime: number;
88
+ eyesNear: FaceLivenessEyesType;
89
+ eyesNormal: FaceLivenessEyesType;
90
+ faceQuality: {
91
+ details: Array<{
92
+ attribute: string;
93
+ score: number;
94
+ }>;
95
+ score: number;
96
+ };
97
+ faceTrackBreak: number;
98
+ occlusionNear: FaceLivenessOcclusionType;
99
+ occlusionNormal: FaceLivenessOcclusionType;
100
+ predArtMaskNear: number;
101
+ predArtMaskNormal: number;
102
+ predElectronicDeviceNear: number;
103
+ predElectronicDeviceNormal: number;
104
+ predGeometryClassifier: number;
105
+ predLivenessViewNear: number;
106
+ predLivenessViewNormal: number;
107
+ predOpticalFlow: number;
108
+ predShadesNear: number;
109
+ predShadesNormal: number;
110
+ predTotal: number;
111
+ probArtMaskNear: number;
112
+ probArtMaskNormal: number;
113
+ probElectronicDeviceNear: number;
114
+ probElectronicDeviceNormal: number;
115
+ probGeometryClassifier: number;
116
+ probOpticalFlow: number;
117
+ probShadesNear: number;
118
+ probShadesNormal: number;
119
+ qualityNear: FaceLivenessQualityType;
120
+ qualityNormal: FaceLivenessQualityType;
121
+ smileNear: string;
122
+ smileNormal: string;
123
+ symNear: number;
124
+ symNormal: number;
125
+ };
126
+ };
127
+ versionDescriptor: string;
128
+ versionSDK: string;
129
+ images: Array<string>;
130
+ };
131
+ export declare type FaceDetectionResponseType = {
132
+ capture: Array<string>;
133
+ };
134
+ export declare type DocumentReaderResponseType = Response;
135
+ export declare type CameraSnapshotResponseType = CaptureType;
136
+ export declare type FaceLivenessResultType = Omit<FaceLivenessResponseType, 'images'>;
137
+ export declare type FaceDebugOutput = {
138
+ cft: boolean;
139
+ face: {
140
+ height: number;
141
+ landmarks: Array<XY>;
142
+ pitch: number;
143
+ roll: number;
144
+ width: number;
145
+ x: number;
146
+ y: number;
147
+ yaw: number;
148
+ };
149
+ target: Oval;
150
+ };
151
+ export declare type ScenarioParamsType = {
152
+ UVTorch?: number;
153
+ barcodeExt?: number;
154
+ caption: string;
155
+ desc: string;
156
+ faceExt?: number;
157
+ frameKWHDoublePageSpreadLandscape: string;
158
+ frameKWHDoublePageSpreadPortrait: string;
159
+ frameKWHLandscape: string;
160
+ frameKWHPortrait: string;
161
+ frameOrientation: number;
162
+ manualCrop?: number;
163
+ multiPageOff?: number;
164
+ name: string;
165
+ seriesProcessMode?: number;
166
+ };
167
+ export declare type InitDataType = {
168
+ scenario: Array<ScenarioParamsType>;
169
+ };
170
+ export declare type UserFrameType = {
171
+ frameBottom: number;
172
+ frameLeft: number;
173
+ frameRight: number;
174
+ frameTop: number;
175
+ width: number;
176
+ height: number;
177
+ };
178
+ export declare type ImageInputParamType = {
179
+ frameBottom: number;
180
+ frameLeft: number;
181
+ frameRight: number;
182
+ frameTop: number;
183
+ light: number;
184
+ resolutionType: number;
185
+ };
186
+ export declare type FrameParamsType = {
187
+ userFrame: UserFrameType;
188
+ serviceFrame: ImageInputParamType;
189
+ };
190
+ export declare type ImageQualityCheck = {
191
+ featureType: number;
192
+ mean: number;
193
+ probability: number;
194
+ result: number;
195
+ std_dev: number;
196
+ type: number;
197
+ };
198
+ export declare type SupportedBrowserVersions = {
199
+ Chrome: number;
200
+ Firefox: number;
201
+ Safari: number;
202
+ Opera?: number;
203
+ Edge?: number;
204
+ Chromium?: number;
205
+ IE?: number;
206
+ 'Internet Explorer'?: number;
207
+ 'Mobile Safari'?: number;
208
+ 'Samsung Browser'?: number;
209
+ };
210
+ export declare type SupportedBrowserVersionsByOsType = {
211
+ iOS: SupportedBrowserVersions;
212
+ Android: SupportedBrowserVersions;
213
+ desktop: SupportedBrowserVersions;
214
+ };
215
+ declare type CustomEventDataType<R> = {
216
+ status: ResponseCode;
217
+ reason?: keyof typeof ErrorTypes;
218
+ response?: R;
219
+ };
220
+ interface DetailEvent<A, R> {
221
+ manual: boolean;
222
+ action: A;
223
+ data: CustomEventDataType<R> | null;
224
+ }
225
+ export declare type FaceLivenessDetailType = DetailEvent<FaceEventActions, FaceLivenessResponseType>;
226
+ export declare type FaceCaptureDetailType = DetailEvent<FaceEventActions, FaceDetectionResponseType>;
227
+ export declare type DocumentReaderDetailType = DetailEvent<DocumentEventActions, DocumentReaderResponseType>;
228
+ export declare type CameraSnapshotDetailType = DetailEvent<DocumentEventActions, CameraSnapshotResponseType>;
229
+ export declare type DocumentReaderImage = {
230
+ data: string;
231
+ light: number;
232
+ pageIdx: number;
233
+ };
234
+ export declare type DocumentReaderProcessParam = {
235
+ returnPackageForReprocess?: boolean;
236
+ returnUncroppedImage?: boolean;
237
+ scenario?: keyof typeof InternalScenarios;
238
+ multipageProcessing?: boolean;
239
+ timeout?: number;
240
+ timeoutFromFirstDetect?: number;
241
+ timeoutFromFirstDocType?: number;
242
+ resultTypeOutput?: Array<string>;
243
+ imageQa?: {
244
+ expectedPass?: Array<string>;
245
+ dpiThreshold?: number;
246
+ glaresCheck?: boolean;
247
+ glaresCheckParams?: {
248
+ imgMarginPart?: number;
249
+ maxGlaringPart?: number;
250
+ };
251
+ };
252
+ };
253
+ export declare type DocumentReaderRequest = {
254
+ processParam: Record<string, any>;
255
+ imagesList?: Array<DocumentReaderImage>;
256
+ imageInputParam?: ImageInputParamType;
257
+ };
258
+ export declare type SDKRecognizerProcessingRequest = {
259
+ processParam: DocumentReaderProcessParam;
260
+ };
261
+ export declare type SDKImageProcessingRequest = {
262
+ processParam: Pick<DocumentReaderProcessParam, 'returnPackageForReprocess' | 'returnUncroppedImage' | 'scenario'>;
263
+ };
264
+ export declare type DevicesType = {
265
+ devices: Array<MediaDeviceInfo>;
266
+ videoDevices: Array<MediaDeviceInfo>;
267
+ isCameraAllowed: boolean;
268
+ isDevicesChecked: boolean;
269
+ };
270
+ export interface StreamDataType {
271
+ status: StreamStatus;
272
+ stream: MediaStream | null;
273
+ camera: CameraTypes;
274
+ twoFacingModesAvailable: boolean;
275
+ }
276
+ export declare type CameraTypes = {
277
+ selectedCamera: CameraModel;
278
+ frontCameras: Array<CameraModel>;
279
+ backCameras: Array<CameraModel>;
280
+ };
281
+ export declare type CurrentPage = {
282
+ data: Response;
283
+ startNextPage: () => Promise<void>;
284
+ finishRecognition: () => void;
285
+ };
286
+ declare global {
287
+ interface HTMLElementEventMap {
288
+ 'face-liveness': CustomEvent<FaceLivenessDetailType>;
289
+ 'face-capture': CustomEvent<FaceCaptureDetailType>;
290
+ 'document-reader': CustomEvent<DocumentReaderDetailType>;
291
+ 'camera-snapshot': CustomEvent<CameraSnapshotDetailType>;
292
+ }
293
+ }
294
+ interface IBaseComponent {
295
+ locale?: string;
296
+ copyright?: boolean;
297
+ 'camera-id'?: string;
298
+ 'change-camera'?: boolean;
299
+ }
300
+ interface IDocumentBaseComponent extends IBaseComponent {
301
+ 'start-screen'?: boolean;
302
+ multiple?: boolean;
303
+ 'object-fit'?: keyof typeof ObjectFit;
304
+ }
305
+ export interface IFaceLiveness extends Omit<IBaseComponent, 'headers'> {
306
+ url?: string;
307
+ debug?: boolean;
308
+ headers?: string | Record<string, string>;
309
+ }
310
+ export interface IDocumentReader extends IDocumentBaseComponent {
311
+ 'internal-scenario'?: keyof typeof InternalScenarios;
312
+ 'multipage-processing'?: boolean;
313
+ license?: string;
314
+ }
315
+ export interface IFaceDetection extends IBaseComponent {
316
+ debug?: boolean;
317
+ }
318
+ export declare type ICameraSnapshot = IDocumentBaseComponent;
319
+ export { default as DocumentReaderCaptureWebComponent } from './web-components/CameraSnapshot';
320
+ export { default as DocumentReaderWebComponent } from './web-components/DocumentReader';
321
+ export { default as FaceDetectionWebComponent } from './web-components/FaceDetection';
322
+ export { default as FaceLivenessWebComponent } from './web-components/FaceLiveness';
323
+ export { default as FullScreenContainer } from './web-components/FullScreenContainer';
package/lib/utils.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { ImageOutputType, ObjectFit } from './constants';
2
+ import CameraModel from './models/CameraModel';
3
+ import { CameraTypes, CaptureFrameType, DevicesType, FaceDebugOutput, FacingModeType, FrameObject, StreamDataType, VideoParamsType, WidthAndHeight } from './types';
4
+ export declare function uint8ArrayToBase64(arr: Uint8ClampedArray, videoFrame: {
5
+ width: number;
6
+ height: number;
7
+ }): string;
8
+ export declare function downloadBase64Image(base64: string, name: string | number): void;
9
+ export declare function saveByteArray(data: Uint8ClampedArray, name: string | number): void;
10
+ export declare const convertBooleanAttributeParam: (attributeValue: string | null) => boolean | undefined;
11
+ export declare const convertNumberAttributeParam: (attributeValue: string | null) => number | undefined;
12
+ export declare function compose(...argsA: any): any;
13
+ export declare function recalculateFrameSizes(videoWidth: number, videoHeight: number, containerWidth: number, containerHeight: number, frameWidth: number, frameHeight: number, frameX: number, frameY: number, objectFit: ObjectFit): FrameObject;
14
+ export declare function getByteCount(b64: Array<string> | string): number;
15
+ export declare function base64ToArrayBuffer(base64: string): ArrayBuffer;
16
+ export declare function getUintImages(files: FileList | Array<Blob>, resizeValue: number, maxBrowserSupportedResolution: number): Promise<Array<Promise<ImageData>>>;
17
+ export declare function generateEvent<T>(type: string, detail: T): CustomEvent;
18
+ export declare const getAvailableCameras: (cameraPool: CameraModel[], preferredCameraId?: string) => CameraModel | undefined;
19
+ export declare function calculateFrame(videoElementParams: VideoParamsType, isLandscape: boolean, ratio: number, frameOffset: number): FrameObject;
20
+ export declare function getVideosDevices(): Promise<DevicesType>;
21
+ export declare function isBackCameraLabel(label: string, keywords: Array<string>): boolean;
22
+ export declare function getCameras(preferredCameraType: FacingModeType, mediaDevices: DevicesType, preferredCameraId?: string): Promise<CameraTypes>;
23
+ export declare const closeStreamTracks: (stream: MediaStream) => void;
24
+ export declare function getVideo(resolution: WidthAndHeight, cameraTypes: CameraTypes, preferredCameraId?: string): Promise<StreamDataType>;
25
+ export declare function getImageFromVideo(videoElement: HTMLVideoElement, outputType: ImageOutputType): CaptureFrameType;
26
+ export declare function getNextCamera(camerasInfo: CameraTypes): string;
27
+ export declare function drawFaceDebugOutput(canvas: HTMLCanvasElement, videoElementParams: VideoParamsType, debugOutput: FaceDebugOutput): void;
@@ -0,0 +1,11 @@
1
+ import { Root } from 'react-dom/client';
2
+ export default class DocumentReaderCaptureWebComponent extends HTMLElement {
3
+ root: Root;
4
+ mounted: boolean;
5
+ constructor();
6
+ static get observedAttributes(): Array<string>;
7
+ attributeChangedCallback(name: string): void;
8
+ connectedCallback(): void;
9
+ render(): void;
10
+ disconnectedCallback(): void;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { Root } from 'react-dom/client';
2
+ export default class DocumentReaderWebComponent extends HTMLElement {
3
+ root: Root;
4
+ mounted: boolean;
5
+ constructor();
6
+ static get observedAttributes(): Array<string>;
7
+ attributeChangedCallback(name: string): void;
8
+ connectedCallback(): void;
9
+ render(): void;
10
+ disconnectedCallback(): void;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { Root } from 'react-dom/client';
2
+ export default class FaceDetectionWebComponent extends HTMLElement {
3
+ root: Root;
4
+ mounted: boolean;
5
+ constructor();
6
+ static get observedAttributes(): Array<string>;
7
+ attributeChangedCallback(name: string): void;
8
+ connectedCallback(): void;
9
+ render(): void;
10
+ disconnectedCallback(): void;
11
+ }
@@ -0,0 +1,14 @@
1
+ import { Root } from 'react-dom/client';
2
+ export default class FaceLivenessWebComponent extends HTMLElement {
3
+ root: Root;
4
+ mounted: boolean;
5
+ requestHeaders: Record<string, string>;
6
+ constructor();
7
+ static get observedAttributes(): Array<string>;
8
+ attributeChangedCallback(name: string): void;
9
+ connectedCallback(): void;
10
+ set headers(headersData: Record<string, string>);
11
+ get headers(): Record<string, string>;
12
+ render(): void;
13
+ disconnectedCallback(): void;
14
+ }
@@ -0,0 +1,4 @@
1
+ export default class FullScreenContainer extends HTMLElement {
2
+ root: ShadowRoot;
3
+ constructor();
4
+ }