@privateid/ultrapass-web-sdk 2.0.0 → 2.1.1
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/index.js +6 -1
- package/dist/application/index.js.map +1 -1
- package/dist/application/modules/core/document/DocumentService.d.ts +1 -0
- package/dist/application/modules/core/document/DocumentService.js +67 -13
- package/dist/application/modules/core/document/DocumentService.js.map +1 -1
- package/dist/application/modules/core/face/FaceService.d.ts +1 -0
- package/dist/application/modules/core/face/FaceService.js +39 -2
- package/dist/application/modules/core/face/FaceService.js.map +1 -1
- package/dist/application/modules/core/face/face.types.d.ts +1 -0
- package/dist/application/modules/internal/shared/shared.utils.d.ts +1 -0
- package/dist/application/modules/internal/shared/shared.utils.js +12 -2
- package/dist/application/modules/internal/shared/shared.utils.js.map +1 -1
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.d.ts +1 -1
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.js +3 -3
- package/dist/application/modules/internal/wasm-orchestrator/WasmOrchestratorService.js.map +1 -1
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.utils.js +5 -1
- package/dist/application/modules/internal/wasm-orchestrator/wasm-orchestrator.utils.js.map +1 -1
- package/dist/application/modules/support/camera/camera.domain.d.ts +2 -1
- package/dist/application/modules/support/camera/camera.types.d.ts +10 -0
- package/dist/application/modules/support/camera/camera.utils.d.ts +1 -2
- package/dist/application/modules/support/camera/camera.utils.js +1 -10
- package/dist/application/modules/support/camera/camera.utils.js.map +1 -1
- package/dist/application/modules/support/camera/index.d.ts +2 -1
- package/dist/application/modules/support/camera/index.js +2 -0
- package/dist/application/modules/support/camera/index.js.map +1 -1
- package/dist/application/modules/support/camera/services/BaseCameraService.d.ts +5 -5
- package/dist/application/modules/support/camera/services/BaseCameraService.js +29 -13
- package/dist/application/modules/support/camera/services/BaseCameraService.js.map +1 -1
- package/dist/application/modules/support/camera/services/VideoIntegrityMonitor.d.ts +60 -0
- package/dist/application/modules/support/camera/services/VideoIntegrityMonitor.js +325 -0
- package/dist/application/modules/support/camera/services/VideoIntegrityMonitor.js.map +1 -0
- package/dist/application/modules/support/engine/EngineService.js +5 -4
- package/dist/application/modules/support/engine/EngineService.js.map +1 -1
- package/dist/application/modules/support/engine/engine.constants.d.ts +1 -0
- package/dist/application/modules/support/engine/engine.constants.js +1 -0
- package/dist/application/modules/support/engine/engine.constants.js.map +1 -1
- package/dist/application/modules/support/engine/engine.utils.js +13 -2
- package/dist/application/modules/support/engine/engine.utils.js.map +1 -1
- package/dist/application/workers/wasm/WasmWorkerService.d.ts +2 -2
- package/dist/application/workers/wasm/WasmWorkerService.js +16 -8
- package/dist/application/workers/wasm/WasmWorkerService.js.map +1 -1
- package/dist/application/workers/wasm/wasm-worker.domain.d.ts +2 -2
- package/dist/application/workers/wasm/wasm-worker.utils.d.ts +1 -2
- package/dist/application/workers/wasm/wasm-worker.utils.js +9 -6
- package/dist/application/workers/wasm/wasm-worker.utils.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/wasm/ultra/manifest.json +15 -15
- package/wasm/ultra/nosimd/26.03.17-71cdf0e-prod/privid_fhe_ultra.js +18 -0
- package/wasm/{ultra-dev/nosimd/26.02.13-24c4552-dev → ultra/nosimd/26.03.17-71cdf0e-prod}/privid_fhe_ultra.wasm +0 -0
- package/wasm/ultra/nosimd/version.json +1 -1
- package/wasm/ultra/simd/26.03.17-71cdf0e-prod/privid_fhe_ultra.js +18 -0
- package/wasm/{ultra-dev/simd/26.02.13-24c4552-dev → ultra/simd/26.03.17-71cdf0e-prod}/privid_fhe_ultra.wasm +0 -0
- package/wasm/ultra/simd/version.json +1 -1
- package/wasm/ultra-dev/nosimd/26.03.17-71cdf0e-dev/privid_fhe_ultra.js +18 -0
- package/wasm/{ultra/nosimd/26.02.13-24c4552-prod → ultra-dev/nosimd/26.03.17-71cdf0e-dev}/privid_fhe_ultra.wasm +0 -0
- package/wasm/ultra-dev/nosimd/version.json +1 -1
- package/wasm/ultra-dev/simd/26.03.17-71cdf0e-dev/privid_fhe_ultra.js +18 -0
- package/wasm/{ultra/simd/26.02.13-24c4552-prod → ultra-dev/simd/26.03.17-71cdf0e-dev}/privid_fhe_ultra.wasm +0 -0
- package/wasm/ultra-dev/simd/version.json +1 -1
- package/workers/wasm-new.worker.js +1 -1
- package/workers/wasm-new.worker.js.map +3 -3
- package/wasm/ultra/nosimd/26.02.13-24c4552-prod/privid_fhe_ultra.js +0 -18
- package/wasm/ultra/simd/26.02.13-24c4552-prod/privid_fhe_ultra.js +0 -18
- package/wasm/ultra-dev/nosimd/26.02.13-24c4552-dev/privid_fhe_ultra.js +0 -18
- package/wasm/ultra-dev/simd/26.02.13-24c4552-dev/privid_fhe_ultra.js +0 -18
|
@@ -0,0 +1,325 @@
|
|
|
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 { printLogs } from '../../../internal/shared/shared.utils';
|
|
11
|
+
/**
|
|
12
|
+
* Monitors a video element and its media stream for signs of DOM-level injection attacks.
|
|
13
|
+
*
|
|
14
|
+
* Detects: srcObject reassignment, element removal/replacement, overlay injection,
|
|
15
|
+
* style tampering, ID changes, track swaps, track ended, and suspicious track sources.
|
|
16
|
+
*
|
|
17
|
+
* Pull-based: call `getSnapshot()` to read accumulated violations.
|
|
18
|
+
* Once a violation is recorded, it persists for the entire session.
|
|
19
|
+
*
|
|
20
|
+
* SAFETY: This is an observational feature — it must NEVER throw into the camera path
|
|
21
|
+
* or prevent camera operations from completing. All initialization and callback code
|
|
22
|
+
* is wrapped in try/catch to guarantee this.
|
|
23
|
+
*/
|
|
24
|
+
export class VideoIntegrityMonitor {
|
|
25
|
+
constructor(videoElement, stream) {
|
|
26
|
+
this.violations = [];
|
|
27
|
+
this.disposed = false;
|
|
28
|
+
// Observers
|
|
29
|
+
this.videoAttributeObserver = null;
|
|
30
|
+
this.parentChildListObserver = null;
|
|
31
|
+
// Stream event listener references (for cleanup)
|
|
32
|
+
this.onAddTrack = null;
|
|
33
|
+
this.onRemoveTrack = null;
|
|
34
|
+
this.onTrackEnded = null;
|
|
35
|
+
this.videoElement = videoElement;
|
|
36
|
+
this.legitimateStream = stream;
|
|
37
|
+
this.originalId = videoElement.id;
|
|
38
|
+
// Each init step is isolated — a failure in one must not prevent the others
|
|
39
|
+
// or propagate up to the camera initialization flow.
|
|
40
|
+
try {
|
|
41
|
+
this.interceptSrcObject();
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
printLogs('[VideoIntegrityMonitor] failed to init srcObject interceptor', e, 'WARN');
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
this.initVideoAttributeObserver();
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
printLogs('[VideoIntegrityMonitor] failed to init attribute observer', e, 'WARN');
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
this.initParentObserver();
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
printLogs('[VideoIntegrityMonitor] failed to init parent observer', e, 'WARN');
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
this.initStreamListeners();
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
printLogs('[VideoIntegrityMonitor] failed to init stream listeners', e, 'WARN');
|
|
63
|
+
}
|
|
64
|
+
this.trackValidationDone = this.validateTrackSource();
|
|
65
|
+
printLogs('[VideoIntegrityMonitor] initialized', '');
|
|
66
|
+
}
|
|
67
|
+
getSnapshot() {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
try {
|
|
70
|
+
yield this.trackValidationDone;
|
|
71
|
+
}
|
|
72
|
+
catch (_a) {
|
|
73
|
+
// Track validation failed — return whatever violations we have so far
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
violations: [...this.violations],
|
|
77
|
+
tampered: this.violations.length > 0,
|
|
78
|
+
};
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
dispose() {
|
|
82
|
+
this.disposed = true;
|
|
83
|
+
// Restore original srcObject property descriptor
|
|
84
|
+
try {
|
|
85
|
+
if (this.originalSrcObjectDescriptor) {
|
|
86
|
+
Object.defineProperty(this.videoElement, 'srcObject', this.originalSrcObjectDescriptor);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
delete this.videoElement.srcObject;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
printLogs('[VideoIntegrityMonitor] failed to restore srcObject descriptor', e, 'WARN');
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
if (this.videoAttributeObserver) {
|
|
97
|
+
this.videoAttributeObserver.disconnect();
|
|
98
|
+
this.videoAttributeObserver = null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
printLogs('[VideoIntegrityMonitor] failed to disconnect attribute observer', e, 'WARN');
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
if (this.parentChildListObserver) {
|
|
106
|
+
this.parentChildListObserver.disconnect();
|
|
107
|
+
this.parentChildListObserver = null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
printLogs('[VideoIntegrityMonitor] failed to disconnect parent observer', e, 'WARN');
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
if (this.onAddTrack) {
|
|
115
|
+
this.legitimateStream.removeEventListener('addtrack', this.onAddTrack);
|
|
116
|
+
this.onAddTrack = null;
|
|
117
|
+
}
|
|
118
|
+
if (this.onRemoveTrack) {
|
|
119
|
+
this.legitimateStream.removeEventListener('removetrack', this.onRemoveTrack);
|
|
120
|
+
this.onRemoveTrack = null;
|
|
121
|
+
}
|
|
122
|
+
const videoTrack = this.legitimateStream.getVideoTracks()[0];
|
|
123
|
+
if (videoTrack && this.onTrackEnded) {
|
|
124
|
+
videoTrack.removeEventListener('ended', this.onTrackEnded);
|
|
125
|
+
this.onTrackEnded = null;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
printLogs('[VideoIntegrityMonitor] failed to remove stream listeners', e, 'WARN');
|
|
130
|
+
}
|
|
131
|
+
printLogs('[VideoIntegrityMonitor] disposed', '');
|
|
132
|
+
}
|
|
133
|
+
recordViolation(type, details) {
|
|
134
|
+
try {
|
|
135
|
+
this.violations.push({
|
|
136
|
+
type,
|
|
137
|
+
timestamp: Date.now(),
|
|
138
|
+
details,
|
|
139
|
+
});
|
|
140
|
+
printLogs(`[VideoIntegrityMonitor] violation: ${type}`, details, 'WARN');
|
|
141
|
+
}
|
|
142
|
+
catch (_a) {
|
|
143
|
+
// Last resort — never throw from the violation recorder itself
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Intercepts srcObject setter on the video element instance via Object.defineProperty.
|
|
148
|
+
* MutationObserver cannot observe srcObject because it is a JS property, not a DOM attribute.
|
|
149
|
+
*
|
|
150
|
+
* SAFETY: The setter always delegates to the original prototype setter regardless of
|
|
151
|
+
* whether the violation recording succeeds or fails. The camera stream must never be
|
|
152
|
+
* blocked by integrity monitoring.
|
|
153
|
+
*/
|
|
154
|
+
interceptSrcObject() {
|
|
155
|
+
const protoDescriptor = Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'srcObject');
|
|
156
|
+
if (!(protoDescriptor === null || protoDescriptor === void 0 ? void 0 : protoDescriptor.set))
|
|
157
|
+
return;
|
|
158
|
+
// Save whatever descriptor exists on the instance (if any) for cleanup
|
|
159
|
+
this.originalSrcObjectDescriptor = Object.getOwnPropertyDescriptor(this.videoElement, 'srcObject');
|
|
160
|
+
// Capture monitor instance — inside the property descriptor `this` refers to the
|
|
161
|
+
// HTMLVideoElement (the property owner), not the VideoIntegrityMonitor.
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
163
|
+
const monitor = this;
|
|
164
|
+
Object.defineProperty(this.videoElement, 'srcObject', {
|
|
165
|
+
get() {
|
|
166
|
+
var _a, _b;
|
|
167
|
+
return (_b = (_a = protoDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : null;
|
|
168
|
+
},
|
|
169
|
+
set(value) {
|
|
170
|
+
// Always apply the value first — camera operations must never be blocked
|
|
171
|
+
protoDescriptor.set.call(this, value);
|
|
172
|
+
// Then record the violation if applicable (after dispose, stop monitoring)
|
|
173
|
+
try {
|
|
174
|
+
if (!monitor.disposed && value !== null && value !== monitor.legitimateStream) {
|
|
175
|
+
monitor.recordViolation('srcObject_changed', 'Video srcObject was reassigned to a different stream');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch (e) {
|
|
179
|
+
printLogs('[VideoIntegrityMonitor] srcObject interceptor error', e, 'WARN');
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
configurable: true,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Watches video element attributes: style, hidden, id.
|
|
187
|
+
* Note: "class" is intentionally excluded — front-end frameworks (React, Tailwind)
|
|
188
|
+
* routinely toggle classes for animations and responsive styling, causing false positives.
|
|
189
|
+
*/
|
|
190
|
+
initVideoAttributeObserver() {
|
|
191
|
+
this.videoAttributeObserver = new MutationObserver((mutations) => {
|
|
192
|
+
try {
|
|
193
|
+
for (const mutation of mutations) {
|
|
194
|
+
if (mutation.type !== 'attributes')
|
|
195
|
+
continue;
|
|
196
|
+
switch (mutation.attributeName) {
|
|
197
|
+
case 'style':
|
|
198
|
+
case 'hidden': {
|
|
199
|
+
// Only flag when the video element is actually hidden — benign style
|
|
200
|
+
// changes (positioning, dimensions, transitions) are common in frameworks
|
|
201
|
+
const computed = getComputedStyle(this.videoElement);
|
|
202
|
+
const isHidden = this.videoElement.hidden ||
|
|
203
|
+
computed.display === 'none' ||
|
|
204
|
+
computed.visibility === 'hidden' ||
|
|
205
|
+
parseFloat(computed.opacity) === 0;
|
|
206
|
+
if (isHidden) {
|
|
207
|
+
this.recordViolation('style_tampered', `Video element hidden via "${mutation.attributeName}"`);
|
|
208
|
+
}
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
case 'id':
|
|
212
|
+
if (this.videoElement.id !== this.originalId) {
|
|
213
|
+
this.recordViolation('id_changed', `Video element ID changed from "${this.originalId}" to "${this.videoElement.id}"`);
|
|
214
|
+
}
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
catch (e) {
|
|
220
|
+
printLogs('[VideoIntegrityMonitor] attribute observer error', e, 'WARN');
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
this.videoAttributeObserver.observe(this.videoElement, {
|
|
224
|
+
attributes: true,
|
|
225
|
+
attributeFilter: ['style', 'hidden', 'id'],
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Watches the parent node for child list changes: element removal, replacement, overlay injection
|
|
230
|
+
*/
|
|
231
|
+
initParentObserver() {
|
|
232
|
+
const parent = this.videoElement.parentNode;
|
|
233
|
+
if (!parent)
|
|
234
|
+
return;
|
|
235
|
+
this.parentChildListObserver = new MutationObserver((mutations) => {
|
|
236
|
+
try {
|
|
237
|
+
for (const mutation of mutations) {
|
|
238
|
+
if (mutation.type !== 'childList')
|
|
239
|
+
continue;
|
|
240
|
+
// Check if our video element was removed
|
|
241
|
+
for (const removed of mutation.removedNodes) {
|
|
242
|
+
if (removed === this.videoElement) {
|
|
243
|
+
this.recordViolation('element_removed', 'Video element was removed from the DOM');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Check for suspicious new siblings
|
|
247
|
+
for (const added of mutation.addedNodes) {
|
|
248
|
+
if (!(added instanceof HTMLElement))
|
|
249
|
+
continue;
|
|
250
|
+
// A new video element added alongside ours could be a replacement
|
|
251
|
+
if (added instanceof HTMLVideoElement && added !== this.videoElement) {
|
|
252
|
+
this.recordViolation('element_replaced', `New <video> element added as sibling (id="${added.id || '(none)'}")`);
|
|
253
|
+
}
|
|
254
|
+
// Canvas or img overlays
|
|
255
|
+
if (added instanceof HTMLCanvasElement) {
|
|
256
|
+
this.recordViolation('overlay_injected', `<canvas> element injected as sibling`);
|
|
257
|
+
}
|
|
258
|
+
if (added instanceof HTMLImageElement) {
|
|
259
|
+
this.recordViolation('overlay_injected', `<img> element injected as sibling`);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
catch (e) {
|
|
265
|
+
printLogs('[VideoIntegrityMonitor] parent observer error', e, 'WARN');
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
this.parentChildListObserver.observe(parent, { childList: true });
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Listens for track add/remove events on the MediaStream
|
|
272
|
+
*/
|
|
273
|
+
initStreamListeners() {
|
|
274
|
+
this.onAddTrack = () => {
|
|
275
|
+
this.recordViolation('track_swapped', 'A new track was added to the media stream');
|
|
276
|
+
};
|
|
277
|
+
this.onRemoveTrack = () => {
|
|
278
|
+
this.recordViolation('track_swapped', 'A track was removed from the media stream');
|
|
279
|
+
};
|
|
280
|
+
this.legitimateStream.addEventListener('addtrack', this.onAddTrack);
|
|
281
|
+
this.legitimateStream.addEventListener('removetrack', this.onRemoveTrack);
|
|
282
|
+
// Listen for track ended on the primary video track
|
|
283
|
+
const videoTrack = this.legitimateStream.getVideoTracks()[0];
|
|
284
|
+
if (videoTrack) {
|
|
285
|
+
this.onTrackEnded = () => {
|
|
286
|
+
this.recordViolation('track_ended', `Video track "${videoTrack.label}" ended unexpectedly`);
|
|
287
|
+
};
|
|
288
|
+
videoTrack.addEventListener('ended', this.onTrackEnded);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Validates that the current video track looks like a real camera device
|
|
293
|
+
* (canvas capture tracks have empty labels and no matching deviceId in enumerateDevices)
|
|
294
|
+
*/
|
|
295
|
+
validateTrackSource() {
|
|
296
|
+
var _a;
|
|
297
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
298
|
+
try {
|
|
299
|
+
const videoTrack = this.legitimateStream.getVideoTracks()[0];
|
|
300
|
+
if (!videoTrack)
|
|
301
|
+
return;
|
|
302
|
+
const label = videoTrack.label;
|
|
303
|
+
const settings = (_a = videoTrack.getSettings) === null || _a === void 0 ? void 0 : _a.call(videoTrack);
|
|
304
|
+
const trackDeviceId = settings === null || settings === void 0 ? void 0 : settings.deviceId;
|
|
305
|
+
// Canvas capture tracks typically have empty labels
|
|
306
|
+
if (!label || label.trim() === '') {
|
|
307
|
+
this.recordViolation('track_source_suspicious', 'Video track has an empty label (possible canvas capture)');
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
// Verify the deviceId matches an actual enumerated device
|
|
311
|
+
const devices = yield navigator.mediaDevices.enumerateDevices();
|
|
312
|
+
const videoDevices = devices.filter((d) => d.kind === 'videoinput');
|
|
313
|
+
const matchingDevice = videoDevices.find((d) => d.deviceId === trackDeviceId);
|
|
314
|
+
if (!matchingDevice) {
|
|
315
|
+
this.recordViolation('track_source_suspicious', `Track deviceId "${trackDeviceId}" not found in enumerated devices`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch (e) {
|
|
319
|
+
// Validation failure must not affect camera operations
|
|
320
|
+
printLogs('[VideoIntegrityMonitor] track source validation error', e, 'WARN');
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
//# sourceMappingURL=VideoIntegrityMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoIntegrityMonitor.js","sourceRoot":"","sources":["../../../../../../src/application/modules/support/camera/services/VideoIntegrityMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,11 +12,12 @@ import { printLogs } from '../../internal/shared/shared.utils';
|
|
|
12
12
|
import { checkAndroidSupport, checkBrowserCompatibility, checkIOSSupport, checkMacOSSupport, checkWebBrowsersSupport, handleCacheContent, } from './engine.utils';
|
|
13
13
|
export class EngineService {
|
|
14
14
|
constructor(wasmOrchestratorService) {
|
|
15
|
+
var _a, _b, _c;
|
|
15
16
|
this.wasmOrchestratorService = wasmOrchestratorService;
|
|
16
|
-
const
|
|
17
|
-
this.browserName = name;
|
|
18
|
-
this.browserOS = os;
|
|
19
|
-
this.browserVersion = version;
|
|
17
|
+
const browser = detect();
|
|
18
|
+
this.browserName = (_a = browser === null || browser === void 0 ? void 0 : browser.name) !== null && _a !== void 0 ? _a : 'unknown';
|
|
19
|
+
this.browserOS = (_b = browser === null || browser === void 0 ? void 0 : browser.os) !== null && _b !== void 0 ? _b : 'unknown';
|
|
20
|
+
this.browserVersion = (_c = browser === null || browser === void 0 ? void 0 : browser.version) !== null && _c !== void 0 ? _c : 'unknown';
|
|
20
21
|
}
|
|
21
22
|
loadModule(params) {
|
|
22
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineService.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/EngineService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAW/D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,OAAO,aAAa;IAMxB,YAAY,uBAAyC
|
|
1
|
+
{"version":3,"file":"EngineService.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/EngineService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAW/D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,MAAM,OAAO,aAAa;IAMxB,YAAY,uBAAyC;;QACnD,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,SAAS,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,mCAAI,SAAS,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,SAAS,CAAC;IACtD,CAAC;IAEK,UAAU,CAAC,MAAwB;;YACvC,SAAS,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;YAEvD,MAAM,aAAa,GAAG,yBAAyB,EAAE,CAAC;YAClD,SAAS,CAAC,0CAA0C,EAAE,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC1B,OAAO,aAAa,CAAC;aACtB;YAED,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAChD,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,iCAC/C,MAAM,KACT,YAAY,IACZ,CAAC;aACJ;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,kCAAkC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;aACnD;QACH,CAAC;KAAA;IAEK,oBAAoB;;YACxB,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;aACjE;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,4CAA4C,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACxE,OAAO,KAAK,CAAC;aACd;QACH,CAAC;KAAA;IAEK,UAAU;;YACd,SAAS,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;YAE5C,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC;aAC5D;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,kCAAkC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC9D,OAAO,KAAK,CAAC;aACd;QACH,CAAC;KAAA;IAEK,WAAW,CAAC,OAAgB;;;YAChC,SAAS,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;YAE1D,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACtE,SAAS,CAAC,oCAAoC,EAAE,MAAM,CAAC,CAAC;gBACxD,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,0CAAE,OAAO,CAAC;aAC1C;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,mCAAmC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;aACb;;KACF;IAED,mBAAmB;QACjB,SAAS,CAAC,qCAAqC,EAAE;YAC/C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG;YACX,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,QAAQ;gBACX,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,YAAY,CAAC;YAClB,KAAK,SAAS;gBACZ,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpE,MAAM;YACR;gBACE,MAAM,GAAG,uBAAuB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC3E;QAED,SAAS,CAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEK,WAAW;;YACf,SAAS,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;aACzD;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,mCAAmC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC/D,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;IAEK,aAAa;;YACjB,SAAS,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;YAC/C,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,CAAC;aAC3D;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,qCAAqC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACjE,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;IAEK,kBAAkB;;YACtB,SAAS,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,CAAC;aAChE;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,0CAA0C,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACtE,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;IAEK,iBAAiB,CAAC,OAAe;;YACrC,SAAS,CAAC,mCAAmC,EAAE,OAAO,CAAC,CAAC;YACxD,IAAI;gBACF,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aACtE;YAAC,OAAO,KAAK,EAAE;gBACd,SAAS,CAAC,yCAAyC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACrE,MAAM,KAAK,CAAC;aACb;QACH,CAAC;KAAA;CACF"}
|
|
@@ -5,6 +5,7 @@ export declare const BROWSER_COMPATIBILITY_MESSAGES: {
|
|
|
5
5
|
readonly FIREFOX_NOT_SUPPORTED: "Firefox version 52 and below is not support WASM";
|
|
6
6
|
readonly ANDROID_BROWSER_NOT_SUPPORTED: "Android Browser version 96 and below is not supported.";
|
|
7
7
|
readonly UNABLE_TO_LOAD_WASM: "Unable to load wasm";
|
|
8
|
+
readonly WEBASSEMBLY_NOT_AVAILABLE: "WebAssembly is not supported in this browser environment. This may be caused by Lockdown Mode, a restricted WebView, or browser security settings.";
|
|
8
9
|
};
|
|
9
10
|
export declare const PACKAGE_COMPATIBILITY_MESSAGES: {
|
|
10
11
|
readonly SAFARI_NOT_SUPPORTED: "Safari version 10 and below is not supported.";
|
|
@@ -6,6 +6,7 @@ export const BROWSER_COMPATIBILITY_MESSAGES = {
|
|
|
6
6
|
FIREFOX_NOT_SUPPORTED: 'Firefox version 52 and below is not support WASM',
|
|
7
7
|
ANDROID_BROWSER_NOT_SUPPORTED: 'Android Browser version 96 and below is not supported.',
|
|
8
8
|
UNABLE_TO_LOAD_WASM: 'Unable to load wasm',
|
|
9
|
+
WEBASSEMBLY_NOT_AVAILABLE: 'WebAssembly is not supported in this browser environment. This may be caused by Lockdown Mode, a restricted WebView, or browser security settings.',
|
|
9
10
|
};
|
|
10
11
|
export const PACKAGE_COMPATIBILITY_MESSAGES = {
|
|
11
12
|
SAFARI_NOT_SUPPORTED: 'Safari version 10 and below is not supported.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/engine.constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,0BAA0B,EAAE,uDAAuD;IACnF,mBAAmB,EAAE,gDAAgD;IACrE,oBAAoB,EAAE,iDAAiD;IACvE,qBAAqB,EAAE,kDAAkD;IACzE,6BAA6B,EAAE,wDAAwD;IACvF,mBAAmB,EAAE,qBAAqB;
|
|
1
|
+
{"version":3,"file":"engine.constants.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/engine.constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,0BAA0B,EAAE,uDAAuD;IACnF,mBAAmB,EAAE,gDAAgD;IACrE,oBAAoB,EAAE,iDAAiD;IACvE,qBAAqB,EAAE,kDAAkD;IACzE,6BAA6B,EAAE,wDAAwD;IACvF,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB,EACvB,oJAAoJ;CAC9I,CAAC;AAEX,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,oBAAoB,EAAE,+CAA+C;IACrE,0BAA0B,EAAE,uDAAuD;IACnF,4BAA4B,EAAE,uDAAuD;IACrF,6BAA6B,EAAE,uDAAuD;IACtF,4BAA4B,EAAE,uDAAuD;IACrF,6BAA6B,EAAE,wDAAwD;IACvF,gBAAgB,EAAE,qCAAqC;IACvD,kBAAkB,EAAE,6CAA6C;IACjE,oBAAoB,EAAE,iDAAiD;IACvE,qBAAqB,EAAE,gDAAgD;IACvE,mBAAmB,EAAE,gDAAgD;CAC7D,CAAC;AAEX,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;IAChB,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,GAAG;IACpB,cAAc,EAAE,EAAE;IAClB,eAAe,EAAE,EAAE;IACnB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;CACD,CAAC"}
|
|
@@ -8,13 +8,24 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { detect } from 'detect-browser';
|
|
11
|
-
import { iOS, printLogs } from '../../internal/shared/shared.utils';
|
|
11
|
+
import { iOS, isWebAssemblyAvailable, printLogs } from '../../internal/shared/shared.utils';
|
|
12
12
|
import { BROWSER_COMPATIBILITY_MESSAGES, PACKAGE_COMPATIBILITY_MESSAGES, PACKAGE_COMPATIBILITY_MIN_VERSIONS, } from './engine.constants';
|
|
13
13
|
/**
|
|
14
14
|
* Check if the current browser supports WASM Engine
|
|
15
15
|
*/
|
|
16
16
|
export function checkBrowserCompatibility() {
|
|
17
|
-
|
|
17
|
+
if (!isWebAssemblyAvailable()) {
|
|
18
|
+
return {
|
|
19
|
+
support: false,
|
|
20
|
+
message: BROWSER_COMPATIBILITY_MESSAGES.WEBASSEMBLY_NOT_AVAILABLE,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const browser = detect();
|
|
24
|
+
if (!browser) {
|
|
25
|
+
printLogs('[engine.utils] detect-browser returned null, cannot determine browser compatibility', '');
|
|
26
|
+
return { support: true };
|
|
27
|
+
}
|
|
28
|
+
const { name: browserName, version, os } = browser;
|
|
18
29
|
// Mobile checks
|
|
19
30
|
if (os === 'iOS' || iOS()) {
|
|
20
31
|
if (browserName === 'opera' && parseInt(version.split('.')[0], 10) <= 72) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/engine.utils.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.utils.js","sourceRoot":"","sources":["../../../../../src/application/modules/support/engine/engine.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,8 +53,8 @@ export declare class WasmWorkerService implements WasmWorker {
|
|
|
53
53
|
private obtainFromNetwork;
|
|
54
54
|
private compileWasmBinary;
|
|
55
55
|
private obtainFromNetworkWithFallback;
|
|
56
|
-
ultraEnroll(params: EnrollParams, resultCallback: RegularCallback): Promise<boolean>;
|
|
57
|
-
ultraPredict(params: PredictParams, resultCallback: RegularCallback, onAntiSpoofProgress?: RegularCallback): Promise<boolean>;
|
|
56
|
+
ultraEnroll(params: EnrollParams, resultCallback: RegularCallback, onAntiSpoofProgress?: RegularCallback, onWasmCroppingCallback?: (base64Image: string) => void): Promise<boolean>;
|
|
57
|
+
ultraPredict(params: PredictParams, resultCallback: RegularCallback, onAntiSpoofProgress?: RegularCallback, onWasmCroppingCallback?: (base64Image: string) => void): Promise<boolean>;
|
|
58
58
|
ultraAgeEstimate(params: AgeEstimateParams, resultCallback: (...args: unknown[]) => void, onAntiSpoofProgress?: (...args: unknown[]) => void, onWasmCroppingCallback?: (base64Image: string) => void): Promise<boolean>;
|
|
59
59
|
ultraCompareEmbeddings(params: CompareEmbeddingsParams, resultCallback: RegularCallback): Promise<boolean>;
|
|
60
60
|
pkiEncrypt(params: PkiEncryptParams): string | {
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { expose } from 'comlink';
|
|
11
|
-
import { printLogs, setDebugType } from '../../modules/internal/shared/shared.utils';
|
|
11
|
+
import { isWebAssemblyAvailable, printLogs, setDebugType } from '../../modules/internal/shared/shared.utils';
|
|
12
12
|
import { checkCacheAndCurrentAreSameVersion, classifyFailureReason, clearCacheEntry, flatImageDataArraysIntoUint8Array, isCacheCorruptionFailure, readCurrentWasmVersion, readFromIndexedDBWithTimeout, removeNullBytesFromDecodedString, validateCustomWasmUrl, validateWasmBinary, writeToCacheQuietly, } from './wasm-worker.utils';
|
|
13
13
|
import { WASM_ULTRA_FOLDER_NAME } from './wasm-worker.constants';
|
|
14
14
|
const callbackRegistry = {
|
|
@@ -172,6 +172,9 @@ export class WasmWorkerService {
|
|
|
172
172
|
loadModulesInternal(params, errorCallback, progressCallback) {
|
|
173
173
|
var _a, _b;
|
|
174
174
|
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
+
if (!isWebAssemblyAvailable()) {
|
|
176
|
+
throw new Error('WebAssembly is not available in this worker context.');
|
|
177
|
+
}
|
|
175
178
|
this.proxiedErrorCallback = errorCallback;
|
|
176
179
|
callbackRegistry.error = errorCallback;
|
|
177
180
|
this.proxiedProgressCallback = progressCallback;
|
|
@@ -340,7 +343,7 @@ export class WasmWorkerService {
|
|
|
340
343
|
}
|
|
341
344
|
const module = yield this.compileWasmBinary(buffer, ctx);
|
|
342
345
|
if (tier.shouldCache) {
|
|
343
|
-
yield writeToCacheQuietly(buffer,
|
|
346
|
+
yield writeToCacheQuietly(buffer, ctx.version, this.getWasmFolderName());
|
|
344
347
|
}
|
|
345
348
|
attempts.push({ source: tier.source, success: true });
|
|
346
349
|
// Determine the reported source. When the custom URL tier failed and we fell
|
|
@@ -436,7 +439,9 @@ export class WasmWorkerService {
|
|
|
436
439
|
return yield createTFLiteModule({ wasmBinary });
|
|
437
440
|
}
|
|
438
441
|
catch (error) {
|
|
439
|
-
|
|
442
|
+
// typeof guard must come first: short-circuit evaluation prevents ReferenceError
|
|
443
|
+
// from accessing WebAssembly.CompileError when WebAssembly is undefined.
|
|
444
|
+
if (isWebAssemblyAvailable() && error instanceof WebAssembly.CompileError && ctx.modulePath === 'simd') {
|
|
440
445
|
printLogs('[WasmWorkerService] SIMD CompileError -- retrying with noSIMD', error, 'WARN');
|
|
441
446
|
return this.obtainFromNetworkWithFallback(ctx);
|
|
442
447
|
}
|
|
@@ -465,9 +470,13 @@ export class WasmWorkerService {
|
|
|
465
470
|
return createTFLiteModule({ wasmBinary: buffer });
|
|
466
471
|
});
|
|
467
472
|
}
|
|
468
|
-
ultraEnroll(params, resultCallback) {
|
|
473
|
+
ultraEnroll(params, resultCallback, onAntiSpoofProgress, onWasmCroppingCallback) {
|
|
469
474
|
return __awaiter(this, void 0, void 0, function* () {
|
|
470
475
|
callbackRegistry.result = resultCallback;
|
|
476
|
+
callbackRegistry.wasmCropping = onWasmCroppingCallback !== null && onWasmCroppingCallback !== void 0 ? onWasmCroppingCallback : null;
|
|
477
|
+
if (onAntiSpoofProgress) {
|
|
478
|
+
callbackRegistry.progress = onAntiSpoofProgress;
|
|
479
|
+
}
|
|
471
480
|
if (!(yield this.ensureModulesAreReady())) {
|
|
472
481
|
return false;
|
|
473
482
|
}
|
|
@@ -497,9 +506,10 @@ export class WasmWorkerService {
|
|
|
497
506
|
}
|
|
498
507
|
});
|
|
499
508
|
}
|
|
500
|
-
ultraPredict(params, resultCallback, onAntiSpoofProgress) {
|
|
509
|
+
ultraPredict(params, resultCallback, onAntiSpoofProgress, onWasmCroppingCallback) {
|
|
501
510
|
return __awaiter(this, void 0, void 0, function* () {
|
|
502
511
|
callbackRegistry.result = resultCallback;
|
|
512
|
+
callbackRegistry.wasmCropping = onWasmCroppingCallback !== null && onWasmCroppingCallback !== void 0 ? onWasmCroppingCallback : null;
|
|
503
513
|
if (onAntiSpoofProgress) {
|
|
504
514
|
callbackRegistry.progress = onAntiSpoofProgress;
|
|
505
515
|
}
|
|
@@ -534,12 +544,10 @@ export class WasmWorkerService {
|
|
|
534
544
|
ultraAgeEstimate(params, resultCallback, onAntiSpoofProgress, onWasmCroppingCallback) {
|
|
535
545
|
return __awaiter(this, void 0, void 0, function* () {
|
|
536
546
|
callbackRegistry.result = resultCallback;
|
|
547
|
+
callbackRegistry.wasmCropping = onWasmCroppingCallback !== null && onWasmCroppingCallback !== void 0 ? onWasmCroppingCallback : null;
|
|
537
548
|
if (onAntiSpoofProgress) {
|
|
538
549
|
callbackRegistry.progress = onAntiSpoofProgress;
|
|
539
550
|
}
|
|
540
|
-
if (onWasmCroppingCallback) {
|
|
541
|
-
callbackRegistry.wasmCropping = onWasmCroppingCallback;
|
|
542
|
-
}
|
|
543
551
|
if (!(yield this.ensureModulesAreReady())) {
|
|
544
552
|
return false;
|
|
545
553
|
}
|