@privateid/ultrapass-web-sdk 0.0.1 → 0.1.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/application/modules/core/face/FaceService.d.ts +2 -2
- package/dist/application/modules/core/face/FaceService.js +21 -20
- package/dist/application/modules/core/face/FaceService.js.map +1 -1
- package/dist/application/modules/core/face/face.constants.d.ts +17 -0
- package/dist/application/modules/core/face/face.constants.js +17 -0
- package/dist/application/modules/core/face/face.constants.js.map +1 -1
- package/dist/application/modules/core/face/face.domain.d.ts +2 -2
- package/dist/application/modules/core/face/face.types.d.ts +1 -1
- package/dist/application/modules/core/face/face.utils.d.ts +0 -18
- package/dist/application/modules/core/face/face.utils.js +0 -23
- package/dist/application/modules/core/face/face.utils.js.map +1 -1
- package/dist/application/modules/core/face/index.d.ts +1 -1
- package/dist/application/modules/global/shared.utils.d.ts +0 -1
- package/dist/application/modules/global/shared.utils.js +0 -9
- package/dist/application/modules/global/shared.utils.js.map +1 -1
- package/dist/application/modules/support/camera/camera.constants.d.ts +1 -0
- package/dist/application/modules/support/camera/camera.constants.js +1 -0
- package/dist/application/modules/support/camera/camera.constants.js.map +1 -1
- package/dist/application/modules/support/camera/camera.domain.d.ts +3 -5
- package/dist/application/modules/support/camera/camera.types.d.ts +10 -0
- package/dist/application/modules/support/camera/camera.utils.d.ts +49 -31
- package/dist/application/modules/support/camera/camera.utils.js +113 -143
- package/dist/application/modules/support/camera/camera.utils.js.map +1 -1
- package/dist/application/modules/support/camera/index.d.ts +1 -1
- package/dist/application/modules/support/camera/index.js +1 -1
- package/dist/application/modules/support/camera/index.js.map +1 -1
- package/dist/application/modules/support/camera/services/BaseCameraService.d.ts +3 -6
- package/dist/application/modules/support/camera/services/BaseCameraService.js +20 -36
- package/dist/application/modules/support/camera/services/BaseCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/DesktopCameraService.js +18 -30
- package/dist/application/modules/support/camera/services/DesktopCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/FirefoxCameraService.js +18 -13
- package/dist/application/modules/support/camera/services/FirefoxCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/MacSafariCameraService.js +18 -17
- package/dist/application/modules/support/camera/services/MacSafariCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/MobileCameraService.js +19 -22
- package/dist/application/modules/support/camera/services/MobileCameraService.js.map +1 -1
- package/dist/main.d.ts +4 -2
- package/dist/main.js +5 -2
- package/dist/main.js.map +1 -1
- package/package.json +1 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Face } from './face.domain';
|
|
2
2
|
import { CameraFaceMode } from '../../../../types';
|
|
3
|
-
import type { FaceLoginProps, PredictProps, EstimateAgeProps,
|
|
3
|
+
import type { FaceLoginProps, PredictProps, EstimateAgeProps, FaceEnrollParams } from './face.types';
|
|
4
4
|
import { Wasm } from '../../support/wasm';
|
|
5
5
|
import { Camera } from '../../support/camera';
|
|
6
6
|
export declare class FaceService implements Face {
|
|
@@ -21,7 +21,7 @@ export declare class FaceService implements Face {
|
|
|
21
21
|
predictConfirmUser(props: PredictProps): Promise<unknown>;
|
|
22
22
|
predictDeleteUser(props: PredictProps): Promise<unknown>;
|
|
23
23
|
estimateAge(props: EstimateAgeProps): Promise<unknown>;
|
|
24
|
-
enroll(
|
|
24
|
+
enroll(params: FaceEnrollParams): Promise<unknown>;
|
|
25
25
|
private generateImageData;
|
|
26
26
|
private prepareCanvas;
|
|
27
27
|
getIsSimd(): boolean;
|
|
@@ -10,13 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
/* eslint-disable import/prefer-default-export */
|
|
11
11
|
/* eslint-disable lines-between-class-members */
|
|
12
12
|
import { proxy } from 'comlink';
|
|
13
|
-
import { detect } from 'detect-browser';
|
|
14
13
|
import { callbackTypeEnum, createCallback } from '../../../../createCallback';
|
|
15
14
|
import { CameraFaceMode } from '../../../../types';
|
|
16
|
-
import {
|
|
15
|
+
import { defineDimensionsForCanvas, releaseCanvas } from './face.utils';
|
|
17
16
|
import { DEFAULT_PREDICT_CONFIG } from '../../support/wasm';
|
|
18
|
-
import { getIsSIMD, printLogs } from '../../global/shared.utils';
|
|
19
|
-
import { CANVAS_TEST_ID, INVALID_VIDEO_ERROR, LOG_MESSAGES, URL_OVERRIDES } from './face.constants';
|
|
17
|
+
import { getIsSIMD, isMobileDevice, printLogs } from '../../global/shared.utils';
|
|
18
|
+
import { CANVAS_TEST_ID, ENROLL_BASE_CONFIG, INVALID_VIDEO_ERROR, LOG_MESSAGES, URL_OVERRIDES } from './face.constants';
|
|
20
19
|
export class FaceService {
|
|
21
20
|
constructor(wasmService, cameraService) {
|
|
22
21
|
this.isSimd = false;
|
|
@@ -34,10 +33,9 @@ export class FaceService {
|
|
|
34
33
|
printLogs('[FaceService] initialized', '');
|
|
35
34
|
}
|
|
36
35
|
preparePrivdWasmResult(callback, callbackType, image, config) {
|
|
37
|
-
const callbackForImageCreation = callbackWithImageCreation(callback, image, false);
|
|
38
36
|
this.privid_wasm_result = createCallback({
|
|
39
37
|
type: callbackType,
|
|
40
|
-
callbackFunction:
|
|
38
|
+
callbackFunction: callback,
|
|
41
39
|
imageData: (config === null || config === void 0 ? void 0 : config.sendImageToJS) ? image : undefined,
|
|
42
40
|
});
|
|
43
41
|
}
|
|
@@ -149,35 +147,38 @@ export class FaceService {
|
|
|
149
147
|
return this.runUltraProcess(this.wasmService.estimateAge, Object.assign(Object.assign({}, props), { callbackType: callbackTypeEnum.ageEstimation, logMessage: props.logMessage || LOG_MESSAGES.AGE_ESTIMATION, config: Object.assign(Object.assign({}, baseConfig), props.config) }));
|
|
150
148
|
});
|
|
151
149
|
}
|
|
152
|
-
enroll(
|
|
150
|
+
enroll(params) {
|
|
153
151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
-
printLogs('
|
|
155
|
-
let configJSON =
|
|
156
|
-
|
|
157
|
-
if (['iOS', 'android', 'Android OS'].includes(os)) {
|
|
152
|
+
printLogs('[FaceService] enroll params', params);
|
|
153
|
+
let configJSON = Object.assign({}, ENROLL_BASE_CONFIG);
|
|
154
|
+
if (isMobileDevice()) {
|
|
158
155
|
configJSON = Object.assign(Object.assign({}, configJSON), { threshold_user_too_far: 0.31, threshold_user_too_close: 0.55, threshold_user_right: 0.2, threshold_user_left: 0.8, threshold_profile_enroll: 0.66 });
|
|
159
156
|
}
|
|
160
|
-
if (
|
|
161
|
-
configJSON = Object.assign(Object.assign({}, configJSON),
|
|
157
|
+
if (params.config) {
|
|
158
|
+
configJSON = Object.assign(Object.assign({}, configJSON), params.config);
|
|
162
159
|
}
|
|
163
|
-
|
|
164
|
-
|
|
160
|
+
printLogs('[[FaceService] enroll configJSON', configJSON);
|
|
161
|
+
if (params.element) {
|
|
162
|
+
this.cameraService.setVideoElementId(params.element);
|
|
165
163
|
}
|
|
166
|
-
|
|
167
|
-
|
|
164
|
+
if (!this.cameraService.checkVideoElementIsReady()) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
const imageData = this.generateImageData(true);
|
|
168
168
|
this.privid_wasm_result = createCallback({
|
|
169
169
|
type: callbackTypeEnum.enroll,
|
|
170
|
-
callbackFunction:
|
|
170
|
+
callbackFunction: params.callback,
|
|
171
171
|
});
|
|
172
172
|
const bestImage = yield this.wasmService.enroll(imageData, JSON.stringify(configJSON), proxy(this.privid_wasm_result));
|
|
173
|
-
if (
|
|
173
|
+
if (params.returnPortrait) {
|
|
174
174
|
return imageData;
|
|
175
175
|
}
|
|
176
176
|
return bestImage;
|
|
177
177
|
});
|
|
178
178
|
}
|
|
179
|
-
generateImageData(
|
|
179
|
+
generateImageData(shouldDownscale = false) {
|
|
180
180
|
var _a;
|
|
181
|
+
const videoElement = this.cameraService.getVideoElementDOM();
|
|
181
182
|
const canvas = this.prepareCanvas(videoElement, shouldDownscale);
|
|
182
183
|
const context = canvas.getContext('2d', { willReadFrequently: true });
|
|
183
184
|
(_a = context.resetTransform) === null || _a === void 0 ? void 0 : _a.call(context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FaceService.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/FaceService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAAiD;AACjD,gDAAgD;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FaceService.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/FaceService.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,3 +23,20 @@ export declare const AGE_ESTIMATION_CONFIG: {
|
|
|
23
23
|
threshold_user_too_far: number;
|
|
24
24
|
allow_only_one_face: boolean;
|
|
25
25
|
};
|
|
26
|
+
export declare const ENROLL_BASE_CONFIG: {
|
|
27
|
+
input_image_format: string;
|
|
28
|
+
angle_rotation_left_threshold: number;
|
|
29
|
+
angle_rotation_right_threshold: number;
|
|
30
|
+
threshold_high_vertical_enroll: number;
|
|
31
|
+
threshold_down_vertical_enroll: number;
|
|
32
|
+
anti_spoofing_threshold: number;
|
|
33
|
+
threshold_profile_enroll: number;
|
|
34
|
+
blur_threshold_enroll_pred: number;
|
|
35
|
+
threshold_user_too_close: number;
|
|
36
|
+
threshold_user_too_far: number;
|
|
37
|
+
allow_only_one_face: boolean;
|
|
38
|
+
threshold_user_up: number;
|
|
39
|
+
threshold_user_down: number;
|
|
40
|
+
threshold_user_left: number;
|
|
41
|
+
threshold_user_right: number;
|
|
42
|
+
};
|
|
@@ -23,4 +23,21 @@ export const AGE_ESTIMATION_CONFIG = {
|
|
|
23
23
|
threshold_user_too_far: 0.2,
|
|
24
24
|
allow_only_one_face: false,
|
|
25
25
|
};
|
|
26
|
+
export const ENROLL_BASE_CONFIG = {
|
|
27
|
+
input_image_format: 'rgba',
|
|
28
|
+
angle_rotation_left_threshold: 20.0,
|
|
29
|
+
angle_rotation_right_threshold: 20.0,
|
|
30
|
+
threshold_high_vertical_enroll: 0.9,
|
|
31
|
+
threshold_down_vertical_enroll: 2.2,
|
|
32
|
+
anti_spoofing_threshold: 0.8,
|
|
33
|
+
threshold_profile_enroll: 0.66,
|
|
34
|
+
blur_threshold_enroll_pred: 40,
|
|
35
|
+
threshold_user_too_close: 0.52,
|
|
36
|
+
threshold_user_too_far: 0.165,
|
|
37
|
+
allow_only_one_face: true,
|
|
38
|
+
threshold_user_up: 0.15,
|
|
39
|
+
threshold_user_down: 0.9,
|
|
40
|
+
threshold_user_left: 0.8,
|
|
41
|
+
threshold_user_right: 0.2,
|
|
42
|
+
};
|
|
26
43
|
//# sourceMappingURL=face.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/face.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa,EAAE,0DAA0D;IACzE,cAAc,EAAE,2DAA2D;IAC3E,UAAU,EAAE,uDAAuD;IACnE,cAAc,EAAE,2DAA2D;CACnE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,gBAAgB;CACrB,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,uBAAuB,EAAE,GAAG;IAC5B,iBAAiB,EAAE,CAAC;IACpB,uBAAuB,EAAE,KAAK;IAC9B,wBAAwB,EAAE,GAAG;IAC7B,wBAAwB,EAAE,GAAG;IAC7B,sBAAsB,EAAE,GAAG;IAC3B,mBAAmB,EAAE,KAAK;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"face.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/face.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,aAAa,EAAE,0DAA0D;IACzE,cAAc,EAAE,2DAA2D;IAC3E,UAAU,EAAE,uDAAuD;IACnE,cAAc,EAAE,2DAA2D;CACnE,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,gBAAgB;CACrB,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,uBAAuB,EAAE,GAAG;IAC5B,iBAAiB,EAAE,CAAC;IACpB,uBAAuB,EAAE,KAAK;IAC9B,wBAAwB,EAAE,GAAG;IAC7B,wBAAwB,EAAE,GAAG;IAC7B,sBAAsB,EAAE,GAAG;IAC3B,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB,EAAE,MAAM;IAC1B,6BAA6B,EAAE,IAAI;IACnC,8BAA8B,EAAE,IAAI;IACpC,8BAA8B,EAAE,GAAG;IACnC,8BAA8B,EAAE,GAAG;IACnC,uBAAuB,EAAE,GAAG;IAC5B,wBAAwB,EAAE,IAAI;IAC9B,0BAA0B,EAAE,EAAE;IAC9B,wBAAwB,EAAE,IAAI;IAC9B,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,oBAAoB,EAAE,GAAG;CAC1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FaceEnrollParams, EstimateAgeProps, FaceLoginProps, PredictProps } from './face.types';
|
|
2
2
|
export interface Face {
|
|
3
3
|
faceLogin: (props: FaceLoginProps) => Promise<unknown>;
|
|
4
4
|
predict: (props: PredictProps) => Promise<unknown>;
|
|
@@ -6,5 +6,5 @@ export interface Face {
|
|
|
6
6
|
predictConfirmUser: (props: PredictProps) => Promise<unknown>;
|
|
7
7
|
predictDeleteUser: (props: PredictProps) => Promise<unknown>;
|
|
8
8
|
estimateAge: (props: EstimateAgeProps) => Promise<unknown>;
|
|
9
|
-
enroll: (props:
|
|
9
|
+
enroll: (props: FaceEnrollParams) => Promise<unknown>;
|
|
10
10
|
}
|
|
@@ -1,21 +1,3 @@
|
|
|
1
1
|
import { Dimensions } from './face.types';
|
|
2
2
|
export declare function releaseCanvas(canvas: HTMLCanvasElement): void;
|
|
3
3
|
export declare function defineDimensionsForCanvas(videoElementDimensions: Dimensions): Dimensions;
|
|
4
|
-
export declare function getBaseEnrollConfig(): {
|
|
5
|
-
input_image_format: string;
|
|
6
|
-
angle_rotation_left_threshold: number;
|
|
7
|
-
angle_rotation_right_threshold: number;
|
|
8
|
-
threshold_high_vertical_enroll: number;
|
|
9
|
-
threshold_down_vertical_enroll: number;
|
|
10
|
-
anti_spoofing_threshold: number;
|
|
11
|
-
threshold_profile_enroll: number;
|
|
12
|
-
blur_threshold_enroll_pred: number;
|
|
13
|
-
threshold_user_too_close: number;
|
|
14
|
-
threshold_user_too_far: number;
|
|
15
|
-
allow_only_one_face: boolean;
|
|
16
|
-
threshold_user_up: number;
|
|
17
|
-
threshold_user_down: number;
|
|
18
|
-
threshold_user_left: number;
|
|
19
|
-
threshold_user_right: number;
|
|
20
|
-
};
|
|
21
|
-
export declare function callbackWithImageCreation(callback: (result: any) => void, _imageData: ImageData, _isEnrollFlow: boolean): (result: any) => void;
|
|
@@ -26,27 +26,4 @@ export function defineDimensionsForCanvas(videoElementDimensions) {
|
|
|
26
26
|
height: Math.round(videoElementDimensions.height * downscale),
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
export function getBaseEnrollConfig() {
|
|
30
|
-
return {
|
|
31
|
-
input_image_format: 'rgba',
|
|
32
|
-
angle_rotation_left_threshold: 20.0,
|
|
33
|
-
angle_rotation_right_threshold: 20.0,
|
|
34
|
-
threshold_high_vertical_enroll: 0.9,
|
|
35
|
-
threshold_down_vertical_enroll: 2.2,
|
|
36
|
-
anti_spoofing_threshold: 0.8,
|
|
37
|
-
threshold_profile_enroll: 0.66,
|
|
38
|
-
blur_threshold_enroll_pred: 40,
|
|
39
|
-
threshold_user_too_close: 0.52,
|
|
40
|
-
threshold_user_too_far: 0.165,
|
|
41
|
-
allow_only_one_face: true,
|
|
42
|
-
threshold_user_up: 0.15,
|
|
43
|
-
threshold_user_down: 0.9,
|
|
44
|
-
threshold_user_left: 0.8,
|
|
45
|
-
threshold_user_right: 0.2,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
// TODO: check if isEnrollFlow andd imageData are still needed
|
|
49
|
-
export function callbackWithImageCreation(callback, _imageData, _isEnrollFlow) {
|
|
50
|
-
return (result) => callback(result);
|
|
51
|
-
}
|
|
52
29
|
//# sourceMappingURL=face.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"face.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/face.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG3E,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,IAAI;QACF,SAAS,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC;QAC7B,aAAa,CAAC,KAAK,GAAG,wBAAwB,CAAC;QAC/C,aAAa,CAAC,MAAM,GAAG,wBAAwB,CAAC;QAChD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;SACzE;QACD,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,SAAS,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;KAC5C;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,sBAAkC;IAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE;QACzF,OAAO,sBAAsB,CAAC;KAC/B;IACD,MAAM,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxG,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,SAAS,CAAC;KAC9D,CAAC;AACJ,CAAC
|
|
1
|
+
{"version":3,"file":"face.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/core/face/face.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG3E,MAAM,UAAU,aAAa,CAAC,MAAyB;IACrD,IAAI;QACF,SAAS,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC;QAC7B,aAAa,CAAC,KAAK,GAAG,wBAAwB,CAAC;QAC/C,aAAa,CAAC,MAAM,GAAG,wBAAwB,CAAC;QAChD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;SACzE;QACD,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,SAAS,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;KAC5C;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,sBAAkC;IAC1E,IAAI,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,aAAa,EAAE;QACzF,OAAO,sBAAsB,CAAC;KAC/B;IACD,MAAM,SAAS,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxG,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAK,GAAG,SAAS,CAAC;QAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,GAAG,SAAS,CAAC;KAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export type { Face } from './face.domain';
|
|
2
2
|
export { FaceService } from './FaceService';
|
|
3
|
-
export type { FaceLoginProps, PredictProps, EstimateAgeProps,
|
|
3
|
+
export type { FaceLoginProps, PredictProps, EstimateAgeProps, FaceEnrollParams } from './face.types';
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export declare function iOS(): boolean;
|
|
2
|
-
export declare function isMobileFunc(): boolean;
|
|
3
2
|
export declare function printLogs(message: string, data: any, type?: string): void;
|
|
4
3
|
export declare function getDebugType(): string;
|
|
5
4
|
export declare function getDefaultCameraDeviceId(): string;
|
|
@@ -13,15 +13,6 @@ import { getEnvironment } from '../../../envUtils';
|
|
|
13
13
|
export function iOS() {
|
|
14
14
|
return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform);
|
|
15
15
|
}
|
|
16
|
-
export function isMobileFunc() {
|
|
17
|
-
let check = false;
|
|
18
|
-
(function (a) {
|
|
19
|
-
if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) ||
|
|
20
|
-
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)))
|
|
21
|
-
check = true;
|
|
22
|
-
})(navigator.userAgent || navigator.vendor || window.opera);
|
|
23
|
-
return check;
|
|
24
|
-
}
|
|
25
16
|
export function printLogs(message, data, type = 'LOG') {
|
|
26
17
|
const errorLogs = ['1', '2', '3', '901', '902', '903'];
|
|
27
18
|
const warningLogs = ['2', '3', '902', '903'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.utils.js","sourceRoot":"","sources":["../../../../src/application/modules/global/shared.utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,UAAU,GAAG;IACjB,OAAO,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAChG,SAAS,CAAC,QAAQ,CACnB,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.utils.js","sourceRoot":"","sources":["../../../../src/application/modules/global/shared.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,5 @@ export declare const CAMERA_WIDTH = 2560;
|
|
|
5
5
|
export declare const CAMERA_LOW_RES_WIDTH = 1920;
|
|
6
6
|
export declare const CAMERA_LOW_RES_HEIGHT = 1080;
|
|
7
7
|
export declare const MOBILE_CAMERA_RES_HEIGHT = 1440;
|
|
8
|
+
export declare const MOBILE_CAMERA_LOW_RES_HEIGHT = 480;
|
|
8
9
|
export declare const BACK_CAMERA_WORDS: string[];
|
|
@@ -5,6 +5,7 @@ export const CAMERA_WIDTH = 2560;
|
|
|
5
5
|
export const CAMERA_LOW_RES_WIDTH = 1920;
|
|
6
6
|
export const CAMERA_LOW_RES_HEIGHT = 1080;
|
|
7
7
|
export const MOBILE_CAMERA_RES_HEIGHT = 1440;
|
|
8
|
+
export const MOBILE_CAMERA_LOW_RES_HEIGHT = 480;
|
|
8
9
|
export const BACK_CAMERA_WORDS = [
|
|
9
10
|
'rear',
|
|
10
11
|
'back',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/camera/camera.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"camera.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/camera/camera.constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,MAAM;IACN,UAAU;IACV,YAAY;IACZ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,SAAS;IACT,GAAG;IACH,MAAM;IACN,aAAa;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,KAAK;IACL,KAAK;IACL,OAAO;IACP,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,UAAU;IACV,UAAU;IACV,KAAK;CACN,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { CameraOpenResult, OpenCameraProps, SwitchCameraResult, CameraFaceMode } from './camera.types';
|
|
1
|
+
import { CameraOpenResult, OpenCameraProps, SwitchCameraResult, CameraFaceMode, CameraSwitchParams } from './camera.types';
|
|
2
2
|
export interface Camera {
|
|
3
3
|
openCamera(props: OpenCameraProps): Promise<CameraOpenResult>;
|
|
4
4
|
closeCamera(element?: string): Promise<void>;
|
|
5
|
-
|
|
6
|
-
width: number;
|
|
7
|
-
height: number;
|
|
8
|
-
} | null): Promise<SwitchCameraResult | null>;
|
|
5
|
+
cameraSwitch(params: CameraSwitchParams): Promise<SwitchCameraResult | null>;
|
|
9
6
|
setVideoElementId(id: string): void;
|
|
10
7
|
getVideoElementId(): string | null;
|
|
11
8
|
getVideoElementDOM(): HTMLVideoElement | null;
|
|
@@ -14,4 +11,5 @@ export interface Camera {
|
|
|
14
11
|
getMediaDevices(): MediaDeviceInfo[] | null;
|
|
15
12
|
getCurrentDeviceId(): string | null;
|
|
16
13
|
isActive(): boolean;
|
|
14
|
+
checkVideoElementIsReady(): boolean;
|
|
17
15
|
}
|
|
@@ -30,3 +30,13 @@ export declare enum CameraFaceMode {
|
|
|
30
30
|
back = "back"
|
|
31
31
|
}
|
|
32
32
|
export type ScreenOrientation = 'landscape' | 'portrait';
|
|
33
|
+
export type CameraSwitchParams = {
|
|
34
|
+
deviceId: string;
|
|
35
|
+
};
|
|
36
|
+
export type CameraServiceType = 'desktop' | 'firefox' | 'mac-safari' | 'mobile';
|
|
37
|
+
export type GeneratedUserMediaConstraints = MediaStreamConstraints & {
|
|
38
|
+
video: {
|
|
39
|
+
resizeMode?: string;
|
|
40
|
+
focusMode?: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="ua-parser-js" />
|
|
2
|
-
import { CameraFaceMode, CameraOpenResult, FacingMode, ScreenOrientation } from './camera.types';
|
|
2
|
+
import { CameraFaceMode, CameraOpenResult, CameraServiceType, FacingMode, GeneratedUserMediaConstraints, ScreenOrientation } from './camera.types';
|
|
3
3
|
export declare function getScreenOrientation(): ScreenOrientation;
|
|
4
4
|
export declare function getUserAgent(): string | undefined;
|
|
5
5
|
export declare function parseUserAgent(): import("ua-parser-js").IResult;
|
|
@@ -39,10 +39,10 @@ export declare const isMobileBackCameraPortrait: ({ label, facingMode }: {
|
|
|
39
39
|
}) => boolean;
|
|
40
40
|
export declare function isFaceTimeCamera(label: string, isDocumentScan: boolean): boolean;
|
|
41
41
|
export declare const getCameraList: (backOnly: boolean) => Promise<Array<any>>;
|
|
42
|
-
export declare const
|
|
42
|
+
export declare const getMobileVideoConstraints: (availableDevices?: Array<any> | null, faceMode?: FacingMode, isDocumentScan?: boolean, canvasResolution?: {
|
|
43
43
|
width: number;
|
|
44
44
|
height: number;
|
|
45
|
-
}
|
|
45
|
+
}) => {
|
|
46
46
|
audio: boolean;
|
|
47
47
|
video: {
|
|
48
48
|
facingMode: FacingMode;
|
|
@@ -77,15 +77,10 @@ export declare function scaleImageData(imageData: any, scaleFactor: number): Ima
|
|
|
77
77
|
export declare function zoomInCanvasImage(canvas: any, scaleFactor: number): ImageData;
|
|
78
78
|
export declare const checkDeviceIsVirtualCamera: (deviceLabel: string) => boolean;
|
|
79
79
|
export declare function getFilteredVideoDevices(): Promise<MediaDeviceInfo[]>;
|
|
80
|
-
export declare function getVideoInputDevices(): Promise<MediaDeviceInfo[]>;
|
|
81
80
|
export declare function filterDevicesByPattern(devices: MediaDeviceInfo[], pattern: RegExp): MediaDeviceInfo[];
|
|
82
81
|
export declare function getExternalDevice(devices: MediaDeviceInfo[]): MediaDeviceInfo | undefined;
|
|
83
82
|
export declare function isWindowsDevice(): boolean;
|
|
84
|
-
export declare function
|
|
85
|
-
export declare function getBestResolution(isMacFaceTimeCamera: boolean, deviceCapabilites: any[], canvasResolution?: {
|
|
86
|
-
width: number;
|
|
87
|
-
height: number;
|
|
88
|
-
} | null): Promise<MediaStream>;
|
|
83
|
+
export declare function getMediaDeviceInfo(devices: MediaDeviceInfo[], deviceId: string): Promise<MediaDeviceInfo>;
|
|
89
84
|
/**
|
|
90
85
|
* This function open camera, and returns the stream, current faceMode and the list of available media devices
|
|
91
86
|
* @category Face
|
|
@@ -94,7 +89,6 @@ export declare function getBestResolution(isMacFaceTimeCamera: boolean, deviceCa
|
|
|
94
89
|
export declare function getTheNextResolutionAvailable(currentResolution: number): number;
|
|
95
90
|
export declare function startVideo(videoElement: string, stream: MediaStream): Promise<void>;
|
|
96
91
|
export declare function enableMutationObserver(videoElement: HTMLVideoElement, stream: MediaStream): void;
|
|
97
|
-
export declare function getDevicesWithCapabilities(devices: MediaDeviceInfo[]): MediaDeviceInfo[];
|
|
98
92
|
export declare function calculateWidth(canvasResolution: {
|
|
99
93
|
width: number;
|
|
100
94
|
height: number;
|
|
@@ -107,25 +101,49 @@ export declare function calculateAspectRatio(canvasResolution: {
|
|
|
107
101
|
width: number;
|
|
108
102
|
height: number;
|
|
109
103
|
} | null, isPortraitMobileCamera: boolean): 1 | 1.7777777778;
|
|
110
|
-
export declare function createBasicVideoConstraints(options: {
|
|
111
|
-
deviceId?: string;
|
|
112
|
-
width?: number;
|
|
113
|
-
height?: number;
|
|
114
|
-
aspectRatio?: number;
|
|
115
|
-
facingMode?: string;
|
|
116
|
-
focusMode?: string;
|
|
117
|
-
resizeMode?: string;
|
|
118
|
-
}): MediaStreamConstraints;
|
|
119
|
-
export declare function createFirefoxVideoConstraints(faceMode: CameraFaceMode, canvasResolution?: {
|
|
120
|
-
width: number;
|
|
121
|
-
height: number;
|
|
122
|
-
} | null): MediaStreamConstraints;
|
|
123
|
-
export declare function createMacSafariVideoConstraints(deviceId: string, resolution: number, canvasResolution?: {
|
|
124
|
-
width: number;
|
|
125
|
-
height: number;
|
|
126
|
-
} | null): MediaStreamConstraints;
|
|
127
|
-
export declare function createBestResolutionStream(deviceCapabilites: any[], canvasResolution?: {
|
|
128
|
-
width: number;
|
|
129
|
-
height: number;
|
|
130
|
-
} | null): Promise<MediaStream>;
|
|
131
104
|
export declare function prepareCameraResult(stream: MediaStream, devices: MediaDeviceInfo[], faceMode: CameraFaceMode | null, videoElement: string): Promise<CameraOpenResult>;
|
|
105
|
+
/**
|
|
106
|
+
* Handles device ID selection for camera devices based on platform and availability.
|
|
107
|
+
*
|
|
108
|
+
* @returns The most probable device ID string
|
|
109
|
+
*/
|
|
110
|
+
export declare function handleDeviceId(devices: MediaDeviceInfo[], id?: string, isMacSafari?: boolean): string;
|
|
111
|
+
/**
|
|
112
|
+
* Creates a MediaStream from the specified camera device for a specific camera service with optimized constraints.
|
|
113
|
+
*
|
|
114
|
+
* @returns A promise that resolves to a MediaStream from the specified camera device
|
|
115
|
+
* @throws {Error} When camera access is denied or device is not available
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const devices = await navigator.mediaDevices.enumerateDevices();
|
|
120
|
+
* const camera = devices.find(d => d.kind === 'videoinput');
|
|
121
|
+
* const stream = await getDeviceMediaStream(camera.deviceId, 'desktop', {
|
|
122
|
+
* canvasResolution: { width: 1280, height: 720 }
|
|
123
|
+
* });
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export declare function getDeviceMediaStream(deviceId: string, type: CameraServiceType | null, options?: {
|
|
127
|
+
isMacFaceTimeCamera?: boolean;
|
|
128
|
+
isDocumentScan?: boolean;
|
|
129
|
+
canvasResolution?: {
|
|
130
|
+
width: number;
|
|
131
|
+
height: number;
|
|
132
|
+
} | null;
|
|
133
|
+
}): Promise<MediaStream>;
|
|
134
|
+
/**
|
|
135
|
+
* Creates platform-specific video constraints for different camera service types including
|
|
136
|
+
* desktop, Firefox, Mac Safari, and mobile devices with appropriate resolutions and settings.
|
|
137
|
+
*
|
|
138
|
+
* @returns A promise that resolves to GeneratedUserMediaConstraints object
|
|
139
|
+
*/
|
|
140
|
+
export declare function generateUserMediaConstraints(type?: CameraServiceType, params?: {
|
|
141
|
+
deviceId?: string;
|
|
142
|
+
idealResolution?: {
|
|
143
|
+
width: number;
|
|
144
|
+
height: number;
|
|
145
|
+
};
|
|
146
|
+
faceMode?: CameraFaceMode;
|
|
147
|
+
isMacFaceTimeCamera?: boolean;
|
|
148
|
+
isDocumentScan?: boolean;
|
|
149
|
+
}): Promise<GeneratedUserMediaConstraints>;
|