@incodetech/core 2.0.0-alpha.12 → 2.0.0-alpha.14
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/{OpenViduLogger-CRbRNZA7.esm.js → OpenViduLogger-BLxxXoyF.esm.js} +1 -1
- package/dist/OpenViduLogger-DyqID_-7.esm.js +3 -0
- package/dist/api-DfRLAneb.esm.js +53 -0
- package/dist/deepsightLoader-BMT0FSg6.esm.js +24 -0
- package/dist/deepsightService-j5zMt6wf.esm.js +236 -0
- package/dist/email.d.ts +5 -5
- package/dist/email.esm.js +16 -17
- package/dist/{xstate.esm-2hDiAXvZ.esm.js → endpoints-BUsSVoJV.esm.js} +28 -1
- package/dist/events-B8ZkhAZo.esm.js +285 -0
- package/dist/flow.d.ts +2 -3
- package/dist/flow.esm.js +18 -7
- package/dist/getDeviceClass-DkfbtsIJ.esm.js +41 -0
- package/dist/{id-CJKLe8HS.esm.js → id-r1mw9zBM.esm.js} +48 -39
- package/dist/id.d.ts +4 -5
- package/dist/id.esm.js +7 -6
- package/dist/{index-CbF_uI-x.d.ts → index-CJMK8K5u.d.ts} +3 -7
- package/dist/index.d.ts +220 -6
- package/dist/index.esm.js +12 -8
- package/dist/{lib-BJoLTN_W.esm.js → lib-CbAibJlt.esm.js} +2 -2
- package/dist/phone.d.ts +5 -5
- package/dist/phone.esm.js +16 -14
- package/dist/selfie.d.ts +119 -46
- package/dist/selfie.esm.js +284 -161
- package/dist/{endpoints-D9TGnxRK.esm.js → src-DYtpbFY5.esm.js} +242 -111
- package/dist/stats-DnU4uUFv.esm.js +16 -0
- package/dist/stats.d.ts +12 -0
- package/dist/stats.esm.js +4 -0
- package/dist/{streamingEvents-B3hNanPl.esm.js → streamingEvents-CfEJv3xH.esm.js} +35 -36
- package/dist/{types-BpCrZLU6.d.ts → types-CMR6NkxW.d.ts} +58 -1
- package/dist/{types-DZbrbPgj.d.ts → types-CRVSv38Q.d.ts} +10 -1
- package/package.json +2 -2
- package/dist/OpenViduLogger-Dy5P806a.esm.js +0 -3
- package/dist/StateMachine-pi8byl8C.d.ts +0 -58
- package/dist/addEvent-BGKc_lHF.esm.js +0 -16
- package/dist/deepsightLoader-B36_XZ7r.esm.js +0 -25
- package/dist/deepsightService-BWxcc4OC.esm.js +0 -225
- package/dist/recordingsRepository-D5MURoVB.esm.js +0 -40
- /package/dist/{Manager-BZUZTRPx.d.ts → Manager-Co-PsiG9.d.ts} +0 -0
- /package/dist/{chunk-FbsBJI8u.esm.js → chunk-V5DOKNPJ.esm.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as __commonJS } from "./chunk-
|
|
1
|
+
import { t as __commonJS } from "./chunk-V5DOKNPJ.esm.js";
|
|
2
2
|
|
|
3
3
|
//#region ../../node_modules/.pnpm/jsnlog@2.30.0/node_modules/jsnlog/jsnlog.js
|
|
4
4
|
var require_jsnlog = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/jsnlog@2.30.0/node_modules/jsnlog/jsnlog.js": ((exports) => {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
//#region src/internal/http/api.ts
|
|
2
|
+
let client = null;
|
|
3
|
+
let currentToken = null;
|
|
4
|
+
function setClient(httpClient) {
|
|
5
|
+
client = httpClient;
|
|
6
|
+
}
|
|
7
|
+
function setToken(token) {
|
|
8
|
+
currentToken = token;
|
|
9
|
+
}
|
|
10
|
+
function getToken() {
|
|
11
|
+
return currentToken;
|
|
12
|
+
}
|
|
13
|
+
function getApi() {
|
|
14
|
+
if (!client) throw new Error("SDK not configured. Call setup({ apiURL: \"...\" }) first.");
|
|
15
|
+
return client;
|
|
16
|
+
}
|
|
17
|
+
function isApiConfigured() {
|
|
18
|
+
return client !== null;
|
|
19
|
+
}
|
|
20
|
+
function resetApi() {
|
|
21
|
+
client = null;
|
|
22
|
+
currentToken = null;
|
|
23
|
+
}
|
|
24
|
+
function addTokenHeader(config) {
|
|
25
|
+
if (!currentToken) return config ?? {};
|
|
26
|
+
return {
|
|
27
|
+
...config,
|
|
28
|
+
headers: {
|
|
29
|
+
...config?.headers,
|
|
30
|
+
"X-Incode-Hardware-Id": currentToken
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const api = {
|
|
35
|
+
get(url, config) {
|
|
36
|
+
return getApi().get(url, addTokenHeader(config));
|
|
37
|
+
},
|
|
38
|
+
post(url, data, config) {
|
|
39
|
+
return getApi().post(url, data, addTokenHeader(config));
|
|
40
|
+
},
|
|
41
|
+
put(url, data, config) {
|
|
42
|
+
return getApi().put(url, data, addTokenHeader(config));
|
|
43
|
+
},
|
|
44
|
+
patch(url, data, config) {
|
|
45
|
+
return getApi().patch(url, data, addTokenHeader(config));
|
|
46
|
+
},
|
|
47
|
+
delete(url, config) {
|
|
48
|
+
return getApi().delete(url, addTokenHeader(config));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
//#endregion
|
|
53
|
+
export { resetApi as a, isApiConfigured as i, getApi as n, setClient as o, getToken as r, setToken as s, api as t };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { l as MotionSensorProvider, p as BrowserEnvironmentProvider, r as WasmUtilProvider, s as VisibilityProvider } from "./src-DYtpbFY5.esm.js";
|
|
2
|
+
import "./getDeviceClass-DkfbtsIJ.esm.js";
|
|
3
|
+
import "./api-DfRLAneb.esm.js";
|
|
4
|
+
import { t as createDeepsightService } from "./deepsightService-j5zMt6wf.esm.js";
|
|
5
|
+
import "./stats-DnU4uUFv.esm.js";
|
|
6
|
+
|
|
7
|
+
//#region src/modules/selfie/deepsightLoader.ts
|
|
8
|
+
const SDK_VERSION = "2.0.0";
|
|
9
|
+
async function loadDeepsightSession() {
|
|
10
|
+
const service = createDeepsightService({
|
|
11
|
+
sdkVersion: SDK_VERSION,
|
|
12
|
+
wasmUtil: await WasmUtilProvider.getInstance(),
|
|
13
|
+
visibility: new VisibilityProvider(),
|
|
14
|
+
browserEnv: new BrowserEnvironmentProvider(),
|
|
15
|
+
motionSensor: new MotionSensorProvider()
|
|
16
|
+
});
|
|
17
|
+
await service.initialize();
|
|
18
|
+
await service.requestMotionPermission();
|
|
19
|
+
await service.startMotionSensors();
|
|
20
|
+
return service;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { loadDeepsightSession };
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { S as stopCameraStream, _ as createHiddenVideoElement, v as IncodeCanvas, x as requestCameraAccess } from "./src-DYtpbFY5.esm.js";
|
|
2
|
+
import { r as getUserAgent, t as getDeviceInfo } from "./getDeviceClass-DkfbtsIJ.esm.js";
|
|
3
|
+
import { t as api } from "./api-DfRLAneb.esm.js";
|
|
4
|
+
import { t as addDeviceStats } from "./stats-DnU4uUFv.esm.js";
|
|
5
|
+
|
|
6
|
+
//#region src/internal/deepsight/metadataService.ts
|
|
7
|
+
const AUTOMATION_MARKERS = {
|
|
8
|
+
window: [
|
|
9
|
+
"callPhantom",
|
|
10
|
+
"_phantom",
|
|
11
|
+
"phantom",
|
|
12
|
+
"__nightmare",
|
|
13
|
+
"domAutomation",
|
|
14
|
+
"domAutomationController"
|
|
15
|
+
],
|
|
16
|
+
navigator: ["webdriver"]
|
|
17
|
+
};
|
|
18
|
+
const IP_PROVIDER_URL = "https://api.ipify.org?format=json";
|
|
19
|
+
function isBrowserSimulation(browserEnv) {
|
|
20
|
+
for (const prop of AUTOMATION_MARKERS.window) if (browserEnv.getWindowProperty(prop)) return true;
|
|
21
|
+
for (const prop of AUTOMATION_MARKERS.navigator) if (browserEnv.getNavigatorProperty(prop)) return true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
async function fetchPublicIp(browserEnv) {
|
|
25
|
+
return (await browserEnv.fetchJson(IP_PROVIDER_URL, 3e3))?.ip || "";
|
|
26
|
+
}
|
|
27
|
+
function createMetadataService(wasmUtil, visibility, browserEnv) {
|
|
28
|
+
return {
|
|
29
|
+
async initialize(sdkVersion, disableIpify = false) {
|
|
30
|
+
wasmUtil.setSdkPlatform("WEBAPP");
|
|
31
|
+
wasmUtil.setSdkVersion(sdkVersion);
|
|
32
|
+
const ua = getUserAgent();
|
|
33
|
+
const isMobile = /Android|iPhone|iPad|iPod/i.test(ua);
|
|
34
|
+
const deviceInfo = getDeviceInfo();
|
|
35
|
+
const visitorId = browserEnv.generateCanvasFingerprint();
|
|
36
|
+
const ip = disableIpify ? "" : await fetchPublicIp(browserEnv);
|
|
37
|
+
const screenDimensions = browserEnv.getScreenDimensions();
|
|
38
|
+
const deviceMetadata = {
|
|
39
|
+
kind: isMobile ? "mobile" : "desktop",
|
|
40
|
+
model: "",
|
|
41
|
+
os: void 0,
|
|
42
|
+
osVersion: void 0,
|
|
43
|
+
screenDimensions,
|
|
44
|
+
numTouchPoints: deviceInfo.maxTouchPoints,
|
|
45
|
+
fingerprintHash: visitorId,
|
|
46
|
+
ip,
|
|
47
|
+
backgroundMode: false
|
|
48
|
+
};
|
|
49
|
+
wasmUtil.setDeviceInfo(deviceMetadata);
|
|
50
|
+
const navigatorPrefixes = browserEnv.getNavigatorPrefixes();
|
|
51
|
+
const browserInfo = {
|
|
52
|
+
userAgent: ua,
|
|
53
|
+
getUserMediaAvailability: {
|
|
54
|
+
webkit: navigatorPrefixes.webkit,
|
|
55
|
+
moz: navigatorPrefixes.moz,
|
|
56
|
+
o: navigatorPrefixes.o,
|
|
57
|
+
ms: navigatorPrefixes.ms
|
|
58
|
+
},
|
|
59
|
+
webglFingerprint: browserEnv.getWebGLRenderer(),
|
|
60
|
+
inspectorOpened: false,
|
|
61
|
+
isMockedBrowser: isBrowserSimulation(browserEnv)
|
|
62
|
+
};
|
|
63
|
+
wasmUtil.setBrowserInfo(browserInfo, false);
|
|
64
|
+
},
|
|
65
|
+
updateCameraInfo(videoTrack) {
|
|
66
|
+
const settings = videoTrack.getSettings();
|
|
67
|
+
const capabilities = videoTrack.getCapabilities?.() ?? {};
|
|
68
|
+
const labels = videoTrack.label ? [videoTrack.label] : [];
|
|
69
|
+
const cameraInfo = {
|
|
70
|
+
facingMode: settings.facingMode === "user" ? "frontal" : settings.facingMode === "environment" ? "back" : settings.facingMode || "unknown",
|
|
71
|
+
settings,
|
|
72
|
+
capabilities,
|
|
73
|
+
labels
|
|
74
|
+
};
|
|
75
|
+
wasmUtil.setCameraInfo(cameraInfo);
|
|
76
|
+
},
|
|
77
|
+
async checkForVirtualCameraByLabel(videoTrack = null) {
|
|
78
|
+
try {
|
|
79
|
+
if (!videoTrack) {
|
|
80
|
+
const labels = await browserEnv.enumerateVideoDeviceLabels();
|
|
81
|
+
for (const label of labels) if (wasmUtil.isVirtualCamera(label)) return true;
|
|
82
|
+
}
|
|
83
|
+
if (videoTrack && wasmUtil.isVirtualCamera(videoTrack.label)) return true;
|
|
84
|
+
return false;
|
|
85
|
+
} catch {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
async analyzeFrame(imageData) {
|
|
90
|
+
await wasmUtil.analyzeFrame(imageData);
|
|
91
|
+
},
|
|
92
|
+
setMotionStatus(status) {
|
|
93
|
+
wasmUtil.setMotionStatus(status);
|
|
94
|
+
},
|
|
95
|
+
setBackgroundMode(backgroundMode) {
|
|
96
|
+
wasmUtil.setBackgroundMode(backgroundMode || visibility.wasBackgrounded);
|
|
97
|
+
visibility.reset();
|
|
98
|
+
},
|
|
99
|
+
estimatePerformance() {
|
|
100
|
+
return wasmUtil.estimatePerformance();
|
|
101
|
+
},
|
|
102
|
+
getMetadata() {
|
|
103
|
+
return wasmUtil.getMetadata();
|
|
104
|
+
},
|
|
105
|
+
getCheck() {
|
|
106
|
+
return wasmUtil.getCheck();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region src/internal/deepsight/motionStatusService.ts
|
|
113
|
+
function createMotionStatusService(motionSensor) {
|
|
114
|
+
return {
|
|
115
|
+
async requestPermission() {
|
|
116
|
+
return motionSensor.requestPermission();
|
|
117
|
+
},
|
|
118
|
+
async start() {
|
|
119
|
+
await motionSensor.start();
|
|
120
|
+
},
|
|
121
|
+
stop() {
|
|
122
|
+
motionSensor.stop();
|
|
123
|
+
},
|
|
124
|
+
check() {
|
|
125
|
+
return motionSensor.check();
|
|
126
|
+
},
|
|
127
|
+
get isRunning() {
|
|
128
|
+
return motionSensor.isRunning;
|
|
129
|
+
},
|
|
130
|
+
get hasPermission() {
|
|
131
|
+
return motionSensor.hasPermission;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region src/internal/virtualCameraCheck.ts
|
|
138
|
+
/**
|
|
139
|
+
* Sends the analyzed frame image to the backend for logging.
|
|
140
|
+
*/
|
|
141
|
+
async function logFrame({ source, base64Image, token }) {
|
|
142
|
+
try {
|
|
143
|
+
return (await api.post("/omni/log/frame/v2", { base64Image }, {
|
|
144
|
+
query: { source },
|
|
145
|
+
headers: { "X-Incode-Hardware-Id": token }
|
|
146
|
+
})).data;
|
|
147
|
+
} catch {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Runs the WASM virtual camera check and handles logging and stats.
|
|
153
|
+
*/
|
|
154
|
+
async function runVirtualCameraCheck({ wasmUtil, source, token }) {
|
|
155
|
+
const output = {
|
|
156
|
+
canvas: null,
|
|
157
|
+
itr: null,
|
|
158
|
+
skipped: null
|
|
159
|
+
};
|
|
160
|
+
await wasmUtil.poc(output);
|
|
161
|
+
if (output.skipped !== false) return;
|
|
162
|
+
if (output.canvas && token) {
|
|
163
|
+
const base64Image = new IncodeCanvas(output.canvas).getBase64Image();
|
|
164
|
+
if (base64Image) await logFrame({
|
|
165
|
+
source,
|
|
166
|
+
base64Image,
|
|
167
|
+
token
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (output.itr === true) {
|
|
171
|
+
addDeviceStats({ virtualCameraDetected: true });
|
|
172
|
+
wasmUtil.setZc("FAIL");
|
|
173
|
+
} else if (output.itr === false) wasmUtil.setZc("PASS");
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
//#endregion
|
|
177
|
+
//#region src/internal/deepsight/deepsightService.ts
|
|
178
|
+
function createDeepsightService(config) {
|
|
179
|
+
const metadata = createMetadataService(config.wasmUtil, config.visibility, config.browserEnv);
|
|
180
|
+
const motion = createMotionStatusService(config.motionSensor);
|
|
181
|
+
return {
|
|
182
|
+
metadata,
|
|
183
|
+
motion,
|
|
184
|
+
async initialize(disableIpify = false) {
|
|
185
|
+
await metadata.initialize(config.sdkVersion, disableIpify);
|
|
186
|
+
metadata.estimatePerformance();
|
|
187
|
+
},
|
|
188
|
+
async requestMotionPermission() {
|
|
189
|
+
return motion.requestPermission();
|
|
190
|
+
},
|
|
191
|
+
async startMotionSensors() {
|
|
192
|
+
await motion.start();
|
|
193
|
+
},
|
|
194
|
+
stopMotionSensors() {
|
|
195
|
+
motion.stop();
|
|
196
|
+
},
|
|
197
|
+
async checkVirtualCamera(videoTrack) {
|
|
198
|
+
metadata.updateCameraInfo(videoTrack);
|
|
199
|
+
return metadata.checkForVirtualCameraByLabel(videoTrack);
|
|
200
|
+
},
|
|
201
|
+
async performVirtualCameraCheck(sessionToken, source) {
|
|
202
|
+
await runVirtualCameraCheck({
|
|
203
|
+
wasmUtil: config.wasmUtil,
|
|
204
|
+
source,
|
|
205
|
+
token: sessionToken
|
|
206
|
+
});
|
|
207
|
+
},
|
|
208
|
+
async performPrcCheck(params) {
|
|
209
|
+
await params.storage.set("ds", params.ds ? 1 : 0);
|
|
210
|
+
const prcStream = await requestCameraAccess(params.constraints);
|
|
211
|
+
const hiddenVideo = createHiddenVideoElement(prcStream);
|
|
212
|
+
try {
|
|
213
|
+
await config.wasmUtil.prc();
|
|
214
|
+
} finally {
|
|
215
|
+
hiddenVideo.dispose();
|
|
216
|
+
stopCameraStream(prcStream);
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
async analyzeFrame(imageData) {
|
|
220
|
+
await metadata.analyzeFrame(imageData);
|
|
221
|
+
const motionStatus = motion.check();
|
|
222
|
+
metadata.setMotionStatus(motionStatus);
|
|
223
|
+
metadata.getCheck();
|
|
224
|
+
metadata.setBackgroundMode(false);
|
|
225
|
+
},
|
|
226
|
+
getMetadata() {
|
|
227
|
+
return metadata.getMetadata();
|
|
228
|
+
},
|
|
229
|
+
cleanup() {
|
|
230
|
+
motion.stop();
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
//#endregion
|
|
236
|
+
export { createDeepsightService as t };
|
package/dist/email.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Manager } from "./Manager-
|
|
1
|
+
import { t as Manager } from "./Manager-Co-PsiG9.js";
|
|
2
2
|
|
|
3
3
|
//#region src/modules/email/types.d.ts
|
|
4
4
|
|
|
@@ -110,9 +110,9 @@ type EmailOtpErrorState = {
|
|
|
110
110
|
error: string;
|
|
111
111
|
attemptsRemaining: number;
|
|
112
112
|
};
|
|
113
|
-
/** Email verification completed successfully
|
|
114
|
-
type
|
|
115
|
-
status: '
|
|
113
|
+
/** Email verification completed successfully */
|
|
114
|
+
type EmailFinishedState = {
|
|
115
|
+
status: 'finished';
|
|
116
116
|
};
|
|
117
117
|
/**
|
|
118
118
|
* Fatal error occurred - call `reset()` to start over
|
|
@@ -135,7 +135,7 @@ type EmailErrorState = {
|
|
|
135
135
|
* }
|
|
136
136
|
* ```
|
|
137
137
|
*/
|
|
138
|
-
type EmailState = EmailIdleState | EmailLoadingPrefillState | EmailInputtingState | EmailSubmittingState | EmailSendingOtpState | EmailAwaitingOtpState | EmailVerifyingOtpState | EmailOtpErrorState |
|
|
138
|
+
type EmailState = EmailIdleState | EmailLoadingPrefillState | EmailInputtingState | EmailSubmittingState | EmailSendingOtpState | EmailAwaitingOtpState | EmailVerifyingOtpState | EmailOtpErrorState | EmailFinishedState | EmailErrorState;
|
|
139
139
|
/**
|
|
140
140
|
* Creates an email verification manager for headless or UI-driven usage.
|
|
141
141
|
*
|
package/dist/email.esm.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
1
|
+
import { d as addEvent, n as eventModuleNames, r as eventScreenNames } from "./events-B8ZkhAZo.esm.js";
|
|
2
|
+
import { C as createManager, d as BrowserTimerProvider } from "./src-DYtpbFY5.esm.js";
|
|
3
|
+
import { a as fromPromise, i as fromCallback, n as setup, o as createActor, r as assign, t as endpoints } from "./endpoints-BUsSVoJV.esm.js";
|
|
4
|
+
import { t as api } from "./api-DfRLAneb.esm.js";
|
|
4
5
|
|
|
5
6
|
//#region src/modules/email/emailServices.ts
|
|
6
7
|
async function fetchEmail(signal) {
|
|
@@ -46,13 +47,14 @@ const emailMachine = setup({
|
|
|
46
47
|
return verifyEmailOtp(input.code, signal);
|
|
47
48
|
}),
|
|
48
49
|
resendTimer: fromCallback(({ sendBack }) => {
|
|
50
|
+
const timer = BrowserTimerProvider.getInstance();
|
|
49
51
|
let seconds = RESEND_TIMER_SECONDS;
|
|
50
|
-
const interval = setInterval(() => {
|
|
52
|
+
const interval = timer.setInterval(() => {
|
|
51
53
|
seconds -= 1;
|
|
52
54
|
sendBack({ type: "TICK" });
|
|
53
|
-
if (seconds <= 0) clearInterval(interval);
|
|
55
|
+
if (seconds <= 0) timer.clearInterval(interval);
|
|
54
56
|
}, 1e3);
|
|
55
|
-
return () => clearInterval(interval);
|
|
57
|
+
return () => timer.clearInterval(interval);
|
|
56
58
|
})
|
|
57
59
|
},
|
|
58
60
|
actions: {
|
|
@@ -115,8 +117,8 @@ const emailMachine = setup({
|
|
|
115
117
|
sendEmailSubmitEvent: () => {
|
|
116
118
|
addEvent({
|
|
117
119
|
code: "continue",
|
|
118
|
-
module:
|
|
119
|
-
screen:
|
|
120
|
+
module: eventModuleNames.email,
|
|
121
|
+
screen: eventScreenNames.emailInput
|
|
120
122
|
});
|
|
121
123
|
}
|
|
122
124
|
},
|
|
@@ -176,7 +178,7 @@ const emailMachine = setup({
|
|
|
176
178
|
guard: "hasOtpVerification",
|
|
177
179
|
actions: "sendEmailSubmitEvent"
|
|
178
180
|
}, {
|
|
179
|
-
target: "
|
|
181
|
+
target: "finished",
|
|
180
182
|
actions: "sendEmailSubmitEvent"
|
|
181
183
|
}],
|
|
182
184
|
onError: {
|
|
@@ -216,7 +218,7 @@ const emailMachine = setup({
|
|
|
216
218
|
input: ({ context }) => ({ code: context.otpCode }),
|
|
217
219
|
onDone: [
|
|
218
220
|
{
|
|
219
|
-
target: "
|
|
221
|
+
target: "finished",
|
|
220
222
|
guard: ({ event }) => event.output.success === true
|
|
221
223
|
},
|
|
222
224
|
{
|
|
@@ -252,10 +254,7 @@ const emailMachine = setup({
|
|
|
252
254
|
},
|
|
253
255
|
BACK: { target: "inputting" }
|
|
254
256
|
} },
|
|
255
|
-
|
|
256
|
-
target: "idle",
|
|
257
|
-
actions: "resetContext"
|
|
258
|
-
} } },
|
|
257
|
+
finished: { type: "final" },
|
|
259
258
|
error: { on: { RESET: {
|
|
260
259
|
target: "idle",
|
|
261
260
|
actions: "resetContext"
|
|
@@ -302,7 +301,7 @@ function createEmailActor(options) {
|
|
|
302
301
|
* // 3. Subscribe to state changes (optional but recommended)
|
|
303
302
|
* emailManager.subscribe((state) => {
|
|
304
303
|
* console.log('Email state:', state.status);
|
|
305
|
-
* if (state.status === '
|
|
304
|
+
* if (state.status === 'finished') {
|
|
306
305
|
* console.log('Email verified successfully!');
|
|
307
306
|
* }
|
|
308
307
|
* if (state.status === 'error') {
|
|
@@ -345,7 +344,7 @@ function createEmailActor(options) {
|
|
|
345
344
|
* // Get OTP from user or external source
|
|
346
345
|
* emailManager.submitOtp(otpCode);
|
|
347
346
|
* break;
|
|
348
|
-
* case '
|
|
347
|
+
* case 'finished':
|
|
349
348
|
* clearInterval(interval);
|
|
350
349
|
* emailManager.stop();
|
|
351
350
|
* break;
|
|
@@ -382,7 +381,7 @@ function mapState(snapshot) {
|
|
|
382
381
|
error: context.otpError ?? "Invalid OTP code",
|
|
383
382
|
attemptsRemaining: context.attemptsRemaining
|
|
384
383
|
};
|
|
385
|
-
if (typedSnapshot.matches("
|
|
384
|
+
if (typedSnapshot.matches("finished")) return { status: "finished" };
|
|
386
385
|
if (typedSnapshot.matches("error")) return {
|
|
387
386
|
status: "error",
|
|
388
387
|
error: context.error ?? "An error occurred"
|
|
@@ -3258,4 +3258,31 @@ function setup({ schemas, actors, actions, guards, delays }) {
|
|
|
3258
3258
|
}
|
|
3259
3259
|
|
|
3260
3260
|
//#endregion
|
|
3261
|
-
|
|
3261
|
+
//#region src/internal/http/endpoints.ts
|
|
3262
|
+
const endpoints = {
|
|
3263
|
+
createSession: "/omni/start",
|
|
3264
|
+
flow: "/omni/onboarding/flow",
|
|
3265
|
+
events: "/omni/interview-events",
|
|
3266
|
+
selfie: "/omni/add/face",
|
|
3267
|
+
recordingCreateSessionV2: "/omni/recordings/create-session/v2",
|
|
3268
|
+
recordingStartV2: "/omni/recordings/record-start/v2",
|
|
3269
|
+
recordingStopV2: "/omni/recordings/record-stop/v2",
|
|
3270
|
+
deepsightVideoImport: "/omni/recordings/import",
|
|
3271
|
+
phone: "/omni/add/phone",
|
|
3272
|
+
phoneInstant: "/omni/instant/add/phone",
|
|
3273
|
+
getPhone: "/omni/get/phone",
|
|
3274
|
+
startInfo: "/omni/start-info",
|
|
3275
|
+
sendSmsOtp: "/omni/send/sms-otp",
|
|
3276
|
+
compareOtp: "/omni/compare/otp",
|
|
3277
|
+
email: "/omni/add/email",
|
|
3278
|
+
getEmail: "/omni/get/email",
|
|
3279
|
+
frontId: "/omni/add/front-id/v2",
|
|
3280
|
+
backId: "/omni/add/back-id/v2",
|
|
3281
|
+
getImages: "/omni/get/images",
|
|
3282
|
+
processId: "/omni/process/id",
|
|
3283
|
+
processSecondId: "/omni/process/second-id",
|
|
3284
|
+
processFace: "/omni/process/face"
|
|
3285
|
+
};
|
|
3286
|
+
|
|
3287
|
+
//#endregion
|
|
3288
|
+
export { fromPromise as a, fromCallback as i, setup as n, createActor as o, assign as r, endpoints as t };
|