@incodetech/core 0.0.0-dev-20260407-2c382da → 0.0.0-dev-20260407-ebd92aa
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/{BaseWasmProvider--AzPfwOm.esm.js → BaseWasmProvider-CQgeReKV.esm.js} +1 -785
- package/dist/MotionSensorProvider-BTDLt08l.esm.js +254 -0
- package/dist/OpenViduRecordingProvider-PvkEhhDq.esm.js +87 -0
- package/dist/StateMachine-DU1S4Cik.d.ts +2 -0
- package/dist/{WasmUtilProvider-BonqBWdj.esm.js → WasmUtilProvider-C45HStLj.esm.js} +1 -1
- package/dist/{addressSearch-B8Fo4v9V.esm.js → addressSearch-C5qzDvkN.esm.js} +4 -4
- package/dist/antifraud.d.ts +1 -1
- package/dist/antifraud.esm.js +3 -3
- package/dist/authentication.d.ts +11 -9
- package/dist/authentication.esm.js +18 -13
- package/dist/{authenticationManager-Bd10YGSO.d.ts → authenticationManager-CXTPgE_2.d.ts} +2 -2
- package/dist/{authenticationManager-B4gSCgrO.esm.js → authenticationManager-D4esVx-z.esm.js} +7 -6
- package/dist/{backCameraStream-DF_d7hTz.esm.js → backCameraStream-CUo1USCT.esm.js} +2 -2
- package/dist/camera.d.ts +16 -0
- package/dist/camera.esm.js +5 -0
- package/dist/consent.d.ts +52 -52
- package/dist/consent.esm.js +3 -3
- package/dist/curp-validation.d.ts +5 -5
- package/dist/curp-validation.esm.js +3 -3
- package/dist/{deepsightLoader-DKgEdLIS.esm.js → deepsightLoader-Bs5jHgca.esm.js} +10 -7
- package/dist/deepsightService-C3gQ_9Ml.esm.js +493 -0
- package/dist/{deepsightService-Ciu0atv5.d.ts → deepsightService-CyEcAH-I.d.ts} +193 -197
- package/dist/device.d.ts +46 -0
- package/dist/device.esm.js +106 -0
- package/dist/document-capture.d.ts +3 -3
- package/dist/document-capture.esm.js +6 -6
- package/dist/document-upload.d.ts +4 -4
- package/dist/document-upload.esm.js +6 -6
- package/dist/ekyb.d.ts +3 -3
- package/dist/ekyb.esm.js +9 -9
- package/dist/ekyc.d.ts +3 -3
- package/dist/ekyc.esm.js +5 -5
- package/dist/email.d.ts +3 -3
- package/dist/email.esm.js +5 -5
- package/dist/{emailManager-CpAwvP3v.esm.js → emailManager-CZ2IGW0g.esm.js} +4 -4
- package/dist/{emailManager-BQPIJR_O.d.ts → emailManager-CtA6Tvry.d.ts} +2 -2
- package/dist/events-BlVGS-8F.esm.js +472 -0
- package/dist/events.d.ts +232 -0
- package/dist/events.esm.js +4 -0
- package/dist/extensibility.d.ts +15 -13
- package/dist/extensibility.esm.js +25 -20
- package/dist/face-match.d.ts +1 -1
- package/dist/face-match.esm.js +3 -3
- package/dist/{faceCaptureManagerFactory-CdwpYykv.d.ts → faceCaptureManagerFactory-Bp_mC9b2.d.ts} +8 -6
- package/dist/faceCaptureSetup-DzlTPjT9.esm.js +828 -0
- package/dist/flow.d.ts +17 -9
- package/dist/flow.esm.js +68 -21
- package/dist/{flowCompletionService-TnWijsSw.esm.js → flowCompletionService-N6-xypy-.esm.js} +2 -2
- package/dist/{flowServices-CO2sIR3D.esm.js → flowServices-xgqnJ64L.esm.js} +3 -3
- package/dist/geolocation.d.ts +2 -2
- package/dist/geolocation.esm.js +4 -4
- package/dist/getBrowser-B800KRAi.esm.js +41 -0
- package/dist/getDeviceClass-BKd2FOAf.esm.js +14 -0
- package/dist/government-validation.d.ts +2 -2
- package/dist/government-validation.esm.js +4 -4
- package/dist/http.d.ts +57 -0
- package/dist/http.esm.js +3 -0
- package/dist/id.d.ts +11 -10
- package/dist/id.esm.js +20 -16
- package/dist/{idCaptureManager-IdqsAASp.d.ts → idCaptureManager-Bx298yFC.d.ts} +9 -7
- package/dist/{idCaptureManager-DaLU1ug7.esm.js → idCaptureManager-bowLKHEs.esm.js} +75 -58
- package/dist/index.d.ts +3 -611
- package/dist/index.esm.js +10 -562
- package/dist/{lib-i-4qLKdG.esm.js → lib-Cq5Wc-Hd.esm.js} +1 -1
- package/dist/mandatory-consent.d.ts +55 -55
- package/dist/mandatory-consent.esm.js +3 -3
- package/dist/openviduLazy-BdsxPGgp.esm.js +12 -0
- package/dist/openviduLazy-NTgGtkeK.esm.js +3 -0
- package/dist/permissionServices-CDqkkway.esm.js +50 -0
- package/dist/phone.d.ts +3 -3
- package/dist/phone.esm.js +5 -5
- package/dist/{phoneManager-BAPHSXx8.esm.js → phoneManager-CscgaER2.esm.js} +4 -4
- package/dist/{phoneManager-DA8WUJtl.d.ts → phoneManager-DlaiZtwZ.d.ts} +2 -2
- package/dist/recordingService-BDx_6XR9.esm.js +1024 -0
- package/dist/redirect-to-mobile.d.ts +2 -2
- package/dist/redirect-to-mobile.esm.js +4 -4
- package/dist/selfie.d.ts +11 -9
- package/dist/selfie.esm.js +18 -13
- package/dist/{selfieManager-BSkzncsa.esm.js → selfieManager-DVvvlMMf.esm.js} +5 -4
- package/dist/{selfieManager-Dft5wZQ_.d.ts → selfieManager-UBgYgVnw.d.ts} +2 -2
- package/dist/{session-OglUYC9l.esm.js → session-PLjFj_T3.esm.js} +5 -19
- package/dist/session.d.ts +46 -2
- package/dist/session.esm.js +7 -4
- package/dist/setup-DfinQjIF.d.ts +120 -0
- package/dist/setup-fvDWE7f8.esm.js +450 -0
- package/dist/signature.d.ts +2 -2
- package/dist/signature.esm.js +3 -3
- package/dist/{stats-BVigf5Rn.esm.js → stats-BZ1kFW4p.esm.js} +1 -1
- package/dist/stats.esm.js +2 -2
- package/dist/{types-CiLyvJGb.d.ts → types-DcqFYowa.d.ts} +1 -1
- package/dist/{types-D8Y1faI5.d.ts → types-DufUK-_f.d.ts} +1 -1
- package/dist/types-UPqCMQKa.d.ts +5 -0
- package/dist/{StateMachine-CM_aOfNL.d.ts → warmup-yzJJKXFi.d.ts} +1 -4
- package/dist/wasm.d.ts +15 -0
- package/dist/wasm.esm.js +10 -0
- package/dist/{Manager-C6AGXEq_.esm.js → xstate.esm-BXrcOcSC.esm.js} +103 -507
- package/package.json +18 -2
- package/dist/StreamCanvasCapture-DkpkIgyL.esm.js +0 -410
- package/dist/endpoints-CI5-28jT.esm.js +0 -69
- package/dist/faceCaptureSetup-DbXgtcp7.esm.js +0 -1561
- package/dist/id-CzDAG_kM.esm.js +0 -0
- package/dist/index-BuVKc9bv.d.ts +0 -1
- /package/dist/{Actor-By8WNHi-.d.ts → Actor-Cz_KnN47.d.ts} +0 -0
- /package/dist/{BrowserEnvironmentProvider-BECjyw3_.esm.js → BrowserEnvironmentProvider--xQUs3sg.esm.js} +0 -0
- /package/dist/{BrowserTimerProvider-CIqH6hJp.esm.js → BrowserTimerProvider-CkHEwJFa.esm.js} +0 -0
- /package/dist/{Manager-CCT_-HuZ.d.ts → Manager-N01KfnVA.d.ts} +0 -0
- /package/dist/{api-C2uzxrpN.esm.js → api-CyI8qTie.esm.js} +0 -0
- /package/dist/{browserSimulation-DYAk0Ipe.esm.js → browserSimulation-yzDdWSBf.esm.js} +0 -0
- /package/dist/{camera-6XJdOeBF.d.ts → camera-BcVDCZxW.d.ts} +0 -0
- /package/dist/{camera-DAuRUvnp.esm.js → camera-CsT06Zqy.esm.js} +0 -0
- /package/dist/{chunk-D6hkk-hd.esm.js → chunk-BcQWkoAq.esm.js} +0 -0
- /package/dist/{displayErrors-CGJwvrTl.d.ts → displayErrors-C0mf2glb.d.ts} +0 -0
- /package/dist/{flowCompletionService-BOd4Rk8n.d.ts → flowCompletionService-Dloh6J8n.d.ts} +0 -0
- /package/dist/{platform-DdhkonXk.esm.js → platform-Dcuv6w60.esm.js} +0 -0
|
@@ -1,410 +0,0 @@
|
|
|
1
|
-
import { a as __toDynamicImportESM } from "./chunk-D6hkk-hd.esm.js";
|
|
2
|
-
import { a as getDeviceInfo, i as IncodeCanvas, n as MotionSensorProvider } from "./BaseWasmProvider--AzPfwOm.esm.js";
|
|
3
|
-
import { t as api } from "./api-C2uzxrpN.esm.js";
|
|
4
|
-
import { t as endpoints } from "./endpoints-CI5-28jT.esm.js";
|
|
5
|
-
import { i as stopCameraStream, r as requestCameraAccess } from "./camera-DAuRUvnp.esm.js";
|
|
6
|
-
|
|
7
|
-
//#region src/internal/device/getDeviceClass.ts
|
|
8
|
-
function getDeviceClass() {
|
|
9
|
-
const { userAgent, platform, maxTouchPoints } = getDeviceInfo();
|
|
10
|
-
if (!userAgent) return "desktop";
|
|
11
|
-
const ua = userAgent.toLowerCase();
|
|
12
|
-
if (/iphone|ipad|ipod/.test(ua) || platform === "MacIntel" && maxTouchPoints > 1) return "ios";
|
|
13
|
-
if (/android/.test(ua)) return "android";
|
|
14
|
-
return "desktop";
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region ../infra/src/providers/browser/BrowserStorageProvider.ts
|
|
19
|
-
/**
|
|
20
|
-
* Browser-based storage provider wrapping localStorage.
|
|
21
|
-
* Handles JSON serialization/deserialization automatically.
|
|
22
|
-
*/
|
|
23
|
-
var BrowserStorageProvider = class {
|
|
24
|
-
/**
|
|
25
|
-
* Retrieves a value from localStorage.
|
|
26
|
-
* @param key - The storage key
|
|
27
|
-
* @returns The stored value or null if not found
|
|
28
|
-
* @throws Error if stored value is invalid JSON
|
|
29
|
-
*/
|
|
30
|
-
async get(key) {
|
|
31
|
-
try {
|
|
32
|
-
const item = localStorage.getItem(key);
|
|
33
|
-
if (item === null) return null;
|
|
34
|
-
return JSON.parse(item);
|
|
35
|
-
} catch (error) {
|
|
36
|
-
if (error instanceof SyntaxError) throw new Error(`Invalid JSON stored at key "${key}": ${error.message}`);
|
|
37
|
-
throw error;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Stores a value in localStorage.
|
|
42
|
-
* @param key - The storage key
|
|
43
|
-
* @param value - The value to store (will be serialized as JSON)
|
|
44
|
-
* @throws Error if value cannot be serialized or quota is exceeded
|
|
45
|
-
*/
|
|
46
|
-
async set(key, value) {
|
|
47
|
-
try {
|
|
48
|
-
const serialized = JSON.stringify(value);
|
|
49
|
-
localStorage.setItem(key, serialized);
|
|
50
|
-
} catch (error) {
|
|
51
|
-
if ((error instanceof DOMException || error.name === "QuotaExceededError") && error.name === "QuotaExceededError") throw new Error(`Storage quota exceeded for key "${key}"`);
|
|
52
|
-
if (error instanceof TypeError) throw new Error(`Failed to serialize value for key "${key}": ${error.message}`);
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Removes a value from localStorage.
|
|
58
|
-
* @param key - The storage key to remove
|
|
59
|
-
*/
|
|
60
|
-
async remove(key) {
|
|
61
|
-
localStorage.removeItem(key);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Clears all values from localStorage.
|
|
65
|
-
*/
|
|
66
|
-
async clear() {
|
|
67
|
-
localStorage.clear();
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
//#endregion
|
|
72
|
-
//#region src/internal/manualReview/manualReviewService.ts
|
|
73
|
-
async function flagFaceManualReview() {
|
|
74
|
-
try {
|
|
75
|
-
await api.put(endpoints.updateSession, { manualSelfieCheckNeeded: true });
|
|
76
|
-
} catch {}
|
|
77
|
-
}
|
|
78
|
-
async function flagIdManualReview() {
|
|
79
|
-
try {
|
|
80
|
-
await api.put(endpoints.updateSession, { manualIdCheckNeeded: true });
|
|
81
|
-
} catch {}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
//#endregion
|
|
85
|
-
//#region ../infra/src/media/StreamCanvasProcessingSession.ts
|
|
86
|
-
var StreamCanvasProcessingSession = class {
|
|
87
|
-
/**
|
|
88
|
-
* Creates a processing session that reacts to `StreamCanvasCapture` frame events
|
|
89
|
-
* and drives a provider's `processFrame()` method with backpressure.
|
|
90
|
-
*/
|
|
91
|
-
constructor(params) {
|
|
92
|
-
this.disposed = false;
|
|
93
|
-
this.isProcessing = false;
|
|
94
|
-
this.onFrameEvent = () => {
|
|
95
|
-
if (this.disposed || this.isProcessing) return;
|
|
96
|
-
const frame = this.capturer.getLatestFrame();
|
|
97
|
-
if (!frame) return;
|
|
98
|
-
this.onFrame?.(frame);
|
|
99
|
-
this.isProcessing = true;
|
|
100
|
-
this.provider.processFrame(frame).catch(() => {}).finally(() => {
|
|
101
|
-
this.isProcessing = false;
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
this.capturer = params.capturer;
|
|
105
|
-
this.provider = params.provider;
|
|
106
|
-
this.onFrame = params.onFrame;
|
|
107
|
-
this.capturer.addEventListener("frame", this.onFrameEvent);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Unsubscribes from frame events and resets the provider.
|
|
111
|
-
*/
|
|
112
|
-
dispose() {
|
|
113
|
-
if (this.disposed) return;
|
|
114
|
-
this.disposed = true;
|
|
115
|
-
this.capturer.removeEventListener("frame", this.onFrameEvent);
|
|
116
|
-
this.provider.reset();
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Returns whether the session has been disposed.
|
|
120
|
-
*/
|
|
121
|
-
isDisposed() {
|
|
122
|
-
return this.disposed;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
//#endregion
|
|
127
|
-
//#region ../infra/src/media/permissions.ts
|
|
128
|
-
async function queryPermission(name) {
|
|
129
|
-
try {
|
|
130
|
-
if (typeof navigator === "undefined" || !navigator.permissions) return "prompt";
|
|
131
|
-
return (await navigator.permissions.query({ name })).state;
|
|
132
|
-
} catch {
|
|
133
|
-
return "prompt";
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async function queryCameraPermission() {
|
|
137
|
-
return queryPermission("camera");
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region src/internal/permissions/permissionServices.ts
|
|
142
|
-
/**
|
|
143
|
-
* Checks the current camera permission state without prompting the user.
|
|
144
|
-
*/
|
|
145
|
-
async function checkPermission() {
|
|
146
|
-
return queryCameraPermission();
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Requests motion sensor permission. Must be called during a user gesture on iOS.
|
|
150
|
-
* Returns the permission result.
|
|
151
|
-
*/
|
|
152
|
-
async function requestMotionPermission() {
|
|
153
|
-
return new MotionSensorProvider().requestPermission();
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Requests camera permission by attempting to access the camera, then immediately
|
|
157
|
-
* stops the obtained stream. Also requests motion sensor permission (required on iOS
|
|
158
|
-
* to be called during a user gesture). This function does not keep or return the stream.
|
|
159
|
-
*/
|
|
160
|
-
async function requestPermission() {
|
|
161
|
-
try {
|
|
162
|
-
await requestMotionPermission();
|
|
163
|
-
stopCameraStream(await requestCameraAccess({ video: true }));
|
|
164
|
-
return "granted";
|
|
165
|
-
} catch (error) {
|
|
166
|
-
const name = error instanceof Error ? error.name : void 0;
|
|
167
|
-
if (name === "NotAllowedError" || name === "PermissionDeniedError") return "denied";
|
|
168
|
-
return "prompt";
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
//#endregion
|
|
173
|
-
//#region ../infra/src/providers/browser/openviduLazy.ts
|
|
174
|
-
let openViduImport;
|
|
175
|
-
async function loadOpenVidu() {
|
|
176
|
-
if (openViduImport) return openViduImport;
|
|
177
|
-
openViduImport = import("./lib-i-4qLKdG.esm.js").then(__toDynamicImportESM(1));
|
|
178
|
-
return openViduImport;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
//#endregion
|
|
182
|
-
//#region ../infra/src/providers/browser/OpenViduRecordingProvider.ts
|
|
183
|
-
function createHiddenContainer() {
|
|
184
|
-
const id = `inc_rec_${Math.random().toString(36).slice(2)}`;
|
|
185
|
-
const existing = document.getElementById(id);
|
|
186
|
-
if (existing) return {
|
|
187
|
-
id,
|
|
188
|
-
element: existing
|
|
189
|
-
};
|
|
190
|
-
const div = document.createElement("div");
|
|
191
|
-
div.id = id;
|
|
192
|
-
div.style.display = "none";
|
|
193
|
-
document.body.appendChild(div);
|
|
194
|
-
return {
|
|
195
|
-
id,
|
|
196
|
-
element: div
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
var OpenViduRecordingProvider = class {
|
|
200
|
-
async connect(params) {
|
|
201
|
-
const { OpenVidu } = await loadOpenVidu();
|
|
202
|
-
const container = createHiddenContainer();
|
|
203
|
-
const ov = new OpenVidu();
|
|
204
|
-
const session = ov.initSession();
|
|
205
|
-
const videoTrack = params.stream.getVideoTracks()[0];
|
|
206
|
-
const audioTrack = params.stream.getAudioTracks()[0];
|
|
207
|
-
const hasAudio = audioTrack !== void 0;
|
|
208
|
-
const publisher = ov.initPublisher(container.id, {
|
|
209
|
-
publishAudio: hasAudio,
|
|
210
|
-
audioSource: hasAudio ? audioTrack : false,
|
|
211
|
-
videoSource: videoTrack ?? false,
|
|
212
|
-
frameRate: 30
|
|
213
|
-
});
|
|
214
|
-
session.on("exception", (event) => {
|
|
215
|
-
const e = event;
|
|
216
|
-
params.events?.onSessionException?.({
|
|
217
|
-
name: e?.name,
|
|
218
|
-
message: e?.message,
|
|
219
|
-
sessionId: session.sessionId
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
publisher.on("streamCreated", () => {
|
|
223
|
-
params.events?.onPublisherCreated?.({
|
|
224
|
-
sessionId: session.sessionId,
|
|
225
|
-
streamId: publisher.stream?.streamId
|
|
226
|
-
});
|
|
227
|
-
});
|
|
228
|
-
await session.connect(params.sessionToken);
|
|
229
|
-
params.events?.onSessionConnected?.(session.sessionId);
|
|
230
|
-
try {
|
|
231
|
-
await session.publish(publisher);
|
|
232
|
-
} catch (error) {
|
|
233
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
234
|
-
params.events?.onPublisherError?.({
|
|
235
|
-
message,
|
|
236
|
-
sessionId: session.sessionId,
|
|
237
|
-
streamId: publisher.stream?.streamId
|
|
238
|
-
});
|
|
239
|
-
throw error;
|
|
240
|
-
}
|
|
241
|
-
return {
|
|
242
|
-
sessionId: session.sessionId,
|
|
243
|
-
publisher: {
|
|
244
|
-
getStreamId: () => publisher.stream?.streamId,
|
|
245
|
-
replaceVideoTrack: async (track) => {
|
|
246
|
-
await publisher.replaceTrack(track);
|
|
247
|
-
},
|
|
248
|
-
destroy: () => {}
|
|
249
|
-
},
|
|
250
|
-
disconnect: async () => {
|
|
251
|
-
try {
|
|
252
|
-
session.disconnect();
|
|
253
|
-
params.stream.getTracks().forEach((t) => {
|
|
254
|
-
t.stop();
|
|
255
|
-
});
|
|
256
|
-
} finally {
|
|
257
|
-
params.events?.onSessionDisconnected?.(session.sessionId);
|
|
258
|
-
if (container.element.parentNode) container.element.parentNode.removeChild(container.element);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
//#endregion
|
|
266
|
-
//#region src/internal/recordings/recordingsRepository.ts
|
|
267
|
-
async function createRecordingSession(type) {
|
|
268
|
-
return (await api.post(endpoints.recordingCreateSessionV2, { type })).data;
|
|
269
|
-
}
|
|
270
|
-
async function startRecording(params) {
|
|
271
|
-
return (await api.post(endpoints.recordingStartV2, {
|
|
272
|
-
videoRecordingId: params.videoRecordingId,
|
|
273
|
-
frameRate: 30,
|
|
274
|
-
outputMode: "COMPOSED",
|
|
275
|
-
resolution: params.resolution,
|
|
276
|
-
type: params.type,
|
|
277
|
-
hasAudio: params.hasAudio ?? false
|
|
278
|
-
})).data;
|
|
279
|
-
}
|
|
280
|
-
async function stopRecording(videoRecordingId) {
|
|
281
|
-
return (await api.post(endpoints.recordingStopV2, { videoRecordingId })).data;
|
|
282
|
-
}
|
|
283
|
-
async function uploadDeepsightVideo(encryptedVideo, token) {
|
|
284
|
-
try {
|
|
285
|
-
return (await api.post(endpoints.deepsightVideoImport, {
|
|
286
|
-
video: encryptedVideo,
|
|
287
|
-
type: "selfie"
|
|
288
|
-
}, { headers: { "X-Incode-Hardware-Id": token } })).data.recordingId ?? "";
|
|
289
|
-
} catch {
|
|
290
|
-
return "";
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
//#endregion
|
|
295
|
-
//#region ../infra/src/media/StreamCanvasCapture.ts
|
|
296
|
-
var StreamCanvasCapture = class {
|
|
297
|
-
constructor(stream, options) {
|
|
298
|
-
this.hasFrame = false;
|
|
299
|
-
this.disposed = false;
|
|
300
|
-
this.eventTarget = new EventTarget();
|
|
301
|
-
this.video = document.createElement("video");
|
|
302
|
-
this.video.srcObject = stream;
|
|
303
|
-
this.video.autoplay = true;
|
|
304
|
-
this.video.playsInline = true;
|
|
305
|
-
this.video.muted = true;
|
|
306
|
-
const settings = stream.getVideoTracks()[0]?.getSettings();
|
|
307
|
-
const initialWidth = options?.width ?? settings?.width ?? 1280;
|
|
308
|
-
const initialHeight = options?.height ?? settings?.height ?? 720;
|
|
309
|
-
this.canvas = document.createElement("canvas");
|
|
310
|
-
this.canvas.width = initialWidth;
|
|
311
|
-
this.canvas.height = initialHeight;
|
|
312
|
-
this.ctx = this.canvas.getContext("2d", { willReadFrequently: true });
|
|
313
|
-
const fps = options?.fps ?? 10;
|
|
314
|
-
const intervalMs = fps > 0 ? Math.max(16, Math.floor(1e3 / fps)) : 0;
|
|
315
|
-
this.video.addEventListener("loadedmetadata", () => {
|
|
316
|
-
if (this.video.videoWidth > 0 && this.video.videoHeight > 0) {
|
|
317
|
-
this.canvas.width = this.video.videoWidth;
|
|
318
|
-
this.canvas.height = this.video.videoHeight;
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
try {
|
|
322
|
-
this.video.play();
|
|
323
|
-
} catch {}
|
|
324
|
-
this.rafLoop(intervalMs);
|
|
325
|
-
}
|
|
326
|
-
addEventListener(type, listener, options) {
|
|
327
|
-
this.eventTarget.addEventListener(type, listener, options);
|
|
328
|
-
}
|
|
329
|
-
removeEventListener(type, listener, options) {
|
|
330
|
-
this.eventTarget.removeEventListener(type, listener, options);
|
|
331
|
-
}
|
|
332
|
-
/**
|
|
333
|
-
* Returns the latest cached frame as an {@link IncodeCanvas}.
|
|
334
|
-
*/
|
|
335
|
-
getLatestCanvas() {
|
|
336
|
-
if (!this.hasFrame) this.tick();
|
|
337
|
-
if (!this.hasFrame) return null;
|
|
338
|
-
return new IncodeCanvas(this.canvas);
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Returns the latest cached frame as raw {@link ImageData}.
|
|
342
|
-
*/
|
|
343
|
-
getLatestFrame() {
|
|
344
|
-
if (!this.ctx) return null;
|
|
345
|
-
if (!this.hasFrame) this.tick();
|
|
346
|
-
if (!this.hasFrame) return null;
|
|
347
|
-
try {
|
|
348
|
-
return this.ctx.getImageData(0, 0, this.canvas.width, this.canvas.height);
|
|
349
|
-
} catch {
|
|
350
|
-
return null;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
/**
|
|
354
|
-
* Disposes internal resources and stops the capture loop.
|
|
355
|
-
*/
|
|
356
|
-
dispose() {
|
|
357
|
-
if (this.disposed) return;
|
|
358
|
-
this.disposed = true;
|
|
359
|
-
if (this.rafId !== void 0) {
|
|
360
|
-
window.cancelAnimationFrame(this.rafId);
|
|
361
|
-
this.rafId = void 0;
|
|
362
|
-
}
|
|
363
|
-
this.video.srcObject = null;
|
|
364
|
-
this.canvas.width = 0;
|
|
365
|
-
this.canvas.height = 0;
|
|
366
|
-
this.hasFrame = false;
|
|
367
|
-
}
|
|
368
|
-
rafLoop(intervalMs) {
|
|
369
|
-
const loop = (timeMs) => {
|
|
370
|
-
if (this.disposed) return;
|
|
371
|
-
if (intervalMs <= 0 || this.lastTickTimeMs === void 0 || timeMs - this.lastTickTimeMs >= intervalMs) {
|
|
372
|
-
this.lastTickTimeMs = timeMs;
|
|
373
|
-
const previousFrameTimeSeconds = this.lastFrameTimeSeconds;
|
|
374
|
-
this.tick();
|
|
375
|
-
const currentFrameTimeSeconds = this.video.currentTime;
|
|
376
|
-
if (previousFrameTimeSeconds === void 0) {
|
|
377
|
-
if (this.hasFrame) {
|
|
378
|
-
this.lastFrameTimeSeconds = currentFrameTimeSeconds;
|
|
379
|
-
this.eventTarget.dispatchEvent(new Event("frame"));
|
|
380
|
-
}
|
|
381
|
-
} else if (this.hasFrame && currentFrameTimeSeconds !== previousFrameTimeSeconds) {
|
|
382
|
-
this.lastFrameTimeSeconds = currentFrameTimeSeconds;
|
|
383
|
-
this.eventTarget.dispatchEvent(new Event("frame"));
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
this.rafId = window.requestAnimationFrame(loop);
|
|
387
|
-
};
|
|
388
|
-
this.rafId = window.requestAnimationFrame(loop);
|
|
389
|
-
}
|
|
390
|
-
tick() {
|
|
391
|
-
if (!this.ctx) return;
|
|
392
|
-
if (this.video.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) return;
|
|
393
|
-
const videoWidth = this.video.videoWidth;
|
|
394
|
-
const videoHeight = this.video.videoHeight;
|
|
395
|
-
if (videoWidth === 0 || videoHeight === 0) return;
|
|
396
|
-
if (this.canvas.width !== videoWidth || this.canvas.height !== videoHeight) {
|
|
397
|
-
this.canvas.width = videoWidth;
|
|
398
|
-
this.canvas.height = videoHeight;
|
|
399
|
-
}
|
|
400
|
-
try {
|
|
401
|
-
this.ctx.drawImage(this.video, 0, 0);
|
|
402
|
-
this.hasFrame = true;
|
|
403
|
-
} catch {
|
|
404
|
-
this.hasFrame = false;
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
};
|
|
408
|
-
|
|
409
|
-
//#endregion
|
|
410
|
-
export { uploadDeepsightVideo as a, requestPermission as c, flagIdManualReview as d, BrowserStorageProvider as f, stopRecording as i, StreamCanvasProcessingSession as l, createRecordingSession as n, OpenViduRecordingProvider as o, getDeviceClass as p, startRecording as r, checkPermission as s, StreamCanvasCapture as t, flagFaceManualReview as u };
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
//#region src/internal/http/endpoints.ts
|
|
2
|
-
const endpoints = {
|
|
3
|
-
createSession: "/omni/start",
|
|
4
|
-
flow: "/omni/onboarding/flow",
|
|
5
|
-
events: "/omni/interview-events",
|
|
6
|
-
selfie: "/omni/add/face",
|
|
7
|
-
authenticate: "/omni/onboarding-authentications/authenticate",
|
|
8
|
-
recordingCreateSessionV2: "/omni/recordings/create-session/v2",
|
|
9
|
-
recordingStartV2: "/omni/recordings/record-start/v2",
|
|
10
|
-
recordingStopV2: "/omni/recordings/record-stop/v2",
|
|
11
|
-
deepsightVideoImport: "/omni/recordings/import",
|
|
12
|
-
phone: "/omni/add/phone",
|
|
13
|
-
phoneInstant: "/omni/instant/add/phone",
|
|
14
|
-
getPhone: "/omni/get/phone",
|
|
15
|
-
startInfo: "/omni/start-info",
|
|
16
|
-
sendSmsOtp: "/omni/send/sms-otp",
|
|
17
|
-
compareOtp: "/omni/compare/otp",
|
|
18
|
-
email: "/omni/add/email",
|
|
19
|
-
getEmail: "/omni/get/email",
|
|
20
|
-
frontId: "/omni/add/front-id/v2",
|
|
21
|
-
backId: "/omni/add/back-id/v2",
|
|
22
|
-
frontSecondId: "/omni/add/front-second-id/v2",
|
|
23
|
-
backSecondId: "/omni/add/back-second-id/v2",
|
|
24
|
-
getImages: "/omni/get/images",
|
|
25
|
-
getImagesV2: "/omni/get/images/v2",
|
|
26
|
-
getScore: "/omni/get/score",
|
|
27
|
-
getImagesSecondId: "/omni/get/images-second-id",
|
|
28
|
-
processId: "/omni/process/id",
|
|
29
|
-
processSecondId: "/omni/process/second-id",
|
|
30
|
-
processFace: "/omni/process/face",
|
|
31
|
-
governmentValidation: "/omni/process/government-validation",
|
|
32
|
-
deviceStats: "/omni/device/stats",
|
|
33
|
-
featureConfig: "/omni/feature-config",
|
|
34
|
-
deviceFingerprint: "/omni/add/device-fingerprint",
|
|
35
|
-
onboardingStatus: "/omni/get/onboarding/status",
|
|
36
|
-
customFields: "/omni/get/custom-fields",
|
|
37
|
-
deviceRiskClientId: "/omni/device-risk-client-id",
|
|
38
|
-
ocrData: "/omni/get/ocr-data",
|
|
39
|
-
addCurp: "/omni/add/curp",
|
|
40
|
-
addCurpV2: "/omni/add/curp/v2",
|
|
41
|
-
addGeolocation: "/omni/add/geolocation",
|
|
42
|
-
ekycSubmit: "/omni/externalVerification/ekyc",
|
|
43
|
-
ekybSubmit: "/omni/externalVerification/ekyb",
|
|
44
|
-
getCombinedConsent: "/omni/get/combined-consent",
|
|
45
|
-
signCombinedConsent: "/omni/sign-combined-consent",
|
|
46
|
-
getConsents: "/omni/consents",
|
|
47
|
-
submitMlConsent: "/omni/consents/submit",
|
|
48
|
-
addressAutocomplete: "/omni/externalVerification/addressAutocomplete",
|
|
49
|
-
otpStatus: "/omni/session/otp-status",
|
|
50
|
-
moduleConfig: "/omni/flow/onboarding/configuration",
|
|
51
|
-
addDocument: "/omni/add/document/v2",
|
|
52
|
-
addressStatement: "/omni/add/address-statement/v2",
|
|
53
|
-
documentV3: "/omni/add/document/v3",
|
|
54
|
-
finalizeDocument: "/omni/finalize/document",
|
|
55
|
-
documentLegacy: "/omni/add/document",
|
|
56
|
-
cfdi: "/omni/process/cfdi",
|
|
57
|
-
finishStatus: "/omni/finish-status",
|
|
58
|
-
updateSession: "/omni/update",
|
|
59
|
-
onboardingUrl: "/omni/onboarding-url",
|
|
60
|
-
sendRedirectSms: "/omni/notify/send-sms",
|
|
61
|
-
qrRefreshUuid: "/omni/qr/refresh",
|
|
62
|
-
addSignature: "/omni/add/signature",
|
|
63
|
-
addSignatureV2: "/omni/add/signature/v2",
|
|
64
|
-
addInitials: "/omni/add/initial",
|
|
65
|
-
processAntifraud: "/omni/process/antifraud"
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
//#endregion
|
|
69
|
-
export { endpoints as t };
|