@incodetech/core 0.0.0-dev-20260928-e8e00ca9 → 0.0.0-dev-20260928-85249f77

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.
Files changed (90) hide show
  1. package/dist/{BrowserDiagnosticsCryptoProvider-CglolaLX.esm.js → BrowserDiagnosticsCryptoProvider-BuzqvbhN.esm.js} +6 -24
  2. package/dist/{FaceDetectionProvider-ZWuTisXf.esm.js → FaceDetectionProvider-CSjiXOo7.esm.js} +7 -7
  3. package/dist/{MotionSensorProvider-Bti5f6op.esm.js → MotionSensorProvider-1Ul_1GPn.esm.js} +1 -1
  4. package/dist/ae-signature.esm.js +1 -1
  5. package/dist/{apiError-DqxsUXGC.esm.js → apiError-DmDlw1pl.esm.js} +1 -1
  6. package/dist/authentication.d.ts +2 -2
  7. package/dist/authentication.esm.js +2 -2
  8. package/dist/{authenticationManager-DgCLrxXN.esm.js → authenticationManager-B9l6NeDe.esm.js} +4 -4
  9. package/dist/{authenticationManager-B-MR_-Si.d.ts → authenticationManager-DE40FMUU.d.ts} +1 -1
  10. package/dist/{authenticationStateMachine-DECsoldb.esm.js → authenticationStateMachine-BGme0djA.esm.js} +3 -3
  11. package/dist/camera.esm.js +1 -1
  12. package/dist/consent.d.ts +1 -1
  13. package/dist/{consentManager-Cv_0QKLD.d.ts → consentManager-CTdFloVJ.d.ts} +1 -1
  14. package/dist/{createCameraCycleOwnership-BjoMVvya.esm.js → createCameraCycleOwnership-P1AtkhRJ.esm.js} +6 -1
  15. package/dist/{deepsightLoader-DidR7w-7.esm.js → deepsightLoader-BY2NIp7n.esm.js} +6 -6
  16. package/dist/document-capture.d.ts +1 -1
  17. package/dist/document-capture.esm.js +2 -2
  18. package/dist/{documentCaptureManager-CbAGkHWh.d.ts → documentCaptureManager-C8eO0hbv.d.ts} +1 -1
  19. package/dist/{documentCaptureManager-7e1RLKhG.esm.js → documentCaptureManager-DRAn04PI.esm.js} +1 -1
  20. package/dist/{documentCaptureStateMachine-DyJb_vDQ.esm.js → documentCaptureStateMachine-BS9VBtqN.esm.js} +2 -2
  21. package/dist/dynamic-forms.esm.js +2 -2
  22. package/dist/{dynamicFormsManager-B5GSLZvO.esm.js → dynamicFormsManager-CTJzsDqC.esm.js} +1 -1
  23. package/dist/{dynamicFormsStateMachine-DAq-HoCA.esm.js → dynamicFormsStateMachine-8oOTouxq.esm.js} +1 -1
  24. package/dist/ekyb.esm.js +3 -3
  25. package/dist/{ekybManager-7ljnpTt2.esm.js → ekybManager-CKNCVYs7.esm.js} +1 -1
  26. package/dist/{ekybStateMachine-CD8oLnoa.esm.js → ekybStateMachine-BDQHv558.esm.js} +1 -1
  27. package/dist/electronic-signature.esm.js +1 -1
  28. package/dist/{electronicSignatureManager-r2Zci23-.esm.js → electronicSignatureManager-BbgLJk1x.esm.js} +1 -1
  29. package/dist/extensibility.d.ts +9 -9
  30. package/dist/extensibility.esm.js +12 -12
  31. package/dist/{faceCaptureManagerFactory-OSygJ72q.esm.js → faceCaptureManagerFactory-DG4z3rkR.esm.js} +3 -3
  32. package/dist/{faceCaptureManagerFactory-BgbP5N1j.d.ts → faceCaptureManagerFactory-s0Vhw_wP.d.ts} +80 -40
  33. package/dist/{faceCaptureSetup-DSvOibxj.esm.js → faceCaptureSetup-GzW2oNiM.esm.js} +261 -58
  34. package/dist/{feature-management-BhzWEsyZ.esm.js → feature-management-02JHuEhD.esm.js} +1 -1
  35. package/dist/feature-management.esm.js +1 -1
  36. package/dist/flow.esm.js +3 -3
  37. package/dist/{flowCompletionService-B-ri1Pvq.esm.js → flowCompletionService-BAg6qc6d.esm.js} +1 -1
  38. package/dist/{flowServices-C62Eyo7N.esm.js → flowServices-Dc-EUuwB.esm.js} +5 -5
  39. package/dist/geolocation.esm.js +2 -2
  40. package/dist/{geolocationManager-BU4OLtRY.esm.js → geolocationManager-v0LZK1kW.esm.js} +1 -1
  41. package/dist/{geolocationStateMachine-D8UrSeXQ.esm.js → geolocationStateMachine-DfdsEj7L.esm.js} +1 -1
  42. package/dist/id-ocr.d.ts +1 -1
  43. package/dist/id-selfie-flow.esm.js +9 -10
  44. package/dist/id.d.ts +2 -2
  45. package/dist/id.esm.js +4 -4
  46. package/dist/{idCaptureDefaults-B6gkShby.esm.js → idCaptureDefaults-Ba-m1uO3.esm.js} +3 -3
  47. package/dist/{idCaptureManager-DIT7ZyEa.esm.js → idCaptureManager-Bfrj7DvH.esm.js} +6 -5
  48. package/dist/{idCaptureManager-poTdJI74.d.ts → idCaptureManager-DfHdJLmj.d.ts} +29 -5
  49. package/dist/{idCaptureServices-Cl67CI_t.esm.js → idCaptureServices-DKeVf0Gu.esm.js} +67 -12
  50. package/dist/{idCaptureStateMachine-BADMFRXg.esm.js → idCaptureStateMachine-BL3MnDOu.esm.js} +222 -77
  51. package/dist/{idOcrManager-DT3kPIB3.d.ts → idOcrManager-BTdHlJ9D.d.ts} +1 -1
  52. package/dist/identity-reuse.d.ts +1 -1
  53. package/dist/{identityReuseManager-x2QG6QAm.d.ts → identityReuseManager-D0-4bAeK.d.ts} +1 -1
  54. package/dist/index.d.ts +1 -1
  55. package/dist/index.esm.js +1 -1
  56. package/dist/mandatory-consent.d.ts +1 -1
  57. package/dist/{mandatoryConsentManager-DzIGk6u7.d.ts → mandatoryConsentManager-S94mjtTG.d.ts} +1 -1
  58. package/dist/{multipartRecordingService-Dw0scizg.esm.js → multipartRecordingService-mwKFTlhR.esm.js} +42 -1
  59. package/dist/{permissionGuards-DAyjPT2R.esm.js → permissionGuards-DS36X5Hh.esm.js} +1 -1
  60. package/dist/{permissionServices-DIaG8BlW.esm.js → permissionServices-B9IqVf3c.esm.js} +2 -2
  61. package/dist/qe-signature.esm.js +1 -1
  62. package/dist/{runChildModule-CoWvzHhB.esm.js → runChildModule-DQbERvPv.esm.js} +1 -1
  63. package/dist/{safeStorage-C511Hltw.esm.js → safeStorage-Q_iUpxa8.esm.js} +1 -1
  64. package/dist/{sdkVersion-sSFpdmZk.esm.js → sdkVersion-kGZmwBhf.esm.js} +1 -1
  65. package/dist/selfie.d.ts +2 -2
  66. package/dist/selfie.esm.js +7 -7
  67. package/dist/{selfieManager-Be-moOeO.esm.js → selfieManager-B-F-lrAH.esm.js} +4 -4
  68. package/dist/{selfieManager-oSsnyvBl.d.ts → selfieManager-PVc2k2Oq.d.ts} +1 -1
  69. package/dist/{selfieStateMachine-0bHX1R9_.esm.js → selfieStateMachine--KjoErrq.esm.js} +2 -2
  70. package/dist/{session-DjUhUWYA.esm.js → session-Bb5KuwEu.esm.js} +3 -3
  71. package/dist/session.esm.js +4 -4
  72. package/dist/{sessionInitializer-_BmsjkUB.esm.js → sessionInitializer-D-gzxDwN.esm.js} +4 -4
  73. package/dist/{setup-CHHZ8BBM.d.ts → setup-BdeKbA9K.d.ts} +4 -17
  74. package/dist/{setup-D7B4g7Jc.esm.js → setup-Cb7Ws1HA.esm.js} +8 -58
  75. package/dist/{tri-4RsGrIt6.esm.js → tri-xzRLIIMN.esm.js} +0 -10
  76. package/dist/tri.esm.js +1 -1
  77. package/dist/{trueSightService-Bb116pCE.esm.js → trueSightService-D8dk4ZID.esm.js} +16 -554
  78. package/dist/video-selfie.esm.js +5 -5
  79. package/dist/{videoSelfieCameraWarmer-CeZLd5w_.esm.js → videoSelfieCameraWarmer-CkdLS8NK.esm.js} +5 -5
  80. package/dist/{warmup-REsua-sF.esm.js → warmup-DLq_t-Zu.esm.js} +5 -0
  81. package/dist/wasm.d.ts +1 -1
  82. package/dist/wasm.esm.js +3 -3
  83. package/dist/{wasmDsFlagSync-Czjlp68o.esm.js → wasmDsFlagSync-DyNj8RY_.esm.js} +1 -1
  84. package/dist/workflow.esm.js +15 -15
  85. package/package.json +2 -7
  86. package/dist/FaceDetectionProvider-Di1DmZu1.d.ts +0 -36
  87. package/dist/StreamCanvasProcessingSession-CBnbTnOr.esm.js +0 -42
  88. package/dist/personhood.d.ts +0 -537
  89. package/dist/personhood.esm.js +0 -1574
  90. package/dist/types-CfuWgAi-.d.ts +0 -1
