@incodetech/core 0.0.0-dev-20260803-ebbd53d1 → 0.0.0-dev-20260803-e2b5d35d
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/{3dAvatarProvider-D9H4rR6_.esm.js → 3dAvatarProvider-1zpeX-h8.esm.js} +2 -2
- package/dist/Face2DProvider-TLwFIRn4.esm.js +437 -0
- package/dist/{PrivacyLensProvider-DA3rp6sf.esm.js → PrivacyLensProvider-D8PS7AJa.esm.js} +3 -325
- package/dist/ae-signature.esm.js +1 -1
- package/dist/{apiError-CbwItA4n.esm.js → apiError-C_08gwg2.esm.js} +1 -1
- package/dist/authentication.esm.js +2 -2
- package/dist/{authenticationManager-CJnTBpA5.esm.js → authenticationManager-D76jxYNX.esm.js} +2 -2
- package/dist/{authenticationStateMachine-C9E6Bi5e.esm.js → authenticationStateMachine-CJILuEbH.esm.js} +2 -2
- package/dist/avatar.esm.js +1 -1
- package/dist/avatar2dWarm-DqucNFX4.esm.js +1330 -0
- package/dist/{avatarStats-BIB3SREM.esm.js → avatarStats-CdUOb3VD.esm.js} +12 -22
- package/dist/consent.d.ts +1 -1
- package/dist/{consentManager-3Pbtj-RV.d.ts → consentManager-uhDPdU6i.d.ts} +4 -4
- package/dist/createFaceAvatar-AF92I3xf.esm.js +103 -0
- package/dist/{deepsightLoader-CFgYDzIx.esm.js → deepsightLoader-DqEfPplN.esm.js} +3 -3
- package/dist/document-upload.d.ts +4 -4
- package/dist/dynamic-forms.esm.js +2 -2
- package/dist/{dynamicFormsManager-CGvQv7G3.esm.js → dynamicFormsManager-BHfeedY2.esm.js} +1 -1
- package/dist/{dynamicFormsStateMachine-D9QzY6PF.esm.js → dynamicFormsStateMachine-BeKhow9E.esm.js} +1 -1
- package/dist/ekyb.esm.js +3 -3
- package/dist/{ekybManager-CNYQNvLb.esm.js → ekybManager-3pPpvD6Z.esm.js} +1 -1
- package/dist/{ekybStateMachine-CZEkravN.esm.js → ekybStateMachine-BH8TaB7v.esm.js} +1 -1
- package/dist/electronic-signature.esm.js +1 -1
- package/dist/{electronicSignatureManager-Ow5bfK_H.esm.js → electronicSignatureManager-DHC0bqr9.esm.js} +1 -1
- package/dist/extensibility.d.ts +2 -2
- package/dist/extensibility.esm.js +8 -8
- package/dist/{faceCaptureManagerFactory-bQm5Ehbz.esm.js → faceCaptureManagerFactory-DqQCDsDY.esm.js} +1 -1
- package/dist/{faceCaptureSetup-DalEA-yE.esm.js → faceCaptureSetup-5Ye-LXbB.esm.js} +25 -10
- package/dist/flow.esm.js +3 -3
- package/dist/{flowCompletionService-B-R8PTe_.esm.js → flowCompletionService-DEO2OqAI.esm.js} +1 -1
- package/dist/{flowServices-B8Vudgcc.esm.js → flowServices-D6T8fwIf.esm.js} +3 -3
- package/dist/geolocation.esm.js +2 -2
- package/dist/{geolocationManager-B4YMJjCC.esm.js → geolocationManager-IbghOO6X.esm.js} +1 -1
- package/dist/{geolocationStateMachine-BG7Cyrol.esm.js → geolocationStateMachine-B5WkRLnz.esm.js} +1 -1
- package/dist/id-selfie-flow.esm.js +6 -6
- package/dist/id.esm.js +3 -3
- package/dist/{idCaptureManager-CxAQ5uN8.esm.js → idCaptureManager-C_q4C_aV.esm.js} +1 -1
- package/dist/{idCaptureServices-BEOo3Az7.esm.js → idCaptureServices-DlnEwYJJ.esm.js} +2 -2
- package/dist/{idCaptureStateMachine-rCoBc9xL.esm.js → idCaptureStateMachine-CKJ_aV6s.esm.js} +7 -7
- package/dist/index.esm.js +1 -1
- package/dist/mandatory-consent.d.ts +1 -1
- package/dist/{mandatoryConsentManager-DyPzUmsZ.d.ts → mandatoryConsentManager-B29kR0XA.d.ts} +4 -4
- package/dist/{mediapipeShared-B0iQQ5k7.esm.js → mediapipeShared-D0syL_Gp.esm.js} +6 -1
- package/dist/{onDeviceFaceResults-DhAPaF-B.esm.js → onDeviceFaceResults-D53Rr_B1.esm.js} +3 -3
- package/dist/personhood.esm.js +3 -3
- package/dist/privacyLensWorker-DI-Rg83h.esm.js +355 -0
- package/dist/qe-signature.esm.js +1 -1
- package/dist/{recordingService-BhvOeRAU.esm.js → recordingService-Dv5Ztm5Y.esm.js} +1 -1
- package/dist/{runChildModule-CDY_0-gd.esm.js → runChildModule-Dh9HjxbH.esm.js} +1 -1
- package/dist/selfie.esm.js +4 -4
- package/dist/{selfieManager-xn3h9FHA.esm.js → selfieManager-CwLK0icS.esm.js} +2 -2
- package/dist/{selfieStateMachine-B4jZaYKT.esm.js → selfieStateMachine-C1ErWDmF.esm.js} +2 -2
- package/dist/{session-D2HB_4kC.esm.js → session-DvCKSn2k.esm.js} +4 -4
- package/dist/session.esm.js +4 -4
- package/dist/{sessionInitializer-DIlag2I4.esm.js → sessionInitializer-DR77TDcE.esm.js} +2 -2
- package/dist/{setup-vMbDXtw1.esm.js → setup-DSLbrjHG.esm.js} +4 -4
- package/dist/trueSight-CGZ_9YL1.esm.js +1 -0
- package/dist/{trueSightService-D_YtkNAI.esm.js → trueSightService-PXOP5bS9.esm.js} +1 -1
- package/dist/video-selfie.esm.js +3 -3
- package/dist/{videoSelfieCameraWarmer-BQdhYAnF.esm.js → videoSelfieCameraWarmer-BLrAyxUW.esm.js} +2 -2
- package/dist/wasm.esm.js +1 -1
- package/dist/workflow.d.ts +4 -4
- package/dist/workflow.esm.js +14 -14
- package/package.json +1 -1
- package/dist/Face2DProvider-BZCsS_sf.esm.js +0 -824
- package/dist/createFaceAvatar-x5aaJwVM.esm.js +0 -42
- package/dist/trueSight-CVAkl7wM.esm.js +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as createHiddenVideoElement } from "./video-BtSWtHy1.esm.js";
|
|
2
|
-
import { a as
|
|
2
|
+
import { a as publishAvatarStats, r as isAvatarStatsEnabled, t as createAvatarStatsReporter } from "./avatarStats-CdUOb3VD.esm.js";
|
|
3
|
+
import { a as createPrivacyLensGl, i as detectWorkerSourceInstrumentation, n as canUsePrivacyLensWorker, o as createFramePacer, r as createTrackProcessor, t as buildPrivacyLensWorkerSource } from "./privacyLensWorker-DI-Rg83h.esm.js";
|
|
3
4
|
//#region ../infra/src/avatar/privacy-lens/privacyLensShaders.ts
|
|
4
5
|
/** Starting point; tuned live via the privacy-lens demo sliders. */
|
|
5
6
|
const PRIVACY_LENS_DEFAULTS = {
|
|
@@ -113,329 +114,6 @@ ${Array.from({ length: 12 }, (_, i) => {
|
|
|
113
114
|
gl_FragColor = vec4(clamp(col, 0.0, 1.0), 1.0);
|
|
114
115
|
}`;
|
|
115
116
|
//#endregion
|
|
116
|
-
//#region ../infra/src/avatar/privacy-lens/privacyLensGlCore.ts
|
|
117
|
-
/**
|
|
118
|
-
* Builds the lens GL pipeline on `canvas`. Throws if WebGL is unavailable or
|
|
119
|
-
* the program fails to compile/link (callers fall back / surface the error).
|
|
120
|
-
* SELF-CONTAINED — see the module doc before editing.
|
|
121
|
-
*/
|
|
122
|
-
function createPrivacyLensGl(canvas, vertSrc, fragSrc, renderSize) {
|
|
123
|
-
canvas.width = renderSize;
|
|
124
|
-
canvas.height = renderSize;
|
|
125
|
-
const gl = canvas.getContext("webgl", {
|
|
126
|
-
alpha: false,
|
|
127
|
-
antialias: false,
|
|
128
|
-
premultipliedAlpha: false,
|
|
129
|
-
preserveDrawingBuffer: false
|
|
130
|
-
}) ?? canvas.getContext("experimental-webgl");
|
|
131
|
-
if (!gl) throw new Error("privacy-lens: WebGL is not available");
|
|
132
|
-
const compile = (type, src) => {
|
|
133
|
-
const shader = gl.createShader(type);
|
|
134
|
-
if (!shader) throw new Error("privacy-lens: createShader failed");
|
|
135
|
-
gl.shaderSource(shader, src);
|
|
136
|
-
gl.compileShader(shader);
|
|
137
|
-
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
138
|
-
const log = gl.getShaderInfoLog(shader);
|
|
139
|
-
gl.deleteShader(shader);
|
|
140
|
-
throw new Error(`privacy-lens: shader compile failed: ${log}`);
|
|
141
|
-
}
|
|
142
|
-
return shader;
|
|
143
|
-
};
|
|
144
|
-
const vs = compile(gl.VERTEX_SHADER, vertSrc);
|
|
145
|
-
const fs = compile(gl.FRAGMENT_SHADER, fragSrc);
|
|
146
|
-
const program = gl.createProgram();
|
|
147
|
-
if (!program) throw new Error("privacy-lens: createProgram failed");
|
|
148
|
-
gl.attachShader(program, vs);
|
|
149
|
-
gl.attachShader(program, fs);
|
|
150
|
-
gl.linkProgram(program);
|
|
151
|
-
gl.deleteShader(vs);
|
|
152
|
-
gl.deleteShader(fs);
|
|
153
|
-
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
154
|
-
const log = gl.getProgramInfoLog(program);
|
|
155
|
-
gl.deleteProgram(program);
|
|
156
|
-
throw new Error(`privacy-lens: program link failed: ${log}`);
|
|
157
|
-
}
|
|
158
|
-
gl.useProgram(program);
|
|
159
|
-
const quad = gl.createBuffer();
|
|
160
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, quad);
|
|
161
|
-
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([
|
|
162
|
-
-1,
|
|
163
|
-
-1,
|
|
164
|
-
1,
|
|
165
|
-
-1,
|
|
166
|
-
-1,
|
|
167
|
-
1,
|
|
168
|
-
1,
|
|
169
|
-
1
|
|
170
|
-
]), gl.STATIC_DRAW);
|
|
171
|
-
const aPos = gl.getAttribLocation(program, "aPos");
|
|
172
|
-
gl.enableVertexAttribArray(aPos);
|
|
173
|
-
gl.vertexAttribPointer(aPos, 2, gl.FLOAT, false, 0, 0);
|
|
174
|
-
const videoTex = gl.createTexture();
|
|
175
|
-
if (!videoTex) throw new Error("privacy-lens: createTexture failed");
|
|
176
|
-
gl.bindTexture(gl.TEXTURE_2D, videoTex);
|
|
177
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
178
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
179
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
180
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
|
181
|
-
const uniformNames = [
|
|
182
|
-
"uVideo",
|
|
183
|
-
"uRes",
|
|
184
|
-
"uVideoRes",
|
|
185
|
-
"uTime",
|
|
186
|
-
"uFrost",
|
|
187
|
-
"uSandblast",
|
|
188
|
-
"uGrainSize",
|
|
189
|
-
"uWarmth",
|
|
190
|
-
"uBright",
|
|
191
|
-
"uShadow",
|
|
192
|
-
"uSun",
|
|
193
|
-
"uSunSpeed"
|
|
194
|
-
];
|
|
195
|
-
const uniforms = {};
|
|
196
|
-
for (let i = 0; i < uniformNames.length; i += 1) uniforms[uniformNames[i]] = gl.getUniformLocation(program, uniformNames[i]);
|
|
197
|
-
gl.uniform1i(uniforms.uVideo, 0);
|
|
198
|
-
if (uniforms.uRes) gl.uniform2f(uniforms.uRes, renderSize, renderSize);
|
|
199
|
-
gl.viewport(0, 0, renderSize, renderSize);
|
|
200
|
-
gl.clearColor(.88, .86, .83, 1);
|
|
201
|
-
let texWidth = 0;
|
|
202
|
-
let texHeight = 0;
|
|
203
|
-
let disposed = false;
|
|
204
|
-
const setF = (name, value) => {
|
|
205
|
-
const loc = uniforms[name];
|
|
206
|
-
if (loc) gl.uniform1f(loc, value);
|
|
207
|
-
};
|
|
208
|
-
return {
|
|
209
|
-
clear() {
|
|
210
|
-
if (disposed) return;
|
|
211
|
-
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
212
|
-
},
|
|
213
|
-
render(source, srcWidth, srcHeight, timeSec, params, measure) {
|
|
214
|
-
if (disposed) return null;
|
|
215
|
-
const t0 = measure ? performance.now() : 0;
|
|
216
|
-
gl.activeTexture(gl.TEXTURE0);
|
|
217
|
-
gl.bindTexture(gl.TEXTURE_2D, videoTex);
|
|
218
|
-
if (srcWidth !== texWidth || srcHeight !== texHeight) {
|
|
219
|
-
texWidth = srcWidth;
|
|
220
|
-
texHeight = srcHeight;
|
|
221
|
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, texWidth, texHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
222
|
-
if (uniforms.uVideoRes) gl.uniform2f(uniforms.uVideoRes, texWidth, texHeight);
|
|
223
|
-
}
|
|
224
|
-
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, source);
|
|
225
|
-
const t1 = measure ? performance.now() : 0;
|
|
226
|
-
setF("uTime", timeSec);
|
|
227
|
-
setF("uFrost", params.frost);
|
|
228
|
-
setF("uSandblast", params.sandblast);
|
|
229
|
-
setF("uGrainSize", params.grainSize);
|
|
230
|
-
setF("uWarmth", params.warmth);
|
|
231
|
-
setF("uBright", params.brightness);
|
|
232
|
-
setF("uShadow", params.shadowLift);
|
|
233
|
-
setF("uSun", params.sun);
|
|
234
|
-
setF("uSunSpeed", params.sunSpeed);
|
|
235
|
-
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
236
|
-
if (!measure) return null;
|
|
237
|
-
const t2 = performance.now();
|
|
238
|
-
return {
|
|
239
|
-
uploadMs: t1 - t0,
|
|
240
|
-
drawMs: t2 - t1
|
|
241
|
-
};
|
|
242
|
-
},
|
|
243
|
-
dispose() {
|
|
244
|
-
if (disposed) return;
|
|
245
|
-
disposed = true;
|
|
246
|
-
gl.deleteProgram(program);
|
|
247
|
-
gl.deleteBuffer(quad);
|
|
248
|
-
gl.deleteTexture(videoTex);
|
|
249
|
-
gl.getExtension("WEBGL_lose_context")?.loseContext();
|
|
250
|
-
}
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
//#endregion
|
|
254
|
-
//#region ../infra/src/avatar/privacy-lens/privacyLensWorker.ts
|
|
255
|
-
/**
|
|
256
|
-
* Worker mode for the privacy lens (ENG-49806 Plan B).
|
|
257
|
-
*
|
|
258
|
-
* Under a saturated main thread (the synchronous WASM detection pipeline can
|
|
259
|
-
* occupy it back-to-back on throttled/low-tier devices) a main-thread lens is
|
|
260
|
-
* starved to single-digit fps regardless of how cheap its frame is — measured
|
|
261
|
-
* at 1.6-3 fps with 0ms upload/draw. The fix is to take the main thread out of
|
|
262
|
-
* the frame path entirely: camera track → `MediaStreamTrackProcessor` →
|
|
263
|
-
* `VideoFrame` stream → worker → OffscreenCanvas WebGL. The main thread only
|
|
264
|
-
* bridges dev-tuning params and stats at 4 Hz.
|
|
265
|
-
*
|
|
266
|
-
* Support: Chromium 94+ (Chrome/Edge/Android WebView/Samsung Internet) — the
|
|
267
|
-
* low-tier Android target segment. Safari/Firefox and strict-CSP hosts that
|
|
268
|
-
* block blob workers fail the probe or the Worker constructor and fall back to
|
|
269
|
-
* the main-thread path automatically (`PrivacyLensProvider`).
|
|
270
|
-
*
|
|
271
|
-
* Packaging: the worker script is assembled AT RUNTIME from
|
|
272
|
-
* `Function.prototype.toString()` of the shared, self-contained functions
|
|
273
|
-
* (`createPrivacyLensGl`, `createFramePacer`, `createStatsWindow`,
|
|
274
|
-
* `privacyLensWorkerMain`) plus JSON-injected shader sources and stats/pacer
|
|
275
|
-
* constants, and loaded via a Blob URL. No separate worker chunk to ship —
|
|
276
|
-
* bundler-agnostic for npm and CDN consumers alike. The serialized functions
|
|
277
|
-
* must therefore never close over module-level values.
|
|
278
|
-
*/
|
|
279
|
-
/**
|
|
280
|
-
* Whether the worker path is available in this environment. All three probes
|
|
281
|
-
* must hold; anything missing (Safari's worker-only MSTP shape, Firefox, old
|
|
282
|
-
* WebView) routes to the main-thread fallback.
|
|
283
|
-
*/
|
|
284
|
-
function canUsePrivacyLensWorker() {
|
|
285
|
-
const g = globalThis;
|
|
286
|
-
if (typeof g.MediaStreamTrackProcessor !== "function" || typeof g.Worker !== "function" || typeof g.HTMLCanvasElement !== "function") return false;
|
|
287
|
-
return "transferControlToOffscreen" in g.HTMLCanvasElement.prototype;
|
|
288
|
-
}
|
|
289
|
-
/** Constructs a MediaStreamTrackProcessor (Chromium main-thread shape). */
|
|
290
|
-
function createTrackProcessor(track) {
|
|
291
|
-
const Ctor = globalThis.MediaStreamTrackProcessor;
|
|
292
|
-
if (!Ctor) throw new Error("MediaStreamTrackProcessor unavailable");
|
|
293
|
-
return new Ctor({ track });
|
|
294
|
-
}
|
|
295
|
-
/**
|
|
296
|
-
* The worker's entire logic. SELF-CONTAINED (serialized via toString into the
|
|
297
|
-
* blob): everything it needs arrives via `deps` / messages; no module refs.
|
|
298
|
-
* Frame loop: sequential read → pace → render → close. MSTP buffers at most
|
|
299
|
-
* one frame internally, so reads always yield the freshest frame and closing
|
|
300
|
-
* every frame promptly keeps the camera's frame pool healthy — an unclosed
|
|
301
|
-
* VideoFrame can stall the CAPTURE pipeline, which the lens must never do.
|
|
302
|
-
*/
|
|
303
|
-
function privacyLensWorkerMain(scope, deps) {
|
|
304
|
-
let gl = null;
|
|
305
|
-
let pacer = null;
|
|
306
|
-
let reader = null;
|
|
307
|
-
let params = null;
|
|
308
|
-
let statsEnabled = false;
|
|
309
|
-
let stopped = false;
|
|
310
|
-
let stats = null;
|
|
311
|
-
const pump = async () => {
|
|
312
|
-
const startTime = performance.now();
|
|
313
|
-
while (!stopped && reader && gl && pacer && params) {
|
|
314
|
-
let result;
|
|
315
|
-
try {
|
|
316
|
-
result = await reader.read();
|
|
317
|
-
} catch {
|
|
318
|
-
break;
|
|
319
|
-
}
|
|
320
|
-
if (result.done) break;
|
|
321
|
-
const frame = result.value;
|
|
322
|
-
try {
|
|
323
|
-
const now = performance.now();
|
|
324
|
-
if (!pacer.shouldRender(now)) {
|
|
325
|
-
if (statsEnabled) stats?.noteDropped();
|
|
326
|
-
continue;
|
|
327
|
-
}
|
|
328
|
-
const timing = gl.render(frame, frame.displayWidth, frame.displayHeight, (now - startTime) / 1e3, params, statsEnabled);
|
|
329
|
-
if (statsEnabled) stats?.noteRendered(now, timing?.uploadMs, timing?.drawMs);
|
|
330
|
-
} catch {} finally {
|
|
331
|
-
frame.close();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
scope.onmessage = (event) => {
|
|
336
|
-
const msg = event.data;
|
|
337
|
-
if (msg.type === "start") {
|
|
338
|
-
try {
|
|
339
|
-
gl = deps.createGl(msg.canvas, deps.vertSrc, deps.fragSrc, deps.renderSize);
|
|
340
|
-
gl.clear();
|
|
341
|
-
} catch (error) {
|
|
342
|
-
scope.postMessage({
|
|
343
|
-
type: "fatal",
|
|
344
|
-
message: String(error)
|
|
345
|
-
});
|
|
346
|
-
return;
|
|
347
|
-
}
|
|
348
|
-
params = msg.params;
|
|
349
|
-
statsEnabled = msg.statsEnabled;
|
|
350
|
-
stats = deps.createStats({
|
|
351
|
-
variant: "privacy-lens",
|
|
352
|
-
mode: "worker",
|
|
353
|
-
publishIntervalMs: deps.publishIntervalMs,
|
|
354
|
-
gapWindow: deps.gapWindow,
|
|
355
|
-
publish: (snapshot) => scope.postMessage({
|
|
356
|
-
type: "stats",
|
|
357
|
-
snapshot
|
|
358
|
-
})
|
|
359
|
-
});
|
|
360
|
-
pacer = deps.createPacer(msg.maxFps, deps.frameToleranceMs);
|
|
361
|
-
reader = msg.readable.getReader();
|
|
362
|
-
scope.postMessage({ type: "started" });
|
|
363
|
-
pump();
|
|
364
|
-
} else if (msg.type === "params") params = msg.params;
|
|
365
|
-
else if (msg.type === "statsEnabled") statsEnabled = msg.value;
|
|
366
|
-
else if (msg.type === "stop") {
|
|
367
|
-
stopped = true;
|
|
368
|
-
try {
|
|
369
|
-
reader?.cancel();
|
|
370
|
-
} catch {}
|
|
371
|
-
gl?.dispose();
|
|
372
|
-
gl = null;
|
|
373
|
-
scope.postMessage({ type: "stopped" });
|
|
374
|
-
}
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Dev/build transforms that inject module-level references into function bodies.
|
|
379
|
-
* These pass `new Function(src)` (syntactically valid) but throw a
|
|
380
|
-
* `ReferenceError` at worker boot because the injected identifier
|
|
381
|
-
* (`$RefreshSig$`, `cov_xxx()`, …) doesn't exist in the worker scope — silently
|
|
382
|
-
* downgrading everyone to the slow main-thread path via the fatal→fallback net.
|
|
383
|
-
* The vite config excludes `packages/infra` from prefresh for this reason; this
|
|
384
|
-
* list is the runtime backstop for any other instrumenter (coverage, SSR, a
|
|
385
|
-
* consumer's bundler) that the config can't reach.
|
|
386
|
-
*/
|
|
387
|
-
const WORKER_SOURCE_SENTINELS = [
|
|
388
|
-
{
|
|
389
|
-
name: "prefresh / react-refresh",
|
|
390
|
-
pattern: /\$Refresh(Sig|Reg)\$/
|
|
391
|
-
},
|
|
392
|
-
{
|
|
393
|
-
name: "istanbul coverage",
|
|
394
|
-
pattern: /\bcov_[0-9a-zA-Z]+\(/
|
|
395
|
-
},
|
|
396
|
-
{
|
|
397
|
-
name: "vite SSR transform",
|
|
398
|
-
pattern: /__vite_ssr_/
|
|
399
|
-
}
|
|
400
|
-
];
|
|
401
|
-
/**
|
|
402
|
-
* Returns the name of the instrumenter that corrupted the serialized worker
|
|
403
|
-
* source, or null if the source is clean. Callers log loudly and fall back to
|
|
404
|
-
* the main-thread lens rather than booting a worker that will `ReferenceError`.
|
|
405
|
-
*/
|
|
406
|
-
function detectWorkerSourceInstrumentation(source) {
|
|
407
|
-
for (const sentinel of WORKER_SOURCE_SENTINELS) if (sentinel.pattern.test(source)) return sentinel.name;
|
|
408
|
-
return null;
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Assembles the worker script from the serialized shared functions + injected
|
|
412
|
-
* shader sources and stats/pacer constants. Everything referenced must be
|
|
413
|
-
* self-contained (see module doc); the shaders and the numeric constants
|
|
414
|
-
* (`PUBLISH_INTERVAL_MS`, `GAP_WINDOW`, `FRAME_PACER_TOLERANCE_MS`) are injected
|
|
415
|
-
* as literals so the worker never depends on this module's scope.
|
|
416
|
-
*/
|
|
417
|
-
function buildPrivacyLensWorkerSource(options) {
|
|
418
|
-
if (!Number.isFinite(options.renderSize)) throw new Error(`privacy-lens: renderSize must be finite, got ${String(options.renderSize)}`);
|
|
419
|
-
return [
|
|
420
|
-
"\"use strict\";",
|
|
421
|
-
`const createGl = ${createPrivacyLensGl.toString()};`,
|
|
422
|
-
`const createPacer = ${createFramePacer.toString()};`,
|
|
423
|
-
`const createStats = ${createStatsWindow.toString()};`,
|
|
424
|
-
`const workerMain = ${privacyLensWorkerMain.toString()};`,
|
|
425
|
-
`workerMain(self, {
|
|
426
|
-
createGl,
|
|
427
|
-
createPacer,
|
|
428
|
-
createStats,
|
|
429
|
-
vertSrc: ${JSON.stringify(options.vertSrc)},
|
|
430
|
-
fragSrc: ${JSON.stringify(options.fragSrc)},
|
|
431
|
-
renderSize: ${JSON.stringify(options.renderSize)},
|
|
432
|
-
publishIntervalMs: ${JSON.stringify(500)},
|
|
433
|
-
gapWindow: ${JSON.stringify(128)},
|
|
434
|
-
frameToleranceMs: ${JSON.stringify(8)},
|
|
435
|
-
});`
|
|
436
|
-
].join("\n");
|
|
437
|
-
}
|
|
438
|
-
//#endregion
|
|
439
117
|
//#region ../infra/src/avatar/privacy-lens/PrivacyLensProvider.ts
|
|
440
118
|
/**
|
|
441
119
|
* Privacy-lens avatar — sandblasted-glass effect over the **real** selfie video.
|
|
@@ -724,4 +402,4 @@ function createProvider() {
|
|
|
724
402
|
return new PrivacyLensProvider();
|
|
725
403
|
}
|
|
726
404
|
//#endregion
|
|
727
|
-
export { createProvider };
|
|
405
|
+
export { PrivacyLensProvider, createProvider };
|
package/dist/ae-signature.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as areAllConsented, n as electronicSignatureMachine, r as AE_CONSENT_KEYS, s as getDefaultConsentChecks, t as createElectronicSignatureManager } from "./electronicSignatureManager-
|
|
1
|
+
import { a as areAllConsented, n as electronicSignatureMachine, r as AE_CONSENT_KEYS, s as getDefaultConsentChecks, t as createElectronicSignatureManager } from "./electronicSignatureManager-DHC0bqr9.esm.js";
|
|
2
2
|
//#region src/modules/ae-signature/index.ts
|
|
3
3
|
function createAeSignatureManager(options) {
|
|
4
4
|
return createElectronicSignatureManager({ config: {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as authenticationMachine } from "./authenticationStateMachine-
|
|
2
|
-
import { r as createAuthenticationActor, t as createAuthenticationManager } from "./authenticationManager-
|
|
1
|
+
import { t as authenticationMachine } from "./authenticationStateMachine-CJILuEbH.esm.js";
|
|
2
|
+
import { r as createAuthenticationActor, t as createAuthenticationManager } from "./authenticationManager-D76jxYNX.esm.js";
|
|
3
3
|
export { authenticationMachine, createAuthenticationActor, createAuthenticationManager };
|
package/dist/{authenticationManager-CJnTBpA5.esm.js → authenticationManager-D76jxYNX.esm.js}
RENAMED
|
@@ -2,8 +2,8 @@ import { r as WasmUtilProvider } from "./safeStorage-Ep56I-f_.esm.js";
|
|
|
2
2
|
import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.esm.js";
|
|
3
3
|
import { n as eventModuleNames } from "./events-ethtfu2b.esm.js";
|
|
4
4
|
import { o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.js";
|
|
5
|
-
import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-
|
|
6
|
-
import { t as authenticationMachine } from "./authenticationStateMachine-
|
|
5
|
+
import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-DqQCDsDY.esm.js";
|
|
6
|
+
import { t as authenticationMachine } from "./authenticationStateMachine-CJILuEbH.esm.js";
|
|
7
7
|
//#region src/modules/authentication/authenticationActor.ts
|
|
8
8
|
function createAuthenticationActor(options) {
|
|
9
9
|
const dependencies = options.dependencies ?? {
|
|
@@ -3,8 +3,8 @@ import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
|
|
|
3
3
|
import { t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
|
|
4
4
|
import { r as assign } from "./xstate.esm-Cf4e0Cfd.esm.js";
|
|
5
5
|
import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
|
|
6
|
-
import { t as faceCaptureMachine } from "./faceCaptureSetup-
|
|
7
|
-
import { i as prepareOnDeviceFaceUpload, n as isOnDeviceMode, r as postOnDeviceFaceResults, t as defaultPrepareFaceUpload } from "./onDeviceFaceResults-
|
|
6
|
+
import { t as faceCaptureMachine } from "./faceCaptureSetup-5Ye-LXbB.esm.js";
|
|
7
|
+
import { i as prepareOnDeviceFaceUpload, n as isOnDeviceMode, r as postOnDeviceFaceResults, t as defaultPrepareFaceUpload } from "./onDeviceFaceResults-D53Rr_B1.esm.js";
|
|
8
8
|
import { t as getDeviceClass } from "./getDeviceClass-BGmoQmjj.esm.js";
|
|
9
9
|
import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
|
|
10
10
|
//#region src/modules/authentication/authenticationErrorUtils.ts
|
package/dist/avatar.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createFaceAvatar } from "./createFaceAvatar-
|
|
1
|
+
import { t as createFaceAvatar } from "./createFaceAvatar-AF92I3xf.esm.js";
|
|
2
2
|
export { createFaceAvatar };
|