@privateid/ultrapass-web-sdk 1.2.0 → 1.3.1-1300478
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/README.md +75 -75
- package/dist/apiUtils.d.ts +46 -46
- package/dist/apiUtils.js +922 -921
- package/dist/apiUtils.js.map +1 -1
- package/dist/application/index.d.ts +7 -7
- package/dist/application/index.js +27 -25
- package/dist/application/index.js.map +1 -1
- package/dist/application/modules/core/document/DocumentService.d.ts +22 -22
- package/dist/application/modules/core/document/DocumentService.js +254 -254
- package/dist/application/modules/core/document/document.constants.d.ts +15 -15
- package/dist/application/modules/core/document/document.constants.js +21 -21
- package/dist/application/modules/core/document/document.domain.d.ts +7 -7
- package/dist/application/modules/core/document/document.domain.js +1 -1
- package/dist/application/modules/core/document/document.types.d.ts +17 -17
- package/dist/application/modules/core/document/document.types.js +1 -1
- package/dist/application/modules/core/document/document.utils.d.ts +3 -3
- package/dist/application/modules/core/document/document.utils.js +58 -58
- package/dist/application/modules/core/document/index.d.ts +3 -3
- package/dist/application/modules/core/document/index.js +1 -1
- package/dist/application/modules/core/face/FaceService.d.ts +33 -33
- package/dist/application/modules/core/face/FaceService.js +228 -221
- package/dist/application/modules/core/face/FaceService.js.map +1 -1
- package/dist/application/modules/core/face/face.constants.d.ts +53 -53
- package/dist/application/modules/core/face/face.constants.js +53 -53
- package/dist/application/modules/core/face/face.domain.d.ts +10 -10
- package/dist/application/modules/core/face/face.domain.js +1 -1
- package/dist/application/modules/core/face/face.types.d.ts +41 -38
- package/dist/application/modules/core/face/face.types.js +1 -1
- package/dist/application/modules/core/face/face.utils.d.ts +15 -15
- package/dist/application/modules/core/face/face.utils.js +101 -101
- package/dist/application/modules/core/face/index.d.ts +3 -3
- package/dist/application/modules/core/face/index.js +1 -1
- package/dist/application/modules/global/shared.constants.d.ts +2 -2
- package/dist/application/modules/global/shared.constants.js +2 -2
- package/dist/application/modules/global/shared.utils.d.ts +25 -25
- package/dist/application/modules/global/shared.utils.js +100 -100
- package/dist/application/modules/global/shared.utils.js.map +1 -1
- package/dist/application/modules/internal/feature-flag/LDFeatureFlagService.d.ts +9 -0
- package/dist/application/modules/internal/feature-flag/LDFeatureFlagService.js +32 -0
- package/dist/application/modules/internal/feature-flag/LDFeatureFlagService.js.map +1 -0
- package/dist/application/modules/internal/feature-flag/feature-flag-init.d.ts +11 -0
- package/dist/application/modules/internal/feature-flag/feature-flag-init.js +24 -0
- package/dist/application/modules/internal/feature-flag/feature-flag-init.js.map +1 -0
- package/dist/application/modules/internal/feature-flag/feature-flag.domain.d.ts +10 -0
- package/dist/application/modules/internal/feature-flag/feature-flag.domain.js +7 -0
- package/dist/application/modules/internal/feature-flag/feature-flag.domain.js.map +1 -0
- package/dist/application/modules/internal/feature-flag/featureFlagInit.d.ts +11 -0
- package/dist/application/modules/internal/feature-flag/featureFlagInit.js +44 -0
- package/dist/application/modules/internal/feature-flag/featureFlagInit.js.map +1 -0
- package/dist/application/modules/internal/feature-flag/index.d.ts +2 -0
- package/dist/application/modules/internal/feature-flag/index.js +3 -0
- package/dist/application/modules/internal/feature-flag/index.js.map +1 -0
- package/dist/application/modules/internal/shared/index.d.ts +2 -0
- package/dist/application/modules/internal/shared/index.js +3 -0
- package/dist/application/modules/internal/shared/index.js.map +1 -0
- package/dist/application/modules/internal/shared/shared.constants.d.ts +2 -0
- package/dist/application/modules/internal/shared/shared.constants.js +3 -0
- package/dist/application/modules/internal/shared/shared.constants.js.map +1 -0
- package/dist/application/modules/internal/shared/shared.utils.d.ts +44 -0
- package/dist/application/modules/internal/shared/shared.utils.js +204 -0
- package/dist/application/modules/internal/shared/shared.utils.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.d.ts +28 -0
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.js +380 -0
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/index.d.ts +6 -0
- package/dist/application/modules/internal/wasm-orchestrator/index.js +9 -0
- package/dist/application/modules/internal/wasm-orchestrator/index.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.constants.d.ts +28 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.constants.js +35 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.constants.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.domain.d.ts +51 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.domain.js +2 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.domain.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.types.d.ts +142 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.types.js +2 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.types.js.map +1 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.utils.d.ts +86 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.utils.js +201 -0
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.utils.js.map +1 -0
- package/dist/application/modules/support/camera/CameraServiceFactory.d.ts +10 -8
- package/dist/application/modules/support/camera/CameraServiceFactory.js +33 -32
- package/dist/application/modules/support/camera/CameraServiceFactory.js.map +1 -1
- package/dist/application/modules/support/camera/camera.constants.d.ts +9 -9
- package/dist/application/modules/support/camera/camera.constants.js +48 -48
- package/dist/application/modules/support/camera/camera.domain.d.ts +15 -15
- package/dist/application/modules/support/camera/camera.domain.js +1 -1
- package/dist/application/modules/support/camera/camera.types.d.ts +42 -42
- package/dist/application/modules/support/camera/camera.types.js +10 -10
- package/dist/application/modules/support/camera/camera.utils.d.ts +157 -157
- package/dist/application/modules/support/camera/camera.utils.js +623 -637
- package/dist/application/modules/support/camera/camera.utils.js.map +1 -1
- package/dist/application/modules/support/camera/index.d.ts +24 -25
- package/dist/application/modules/support/camera/index.js +27 -29
- package/dist/application/modules/support/camera/index.js.map +1 -1
- package/dist/application/modules/support/camera/services/BaseCameraService.d.ts +41 -37
- package/dist/application/modules/support/camera/services/BaseCameraService.js +278 -277
- package/dist/application/modules/support/camera/services/BaseCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/DesktopCameraService.d.ts +5 -5
- package/dist/application/modules/support/camera/services/DesktopCameraService.js +46 -45
- package/dist/application/modules/support/camera/services/DesktopCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/FirefoxCameraService.d.ts +5 -5
- package/dist/application/modules/support/camera/services/FirefoxCameraService.js +46 -45
- package/dist/application/modules/support/camera/services/FirefoxCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/MacSafariCameraService.d.ts +5 -5
- package/dist/application/modules/support/camera/services/MacSafariCameraService.js +47 -46
- package/dist/application/modules/support/camera/services/MacSafariCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/MobileCameraService.d.ts +5 -5
- package/dist/application/modules/support/camera/services/MobileCameraService.js +133 -129
- package/dist/application/modules/support/camera/services/MobileCameraService.js.map +1 -1
- package/dist/application/modules/support/engine/EngineService.d.ts +15 -0
- package/dist/application/modules/support/engine/EngineService.js +106 -0
- package/dist/application/modules/support/engine/EngineService.js.map +1 -0
- package/dist/application/modules/support/engine/engine.constants.d.ts +33 -0
- package/dist/application/modules/support/engine/engine.constants.js +35 -0
- package/dist/application/modules/support/engine/engine.constants.js.map +1 -0
- package/dist/application/modules/support/engine/engine.domain.d.ts +23 -0
- package/dist/application/modules/support/engine/engine.domain.js +2 -0
- package/dist/application/modules/support/engine/engine.domain.js.map +1 -0
- package/dist/application/modules/support/engine/engine.types.d.ts +32 -0
- package/dist/application/modules/support/engine/engine.types.js +2 -0
- package/dist/application/modules/support/engine/engine.types.js.map +1 -0
- package/dist/application/modules/support/engine/engine.utils.d.ts +65 -0
- package/dist/application/modules/support/engine/engine.utils.js +135 -0
- package/dist/application/modules/support/engine/engine.utils.js.map +1 -0
- package/dist/application/modules/support/engine/index.d.ts +3 -0
- package/dist/application/modules/support/engine/index.js +2 -0
- package/dist/application/modules/support/engine/index.js.map +1 -0
- package/dist/application/modules/support/permissions/PermissionsService.d.ts +55 -0
- package/dist/application/modules/support/permissions/PermissionsService.js +184 -0
- package/dist/application/modules/support/permissions/PermissionsService.js.map +1 -0
- package/dist/application/modules/support/permissions/index.d.ts +4 -0
- package/dist/application/modules/support/permissions/index.js +3 -0
- package/dist/application/modules/support/permissions/index.js.map +1 -0
- package/dist/application/modules/support/permissions/permission.utils.d.ts +6 -0
- package/dist/application/modules/support/permissions/permission.utils.js +34 -0
- package/dist/application/modules/support/permissions/permission.utils.js.map +1 -0
- package/dist/application/modules/support/permissions/permissions.domain.d.ts +6 -0
- package/dist/application/modules/support/permissions/permissions.domain.js +2 -0
- package/dist/application/modules/support/permissions/permissions.domain.js.map +1 -0
- package/dist/application/modules/support/permissions/permissions.types.d.ts +9 -0
- package/dist/application/modules/support/permissions/permissions.types.js +2 -0
- package/dist/application/modules/support/permissions/permissions.types.js.map +1 -0
- package/dist/application/modules/support/wasm/WasmService.d.ts +25 -25
- package/dist/application/modules/support/wasm/WasmService.js +156 -155
- package/dist/application/modules/support/wasm/WasmService.js.map +1 -1
- package/dist/application/modules/support/wasm/index.d.ts +6 -6
- package/dist/application/modules/support/wasm/index.js +8 -8
- package/dist/application/modules/support/wasm/wasm.constants.d.ts +78 -78
- package/dist/application/modules/support/wasm/wasm.constants.js +86 -86
- package/dist/application/modules/support/wasm/wasm.domain.d.ts +52 -52
- package/dist/application/modules/support/wasm/wasm.domain.js +1 -1
- package/dist/application/modules/support/wasm/wasm.types.d.ts +119 -118
- package/dist/application/modules/support/wasm/wasm.types.js +1 -1
- package/dist/application/modules/support/wasm/wasm.utils.d.ts +88 -88
- package/dist/application/modules/support/wasm/wasm.utils.js +243 -243
- package/dist/application/modules/support/wasm-orchestrator/WasmOrchestratorService.d.ts +28 -0
- package/dist/application/modules/support/wasm-orchestrator/WasmOrchestratorService.js +324 -0
- package/dist/application/modules/support/wasm-orchestrator/WasmOrchestratorService.js.map +1 -0
- package/dist/application/modules/support/wasm-orchestrator/index.d.ts +6 -0
- package/dist/application/modules/support/wasm-orchestrator/index.js +9 -0
- package/dist/application/modules/support/wasm-orchestrator/index.js.map +1 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.constants.d.ts +36 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.constants.js +44 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.constants.js.map +1 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.domain.d.ts +47 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.domain.js +2 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.domain.js.map +1 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.types.d.ts +136 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.types.js +2 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.types.js.map +1 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.utils.d.ts +91 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.utils.js +250 -0
- package/dist/application/modules/support/wasm-orchestrator/wasm-orchestrator.utils.js.map +1 -0
- package/dist/application/workers/index.d.ts +42 -42
- package/dist/application/workers/index.js +8 -8
- package/dist/application/workers/wasm/WasmWorkerService.d.ts +66 -0
- package/dist/application/workers/wasm/WasmWorkerService.js +801 -0
- package/dist/application/workers/wasm/WasmWorkerService.js.map +1 -0
- package/dist/application/workers/wasm/index.d.ts +4 -0
- package/dist/application/workers/wasm/index.js +9 -0
- package/dist/application/workers/wasm/index.js.map +1 -0
- package/dist/application/workers/wasm/wasm-worker.constants.d.ts +5 -0
- package/dist/application/workers/wasm/wasm-worker.constants.js +6 -0
- package/dist/application/workers/wasm/wasm-worker.constants.js.map +1 -0
- package/dist/application/workers/wasm/wasm-worker.domain.d.ts +99 -0
- package/dist/application/workers/wasm/wasm-worker.domain.js +2 -0
- package/dist/application/workers/wasm/wasm-worker.domain.js.map +1 -0
- package/dist/application/workers/wasm/wasm-worker.types.d.ts +88 -0
- package/dist/application/workers/wasm/wasm-worker.types.js +2 -0
- package/dist/application/workers/wasm/wasm-worker.types.js.map +1 -0
- package/dist/application/workers/wasm/wasm-worker.utils.d.ts +10 -0
- package/dist/application/workers/wasm/wasm-worker.utils.js +130 -0
- package/dist/application/workers/wasm/wasm-worker.utils.js.map +1 -0
- package/dist/buildConfig.d.ts +3 -0
- package/dist/buildConfig.js +7 -0
- package/dist/buildConfig.js.map +1 -0
- package/dist/cameraUtils.d.ts +77 -77
- package/dist/cameraUtils.js +361 -360
- package/dist/cameraUtils.js.map +1 -1
- package/dist/constants.d.ts +9 -9
- package/dist/constants.js +13 -12
- package/dist/constants.js.map +1 -1
- package/dist/createCallback.d.ts +56 -56
- package/dist/createCallback.js +332 -330
- package/dist/createCallback.js.map +1 -1
- package/dist/dbUtils.d.ts +14 -14
- package/dist/dbUtils.js +148 -147
- package/dist/dbUtils.js.map +1 -1
- package/dist/envUtils.d.ts +4 -4
- package/dist/envUtils.js +16 -15
- package/dist/envUtils.js.map +1 -1
- package/dist/faceModule.d.ts +196 -196
- package/dist/faceModule.js +978 -981
- package/dist/faceModule.js.map +1 -1
- package/dist/featureFlagInit.d.ts +11 -0
- package/dist/featureFlagInit.js +44 -0
- package/dist/featureFlagInit.js.map +1 -0
- package/dist/index.d.ts +38 -38
- package/dist/index.js +82 -82
- package/dist/main.d.ts +30 -13
- package/dist/main.js +84 -51
- package/dist/main.js.map +1 -1
- package/dist/types.d.ts +139 -139
- package/dist/types.js +77 -77
- package/dist/utils.d.ts +84 -84
- package/dist/utils.js +580 -579
- package/dist/utils.js.map +1 -1
- package/package.json +102 -102
- package/wasm/ultra/nosimd/{25.11.13-1357710 → 26.01.08-1300478}/privid_fhe_uber.js +18 -18
- package/wasm/ultra/nosimd/{25.11.13-1357710 → 26.01.08-1300478}/privid_fhe_uber.wasm +0 -0
- package/wasm/ultra/nosimd/version.json +2 -2
- package/wasm/ultra/simd/{25.11.13-1357710 → 26.01.08-1300478}/privid_fhe_uber.js +18 -18
- package/wasm/ultra/simd/{25.11.13-1357710 → 26.01.08-1300478}/privid_fhe_uber.wasm +0 -0
- package/wasm/ultra/simd/version.json +2 -2
- package/workers/comlink.min.js +7 -7
- package/workers/comlink.min.js.map +1 -1
- package/workers/wasm.worker.js +936 -924
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { LoadModuleResult } from './engine.types';
|
|
2
|
+
/**
|
|
3
|
+
* Check if the current browser supports WASM Engine
|
|
4
|
+
*/
|
|
5
|
+
export declare function checkBrowserCompatibility(): LoadModuleResult;
|
|
6
|
+
export declare function handleCacheContent(): Promise<string>;
|
|
7
|
+
/**
|
|
8
|
+
* Get URL parameter
|
|
9
|
+
*/
|
|
10
|
+
export declare function getUrlParameter(sParam: string, defaultValue: string): string;
|
|
11
|
+
export declare function checkMacOSSupport(browserName: string, version: string): {
|
|
12
|
+
isSupported: boolean;
|
|
13
|
+
message: "Safari version 10 and below is not supported.";
|
|
14
|
+
} | {
|
|
15
|
+
isSupported: boolean;
|
|
16
|
+
message?: undefined;
|
|
17
|
+
};
|
|
18
|
+
export declare function checkIOSSupport(browserName: string, version: string): {
|
|
19
|
+
isSupported: boolean;
|
|
20
|
+
message: "Safari version 10 and below is not supported.";
|
|
21
|
+
} | {
|
|
22
|
+
isSupported: boolean;
|
|
23
|
+
message: "Opera mobile version 72 and below is not support WASM";
|
|
24
|
+
} | {
|
|
25
|
+
isSupported: boolean;
|
|
26
|
+
message?: undefined;
|
|
27
|
+
};
|
|
28
|
+
export declare function checkAndroidSupport(browserName: string, version: string): {
|
|
29
|
+
isSupported: boolean;
|
|
30
|
+
message: "Android Chrome version 96 and below is not supported.";
|
|
31
|
+
} | {
|
|
32
|
+
isSupported: boolean;
|
|
33
|
+
message: "Samsung browser version 6 and below is not supported.";
|
|
34
|
+
} | {
|
|
35
|
+
isSupported: boolean;
|
|
36
|
+
message: "Firefox mobile version 94 and below is not supported.";
|
|
37
|
+
} | {
|
|
38
|
+
isSupported: boolean;
|
|
39
|
+
message: "Opera mobile version 72 and below is not support WASM";
|
|
40
|
+
} | {
|
|
41
|
+
isSupported: boolean;
|
|
42
|
+
message: "Android Browser version 96 and below is not supported.";
|
|
43
|
+
} | {
|
|
44
|
+
isSupported: boolean;
|
|
45
|
+
message?: undefined;
|
|
46
|
+
};
|
|
47
|
+
export declare function checkWebBrowsersSupport(browserName: string, version: string): {
|
|
48
|
+
isSupported: boolean;
|
|
49
|
+
message: "Internet Explorer is not supported.";
|
|
50
|
+
} | {
|
|
51
|
+
isSupported: boolean;
|
|
52
|
+
message: "Edge version 78 and below is not supported.";
|
|
53
|
+
} | {
|
|
54
|
+
isSupported: boolean;
|
|
55
|
+
message: "Chrome version 57 and below is not support WASM";
|
|
56
|
+
} | {
|
|
57
|
+
isSupported: boolean;
|
|
58
|
+
message: "Firefox version 52 and below is not supported.";
|
|
59
|
+
} | {
|
|
60
|
+
isSupported: boolean;
|
|
61
|
+
message: "Opera version 43 and below is not support WASM";
|
|
62
|
+
} | {
|
|
63
|
+
isSupported: boolean;
|
|
64
|
+
message?: undefined;
|
|
65
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { detect } from 'detect-browser';
|
|
11
|
+
import { clearDB } from '../../../../dbUtils';
|
|
12
|
+
import { iOS, printLogs } from '../../internal/shared/shared.utils';
|
|
13
|
+
import { BROWSER_COMPATIBILITY_MESSAGES, PACKAGE_COMPATIBILITY_MESSAGES, PACKAGE_COMPATIBILITY_MIN_VERSIONS, } from './engine.constants';
|
|
14
|
+
/**
|
|
15
|
+
* Check if the current browser supports WASM Engine
|
|
16
|
+
*/
|
|
17
|
+
export function checkBrowserCompatibility() {
|
|
18
|
+
const { name: browserName, version, os } = detect();
|
|
19
|
+
// Mobile checks
|
|
20
|
+
if (os === 'iOS' || iOS()) {
|
|
21
|
+
if (browserName === 'opera' && parseInt(version.split('.')[0], 10) <= 72) {
|
|
22
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.OPERA_MOBILE_NOT_SUPPORTED };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (os === 'Android OS') {
|
|
26
|
+
if (browserName === 'opera' && parseInt(version.split('.')[0], 10) <= 72) {
|
|
27
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.OPERA_MOBILE_NOT_SUPPORTED };
|
|
28
|
+
}
|
|
29
|
+
if (browserName === 'android' && parseInt(version.split('.')[0], 10) <= 96) {
|
|
30
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.ANDROID_BROWSER_NOT_SUPPORTED };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Desktop browser checks
|
|
34
|
+
if (browserName === 'chrome' && parseInt(version.split('.')[0], 10) <= 57) {
|
|
35
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.CHROME_NOT_SUPPORTED };
|
|
36
|
+
}
|
|
37
|
+
if (browserName === 'firefox' && parseInt(version.split('.')[0], 10) <= 52) {
|
|
38
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.FIREFOX_NOT_SUPPORTED };
|
|
39
|
+
}
|
|
40
|
+
if (browserName === 'opera' && parseInt(version.split('.')[0], 10) <= 43) {
|
|
41
|
+
return { support: false, message: BROWSER_COMPATIBILITY_MESSAGES.OPERA_NOT_SUPPORTED };
|
|
42
|
+
}
|
|
43
|
+
return { support: true };
|
|
44
|
+
}
|
|
45
|
+
export function handleCacheContent() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const clearCacheParam = getUrlParameter('clear_cache', 'false');
|
|
48
|
+
const cacheAge = localStorage.getItem('cacheAge');
|
|
49
|
+
const cacheContent = localStorage.getItem('cache_content') || '';
|
|
50
|
+
if (!cacheAge) {
|
|
51
|
+
localStorage.setItem('cacheAge', Date.now().toString());
|
|
52
|
+
}
|
|
53
|
+
if ((cacheAge && Date.now() - Number(cacheAge) > 24 * 60 * 60 * 1000) || clearCacheParam === 'true') {
|
|
54
|
+
printLogs('ClearingCache', '');
|
|
55
|
+
yield clearDB();
|
|
56
|
+
localStorage.clear();
|
|
57
|
+
localStorage.setItem('cacheAge', Date.now().toString());
|
|
58
|
+
}
|
|
59
|
+
return cacheContent;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get URL parameter
|
|
64
|
+
*/
|
|
65
|
+
export function getUrlParameter(sParam, defaultValue) {
|
|
66
|
+
const sPageURL = window.location.search.substring(1);
|
|
67
|
+
const sURLVariables = sPageURL.split('&');
|
|
68
|
+
let sParameterName;
|
|
69
|
+
let i;
|
|
70
|
+
for (i = 0; i < sURLVariables.length; i++) {
|
|
71
|
+
sParameterName = sURLVariables[i].split('=');
|
|
72
|
+
if (sParameterName[0] === sParam) {
|
|
73
|
+
return typeof sParameterName[1] === undefined ? defaultValue : decodeURIComponent(sParameterName[1]);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return defaultValue;
|
|
77
|
+
}
|
|
78
|
+
export function checkMacOSSupport(browserName, version) {
|
|
79
|
+
if (browserName === 'safari' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.SAFARI) {
|
|
80
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.SAFARI_NOT_SUPPORTED };
|
|
81
|
+
}
|
|
82
|
+
return { isSupported: true };
|
|
83
|
+
}
|
|
84
|
+
export function checkIOSSupport(browserName, version) {
|
|
85
|
+
if (browserName === 'safari' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.SAFARI) {
|
|
86
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.SAFARI_NOT_SUPPORTED };
|
|
87
|
+
}
|
|
88
|
+
if (browserName === 'opera' &&
|
|
89
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.OPERA_MOBILE) {
|
|
90
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.OPERA_MOBILE_NOT_SUPPORTED };
|
|
91
|
+
}
|
|
92
|
+
return { isSupported: true };
|
|
93
|
+
}
|
|
94
|
+
export function checkAndroidSupport(browserName, version) {
|
|
95
|
+
if (browserName === 'chrome' &&
|
|
96
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.ANDROID_CHROME) {
|
|
97
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.ANDROID_CHROME_NOT_SUPPORTED };
|
|
98
|
+
}
|
|
99
|
+
if (browserName === 'samsung' &&
|
|
100
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.SAMSUNG_BROWSER) {
|
|
101
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.SAMSUNG_BROWSER_NOT_SUPPORTED };
|
|
102
|
+
}
|
|
103
|
+
if (browserName === 'firefox' &&
|
|
104
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.FIREFOX_MOBILE) {
|
|
105
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.FIREFOX_MOBILE_NOT_SUPPORTED };
|
|
106
|
+
}
|
|
107
|
+
if (browserName === 'opera' &&
|
|
108
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.OPERA_MOBILE) {
|
|
109
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.OPERA_MOBILE_NOT_SUPPORTED };
|
|
110
|
+
}
|
|
111
|
+
if (browserName === 'android' &&
|
|
112
|
+
parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.ANDROID_BROWSER) {
|
|
113
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.ANDROID_BROWSER_NOT_SUPPORTED };
|
|
114
|
+
}
|
|
115
|
+
return { isSupported: true };
|
|
116
|
+
}
|
|
117
|
+
export function checkWebBrowsersSupport(browserName, version) {
|
|
118
|
+
if (browserName === 'ie') {
|
|
119
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.IE_NOT_SUPPORTED };
|
|
120
|
+
}
|
|
121
|
+
if (browserName === 'edge' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.EDGE) {
|
|
122
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.EDGE_NOT_SUPPORTED };
|
|
123
|
+
}
|
|
124
|
+
if (browserName === 'chrome' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.CHROME) {
|
|
125
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.CHROME_NOT_SUPPORTED };
|
|
126
|
+
}
|
|
127
|
+
if (browserName === 'firefox' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.FIREFOX) {
|
|
128
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.FIREFOX_NOT_SUPPORTED };
|
|
129
|
+
}
|
|
130
|
+
if (browserName === 'opera' && parseInt(version.split('.')[0], 10) <= PACKAGE_COMPATIBILITY_MIN_VERSIONS.OPERA) {
|
|
131
|
+
return { isSupported: false, message: PACKAGE_COMPATIBILITY_MESSAGES.OPERA_NOT_SUPPORTED };
|
|
132
|
+
}
|
|
133
|
+
return { isSupported: true };
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=engine.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/engine.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PermissionDataState, PermissionListener } from './permissions.types';
|
|
2
|
+
import { IPermissionService } from './permissions.domain';
|
|
3
|
+
/**
|
|
4
|
+
* Singleton class to manage camera permissions across the application.
|
|
5
|
+
* Provides a single source of truth for camera permission state.
|
|
6
|
+
*/
|
|
7
|
+
declare class PermissionService implements IPermissionService {
|
|
8
|
+
private static instance;
|
|
9
|
+
private permissionGranted;
|
|
10
|
+
private permissionState;
|
|
11
|
+
private listeners;
|
|
12
|
+
private userMediaTimeout;
|
|
13
|
+
static getInstance(): PermissionService;
|
|
14
|
+
/**
|
|
15
|
+
* Adds a listener for permission state changes.
|
|
16
|
+
* Returns an unsubscribe function to remove the listener.
|
|
17
|
+
*/
|
|
18
|
+
addListener(listener: PermissionListener): () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Notifies all listeners about state changes
|
|
21
|
+
*/
|
|
22
|
+
private notifyListeners;
|
|
23
|
+
/**
|
|
24
|
+
* Requests camera permission via browser flow and returns the permission state.
|
|
25
|
+
* This is the simplified method for UI consumption.
|
|
26
|
+
* If permission is already granted, returns immediately without triggering browser flow.
|
|
27
|
+
*/
|
|
28
|
+
requestCameraPermissions(): Promise<PermissionDataState>;
|
|
29
|
+
/**
|
|
30
|
+
* Checks camera permission status and returns a boolean.
|
|
31
|
+
* This is the simplified method for UI consumption.
|
|
32
|
+
*/
|
|
33
|
+
checkCameraPermissions(): Promise<PermissionDataState>;
|
|
34
|
+
/**
|
|
35
|
+
* Requests camera permission and returns permission status.
|
|
36
|
+
* Internal method used by camera services.
|
|
37
|
+
*/
|
|
38
|
+
private requestBrowserCameraPermission;
|
|
39
|
+
/**
|
|
40
|
+
* Checks permission against Permission API and requests via getUserMedia if needed.
|
|
41
|
+
* If permission is denied, avoids making getUserMedia call.
|
|
42
|
+
* If permission is 'prompt' or 'granted', proceeds with getUserMedia.
|
|
43
|
+
* @returns boolean indicating if permission was granted.
|
|
44
|
+
*/
|
|
45
|
+
private grantPermission;
|
|
46
|
+
/**
|
|
47
|
+
* Checks permission against Permission API, if supported
|
|
48
|
+
* @returns boolean indicating if permission request should proceed.
|
|
49
|
+
*/
|
|
50
|
+
private checkPermissionShouldBeRequested;
|
|
51
|
+
private getUserMediaWithTimeout;
|
|
52
|
+
private getPermissionStateData;
|
|
53
|
+
private setPermissionStateData;
|
|
54
|
+
}
|
|
55
|
+
export { PermissionService };
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
/* eslint-disable lines-between-class-members */
|
|
11
|
+
/* eslint-disable import/prefer-default-export */
|
|
12
|
+
import { printLogs } from '../../global/shared.utils';
|
|
13
|
+
import { logCameraError } from './permission.utils';
|
|
14
|
+
/**
|
|
15
|
+
* Singleton class to manage camera permissions across the application.
|
|
16
|
+
* Provides a single source of truth for camera permission state.
|
|
17
|
+
*/
|
|
18
|
+
class PermissionService {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.permissionGranted = false;
|
|
21
|
+
this.permissionState = 'prompt';
|
|
22
|
+
this.listeners = new Set();
|
|
23
|
+
this.userMediaTimeout = 5000;
|
|
24
|
+
}
|
|
25
|
+
static getInstance() {
|
|
26
|
+
if (!PermissionService.instance) {
|
|
27
|
+
printLogs('[PermissionService] Creating singleton instance', '');
|
|
28
|
+
PermissionService.instance = new PermissionService();
|
|
29
|
+
}
|
|
30
|
+
return PermissionService.instance;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Adds a listener for permission state changes.
|
|
34
|
+
* Returns an unsubscribe function to remove the listener.
|
|
35
|
+
*/
|
|
36
|
+
addListener(listener) {
|
|
37
|
+
printLogs('[PermissionService] Adding listener', '');
|
|
38
|
+
this.listeners.add(listener);
|
|
39
|
+
// Return unsubscribe function
|
|
40
|
+
return () => {
|
|
41
|
+
printLogs('[PermissionService] Removing listener', '');
|
|
42
|
+
this.listeners.delete(listener);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Notifies all listeners about state changes
|
|
47
|
+
*/
|
|
48
|
+
notifyListeners() {
|
|
49
|
+
const state = {
|
|
50
|
+
isGranted: this.permissionGranted,
|
|
51
|
+
permissionState: this.permissionState,
|
|
52
|
+
};
|
|
53
|
+
printLogs('[PermissionService] Notifying listeners', state);
|
|
54
|
+
this.listeners.forEach((listener) => {
|
|
55
|
+
try {
|
|
56
|
+
listener(state);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
printLogs('[PermissionService] Error in listener:', error, 'ERROR');
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Requests camera permission via browser flow and returns the permission state.
|
|
65
|
+
* This is the simplified method for UI consumption.
|
|
66
|
+
* If permission is already granted, returns immediately without triggering browser flow.
|
|
67
|
+
*/
|
|
68
|
+
requestCameraPermissions() {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
try {
|
|
71
|
+
// Even though permission is already granted, it will recheck to sync with browser state.
|
|
72
|
+
// This ensures the internal state is always up to date.
|
|
73
|
+
// Get UserMedia will not prompt again if already granted.
|
|
74
|
+
yield this.requestBrowserCameraPermission();
|
|
75
|
+
return this.getPermissionStateData();
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
printLogs('[PermissionService] requestBrowserCameraPermissions error:', error, 'ERROR');
|
|
79
|
+
return this.getPermissionStateData();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Checks camera permission status and returns a boolean.
|
|
85
|
+
* This is the simplified method for UI consumption.
|
|
86
|
+
*/
|
|
87
|
+
checkCameraPermissions() {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
return this.getPermissionStateData();
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Requests camera permission and returns permission status.
|
|
94
|
+
* Internal method used by camera services.
|
|
95
|
+
*/
|
|
96
|
+
requestBrowserCameraPermission() {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
printLogs('[PermissionService] requestCameraPermission called', {
|
|
99
|
+
permissionGranted: this.permissionGranted,
|
|
100
|
+
});
|
|
101
|
+
try {
|
|
102
|
+
const granted = yield this.grantPermission();
|
|
103
|
+
this.setPermissionStateData(granted, granted ? 'granted' : 'denied');
|
|
104
|
+
return granted;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.setPermissionStateData(false, (error === null || error === void 0 ? void 0 : error.name) === 'NotAllowedError' ? 'denied' : 'prompt');
|
|
108
|
+
printLogs('[PermissionService] Permission request failed', {
|
|
109
|
+
errorName: error === null || error === void 0 ? void 0 : error.name,
|
|
110
|
+
errorMessage: error === null || error === void 0 ? void 0 : error.message,
|
|
111
|
+
newState: this.permissionState,
|
|
112
|
+
}, 'ERROR');
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Checks permission against Permission API and requests via getUserMedia if needed.
|
|
119
|
+
* If permission is denied, avoids making getUserMedia call.
|
|
120
|
+
* If permission is 'prompt' or 'granted', proceeds with getUserMedia.
|
|
121
|
+
* @returns boolean indicating if permission was granted.
|
|
122
|
+
*/
|
|
123
|
+
grantPermission() {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
try {
|
|
126
|
+
const shouldRequestPermission = this.checkPermissionShouldBeRequested();
|
|
127
|
+
if (!shouldRequestPermission) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
printLogs('[PermissionService] Calling getUserMedia to request permission', '');
|
|
131
|
+
const stream = yield this.getUserMediaWithTimeout();
|
|
132
|
+
printLogs('[PermissionService] getUserMedia successful, closing stream', '');
|
|
133
|
+
stream.getTracks().forEach((t) => t.stop());
|
|
134
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
printLogs('[PermissionService] requestPermission failed:', err, 'ERROR');
|
|
139
|
+
logCameraError(err);
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Checks permission against Permission API, if supported
|
|
146
|
+
* @returns boolean indicating if permission request should proceed.
|
|
147
|
+
*/
|
|
148
|
+
checkPermissionShouldBeRequested() {
|
|
149
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
150
|
+
if (navigator.permissions && typeof navigator.permissions.query === 'function') {
|
|
151
|
+
printLogs('[PermissionService] Checking permission state via Permissions API', '');
|
|
152
|
+
const permission = yield navigator.permissions.query({ name: 'camera' });
|
|
153
|
+
this.permissionState = permission.state;
|
|
154
|
+
printLogs('[PermissionService] performPermissionRequest Permission state:', permission.state);
|
|
155
|
+
if (permission.state === 'denied') {
|
|
156
|
+
printLogs('[PermissionService] Camera permission is denied', '', 'WARN');
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
getUserMediaWithTimeout() {
|
|
164
|
+
return navigator.mediaDevices.getUserMedia({ video: true, audio: false });
|
|
165
|
+
}
|
|
166
|
+
getPermissionStateData() {
|
|
167
|
+
return {
|
|
168
|
+
isGranted: this.permissionGranted,
|
|
169
|
+
state: this.permissionState,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
setPermissionStateData(isGranted, state) {
|
|
173
|
+
this.permissionGranted = isGranted;
|
|
174
|
+
this.permissionState = state;
|
|
175
|
+
printLogs('[PermissionService] setPermissionStateData', {
|
|
176
|
+
granted: isGranted,
|
|
177
|
+
state: this.permissionState,
|
|
178
|
+
});
|
|
179
|
+
// Notify listeners about state change
|
|
180
|
+
this.notifyListeners();
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
export { PermissionService };
|
|
184
|
+
//# sourceMappingURL=PermissionsService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionsService.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/permissions/PermissionsService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/permissions/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logs camera-related errors with detailed messages based on error type
|
|
3
|
+
* @param error - The error object to log
|
|
4
|
+
* @param context - Optional context string to prefix the log messages (defaults to 'MobileCameraService')
|
|
5
|
+
*/
|
|
6
|
+
export declare function logCameraError(error: any, context?: string): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { printLogs } from '../../global/shared.utils';
|
|
2
|
+
/**
|
|
3
|
+
* Logs camera-related errors with detailed messages based on error type
|
|
4
|
+
* @param error - The error object to log
|
|
5
|
+
* @param context - Optional context string to prefix the log messages (defaults to 'MobileCameraService')
|
|
6
|
+
*/
|
|
7
|
+
export function logCameraError(error, context = 'MobileCameraService') {
|
|
8
|
+
const errorType = (error === null || error === void 0 ? void 0 : error.name) || (error === null || error === void 0 ? void 0 : error.message) || 'UNKNOWN';
|
|
9
|
+
switch (errorType) {
|
|
10
|
+
case 'NotAllowedError':
|
|
11
|
+
printLogs(`[${context}] Camera permission denied by user`, '', 'ERROR');
|
|
12
|
+
break;
|
|
13
|
+
case 'NotFoundError':
|
|
14
|
+
printLogs(`[${context}] No camera device found`, '', 'ERROR');
|
|
15
|
+
break;
|
|
16
|
+
case 'NotReadableError':
|
|
17
|
+
printLogs(`[${context}] Camera is already in use by another app/tab`, '', 'ERROR');
|
|
18
|
+
break;
|
|
19
|
+
case 'OverconstrainedError':
|
|
20
|
+
printLogs(`[${context}] Camera constraints cannot be satisfied`, '', 'ERROR');
|
|
21
|
+
break;
|
|
22
|
+
case 'NO_TRACK_SETTINGS':
|
|
23
|
+
printLogs(`[${context}] Failed to get track settings from camera`, '', 'ERROR');
|
|
24
|
+
break;
|
|
25
|
+
case 'NO_VIDEO_TRACKS':
|
|
26
|
+
printLogs(`[${context}] Stream has no video tracks`, '', 'ERROR');
|
|
27
|
+
break;
|
|
28
|
+
default:
|
|
29
|
+
printLogs(`[${context}] Unknown camera error: ${errorType}`, '', 'ERROR');
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
printLogs(`[${context}] Error stack: `, (error === null || error === void 0 ? void 0 : error.stack) || 'no stack trace');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=permission.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/permissions/permission.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAU,EAAE,OAAO,GAAG,qBAAqB;IACxE,MAAM,SAAS,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,IAAI,SAAS,CAAC;IAE7D,QAAQ,SAAS,EAAE;QACjB,KAAK,iBAAiB;YACpB,SAAS,CAAC,IAAI,OAAO,oCAAoC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACxE,MAAM;QAER,KAAK,eAAe;YAClB,SAAS,CAAC,IAAI,OAAO,0BAA0B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM;QAER,KAAK,kBAAkB;YACrB,SAAS,CAAC,IAAI,OAAO,+CAA+C,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACnF,MAAM;QAER,KAAK,sBAAsB;YACzB,SAAS,CAAC,IAAI,OAAO,0CAA0C,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9E,MAAM;QAER,KAAK,mBAAmB;YACtB,SAAS,CAAC,IAAI,OAAO,4CAA4C,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAChF,MAAM;QAER,KAAK,iBAAiB;YACpB,SAAS,CAAC,IAAI,OAAO,8BAA8B,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAClE,MAAM;QAER;YACE,SAAS,CAAC,IAAI,OAAO,2BAA2B,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM;KACT;IAED,SAAS,CAAC,IAAI,OAAO,iBAAiB,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,gBAAgB,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PermissionDataState, PermissionListener } from './permissions.types';
|
|
2
|
+
export interface IPermissionService {
|
|
3
|
+
requestCameraPermissions(): Promise<PermissionDataState>;
|
|
4
|
+
checkCameraPermissions(): Promise<PermissionDataState>;
|
|
5
|
+
addListener(listener: PermissionListener): () => void;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.domain.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/permissions/permissions.domain.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type PermissionState = 'prompt' | 'granted' | 'denied';
|
|
2
|
+
export type PermissionListener = (state: {
|
|
3
|
+
isGranted: boolean;
|
|
4
|
+
permissionState: PermissionState;
|
|
5
|
+
}) => void;
|
|
6
|
+
export type PermissionDataState = {
|
|
7
|
+
isGranted: boolean;
|
|
8
|
+
state: PermissionState;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.types.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/permissions/permissions.types.ts"],"names":[],"mappings":""}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { Wasm } from './wasm.domain';
|
|
2
|
-
import { WasmLoadResult, WasmModuleOptions, EncryptionResult, WasmResultCallback } from './wasm.types';
|
|
3
|
-
export declare class WasmService implements Wasm {
|
|
4
|
-
private workerFunctions;
|
|
5
|
-
private isInitialized;
|
|
6
|
-
private hasSimdSupport;
|
|
7
|
-
constructor();
|
|
8
|
-
initialize(): Promise<void>;
|
|
9
|
-
loadModule(options: WasmModuleOptions): Promise<WasmLoadResult>;
|
|
10
|
-
checkIfModelsLoaded: (isEnroll: boolean) => Promise<boolean>;
|
|
11
|
-
enroll(imageData: any, config: string, callback: WasmResultCallback): Promise<any>;
|
|
12
|
-
predict: (images: ImageData[], isSimd: boolean, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
13
|
-
estimateAge: (images: ImageData[], isSimd: boolean, config: string, callback: WasmResultCallback) => Promise<{
|
|
14
|
-
result: number;
|
|
15
|
-
imageData: Uint8ClampedArray | null;
|
|
16
|
-
height: number | null;
|
|
17
|
-
width: number | null;
|
|
18
|
-
}>;
|
|
19
|
-
compareEmbeddings: (embeddingsA: string, embeddingsB: string, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
20
|
-
scanFrontPhotoIdDocument: (imageData: ImageData, config: string, callback: WasmResultCallback) => Promise<void>;
|
|
21
|
-
scanBackDocument: (imageData: ImageData, isSimd: boolean, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
22
|
-
scanPassport: (imageData: ImageData, config: string, callback: WasmResultCallback) => Promise<void>;
|
|
23
|
-
documentOcr: (imageData: ImageData | string, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
24
|
-
pkiEncrypt: (payload: any) => Promise<EncryptionResult>;
|
|
25
|
-
}
|
|
1
|
+
import { Wasm } from './wasm.domain';
|
|
2
|
+
import { WasmLoadResult, WasmModuleOptions, EncryptionResult, WasmResultCallback } from './wasm.types';
|
|
3
|
+
export declare class WasmService implements Wasm {
|
|
4
|
+
private workerFunctions;
|
|
5
|
+
private isInitialized;
|
|
6
|
+
private hasSimdSupport;
|
|
7
|
+
constructor();
|
|
8
|
+
initialize(): Promise<void>;
|
|
9
|
+
loadModule(options: WasmModuleOptions): Promise<WasmLoadResult>;
|
|
10
|
+
checkIfModelsLoaded: (isEnroll: boolean) => Promise<boolean>;
|
|
11
|
+
enroll(imageData: any, config: string, callback: WasmResultCallback): Promise<any>;
|
|
12
|
+
predict: (images: ImageData[], isSimd: boolean, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
13
|
+
estimateAge: (images: ImageData[], isSimd: boolean, config: string, callback: WasmResultCallback, onAntiSpoofProgress?: any) => Promise<{
|
|
14
|
+
result: number;
|
|
15
|
+
imageData: Uint8ClampedArray | null;
|
|
16
|
+
height: number | null;
|
|
17
|
+
width: number | null;
|
|
18
|
+
}>;
|
|
19
|
+
compareEmbeddings: (embeddingsA: string, embeddingsB: string, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
20
|
+
scanFrontPhotoIdDocument: (imageData: ImageData, config: string, callback: WasmResultCallback) => Promise<void>;
|
|
21
|
+
scanBackDocument: (imageData: ImageData, isSimd: boolean, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
22
|
+
scanPassport: (imageData: ImageData, config: string, callback: WasmResultCallback) => Promise<void>;
|
|
23
|
+
documentOcr: (imageData: ImageData | string, config: string, callback: WasmResultCallback) => Promise<any>;
|
|
24
|
+
pkiEncrypt: (payload: any) => Promise<EncryptionResult>;
|
|
25
|
+
}
|