@@ -1,33 +1,33 @@
1
- import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-Bb116pCE.esm.js";
2
- import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-D7B4g7Jc.esm.js";
1
+ import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-D8dk4ZID.esm.js";
2
+ import { r as WasmUtilProvider } from "./safeStorage-Q_iUpxa8.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-Cb7Ws1HA.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { s as exposeExperimentOnce } from "./feature-management-BhzWEsyZ.esm.js";
5
+ import { s as exposeExperimentOnce } from "./feature-management-02JHuEhD.esm.js";
6
6
  import { n as revokeObjectURL, t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
7
7
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
8
8
  import { n as eventModuleNames, o as createManagerInstrumentation, s as recordExperimentAssignmentOnce } from "./events-ijlbX_Wx.esm.js";
9
- import { t as getDisableIpify } from "./sessionInitializer-_BmsjkUB.esm.js";
9
+ import { t as getDisableIpify } from "./sessionInitializer-D-gzxDwN.esm.js";
10
10
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
11
11
  import { t as addDeviceStats } from "./stats-CZcy2J53.esm.js";
12
12
  import { a as isIOS, s as isIPad, t as isAndroid, u as isMacOsSafari } from "./platform-DkcRc9JV.esm.js";
13
- import "./session-DjUhUWYA.esm.js";
13
+ import "./session-Bb5KuwEu.esm.js";
14
14
  import { c as not, i as assign, l as raise, n as enqueueActions, o as and, r as sendTo, s as createActor, t as setup, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
15
15
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
16
16
  import { n as getUrlSearchParam, t as buildUrlWithSearchParams } from "./urlUtils-D6phjq1-.esm.js";
17
17
  import { r as getCameraReacquisitionConstraints } from "./camera-sIa9ceW2.esm.js";
18
- import { i as requestMotionPermission, n as invokeRequestPermissionActor, o as requiresMotionPermissionUserGesture, t as checkPermission } from "./permissionServices-DIaG8BlW.esm.js";
19
- import { a as flagIdManualReview, n as runProtectedAttempt, o as PROTECTED_CAPTURE_TARGET, r as cameraCycleProvider, t as createCameraCycleOwnership } from "./createCameraCycleOwnership-BjoMVvya.esm.js";
18
+ import { i as requestMotionPermission, n as invokeRequestPermissionActor, o as requiresMotionPermissionUserGesture, t as checkPermission } from "./permissionServices-B9IqVf3c.esm.js";
19
+ import { a as flagIdManualReview, n as runProtectedAttempt, o as PROTECTED_CAPTURE_TARGET, r as cameraCycleProvider, t as createCameraCycleOwnership } from "./createCameraCycleOwnership-P1AtkhRJ.esm.js";
20
20
  import { t as IncodeCanvas } from "./canvas-BxFzWTt-.esm.js";
21
- import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-DAyjPT2R.esm.js";
22
- import { t as StreamCanvasProcessingSession } from "./StreamCanvasProcessingSession-CBnbTnOr.esm.js";
21
+ import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-DS36X5Hh.esm.js";
22
+ import { o as StreamCanvasProcessingSession } from "./multipartRecordingService-mwKFTlhR.esm.js";
23
23
  import { t as sleep } from "./ITimerCapability-DgdDzp8G.esm.js";
24
24
  import { t as getBrowser } from "./getBrowser-Cbe1C4Tn.esm.js";
25
25
  import { a as isBackCameraLabel } from "./backCameraStream-CMvXj4X4.esm.js";
26
26
  import { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
27
27
  import { n as runVirtualCameraCheck, t as frameSources } from "./virtualCameraCheck-Cjab7FTI.esm.js";
28
28
  import { t as getDeviceClass } from "./getDeviceClass-5NYZg9s6.esm.js";
29
- import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-B6gkShby.esm.js";
30
- import { _ as resolveIdCaptureThresholds, a as getRealQualityValue, b as getIdCameraStream, c as prepareRecordingForCameraRetry, d as stopRecording, f as stopStream, h as ID_ERROR_CODES, i as finalizeRecordingSession, l as processId, m as validateUploadResponse, o as initializeIdCapture, p as uploadIdImage, r as disposeRecordingSession, t as addBarcode, u as startRecordingSession, v as CAPTURE_OPTIMIZING, y as OPTIMIZING_WATCHDOG_MARGIN_MS } from "./idCaptureServices-Cl67CI_t.esm.js";
29
+ import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-Ba-m1uO3.esm.js";
30
+ import { C as getIdCameraStream, S as OPTIMIZING_WATCHDOG_MARGIN_MS, _ as ID_ERROR_CODES, a as getRealQualityValue, b as resolveIdCaptureThresholds, c as pauseRecordingForAttempt, d as resumeRecordingAfterPause, f as startRecordingSession, g as validateUploadResponse, h as uploadIdImage, i as finalizeRecordingSession, l as prepareRecordingForCameraRetry, m as stopStream, o as initializeIdCapture, p as stopRecording, r as disposeRecordingSession, s as isSuspendableRecordingSession, t as addBarcode, u as processId, x as CAPTURE_OPTIMIZING, y as resolveCountdownStepMs } from "./idCaptureServices-DKeVf0Gu.esm.js";
31
31
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
32
32
  //#region src/modules/id/digitalUpload/digitalUploadErrors.ts
33
33
  const TERMINAL_FAIL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
@@ -1398,7 +1398,7 @@ fromPromise(async ({ input }) => {
1398
1398
  });
1399
1399
  fromPromise(async ({ input }) => {
1400
1400
  if (!input.dependencies) return;
1401
- const { loadDeepsightSession } = await import("./deepsightLoader-DidR7w-7.esm.js");
1401
+ const { loadDeepsightSession } = await import("./deepsightLoader-BY2NIp7n.esm.js");
1402
1402
  return loadDeepsightSession({
1403
1403
  ds: input.ds,
1404
1404
  storage: input.dependencies.storage,
@@ -1841,7 +1841,7 @@ function cleanup(service) {
1841
1841
  service.cleanup();
1842
1842
  } catch {}
1843
1843
  }
1844
- function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-DidR7w-7.esm.js")).loadDeepsightSession(input)) {
1844
+ function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-BY2NIp7n.esm.js")).loadDeepsightSession(input)) {
1845
1845
  let disposed = false;
1846
1846
  let preparation;
1847
1847
  let service;
@@ -1942,6 +1942,16 @@ function createIdProtectedCaptureController(dependencies = {}) {
1942
1942
  let attemptContext;
1943
1943
  let attemptSend;
1944
1944
  let diagnosticAttempt;
1945
+ const stepRecording = { retryPending: false };
1946
+ const recordingScopeFor = (context) => context.currentMode === "back" ? "backId" : "frontId";
1947
+ const completeStepRecording = () => {
1948
+ const session = stepRecording.session;
1949
+ stepRecording.session = void 0;
1950
+ stepRecording.scope = void 0;
1951
+ stepRecording.retryPending = false;
1952
+ if (!session) return;
1953
+ finalizeRecordingSession(session).catch(() => {});
1954
+ };
1945
1955
  const logDiagnostic = (event, fields = {}) => {
1946
1956
  if (!diagnosticAttempt) return;
1947
1957
  logIdCameraDiagnostic(event, {
@@ -2072,6 +2082,7 @@ function createIdProtectedCaptureController(dependencies = {}) {
2072
2082
  beginAttempt(context, send) {
2073
2083
  if (disposed) throw new Error("ID protected capture controller is disposed");
2074
2084
  clearAttempt();
2085
+ if (stepRecording.session && stepRecording.scope !== recordingScopeFor(context)) completeStepRecording();
2075
2086
  diagnosticAttempt = {
2076
2087
  attempt: ++protectedIdAttemptSequence,
2077
2088
  side: context.currentMode === "back" ? "back" : "front",
@@ -2079,7 +2090,7 @@ function createIdProtectedCaptureController(dependencies = {}) {
2079
2090
  };
2080
2091
  attemptContext = context;
2081
2092
  attemptSend = send;
2082
- provider = (dependencies.createProvider ?? createProtectedIdProvider)(context.config);
2093
+ provider = (dependencies.createProvider ?? createProtectedIdProvider)(context.config, context.currentMode);
2083
2094
  cycleOwnership = createCameraCycleOwnership(cameraCycleProvider);
2084
2095
  logDiagnostic("attempt-start", { aggregationMs: context.config?.thresholds?.framesAggregationInterval ?? DEFAULT_ID_CAPTURE_THRESHOLDS.framesAggregationInterval });
2085
2096
  },
@@ -2109,6 +2120,27 @@ function createIdProtectedCaptureController(dependencies = {}) {
2109
2120
  metadataCoordinator.dispose();
2110
2121
  releasePreAcquired();
2111
2122
  clearAttempt();
2123
+ completeStepRecording();
2124
+ },
2125
+ getStepRecording() {
2126
+ return stepRecording;
2127
+ },
2128
+ keepRecordingForRetry() {
2129
+ stepRecording.retryPending = true;
2130
+ },
2131
+ completeStepRecording,
2132
+ endRecordingStep() {
2133
+ if (stepRecording.retryPending) {
2134
+ stepRecording.retryPending = false;
2135
+ return;
2136
+ }
2137
+ completeStepRecording();
2138
+ },
2139
+ pauseStepRecording() {
2140
+ if (stepRecording.session) pauseRecordingForAttempt(stepRecording.session);
2141
+ },
2142
+ resumeStepRecording() {
2143
+ if (stepRecording.session) resumeRecordingAfterPause(stepRecording.session);
2112
2144
  },
2113
2145
  preAcquire,
2114
2146
  setVisible(nextVisible) {
@@ -2339,7 +2371,8 @@ function createIdCaptureOnlyDeliveryActor(ownedController) {
2339
2371
  });
2340
2372
  }
2341
2373
  let protectedIdAttemptSequence = 0;
2342
- function resolveProtectedIdWorkflow(config) {
2374
+ function resolveProtectedIdWorkflow(config, currentMode) {
2375
+ if (config.usSmartCapture === true && (currentMode === "back" || currentMode === "front" && config.modelVersion !== "v3")) return 0;
2343
2376
  if (config.modelVersion === "v3" || config.usSmartCapture === true) return 7;
2344
2377
  if (config.settings?.faceQualityCheckEnabled === true) return 8;
2345
2378
  if (config.settings?.faceQualityCheckEnabled === false) return 6;
@@ -2351,37 +2384,122 @@ function resolveProtectedIdTarget(config, currentMode) {
2351
2384
  if (config.isSecondId === true) return back ? PROTECTED_CAPTURE_TARGET.backSecondId : PROTECTED_CAPTURE_TARGET.frontSecondId;
2352
2385
  return back ? PROTECTED_CAPTURE_TARGET.backId : PROTECTED_CAPTURE_TARGET.frontId;
2353
2386
  }
2354
- function createProtectedIdProvider(config) {
2355
- const workflow = resolveProtectedIdWorkflow(config);
2387
+ function createProtectedIdProvider(config, currentMode) {
2388
+ const workflow = resolveProtectedIdWorkflow(config, currentMode);
2356
2389
  return workflow === 0 ? new IdCaptureProvider() : new IdCaptureProvider(workflow);
2357
2390
  }
2391
+ /**
2392
+ * Recorder hooks for one protected ID attempt over a step-scoped recording.
2393
+ *
2394
+ * The attempt never completes the scoped upload. It starts or resumes the held
2395
+ * session after PRC, pauses it and ends its camera clone synchronously when the
2396
+ * capture is committed (before POC), and suspends it the same way on release.
2397
+ * The controller completes the upload when the backend accepts the capture or
2398
+ * when the step ends without a retry (ENG-56648). A session that is no longer
2399
+ * live — already finalized or disposed — cannot be paused, so it is dropped and
2400
+ * torn down instead.
2401
+ */
2358
2402
  function createProtectedIdRecorderHooks(input) {
2359
- let session;
2403
+ const holder = input.stepRecording ?? { retryPending: false };
2404
+ const scope = input.currentMode === "back" ? "backId" : "frontId";
2360
2405
  const enabled = input.enabled !== false && input.config.enableIdRecording === true;
2406
+ let disposed = false;
2407
+ const dropHeldSession = () => {
2408
+ const session = holder.session;
2409
+ holder.session = void 0;
2410
+ holder.scope = void 0;
2411
+ return session;
2412
+ };
2413
+ /**
2414
+ * Ends the camera clone on the calling thread and keeps the paused upload for
2415
+ * the next attempt. Idempotent; never finalizes a multipart session.
2416
+ */
2417
+ const suspend = () => {
2418
+ const session = holder.session;
2419
+ if (!session) return;
2420
+ if (!isSuspendableRecordingSession(session)) {
2421
+ dropHeldSession();
2422
+ disposeRecordingSession(session);
2423
+ return;
2424
+ }
2425
+ try {
2426
+ prepareRecordingForCameraRetry(session);
2427
+ } catch {}
2428
+ };
2429
+ const warn = (message) => {
2430
+ trueSightLog("warning", "recording", "idScan", message);
2431
+ };
2361
2432
  return {
2362
2433
  mode: enabled ? "finalizeBeforePoc" : "none",
2363
2434
  async start(stream) {
2364
2435
  if (!enabled) return;
2365
- session = await startRecordingSession({
2366
- config: input.config,
2367
- stream,
2368
- type: input.currentMode === "back" ? "backId" : "frontId"
2369
- });
2436
+ if (holder.session && holder.scope !== scope) {
2437
+ const stale = dropHeldSession();
2438
+ if (stale) disposeRecordingSession(stale);
2439
+ }
2440
+ const existing = holder.session;
2441
+ let session;
2442
+ try {
2443
+ session = await startRecordingSession({
2444
+ config: input.config,
2445
+ stream,
2446
+ type: scope,
2447
+ existing
2448
+ });
2449
+ } catch (error) {
2450
+ if (existing) {
2451
+ suspend();
2452
+ warn("ID recording did not resume for this attempt");
2453
+ return;
2454
+ }
2455
+ throw error;
2456
+ }
2457
+ if (disposed) {
2458
+ if (session && session !== existing) disposeRecordingSession(session);
2459
+ else suspend();
2460
+ return;
2461
+ }
2462
+ if (session) {
2463
+ holder.session = session;
2464
+ holder.scope = scope;
2465
+ }
2370
2466
  },
2371
2467
  async prepareForPoc() {
2468
+ const session = holder.session;
2372
2469
  if (!session) return {};
2373
- const currentSession = session;
2374
- session = void 0;
2375
- return finalizeRecordingSession(currentSession);
2470
+ if (!isSuspendableRecordingSession(session)) {
2471
+ dropHeldSession();
2472
+ return finalizeRecordingSession(session);
2473
+ }
2474
+ suspend();
2475
+ return {};
2376
2476
  },
2377
2477
  async resumeAfterPoc() {},
2378
- pauseForBackground() {},
2379
- async resumeFromBackground() {},
2478
+ pauseForBackground() {
2479
+ suspend();
2480
+ },
2481
+ async resumeFromBackground(stream) {
2482
+ const existing = holder.session;
2483
+ if (!enabled || disposed || !existing || holder.scope !== scope || !isSuspendableRecordingSession(existing)) return;
2484
+ try {
2485
+ await startRecordingSession({
2486
+ config: input.config,
2487
+ stream,
2488
+ type: scope,
2489
+ existing
2490
+ });
2491
+ } catch {
2492
+ suspend();
2493
+ warn("ID recording did not resume after foreground");
2494
+ }
2495
+ },
2380
2496
  dispose() {
2381
- input.disposeCaptureCallbacks();
2382
- if (!session) return;
2383
- disposeRecordingSession(session);
2384
- session = void 0;
2497
+ disposed = true;
2498
+ try {
2499
+ input.disposeCaptureCallbacks();
2500
+ } finally {
2501
+ suspend();
2502
+ }
2385
2503
  }
2386
2504
  };
2387
2505
  }
@@ -2417,7 +2535,7 @@ function createProtectedIdCallbackSession(input) {
2417
2535
  };
2418
2536
  const startCountdown = () => {
2419
2537
  clearCountdown();
2420
- const stepMs = (input.context.config.thresholds?.framesAggregationInterval ?? DEFAULT_ID_CAPTURE_THRESHOLDS.framesAggregationInterval) / 3;
2538
+ const stepMs = resolveCountdownStepMs(input.context.config);
2421
2539
  input.send({
2422
2540
  type: "COUNTER_VALUE_CHANGE",
2423
2541
  value: 3
@@ -2556,7 +2674,7 @@ function createProtectedIdAttemptInput(input) {
2556
2674
  const { context, controller } = input;
2557
2675
  const provider = controller.getProvider();
2558
2676
  if (!provider) throw new Error("Protected ID provider is unavailable");
2559
- const workflow = resolveProtectedIdWorkflow(context.config);
2677
+ const workflow = resolveProtectedIdWorkflow(context.config, context.currentMode);
2560
2678
  const target = resolveProtectedIdTarget(context.config, context.currentMode);
2561
2679
  const callbackSession = createProtectedIdCallbackSession(input);
2562
2680
  let wasmUtil;
@@ -2612,7 +2730,8 @@ function createProtectedIdAttemptInput(input) {
2612
2730
  config: context.config,
2613
2731
  currentMode: context.currentMode,
2614
2732
  disposeCaptureCallbacks: callbackSession.dispose,
2615
- enabled: !captureOnly
2733
+ enabled: !captureOnly,
2734
+ stepRecording: controller.getStepRecording()
2616
2735
  }),
2617
2736
  releaseUnadoptedStream: stopStream,
2618
2737
  beforeAdopt: captureOnly ? void 0 : async (stream) => {
@@ -3737,6 +3856,21 @@ const idCaptureMachine = setup({
3737
3856
  clearProtectedAttempt: ({ self }) => {
3738
3857
  getIdProtectedCaptureController(self).clearAttempt();
3739
3858
  },
3859
+ keepProtectedRecordingForRetry: ({ self }) => {
3860
+ getIdProtectedCaptureController(self).keepRecordingForRetry();
3861
+ },
3862
+ completeProtectedRecording: ({ self }) => {
3863
+ getIdProtectedCaptureController(self).completeStepRecording();
3864
+ },
3865
+ endProtectedRecordingStep: ({ self }) => {
3866
+ getIdProtectedCaptureController(self).endRecordingStep();
3867
+ },
3868
+ pauseProtectedRecording: ({ self }) => {
3869
+ getIdProtectedCaptureController(self).pauseStepRecording();
3870
+ },
3871
+ resumeProtectedRecording: ({ self }) => {
3872
+ getIdProtectedCaptureController(self).resumeStepRecording();
3873
+ },
3740
3874
  disposeProvider: ({ context }) => {
3741
3875
  performDisposeProvider(context);
3742
3876
  },
@@ -4550,6 +4684,7 @@ const idCaptureMachine = setup({
4550
4684
  exit: [
4551
4685
  "stopMediaRecording",
4552
4686
  "clearRecordingSession",
4687
+ "endProtectedRecordingStep",
4553
4688
  "clearProtectedAttempt"
4554
4689
  ],
4555
4690
  invoke: {
@@ -4589,7 +4724,7 @@ const idCaptureMachine = setup({
4589
4724
  always: "#idCapture.closed"
4590
4725
  },
4591
4726
  releasingForRetry: {
4592
- entry: "releaseProtectedForRetry",
4727
+ entry: ["keepProtectedRecordingForRetry", "releaseProtectedForRetry"],
4593
4728
  always: {
4594
4729
  target: "#idCapture.capture",
4595
4730
  reenter: true
@@ -4757,21 +4892,27 @@ const idCaptureMachine = setup({
4757
4892
  onError: { target: "uploading" }
4758
4893
  } },
4759
4894
  capturingBarcode: { always: [{ target: "submittingBarcodePreCapture" }] },
4760
- submittingBarcodePreCapture: { invoke: {
4761
- id: "submitBarcode",
4762
- src: "submitBarcode",
4763
- input: ({ context }) => ({
4764
- rawBarcode: context.decodedBarcode?.text ?? "",
4765
- metrics: context.decodedBarcode,
4766
- processId: context.config.skipProcessId !== true,
4767
- minDurationMs: 1e3
4768
- }),
4769
- onDone: {
4770
- target: "success",
4771
- actions: ["storeBarcodeResponse", "markBarcodeFastPathCaptured"]
4772
- },
4773
- onError: { target: "choosingDetectionStrategy" }
4774
- } },
4895
+ submittingBarcodePreCapture: {
4896
+ entry: "pauseProtectedRecording",
4897
+ invoke: {
4898
+ id: "submitBarcode",
4899
+ src: "submitBarcode",
4900
+ input: ({ context }) => ({
4901
+ rawBarcode: context.decodedBarcode?.text ?? "",
4902
+ metrics: context.decodedBarcode,
4903
+ processId: context.config.skipProcessId !== true,
4904
+ minDurationMs: 1e3
4905
+ }),
4906
+ onDone: {
4907
+ target: "success",
4908
+ actions: ["storeBarcodeResponse", "markBarcodeFastPathCaptured"]
4909
+ },
4910
+ onError: {
4911
+ target: "choosingDetectionStrategy",
4912
+ actions: "resumeProtectedRecording"
4913
+ }
4914
+ }
4915
+ },
4775
4916
  capturingManual: {
4776
4917
  entry: "finalizeProtectedAttempt",
4777
4918
  on: { PROTECTED_ATTEMPT_FINALIZED_SIGNAL: [
@@ -4885,32 +5026,36 @@ const idCaptureMachine = setup({
4885
5026
  },
4886
5027
  { target: "success" }
4887
5028
  ] },
4888
- uploadError: { on: { CONTINUE_FROM_ERROR: [
4889
- {
4890
- target: "releasingForRetry",
4891
- guard: "hasAttemptsRemaining",
4892
- actions: [
4893
- "resetDetection",
4894
- "clearUploadFailure",
4895
- "clearStreamForRetry"
4896
- ]
4897
- },
4898
- {
4899
- target: "#idCapture.frontFinished",
4900
- guard: "shouldContinueToBack",
4901
- actions: ["flagIdManualReview"]
4902
- },
4903
- {
4904
- target: "#idCapture.backFinished",
4905
- guard: "shouldContinueToFront",
4906
- actions: ["flagIdManualReview"]
4907
- },
4908
- {
4909
- target: "#idCapture.processing",
4910
- actions: ["flagIdManualReview"]
4911
- }
4912
- ] } },
5029
+ uploadError: {
5030
+ entry: "pauseProtectedRecording",
5031
+ on: { CONTINUE_FROM_ERROR: [
5032
+ {
5033
+ target: "releasingForRetry",
5034
+ guard: "hasAttemptsRemaining",
5035
+ actions: [
5036
+ "resetDetection",
5037
+ "clearUploadFailure",
5038
+ "clearStreamForRetry"
5039
+ ]
5040
+ },
5041
+ {
5042
+ target: "#idCapture.frontFinished",
5043
+ guard: "shouldContinueToBack",
5044
+ actions: ["flagIdManualReview"]
5045
+ },
5046
+ {
5047
+ target: "#idCapture.backFinished",
5048
+ guard: "shouldContinueToFront",
5049
+ actions: ["flagIdManualReview"]
5050
+ },
5051
+ {
5052
+ target: "#idCapture.processing",
5053
+ actions: ["flagIdManualReview"]
5054
+ }
5055
+ ] }
5056
+ },
4913
5057
  success: {
5058
+ entry: "completeProtectedRecording",
4914
5059
  exit: "clearBarcodeFastPathCaptured",
4915
5060
  on: { NEXT_STEP: [
4916
5061
  {
@@ -109,7 +109,7 @@ declare const idOcrStateMachine: StateMachine<IdOcrContext, {
109
109
  type: "shouldProceedWithoutSubmitToSecondId";
110
110
  params: unknown;
111
111
  };
112
- }>, never, "error" | "idle" | "success" | "finished" | "submitting" | "loading" | "inputting" | "readonly" | "validatingContinue", string, IdOcrInput, NonReducibleUnknown, EventObject, MetaObject, {
112
+ }>, never, "error" | "idle" | "success" | "finished" | "loading" | "submitting" | "inputting" | "readonly" | "validatingContinue", string, IdOcrInput, NonReducibleUnknown, EventObject, MetaObject, {
113
113
  readonly id: "idOcr";
114
114
  readonly initial: "idle";
115
115
  readonly context: ({ input }: {
@@ -1,2 +1,2 @@
1
- import { c as identityReuseMachine, d as ReusableDocument, f as SubmitResponse, i as createIdentityReuseManagerFromActor, l as FetchDocumentsResponse, n as IdentityReuseState, o as SCAN_NEW_DOCUMENT, r as createIdentityReuseManager, s as SelectedDocumentId, t as IdentityReuseManager, u as IdentityReuseConfig } from "./identityReuseManager-x2QG6QAm.js";
1
+ import { c as identityReuseMachine, d as ReusableDocument, f as SubmitResponse, i as createIdentityReuseManagerFromActor, l as FetchDocumentsResponse, n as IdentityReuseState, o as SCAN_NEW_DOCUMENT, r as createIdentityReuseManager, s as SelectedDocumentId, t as IdentityReuseManager, u as IdentityReuseConfig } from "./identityReuseManager-D0-4bAeK.js";
2
2
  export { type FetchDocumentsResponse, type IdentityReuseConfig, type IdentityReuseManager, type IdentityReuseState, type ReusableDocument, SCAN_NEW_DOCUMENT, type SelectedDocumentId, type SubmitResponse, createIdentityReuseManager, createIdentityReuseManagerFromActor, identityReuseMachine };
@@ -124,7 +124,7 @@ declare const identityReuseMachine: StateMachine<IdentityReuseContext, {
124
124
  type: "hasSelection";
125
125
  params: unknown;
126
126
  };
127
- }>, never, "error" | "idle" | "finished" | "submitting" | "loading" | "documentsFound", string, IdentityReuseInput, NonReducibleUnknown, EventObject, MetaObject, {
127
+ }>, never, "error" | "idle" | "finished" | "loading" | "submitting" | "documentsFound", string, IdentityReuseInput, NonReducibleUnknown, EventObject, MetaObject, {
128
128
  readonly id: "identityReuse";
129
129
  readonly initial: "idle";
130
130
  readonly context: ({ input }: {
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as isConfigured, l as setup, o as reset, t as SetupOptions } from "./setup-CHHZ8BBM.js";
1
+ import { a as isConfigured, l as setup, o as reset, t as SetupOptions } from "./setup-BdeKbA9K.js";
2
2
  export { type SetupOptions, isConfigured, reset, setup };
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as reset, r as isConfigured, s as setup } from "./setup-D7B4g7Jc.esm.js";
1
+ import { i as reset, r as isConfigured, s as setup } from "./setup-Cb7Ws1HA.esm.js";
2
2
  export { isConfigured, reset, setup };
@@ -1,3 +1,3 @@
1
1
  import { r as MandatoryConsentConfig } from "./types-CXzZsurG.js";
2
- import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-DzIGk6u7.js";
2
+ import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-S94mjtTG.js";
3
3
  export { type MandatoryConsentActor, type MandatoryConsentConfig, type MandatoryConsentManager, type MandatoryConsentState, createMandatoryConsentManager, createMandatoryConsentManagerFromActor, mandatoryConsentMachine };
@@ -71,7 +71,7 @@ declare const mandatoryConsentMachine: StateMachine<MandatoryConsentContext, {
71
71
  }>, {
72
72
  type: "canSubmit";
73
73
  params: unknown;
74
- }, never, "error" | "idle" | "closed" | "finished" | "submitting" | "loading" | "display", string, MandatoryConsentInput, NonReducibleUnknown, EventObject, MetaObject, {
74
+ }, never, "error" | "idle" | "closed" | "finished" | "loading" | "submitting" | "display", string, MandatoryConsentInput, NonReducibleUnknown, EventObject, MetaObject, {
75
75
  readonly id: "mandatoryConsent";
76
76
  readonly initial: "idle";
77
77
  readonly context: ({ input }: {
@@ -2,6 +2,47 @@ import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.j
2
2
  import { t as api } from "./api-Bx3gKW_y.esm.js";
3
3
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
4
4
  import { a as isIOS } from "./platform-DkcRc9JV.esm.js";
5
+ //#region ../infra/src/media/StreamCanvasProcessingSession.ts
6
+ var StreamCanvasProcessingSession = class {
7
+ /**
8
+ * Creates a processing session that reacts to `StreamCanvasCapture` frame events
9
+ * and drives a provider's `processFrame()` method with backpressure.
10
+ */
11
+ constructor(params) {
12
+ this.disposed = false;
13
+ this.isProcessing = false;
14
+ this.onFrameEvent = () => {
15
+ if (this.disposed || this.isProcessing) return;
16
+ const frame = this.capturer.getLatestFrame();
17
+ if (!frame) return;
18
+ this.onFrame?.(frame);
19
+ this.isProcessing = true;
20
+ this.provider.processFrame(frame).catch(() => {}).finally(() => {
21
+ this.isProcessing = false;
22
+ });
23
+ };
24
+ this.capturer = params.capturer;
25
+ this.provider = params.provider;
26
+ this.onFrame = params.onFrame;
27
+ this.capturer.addEventListener("frame", this.onFrameEvent);
28
+ }
29
+ /**
30
+ * Unsubscribes from frame events and resets the provider.
31
+ */
32
+ dispose() {
33
+ if (this.disposed) return;
34
+ this.disposed = true;
35
+ this.capturer.removeEventListener("frame", this.onFrameEvent);
36
+ this.provider.reset();
37
+ }
38
+ /**
39
+ * Returns whether the session has been disposed.
40
+ */
41
+ isDisposed() {
42
+ return this.disposed;
43
+ }
44
+ };
45
+ //#endregion
5
46
  //#region ../infra/src/media/mediaRecorderOptions.ts
6
47
  /**
7
48
  * Picks a `MediaRecorder` mime type the current browser actually supports.
@@ -1724,4 +1765,4 @@ var MultipartRecordingService = class {
1724
1765
  }
1725
1766
  };
1726
1767
  //#endregion
1727
- export { getAdaptiveMediaRecorderOptions as a, createRecordingCompositor as i, WorkerEncoderRecordingProvider as n, CameraCompositor as r, MultipartRecordingService as t };
1768
+ export { getAdaptiveMediaRecorderOptions as a, createRecordingCompositor as i, WorkerEncoderRecordingProvider as n, StreamCanvasProcessingSession as o, CameraCompositor as r, MultipartRecordingService as t };
@@ -1,4 +1,4 @@
1
- import { s as isWasmMotionPrimedForModule } from "./permissionServices-DIaG8BlW.esm.js";
1
+ import { s as isWasmMotionPrimedForModule } from "./permissionServices-B9IqVf3c.esm.js";
2
2
  //#region src/internal/permissions/permissionGuards.ts
3
3
  function resolveStoredPermissionResult(fromEvent, fromContext) {
4
4
  if (fromEvent === "granted" || fromEvent === "denied" || fromEvent === "prompt" || fromEvent === "refresh") return fromEvent;
@@ -1,6 +1,6 @@
1
- import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
1
+ import { r as WasmUtilProvider } from "./safeStorage-Q_iUpxa8.esm.js";
2
2
  import { n as isAndroidWebView } from "./platform-DkcRc9JV.esm.js";
3
- import { t as MotionSensorProvider } from "./MotionSensorProvider-Bti5f6op.esm.js";
3
+ import { t as MotionSensorProvider } from "./MotionSensorProvider-1Ul_1GPn.esm.js";
4
4
  import { c as isCameraGrantedInDocument, i as requestCameraAccess, o as stopCameraStream, s as clearCameraGrantedInDocument } from "./camera-sIa9ceW2.esm.js";
5
5
  //#region ../infra/src/media/permissions.ts
6
6
  async function queryPermission(name) {
@@ -1,4 +1,4 @@
1
- import { a as NAMIRIAL_QES_CONSENT_KEYS, c as areAllConsented, o as NAMIRIAL_QES_PROVIDER_CODE, r as electronicSignatureMachine, s as QE_CONSENT_KEYS, t as createElectronicSignatureManager, u as getDefaultConsentChecks } from "./electronicSignatureManager-r2Zci23-.esm.js";
1
+ import { a as NAMIRIAL_QES_CONSENT_KEYS, c as areAllConsented, o as NAMIRIAL_QES_PROVIDER_CODE, r as electronicSignatureMachine, s as QE_CONSENT_KEYS, t as createElectronicSignatureManager, u as getDefaultConsentChecks } from "./electronicSignatureManager-BbgLJk1x.esm.js";
2
2
  //#region src/modules/qe-signature/index.ts
3
3
  function createQeSignatureManager(options) {
4
4
  return createElectronicSignatureManager({ config: {
@@ -1,4 +1,4 @@
1
- import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-Bb116pCE.esm.js";
1
+ import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-D8dk4ZID.esm.js";
2
2
  import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
3
3
  import { C as createEventBus } from "./events-ijlbX_Wx.esm.js";
4
4
  import { s as createActor } from "./xstate.esm-Bg3FuvIs.esm.js";
@@ -1,5 +1,5 @@
1
1
  import { c as wasmCallWrapper, s as ML_CALL_MAX_POLLS } from "./wasmWebClient-DPPQlS-U.esm.js";
2
- import { a as waitForWasm, n as getWasmStatus, o as warmupWasm, r as isWasmReady, s as wasmRuntime } from "./warmup-REsua-sF.esm.js";
2
+ import { a as waitForWasm, n as getWasmStatus, o as warmupWasm, r as isWasmReady, s as wasmRuntime } from "./warmup-DLq_t-Zu.esm.js";
3
3
  //#region ../infra/src/wasm/utilityWasmApi.ts
4
4
  /**
5
5
  * Utility / metadata domain facade over {@link WasmRuntime}.
@@ -1,4 +1,4 @@
1
1
  //#region src/internal/version/sdkVersion.ts
2
- const SDK_VERSION = "0.0.0-dev-20260928-e8e00ca9";
2
+ const SDK_VERSION = "0.0.0-dev-20260928-85249f77";
3
3
  //#endregion
4
4
  export { SDK_VERSION as t };
package/dist/selfie.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { t as IVisibilityObserverCapability } from "./IVisibilityObserverCapability-D4tvIB5v.js";
2
- import { _ as SelfieCaptureOnlyConfig, a as SelfieCaptureOnlyMachine, c as SelfieActor, g as processFace, h as ProcessFaceResponse, i as SelfieCaptureOnlyActor, l as SelfieMachine, n as FaceCaptureManagerState, o as selfieCaptureOnlyMachine, r as CreateSelfieCaptureOnlyActorOptions, t as FaceCaptureManager, u as selfieMachine, v as SelfieConfig } from "./faceCaptureManagerFactory-BgbP5N1j.js";
2
+ import { _ as SelfieCaptureOnlyConfig, a as SelfieCaptureOnlyMachine, c as SelfieActor, g as processFace, h as ProcessFaceResponse, i as SelfieCaptureOnlyActor, l as SelfieMachine, n as FaceCaptureManagerState, o as selfieCaptureOnlyMachine, r as CreateSelfieCaptureOnlyActorOptions, t as FaceCaptureManager, u as selfieMachine, v as SelfieConfig } from "./faceCaptureManagerFactory-s0Vhw_wP.js";
3
3
  import { n as PermissionStatus, t as PermissionResult } from "./types-BEwVKkLJ.js";
4
4
  import { a as FaceCapturedImageData, i as FaceCaptureOnlyResponse, n as DetectionStatus, o as FaceErrorCode } from "./types-Ch-wwRAh.js";
5
5
  import { n as DeepsightService } from "./StreamCanvasCapture-CeBBJ_RC.js";
6
6
  import { t as CameraStream } from "./camera-9wWD-pwg.js";
7
- import { i as createSelfieManagerFromActor, n as SelfieState, r as createSelfieManager, t as SelfieManager } from "./selfieManager-oSsnyvBl.js";
7
+ import { i as createSelfieManagerFromActor, n as SelfieState, r as createSelfieManager, t as SelfieManager } from "./selfieManager-PVc2k2Oq.js";
8
8
  //#region src/modules/selfie/selfieCaptureOnlyManager.d.ts
9
9
  type SelfieCaptureOnlyState = FaceCaptureManagerState;
10
10
  type SelfieCaptureOnlyManager = FaceCaptureManager;
@@ -1,14 +1,14 @@
1
- import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
2
- import { l as BrowserStorageProvider } from "./setup-D7B4g7Jc.esm.js";
1
+ import { r as WasmUtilProvider } from "./safeStorage-Q_iUpxa8.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-Cb7Ws1HA.esm.js";
3
3
  import { n as eventModuleNames } from "./events-ijlbX_Wx.esm.js";
4
4
  import { s as createActor } from "./xstate.esm-Bg3FuvIs.esm.js";
5
5
  import { n as fromPromise } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
6
- import { n as createDefaultProtectedFaceControllerActor, t as faceCaptureMachine } from "./faceCaptureSetup-DSvOibxj.esm.js";
7
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-OSygJ72q.esm.js";
8
- import { o as PROTECTED_CAPTURE_TARGET } from "./createCameraCycleOwnership-BjoMVvya.esm.js";
6
+ import { n as createDefaultProtectedFaceControllerActor, t as faceCaptureMachine } from "./faceCaptureSetup-GzW2oNiM.esm.js";
7
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-DG4z3rkR.esm.js";
8
+ import { o as PROTECTED_CAPTURE_TARGET } from "./createCameraCycleOwnership-P1AtkhRJ.esm.js";
9
9
  import { r as processFace } from "./selfieErrorUtils-yjRptLFi.esm.js";
10
- import { t as selfieMachine } from "./selfieStateMachine-0bHX1R9_.esm.js";
11
- import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-Be-moOeO.esm.js";
10
+ import { t as selfieMachine } from "./selfieStateMachine--KjoErrq.esm.js";
11
+ import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-B-F-lrAH.esm.js";
12
12
  import { t as invokeOnCaptureCallback } from "./invokeOnCaptureCallback-BjzPjJ_p.esm.js";
13
13
  /**
14
14
  * Selfie state machine variant for the captureOnly flow. Shares the full base