@incodetech/core 2.0.0-alpha.1 → 2.0.0-alpha.11
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/Manager-Cy9-TMC9.d.ts +19 -0
- package/dist/OpenViduLogger-20ZYS-mT.esm.js +3 -0
- package/dist/OpenViduLogger-5b7KqNTo.esm.js +803 -0
- package/dist/StateMachine-BqPpBhOz.d.ts +2 -0
- package/dist/addEvent-s2Za-pK3.esm.js +16 -0
- package/dist/chunk-C_Yo44FK.esm.js +49 -0
- package/dist/deepsightLoader-Bn2D0REl.esm.js +25 -0
- package/dist/email.d.ts +264 -0
- package/dist/email.esm.js +479 -0
- package/dist/endpoints-B0ltwtb5.esm.js +2335 -0
- package/dist/flow.d.ts +578 -0
- package/dist/flow.esm.js +628 -0
- package/dist/getBrowser-CLEzz0Hi.esm.js +8 -0
- package/dist/index.d.ts +226 -0
- package/dist/index.esm.js +156 -0
- package/dist/lib-CykGFCEr.esm.js +11700 -0
- package/dist/permissionServices-BhD0KxsO.esm.js +66 -0
- package/dist/phone.d.ts +292 -0
- package/dist/phone.esm.js +550 -0
- package/dist/recordingsRepository-CTjaf-ER.esm.js +256 -0
- package/dist/selfie.d.ts +821 -0
- package/dist/selfie.esm.js +1087 -0
- package/dist/types-Dif6MQmX.d.ts +5 -0
- package/dist/warmup-Cijuyvoc.d.ts +55 -0
- package/dist/xstate.esm-2T5fOCTq.esm.js +3261 -0
- package/package.json +14 -11
- package/src/camera/cameraActor.ts +0 -21
- package/src/camera/cameraService.test.ts +0 -437
- package/src/camera/cameraService.ts +0 -165
- package/src/camera/cameraServices.test.ts +0 -66
- package/src/camera/cameraServices.ts +0 -26
- package/src/camera/cameraStateMachine.test.ts +0 -602
- package/src/camera/cameraStateMachine.ts +0 -264
- package/src/camera/index.ts +0 -5
- package/src/camera/types.ts +0 -17
- package/src/device/getBrowser.ts +0 -31
- package/src/device/getDeviceClass.ts +0 -29
- package/src/device/index.ts +0 -2
- package/src/email/__mocks__/emailMocks.ts +0 -59
- package/src/email/emailActor.ts +0 -15
- package/src/email/emailManager.test.ts +0 -573
- package/src/email/emailManager.ts +0 -427
- package/src/email/emailServices.ts +0 -66
- package/src/email/emailStateMachine.test.ts +0 -741
- package/src/email/emailStateMachine.ts +0 -367
- package/src/email/index.ts +0 -39
- package/src/email/types.ts +0 -60
- package/src/events/addEvent.ts +0 -20
- package/src/events/types.ts +0 -7
- package/src/flow/__mocks__/flowMocks.ts +0 -84
- package/src/flow/flowActor.ts +0 -13
- package/src/flow/flowAnalyzer.test.ts +0 -266
- package/src/flow/flowAnalyzer.ts +0 -37
- package/src/flow/flowCompletionService.ts +0 -21
- package/src/flow/flowManager.test.ts +0 -560
- package/src/flow/flowManager.ts +0 -235
- package/src/flow/flowServices.test.ts +0 -109
- package/src/flow/flowServices.ts +0 -13
- package/src/flow/flowStateMachine.test.ts +0 -334
- package/src/flow/flowStateMachine.ts +0 -182
- package/src/flow/index.ts +0 -21
- package/src/flow/moduleLoader.test.ts +0 -136
- package/src/flow/moduleLoader.ts +0 -73
- package/src/flow/orchestratedFlowManager.test.ts +0 -240
- package/src/flow/orchestratedFlowManager.ts +0 -231
- package/src/flow/orchestratedFlowStateMachine.test.ts +0 -199
- package/src/flow/orchestratedFlowStateMachine.ts +0 -325
- package/src/flow/types.ts +0 -434
- package/src/http/__mocks__/api.ts +0 -88
- package/src/http/api.test.ts +0 -231
- package/src/http/api.ts +0 -90
- package/src/http/endpoints.ts +0 -17
- package/src/index.ts +0 -33
- package/src/permissions/index.ts +0 -2
- package/src/permissions/permissionServices.ts +0 -31
- package/src/permissions/types.ts +0 -3
- package/src/phone/__mocks__/phoneMocks.ts +0 -71
- package/src/phone/index.ts +0 -39
- package/src/phone/phoneActor.ts +0 -15
- package/src/phone/phoneManager.test.ts +0 -393
- package/src/phone/phoneManager.ts +0 -458
- package/src/phone/phoneServices.ts +0 -98
- package/src/phone/phoneStateMachine.test.ts +0 -918
- package/src/phone/phoneStateMachine.ts +0 -422
- package/src/phone/types.ts +0 -83
- package/src/recordings/recordingsRepository.test.ts +0 -87
- package/src/recordings/recordingsRepository.ts +0 -48
- package/src/recordings/streamingEvents.ts +0 -10
- package/src/selfie/__mocks__/selfieMocks.ts +0 -26
- package/src/selfie/index.ts +0 -14
- package/src/selfie/selfieActor.ts +0 -17
- package/src/selfie/selfieErrorUtils.test.ts +0 -116
- package/src/selfie/selfieErrorUtils.ts +0 -66
- package/src/selfie/selfieManager.test.ts +0 -297
- package/src/selfie/selfieManager.ts +0 -301
- package/src/selfie/selfieServices.ts +0 -362
- package/src/selfie/selfieStateMachine.test.ts +0 -283
- package/src/selfie/selfieStateMachine.ts +0 -804
- package/src/selfie/selfieUploadService.test.ts +0 -90
- package/src/selfie/selfieUploadService.ts +0 -81
- package/src/selfie/types.ts +0 -103
- package/src/session/index.ts +0 -5
- package/src/session/sessionService.ts +0 -78
- package/src/setup.test.ts +0 -61
- package/src/setup.ts +0 -171
- package/tsconfig.json +0 -13
- package/tsdown.config.ts +0 -22
- package/vitest.config.ts +0 -37
- package/vitest.setup.ts +0 -135
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { n as api, t as endpoints } from "./endpoints-B0ltwtb5.esm.js";
|
|
2
|
+
import { t as getUserAgent } from "./getBrowser-CLEzz0Hi.esm.js";
|
|
3
|
+
|
|
4
|
+
//#region src/internal/deepsight/metadataService.ts
|
|
5
|
+
function getWebGLFingerprint() {
|
|
6
|
+
try {
|
|
7
|
+
const canvas = document.createElement("canvas");
|
|
8
|
+
const gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
|
|
9
|
+
if (!gl) return "";
|
|
10
|
+
const debugInfo = gl.getExtension("WEBGL_debug_renderer_info");
|
|
11
|
+
if (!debugInfo) return "";
|
|
12
|
+
return gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) || "";
|
|
13
|
+
} catch {
|
|
14
|
+
return "";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function isBrowserSimulation() {
|
|
18
|
+
const win = window;
|
|
19
|
+
const nav = navigator;
|
|
20
|
+
return !!(win.callPhantom || win._phantom || win.phantom || win.__nightmare || nav.webdriver || win.domAutomation || win.domAutomationController);
|
|
21
|
+
}
|
|
22
|
+
async function getFingerPrint(disableIpify = false) {
|
|
23
|
+
let visitorId = "";
|
|
24
|
+
let ip = "";
|
|
25
|
+
try {
|
|
26
|
+
const canvas = document.createElement("canvas");
|
|
27
|
+
const ctx = canvas.getContext("2d");
|
|
28
|
+
if (ctx) {
|
|
29
|
+
ctx.textBaseline = "top";
|
|
30
|
+
ctx.font = "14px Arial";
|
|
31
|
+
ctx.fillText("fingerprint", 2, 2);
|
|
32
|
+
visitorId = canvas.toDataURL().slice(-50);
|
|
33
|
+
}
|
|
34
|
+
} catch {}
|
|
35
|
+
if (!disableIpify) try {
|
|
36
|
+
const controller = new AbortController();
|
|
37
|
+
const timeoutId = setTimeout(() => controller.abort(), 3e3);
|
|
38
|
+
const response = await fetch("https://api.ipify.org?format=json", { signal: controller.signal });
|
|
39
|
+
clearTimeout(timeoutId);
|
|
40
|
+
ip = (await response.json()).ip || "";
|
|
41
|
+
} catch {}
|
|
42
|
+
return {
|
|
43
|
+
visitorId,
|
|
44
|
+
ip
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function createMetadataService(wasmUtil, visibility) {
|
|
48
|
+
return {
|
|
49
|
+
async initialize(sdkVersion, disableIpify = false) {
|
|
50
|
+
wasmUtil.setSdkPlatform("WEBAPP");
|
|
51
|
+
wasmUtil.setSdkVersion(sdkVersion);
|
|
52
|
+
const ua = getUserAgent();
|
|
53
|
+
const isMobile = /Android|iPhone|iPad|iPod/i.test(ua);
|
|
54
|
+
const fingerPrint = await getFingerPrint(disableIpify).catch(() => ({
|
|
55
|
+
visitorId: "",
|
|
56
|
+
ip: ""
|
|
57
|
+
}));
|
|
58
|
+
const deviceMetadata = {
|
|
59
|
+
kind: isMobile ? "mobile" : "desktop",
|
|
60
|
+
model: "",
|
|
61
|
+
os: void 0,
|
|
62
|
+
osVersion: void 0,
|
|
63
|
+
screenDimensions: {
|
|
64
|
+
width: screen.width,
|
|
65
|
+
height: screen.height
|
|
66
|
+
},
|
|
67
|
+
numTouchPoints: navigator.maxTouchPoints,
|
|
68
|
+
fingerprintHash: fingerPrint.visitorId || "",
|
|
69
|
+
ip: fingerPrint.ip || "",
|
|
70
|
+
backgroundMode: false
|
|
71
|
+
};
|
|
72
|
+
wasmUtil.setDeviceInfo(deviceMetadata);
|
|
73
|
+
const nav = navigator;
|
|
74
|
+
const browserInfo = {
|
|
75
|
+
userAgent: ua,
|
|
76
|
+
getUserMediaAvailability: {
|
|
77
|
+
webkit: nav.webkitGetUserMedia !== void 0,
|
|
78
|
+
moz: nav.mozGetUserMedia !== void 0,
|
|
79
|
+
o: nav.oGetUserMedia !== void 0,
|
|
80
|
+
ms: nav.msGetUserMedia !== void 0
|
|
81
|
+
},
|
|
82
|
+
webglFingerprint: getWebGLFingerprint(),
|
|
83
|
+
inspectorOpened: false,
|
|
84
|
+
isMockedBrowser: isBrowserSimulation()
|
|
85
|
+
};
|
|
86
|
+
wasmUtil.setBrowserInfo(browserInfo, false);
|
|
87
|
+
},
|
|
88
|
+
updateCameraInfo(videoTrack) {
|
|
89
|
+
const settings = videoTrack.getSettings();
|
|
90
|
+
const capabilities = videoTrack.getCapabilities?.() ?? {};
|
|
91
|
+
const labels = videoTrack.label ? [videoTrack.label] : [];
|
|
92
|
+
const cameraInfo = {
|
|
93
|
+
facingMode: settings.facingMode === "user" ? "frontal" : settings.facingMode === "environment" ? "back" : settings.facingMode || "unknown",
|
|
94
|
+
settings,
|
|
95
|
+
capabilities,
|
|
96
|
+
labels
|
|
97
|
+
};
|
|
98
|
+
wasmUtil.setCameraInfo(cameraInfo);
|
|
99
|
+
},
|
|
100
|
+
async checkForVirtualCameraByLabel(videoTrack = null) {
|
|
101
|
+
try {
|
|
102
|
+
if (!videoTrack) {
|
|
103
|
+
const devices = await navigator.mediaDevices.enumerateDevices();
|
|
104
|
+
for (const device of devices) if (device.kind === "videoinput" && wasmUtil.isVirtualCamera(device.label)) return true;
|
|
105
|
+
}
|
|
106
|
+
if (videoTrack && wasmUtil.isVirtualCamera(videoTrack.label)) return true;
|
|
107
|
+
return false;
|
|
108
|
+
} catch {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
async analyzeFrame(imageData) {
|
|
113
|
+
await wasmUtil.analyzeFrame(imageData);
|
|
114
|
+
},
|
|
115
|
+
setMotionStatus(status) {
|
|
116
|
+
wasmUtil.setMotionStatus(status);
|
|
117
|
+
},
|
|
118
|
+
setBackgroundMode(backgroundMode) {
|
|
119
|
+
wasmUtil.setBackgroundMode(backgroundMode || visibility.wasBackgrounded);
|
|
120
|
+
visibility.reset();
|
|
121
|
+
},
|
|
122
|
+
estimatePerformance() {
|
|
123
|
+
return wasmUtil.estimatePerformance();
|
|
124
|
+
},
|
|
125
|
+
getMetadata() {
|
|
126
|
+
return wasmUtil.getMetadata();
|
|
127
|
+
},
|
|
128
|
+
getCheck() {
|
|
129
|
+
return wasmUtil.getCheck();
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/internal/deepsight/motionStatusService.ts
|
|
136
|
+
function createMotionStatusService(motionSensor) {
|
|
137
|
+
return {
|
|
138
|
+
async requestPermission() {
|
|
139
|
+
return motionSensor.requestPermission();
|
|
140
|
+
},
|
|
141
|
+
async start() {
|
|
142
|
+
await motionSensor.start();
|
|
143
|
+
},
|
|
144
|
+
stop() {
|
|
145
|
+
motionSensor.stop();
|
|
146
|
+
},
|
|
147
|
+
check() {
|
|
148
|
+
return motionSensor.check();
|
|
149
|
+
},
|
|
150
|
+
get isRunning() {
|
|
151
|
+
return motionSensor.isRunning;
|
|
152
|
+
},
|
|
153
|
+
get hasPermission() {
|
|
154
|
+
return motionSensor.hasPermission;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
//#endregion
|
|
160
|
+
//#region src/internal/deepsight/deepsightService.ts
|
|
161
|
+
function createDeepsightService(config) {
|
|
162
|
+
const metadata = createMetadataService(config.wasmUtil, config.visibility);
|
|
163
|
+
const motion = createMotionStatusService(config.motionSensor);
|
|
164
|
+
return {
|
|
165
|
+
metadata,
|
|
166
|
+
motion,
|
|
167
|
+
recorder: config.recorder,
|
|
168
|
+
async initialize(disableIpify = false) {
|
|
169
|
+
await metadata.initialize(config.sdkVersion, disableIpify);
|
|
170
|
+
metadata.estimatePerformance();
|
|
171
|
+
},
|
|
172
|
+
async requestMotionPermission() {
|
|
173
|
+
return motion.requestPermission();
|
|
174
|
+
},
|
|
175
|
+
async startMotionSensors() {
|
|
176
|
+
await motion.start();
|
|
177
|
+
},
|
|
178
|
+
stopMotionSensors() {
|
|
179
|
+
motion.stop();
|
|
180
|
+
},
|
|
181
|
+
startRecording(stream) {
|
|
182
|
+
config.recorder.startRecording(stream);
|
|
183
|
+
},
|
|
184
|
+
async checkVirtualCamera(videoTrack) {
|
|
185
|
+
metadata.updateCameraInfo(videoTrack);
|
|
186
|
+
return metadata.checkForVirtualCameraByLabel(videoTrack);
|
|
187
|
+
},
|
|
188
|
+
async performVirtualCameraCheck() {
|
|
189
|
+
const output = {
|
|
190
|
+
canvas: null,
|
|
191
|
+
itr: null,
|
|
192
|
+
skipped: null
|
|
193
|
+
};
|
|
194
|
+
await config.wasmUtil.poc(output);
|
|
195
|
+
if (output?.skipped === false) config.wasmUtil.setZc(output?.itr === true ? "FAIL" : "PASS");
|
|
196
|
+
},
|
|
197
|
+
async performCapture(sessionToken, imageData) {
|
|
198
|
+
let recordingId = null;
|
|
199
|
+
if (config.recorder.isRecording) {
|
|
200
|
+
const result = await config.recorder.stopRecording(10, (base64) => config.wasmUtil.encryptImage(base64), (buffer) => config.wasmUtil.ckvcks(buffer));
|
|
201
|
+
try {
|
|
202
|
+
recordingId = await config.uploadVideo(result.encryptedVideo, sessionToken);
|
|
203
|
+
} catch (error) {
|
|
204
|
+
console.error("[DeepsightService] Failed to upload video:", error);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
await this.performVirtualCameraCheck();
|
|
208
|
+
await metadata.analyzeFrame(imageData);
|
|
209
|
+
const motionStatus = motion.check();
|
|
210
|
+
metadata.setMotionStatus(motionStatus);
|
|
211
|
+
metadata.getCheck();
|
|
212
|
+
metadata.setBackgroundMode(false);
|
|
213
|
+
return {
|
|
214
|
+
metadata: metadata.getMetadata(),
|
|
215
|
+
recordingId
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
cleanup() {
|
|
219
|
+
motion.stop();
|
|
220
|
+
config.recorder.reset();
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/internal/recordings/recordingsRepository.ts
|
|
227
|
+
async function createRecordingSession(type) {
|
|
228
|
+
return (await api.post(endpoints.recordingCreateSessionV2, { type })).data;
|
|
229
|
+
}
|
|
230
|
+
async function startRecording(params) {
|
|
231
|
+
return (await api.post(endpoints.recordingStartV2, {
|
|
232
|
+
videoRecordingId: params.videoRecordingId,
|
|
233
|
+
frameRate: 30,
|
|
234
|
+
outputMode: "COMPOSED",
|
|
235
|
+
resolution: params.resolution,
|
|
236
|
+
type: params.type,
|
|
237
|
+
hasAudio: params.hasAudio ?? false
|
|
238
|
+
})).data;
|
|
239
|
+
}
|
|
240
|
+
async function stopRecording(videoRecordingId) {
|
|
241
|
+
return (await api.post(endpoints.recordingStopV2, { videoRecordingId })).data;
|
|
242
|
+
}
|
|
243
|
+
async function uploadDeepsightVideo(encryptedVideo, token) {
|
|
244
|
+
try {
|
|
245
|
+
return (await api.post(endpoints.deepsightVideoImport, {
|
|
246
|
+
video: encryptedVideo,
|
|
247
|
+
type: "selfie"
|
|
248
|
+
}, { headers: { "X-Incode-Hardware-Id": token } })).data.recordingId ?? "";
|
|
249
|
+
} catch (error) {
|
|
250
|
+
console.error("Error uploading deepsight video:", error);
|
|
251
|
+
return "";
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
//#endregion
|
|
256
|
+
export { createDeepsightService as a, uploadDeepsightVideo as i, startRecording as n, stopRecording as r, createRecordingSession as t };
|