@incodetech/core 0.0.0-dev-20260922-0a4fb516 → 0.0.0-dev-20260922-46015ab9

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 (64) hide show
  1. package/dist/{BrowserDiagnosticsCryptoProvider-DVxSwO13.esm.js → BrowserDiagnosticsCryptoProvider-D58DzD_O.esm.js} +1 -1
  2. package/dist/{FaceDetectionProvider-C38l-Sls.esm.js → FaceDetectionProvider-BaGFMIB8.esm.js} +4 -4
  3. package/dist/ae-signature.esm.js +1 -1
  4. package/dist/{apiError-BYAeyi5l.esm.js → apiError-CYrUaWmt.esm.js} +1 -1
  5. package/dist/authentication.esm.js +2 -2
  6. package/dist/{authenticationManager-CEkhOYFY.esm.js → authenticationManager-C93LeWOC.esm.js} +3 -3
  7. package/dist/{authenticationStateMachine-Bh7huY70.esm.js → authenticationStateMachine-BK4vGxpX.esm.js} +2 -2
  8. package/dist/camera.esm.js +1 -1
  9. package/dist/{deepsightLoader-CECUbr0q.esm.js → deepsightLoader-C17ocxfn.esm.js} +3 -3
  10. package/dist/document-capture.d.ts +1 -1
  11. package/dist/document-capture.esm.js +2 -2
  12. package/dist/{documentCaptureManager-DG-n2TEs.esm.js → documentCaptureManager-7aQhPQnb.esm.js} +1 -1
  13. package/dist/{documentCaptureManager-C8eO0hbv.d.ts → documentCaptureManager-CbAGkHWh.d.ts} +1 -1
  14. package/dist/{documentCaptureStateMachine-CK5UgiFM.esm.js → documentCaptureStateMachine-C8p2vZQU.esm.js} +2 -2
  15. package/dist/dynamic-forms.esm.js +2 -2
  16. package/dist/{dynamicFormsManager-BGIHJGZM.esm.js → dynamicFormsManager-CmAizqdy.esm.js} +1 -1
  17. package/dist/{dynamicFormsStateMachine-CUC_jHuo.esm.js → dynamicFormsStateMachine-C7O4jH-6.esm.js} +1 -1
  18. package/dist/ekyb.esm.js +3 -3
  19. package/dist/{ekybManager-CVGLqDQS.esm.js → ekybManager-BMBgyHeu.esm.js} +1 -1
  20. package/dist/{ekybStateMachine-Dy2pvqg5.esm.js → ekybStateMachine-Giq7rnV3.esm.js} +1 -1
  21. package/dist/electronic-signature.esm.js +1 -1
  22. package/dist/{electronicSignatureManager-BzJzfCDd.esm.js → electronicSignatureManager-BPnRlul-.esm.js} +1 -1
  23. package/dist/extensibility.d.ts +3 -3
  24. package/dist/extensibility.esm.js +11 -11
  25. package/dist/{faceCaptureManagerFactory-D2tF-XY6.esm.js → faceCaptureManagerFactory-C2zCFsBr.esm.js} +2 -2
  26. package/dist/{faceCaptureSetup-CocHStLA.esm.js → faceCaptureSetup-Bn95c59t.esm.js} +5 -5
  27. package/dist/{feature-management-yrz9ElzD.esm.js → feature-management-DqyL-7YL.esm.js} +1 -1
  28. package/dist/feature-management.esm.js +1 -1
  29. package/dist/flow.d.ts +1 -1
  30. package/dist/flow.esm.js +3 -3
  31. package/dist/{flowCompletionService-DtmAlWoR.esm.js → flowCompletionService-B88wZwPr.esm.js} +1 -1
  32. package/dist/{flowServices-CwCIwsDY.esm.js → flowServices-iZN4jwIF.esm.js} +4 -4
  33. package/dist/geolocation.esm.js +2 -2
  34. package/dist/{geolocationManager-N2_H9YdK.esm.js → geolocationManager-Cfln8tbB.esm.js} +1 -1
  35. package/dist/{geolocationStateMachine-DOdTtLvW.esm.js → geolocationStateMachine-CGCLWjoW.esm.js} +1 -1
  36. package/dist/id-selfie-flow.esm.js +7 -7
  37. package/dist/id.d.ts +2 -2
  38. package/dist/id.esm.js +3 -3
  39. package/dist/{idCaptureDefaults-CYVOGvJM.esm.js → idCaptureDefaults-Dx4MsYsw.esm.js} +1 -1
  40. package/dist/{idCaptureManager-x8HYtbU_.d.ts → idCaptureManager-BpaSzeSc.d.ts} +22 -3
  41. package/dist/{idCaptureManager-NbsGt_-U.esm.js → idCaptureManager-CV68nokR.esm.js} +22 -9
  42. package/dist/{idCaptureServices-BzcM1KlW.esm.js → idCaptureServices-CWSp2TsT.esm.js} +4 -4
  43. package/dist/{idCaptureStateMachine-KUxlGQBh.esm.js → idCaptureStateMachine-DBTpku8p.esm.js} +65 -11
  44. package/dist/index.esm.js +1 -1
  45. package/dist/{permissionGuards-3_AT5BY5.esm.js → permissionGuards-DAyjPT2R.esm.js} +1 -1
  46. package/dist/{permissionServices-C8DqhjX7.esm.js → permissionServices-DIaG8BlW.esm.js} +32 -1
  47. package/dist/personhood.esm.js +5 -5
  48. package/dist/qe-signature.esm.js +1 -1
  49. package/dist/{runChildModule-BabwkVuN.esm.js → runChildModule-CVkUKGQh.esm.js} +1 -1
  50. package/dist/{sdkVersion-Czjkl1g-.esm.js → sdkVersion-j06Bczzt.esm.js} +1 -1
  51. package/dist/selfie.esm.js +5 -5
  52. package/dist/{selfieManager-D1byelyk.esm.js → selfieManager-DWNLuWNI.esm.js} +3 -3
  53. package/dist/{selfieStateMachine-CtC1jDnV.esm.js → selfieStateMachine-CHayg61p.esm.js} +2 -2
  54. package/dist/{session-C4YDzCNf.esm.js → session-BpPlEwg1.esm.js} +3 -3
  55. package/dist/session.esm.js +4 -4
  56. package/dist/{sessionInitializer-BYRz75qo.esm.js → sessionInitializer-CeJD35gp.esm.js} +3 -3
  57. package/dist/{setup-CIsrxPxL.esm.js → setup-udpxoaon.esm.js} +4 -4
  58. package/dist/{trueSightService-uPi0JTP9.esm.js → trueSightService-DYP2I0S7.esm.js} +2 -2
  59. package/dist/{types-DBu4S_vo2.d.ts → types-CEBr-ro22.d.ts} +2 -0
  60. package/dist/video-selfie.esm.js +4 -4
  61. package/dist/{videoSelfieCameraWarmer-B_eO1wsZ.esm.js → videoSelfieCameraWarmer-BdEba3lE.esm.js} +4 -4
  62. package/dist/wasm.esm.js +2 -2
  63. package/dist/workflow.esm.js +15 -15
  64. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
- import { l as BrowserStorageProvider } from "./setup-CIsrxPxL.esm.js";
1
+ import { l as BrowserStorageProvider } from "./setup-udpxoaon.esm.js";
2
2
  import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ijlbX_Wx.esm.js";
3
3
  import { t as topLevelStateName } from "./topLevelStateName-B5i2avbh.esm.js";
4
4
  import { s as createActor, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
5
5
  import { t as setWasmDsFlagSync } from "./wasmDsFlagSync-Czjlp68o.esm.js";
6
6
  import { t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-BrJN1B8A.esm.js";
7
- import { o as resetWasmMotionPrimedForModule, r as primeMotionFromUserGestureIfNeeded } from "./permissionServices-C8DqhjX7.esm.js";
8
- import { l as createIdProtectedCaptureController, n as provideIdProtectedCaptureController, t as idCaptureMachine, u as findIdProtectedCaptureController } from "./idCaptureStateMachine-KUxlGQBh.esm.js";
9
- import { _ as resolveIdCaptureThresholds, g as resolveCaptureOptimizingTreatment } from "./idCaptureServices-BzcM1KlW.esm.js";
7
+ import { c as resetWasmMotionPrimedForModule, o as requiresMotionPermissionUserGesture, r as primeMotionFromUserGestureIfNeeded } from "./permissionServices-DIaG8BlW.esm.js";
8
+ import { l as createIdProtectedCaptureController, n as provideIdProtectedCaptureController, t as idCaptureMachine, u as findIdProtectedCaptureController } from "./idCaptureStateMachine-DBTpku8p.esm.js";
9
+ import { _ as resolveIdCaptureThresholds, g as resolveCaptureOptimizingTreatment } from "./idCaptureServices-CWSp2TsT.esm.js";
10
10
  //#region src/modules/id/digitalUpload/instrumentation.ts
11
11
  const TERMINAL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
12
12
  function isHoldingState(value) {
@@ -255,7 +255,8 @@ function mapPermissionsState(snapshot, context) {
255
255
  permissionStatus: getPermissionStatus(snapshot) ?? "idle",
256
256
  selectedDocumentType: getEffectiveSelectedDocumentType(context),
257
257
  currentMode: context.currentMode,
258
- tutorialEnabled: context.config.showTutorial === true
258
+ tutorialEnabled: context.config.showTutorial === true,
259
+ requiresMotionPermissionUserGesture: requiresMotionPermissionUserGesture(context.config.ds)
259
260
  };
260
261
  }
261
262
  function getLoadingPhase(snapshot) {
@@ -270,12 +271,14 @@ function mapLoadingState(snapshot, phase) {
270
271
  phase,
271
272
  tutorialEnabled: snapshot.context.config.showTutorial === true,
272
273
  selectedDocumentType: getEffectiveSelectedDocumentType(snapshot.context),
273
- currentMode: snapshot.context.currentMode
274
+ currentMode: snapshot.context.currentMode,
275
+ requiresMotionPermissionUserGesture: requiresMotionPermissionUserGesture(snapshot.context.config.ds)
274
276
  };
275
277
  }
276
278
  function getTutorialPhase(snapshot) {
277
279
  if (snapshot.matches({ tutorial: "checkingPermission" })) return "checkingPermission";
278
280
  if (snapshot.matches({ tutorial: "waitingForPermission" })) return "waitingForPermission";
281
+ if (snapshot.matches({ tutorial: "requestingMotionPermission" })) return "waitingForPermission";
279
282
  if (snapshot.matches({ tutorial: { initializingCamera: { userIntent: "clicked" } } })) return "waitingForCamera";
280
283
  if (snapshot.matches({ tutorial: "initializingCamera" })) return "initializingCamera";
281
284
  return "ready";
@@ -285,7 +288,8 @@ function mapTutorialState(snapshot, context) {
285
288
  status: "tutorial",
286
289
  phase: getTutorialPhase(snapshot),
287
290
  selectedDocumentType: getEffectiveSelectedDocumentType(context),
288
- currentMode: context.currentMode
291
+ currentMode: context.currentMode,
292
+ requiresMotionPermissionUserGesture: requiresMotionPermissionUserGesture(context.config.ds)
289
293
  };
290
294
  }
291
295
  function mapDigitalUploadState(snapshot) {
@@ -433,6 +437,15 @@ function createApi({ actor, trackElementClicked, trackCaptureAttemptFinished })
433
437
  actor.send({ type: "NEXT_STEP" });
434
438
  },
435
439
  /**
440
+ * Continues from Tutorial into permission orchestration. When iOS requires
441
+ * a user gesture for Deepsight motion, the motion-only request starts from
442
+ * this event; otherwise Core proceeds to its existing permission state.
443
+ */
444
+ continueToPermission() {
445
+ trackElementClicked?.("nextStep");
446
+ actor.send({ type: "CONTINUE_TO_PERMISSION" });
447
+ },
448
+ /**
436
449
  * Requests camera (and, when deepsight is enabled, motion) permission.
437
450
  * Effective in `permissions.idle`, `permissions.waitingForUser`,
438
451
  * `permissions.motionOnly`, `permissions.learnMore`, `tutorial.ready`,
@@ -440,8 +453,8 @@ function createApi({ actor, trackElementClicked, trackCaptureAttemptFinished })
440
453
  * the camera pre-warms it records the user's intent to continue, so the
441
454
  * tutorial advances to capture as soon as the warm-up finishes).
442
455
  */
443
- requestPermission() {
444
- trackElementClicked?.("requestPermission");
456
+ requestPermission(options) {
457
+ if (options?.trigger !== "automatic") trackElementClicked?.("requestPermission");
445
458
  actor.send({ type: "REQUEST_PERMISSION" });
446
459
  },
447
460
  goToLearnMore() {
@@ -1,15 +1,15 @@
1
- import { t as ensureWasmPipelines } from "./setup-CIsrxPxL.esm.js";
2
- import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-yrz9ElzD.esm.js";
1
+ import { t as ensureWasmPipelines } from "./setup-udpxoaon.esm.js";
2
+ import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-DqyL-7YL.esm.js";
3
3
  import { t as api } from "./api-Bx3gKW_y.esm.js";
4
4
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
5
5
  import { i as isDesktop } from "./platform-DkcRc9JV.esm.js";
6
6
  import { i as assign, t as setup } from "./xstate.esm-Bg3FuvIs.esm.js";
7
7
  import { n as fromPromise } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
8
- import { s as queryCameraPermission } from "./permissionServices-C8DqhjX7.esm.js";
8
+ import { l as queryCameraPermission } from "./permissionServices-DIaG8BlW.esm.js";
9
9
  import { a as isBackFacingTrack, n as getBackCameraStream } from "./backCameraStream-B0-YgP_y.esm.js";
10
10
  import { t as getDeviceClass } from "./getDeviceClass-5NYZg9s6.esm.js";
11
11
  import { t as MultipartRecordingService } from "./multipartRecordingService-OEgIRvqC.esm.js";
12
- import { i as CameraCompositor, n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-CYVOGvJM.esm.js";
12
+ import { i as CameraCompositor, n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-Dx4MsYsw.esm.js";
13
13
  //#region src/internal/camera/cameraServices.ts
14
14
  function createCameraServices(camera) {
15
15
  return {
@@ -1,31 +1,31 @@
1
- import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-uPi0JTP9.esm.js";
1
+ import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-DYP2I0S7.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-CIsrxPxL.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-udpxoaon.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { s as exposeExperimentOnce } from "./feature-management-yrz9ElzD.esm.js";
5
+ import { s as exposeExperimentOnce } from "./feature-management-DqyL-7YL.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, s as recordExperimentAssignmentOnce } from "./events-ijlbX_Wx.esm.js";
9
- import { t as getDisableIpify } from "./sessionInitializer-BYRz75qo.esm.js";
9
+ import { t as getDisableIpify } from "./sessionInitializer-CeJD35gp.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-C4YDzCNf.esm.js";
13
+ import "./session-BpPlEwg1.esm.js";
14
14
  import { c as not, i as assign, l as raise, n as enqueueActions, o as and, r as sendTo, t as setup } 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 { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-C8DqhjX7.esm.js";
18
+ import { i as requestMotionPermission, n as invokeRequestPermissionActor, o as requiresMotionPermissionUserGesture, t as checkPermission } from "./permissionServices-DIaG8BlW.esm.js";
19
19
  import { a as flagIdManualReview, n as runProtectedAttempt, o as PROTECTED_CAPTURE_TARGET, r as cameraCycleProvider, t as createCameraCycleOwnership } from "./createCameraCycleOwnership-BjoMVvya.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-3_AT5BY5.esm.js";
21
+ import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-DAyjPT2R.esm.js";
22
22
  import { t as StreamCanvasProcessingSession } from "./StreamCanvasProcessingSession-CBnbTnOr.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 { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
26
26
  import { n as runVirtualCameraCheck, t as frameSources } from "./virtualCameraCheck-Cjab7FTI.esm.js";
27
- import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-CYVOGvJM.esm.js";
28
- 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-BzcM1KlW.esm.js";
27
+ import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-Dx4MsYsw.esm.js";
28
+ 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-CWSp2TsT.esm.js";
29
29
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
30
30
  //#region src/modules/id/digitalUpload/digitalUploadErrors.ts
31
31
  const TERMINAL_FAIL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
@@ -556,6 +556,7 @@ const isPermissionDeniedErrorGuard = ({ event }) => {
556
556
  return false;
557
557
  };
558
558
  const isPermissionBlockedGuard = ({ context }) => context.permissionResult === "denied" || context.permissionResult === "refresh";
559
+ const requiresMotionPermissionUserGestureGuard = ({ context }) => requiresMotionPermissionUserGesture(context.config.ds);
559
560
  const hasAttemptsRemainingGuard = ({ context }) => context.attemptsRemaining > 0;
560
561
  const hasCapturedImageGuard = ({ context }) => {
561
562
  return context.provider?.getCapturedCanvas() !== null;
@@ -799,9 +800,26 @@ async function requestIdCapturePermission(input) {
799
800
  cameraFallbackLevel: fallbackLevel
800
801
  };
801
802
  }
803
+ /**
804
+ * Resolves and primes Deepsight motion without touching camera permission.
805
+ * IDC-03 invokes this directly from the tutorial CTA's event macrostep so
806
+ * iOS keeps the transient user activation required by DeviceMotion.
807
+ */
808
+ async function requestIdCaptureMotionPermission() {
809
+ const result = await requestMotionPermission();
810
+ return result === "not-required" ? "granted" : result;
811
+ }
802
812
  const requestPermissionActor = fromPromise(async ({ input }) => {
803
813
  return requestIdCapturePermission(input);
804
814
  });
815
+ /**
816
+ * Takes no `AbortSignal` on purpose: the work it awaits is the OS-owned
817
+ * `DeviceMotionEvent.requestPermission()` prompt, which exposes no
818
+ * cancellation. XState still discards the settled result if the state is
819
+ * left, and `primeWasmMotionSensor` is idempotent, so an abandoned request
820
+ * cannot mis-drive the machine.
821
+ */
822
+ const requestMotionPermissionActor = fromPromise(() => requestIdCaptureMotionPermission());
805
823
  fromPromise(async ({ input }) => {
806
824
  return initializeIdCapture(input);
807
825
  });
@@ -1162,7 +1180,7 @@ fromPromise(async ({ input }) => {
1162
1180
  });
1163
1181
  fromPromise(async ({ input }) => {
1164
1182
  if (!input.dependencies) return;
1165
- const { loadDeepsightSession } = await import("./deepsightLoader-CECUbr0q.esm.js");
1183
+ const { loadDeepsightSession } = await import("./deepsightLoader-C17ocxfn.esm.js");
1166
1184
  return loadDeepsightSession({
1167
1185
  ds: input.ds,
1168
1186
  storage: input.dependencies.storage,
@@ -1605,7 +1623,7 @@ function cleanup(service) {
1605
1623
  service.cleanup();
1606
1624
  } catch {}
1607
1625
  }
1608
- function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-CECUbr0q.esm.js")).loadDeepsightSession(input)) {
1626
+ function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-C17ocxfn.esm.js")).loadDeepsightSession(input)) {
1609
1627
  let disposed = false;
1610
1628
  let preparation;
1611
1629
  let service;
@@ -3296,6 +3314,7 @@ const idCaptureMachine = setup({
3296
3314
  actors: {
3297
3315
  checkPermission: checkPermissionActor,
3298
3316
  requestPermission: requestPermissionActor,
3317
+ requestMotionPermission: requestMotionPermissionActor,
3299
3318
  protectedAttempt: createProtectedIdAttemptActor(),
3300
3319
  protectedControllerLifetime: createProtectedIdControllerLifetimeActor(),
3301
3320
  captureOnlyDelivery: createIdCaptureOnlyDeliveryActor(),
@@ -3715,6 +3734,7 @@ const idCaptureMachine = setup({
3715
3734
  }),
3716
3735
  isPermissionDeniedError: ({ event }) => isPermissionDeniedErrorGuard({ event: asPublicIdEvent(event) }),
3717
3736
  isPermissionBlocked: isPermissionBlockedGuard,
3737
+ requiresMotionPermissionUserGesture: requiresMotionPermissionUserGestureGuard,
3718
3738
  hasAttemptsRemaining: hasAttemptsRemainingGuard,
3719
3739
  hasCapturedImage: hasCapturedImageGuard,
3720
3740
  hasCandidateFrame: ({ event }) => hasCandidateFrameGuard({ event: asPublicIdEvent(event) }),
@@ -3981,6 +4001,14 @@ const idCaptureMachine = setup({
3981
4001
  }]
3982
4002
  },
3983
4003
  on: {
4004
+ CONTINUE_TO_PERMISSION: [{
4005
+ target: "requestingMotionPermission",
4006
+ guard: "requiresMotionPermissionUserGesture",
4007
+ actions: "trackContinue"
4008
+ }, {
4009
+ target: "#idCapture.permissions",
4010
+ actions: "trackContinue"
4011
+ }],
3984
4012
  NEXT_STEP: {
3985
4013
  target: "#idCapture.capture",
3986
4014
  actions: "trackContinue"
@@ -3993,6 +4021,14 @@ const idCaptureMachine = setup({
3993
4021
  },
3994
4022
  initializingCamera: {
3995
4023
  type: "parallel",
4024
+ on: { CONTINUE_TO_PERMISSION: [{
4025
+ target: "requestingMotionPermission",
4026
+ guard: "requiresMotionPermissionUserGesture",
4027
+ actions: "trackContinue"
4028
+ }, {
4029
+ target: "#idCapture.permissions",
4030
+ actions: "trackContinue"
4031
+ }] },
3996
4032
  states: {
3997
4033
  cameraInit: {
3998
4034
  initial: "initializingStream",
@@ -4034,6 +4070,14 @@ const idCaptureMachine = setup({
4034
4070
  onDone: { target: "#idCapture.capture" }
4035
4071
  },
4036
4072
  ready: { on: {
4073
+ CONTINUE_TO_PERMISSION: [{
4074
+ target: "requestingMotionPermission",
4075
+ guard: "requiresMotionPermissionUserGesture",
4076
+ actions: "trackContinue"
4077
+ }, {
4078
+ target: "#idCapture.permissions",
4079
+ actions: "trackContinue"
4080
+ }],
4037
4081
  NEXT_STEP: {
4038
4082
  target: "waitingForPermission",
4039
4083
  actions: "trackContinue"
@@ -4074,6 +4118,15 @@ const idCaptureMachine = setup({
4074
4118
  actions: assign({ permissionResult: ({ event }) => event.output })
4075
4119
  }
4076
4120
  ]
4121
+ } },
4122
+ requestingMotionPermission: { invoke: {
4123
+ id: "requestTutorialMotionPermission",
4124
+ src: "requestMotionPermission",
4125
+ onDone: [{
4126
+ target: "#idCapture.permissions.denied",
4127
+ guard: ({ event }) => event.output === "denied"
4128
+ }, { target: "#idCapture.permissions" }],
4129
+ onError: { target: "#idCapture.permissions.denied" }
4077
4130
  } }
4078
4131
  }
4079
4132
  },
@@ -4129,6 +4182,7 @@ const idCaptureMachine = setup({
4129
4182
  } },
4130
4183
  motionOnly: { on: {
4131
4184
  REQUEST_PERMISSION: "requesting",
4185
+ GO_TO_LEARN_MORE: "learnMore",
4132
4186
  BACK: {
4133
4187
  target: "#idCapture.tutorial.ready",
4134
4188
  guard: "hasShowTutorial"
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as reset, r as isConfigured, s as setup } from "./setup-CIsrxPxL.esm.js";
1
+ import { i as reset, r as isConfigured, s as setup } from "./setup-udpxoaon.esm.js";
2
2
  export { isConfigured, reset, setup };
@@ -1,4 +1,4 @@
1
- import { a as isWasmMotionPrimedForModule } from "./permissionServices-C8DqhjX7.esm.js";
1
+ import { s as isWasmMotionPrimedForModule } from "./permissionServices-DIaG8BlW.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;
@@ -29,6 +29,27 @@ function isWasmMotionPrimedForModule() {
29
29
  //#endregion
30
30
  //#region src/internal/permissions/permissionServices.ts
31
31
  /**
32
+ * Whether the current browser still needs an explicit user gesture before the
33
+ * Deepsight motion pipeline can be primed. This is true only for an unresolved
34
+ * iOS DeviceMotion permission; browsers without the iOS permission API report
35
+ * `hasPermission` immediately.
36
+ *
37
+ * Read from `mapState` as well as from a machine guard, so note the contract:
38
+ * it derives from session state (the WASM prime memo and the two
39
+ * `motionSensorsPermissions*` session flags) rather than machine context.
40
+ * That stays correct because every production caller that can write those
41
+ * flags runs within manager or machine permission orchestration and is followed
42
+ * by an actor transition. The mapped value is therefore re-derived before the
43
+ * UI can act on it. Keep that true: a writer reachable without a transition
44
+ * would let this value go stale, and it would then have to move into context
45
+ * and be assigned explicitly.
46
+ */
47
+ function requiresMotionPermissionUserGesture(ds) {
48
+ if (ds !== true || isWasmMotionPrimedForModule()) return false;
49
+ const motionSensor = new MotionSensorProvider();
50
+ return !motionSensor.hasPermission && !motionSensor.hasMotionPermissionDeniedThisSession();
51
+ }
52
+ /**
32
53
  * Deliberately reads only the caller-supplied flag. Do not fold the camera grant
33
54
  * memo in here: an earlier version OR'd in a session-cached grant, which made
34
55
  * Firefox for Android skip camera acquisition entirely (PR #726). Motion priming
@@ -103,6 +124,16 @@ async function primeWasmMotionSensor(motionSensor = new MotionSensorProvider())
103
124
  }
104
125
  }
105
126
  /**
127
+ * Requests motion sensor permission. Must be called during a user gesture on iOS.
128
+ * Also primes the WASM motion sensor pipeline (rsp/ssl) in the same activation.
129
+ */
130
+ async function requestMotionPermission() {
131
+ const motionSensor = new MotionSensorProvider();
132
+ const result = await resolveMotionOsPermission(motionSensor);
133
+ if (result === "granted" || result === "not-required") await primeWasmMotionSensor(motionSensor);
134
+ return result;
135
+ }
136
+ /**
106
137
  * Requests camera permission by attempting to access the camera, then immediately
107
138
  * stops the obtained stream. When `requestMotion` is true (deepsight), requests
108
139
  * motion OS permission, primes WASM sensors, then camera — all in one user gesture
@@ -139,4 +170,4 @@ async function invokeRequestPermissionActor(input) {
139
170
  return requestPermission({ requestMotion: true });
140
171
  }
141
172
  //#endregion
142
- export { isWasmMotionPrimedForModule as a, requestPermission as i, invokeRequestPermissionActor as n, resetWasmMotionPrimedForModule as o, primeMotionFromUserGestureIfNeeded as r, queryCameraPermission as s, checkPermission as t };
173
+ export { requestPermission as a, resetWasmMotionPrimedForModule as c, requestMotionPermission as i, queryCameraPermission as l, invokeRequestPermissionActor as n, requiresMotionPermissionUserGesture as o, primeMotionFromUserGestureIfNeeded as r, isWasmMotionPrimedForModule as s, checkPermission as t };
@@ -1,16 +1,16 @@
1
- import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-uPi0JTP9.esm.js";
1
+ import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-DYP2I0S7.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-CIsrxPxL.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-udpxoaon.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
5
  import { t as api } from "./api-Bx3gKW_y.esm.js";
6
6
  import { n as eventModuleNames } from "./events-ijlbX_Wx.esm.js";
7
- import { b as BrowserEnvironmentProvider, h as isBrowserSimulation, n as getFingerprintEnabled, v as getThumbmarkId, y as getDeviceFingerprintInfo } from "./sessionInitializer-BYRz75qo.esm.js";
7
+ import { b as BrowserEnvironmentProvider, h as isBrowserSimulation, n as getFingerprintEnabled, v as getThumbmarkId, y as getDeviceFingerprintInfo } from "./sessionInitializer-CeJD35gp.esm.js";
8
8
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
9
9
  import { i as assign, s as createActor, t as setup, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
10
10
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
11
11
  import { i as requestCameraAccess, o as stopCameraStream } from "./camera-sIa9ceW2.esm.js";
12
- import { i as requestPermission, t as checkPermission } from "./permissionServices-C8DqhjX7.esm.js";
13
- import { i as initializeDeepsightSession, o as startDetection, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-C38l-Sls.esm.js";
12
+ import { a as requestPermission, t as checkPermission } from "./permissionServices-DIaG8BlW.esm.js";
13
+ import { i as initializeDeepsightSession, o as startDetection, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-BaGFMIB8.esm.js";
14
14
  import { t as sleep } from "./ITimerCapability-DgdDzp8G.esm.js";
15
15
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
16
16
  //#region src/modules/personhood/personhoodServices.ts
@@ -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-BzJzfCDd.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-BPnRlul-.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-uPi0JTP9.esm.js";
1
+ import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-DYP2I0S7.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,4 +1,4 @@
1
1
  //#region src/internal/version/sdkVersion.ts
2
- const SDK_VERSION = "0.0.0-dev-20260922-0a4fb516";
2
+ const SDK_VERSION = "0.0.0-dev-20260922-46015ab9";
3
3
  //#endregion
4
4
  export { SDK_VERSION as t };
@@ -1,14 +1,14 @@
1
1
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
2
- import { l as BrowserStorageProvider } from "./setup-CIsrxPxL.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-udpxoaon.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-CocHStLA.esm.js";
7
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-D2tF-XY6.esm.js";
6
+ import { n as createDefaultProtectedFaceControllerActor, t as faceCaptureMachine } from "./faceCaptureSetup-Bn95c59t.esm.js";
7
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-C2zCFsBr.esm.js";
8
8
  import { o as PROTECTED_CAPTURE_TARGET } from "./createCameraCycleOwnership-BjoMVvya.esm.js";
9
9
  import { r as processFace } from "./selfieErrorUtils-yjRptLFi.esm.js";
10
- import { t as selfieMachine } from "./selfieStateMachine-CtC1jDnV.esm.js";
11
- import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-D1byelyk.esm.js";
10
+ import { t as selfieMachine } from "./selfieStateMachine-CHayg61p.esm.js";
11
+ import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-DWNLuWNI.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
@@ -1,9 +1,9 @@
1
1
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
2
- import { l as BrowserStorageProvider } from "./setup-CIsrxPxL.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-udpxoaon.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
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-D2tF-XY6.esm.js";
6
- import { t as selfieMachine } from "./selfieStateMachine-CtC1jDnV.esm.js";
5
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-C2zCFsBr.esm.js";
6
+ import { t as selfieMachine } from "./selfieStateMachine-CHayg61p.esm.js";
7
7
  //#region src/modules/selfie/selfieActor.ts
8
8
  function createSelfieActor(options) {
9
9
  const dependencies = options.dependencies ?? {
@@ -1,7 +1,7 @@
1
1
  import { i as assign } from "./xstate.esm-Bg3FuvIs.esm.js";
2
2
  import { n as fromPromise } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
3
- import { t as faceCaptureMachine } from "./faceCaptureSetup-CocHStLA.esm.js";
4
- import { c as isOnDeviceMode } from "./FaceDetectionProvider-C38l-Sls.esm.js";
3
+ import { t as faceCaptureMachine } from "./faceCaptureSetup-Bn95c59t.esm.js";
4
+ import { c as isOnDeviceMode } from "./FaceDetectionProvider-BaGFMIB8.esm.js";
5
5
  import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
6
6
  import { n as validateUploadResponse, r as processFace } from "./selfieErrorUtils-yjRptLFi.esm.js";
7
7
  /**
@@ -1,8 +1,8 @@
1
- import { g as noteSessionCreated, l as trueSightLog } from "./trueSightService-uPi0JTP9.esm.js";
1
+ import { g as noteSessionCreated, l as trueSightLog } from "./trueSightService-DYP2I0S7.esm.js";
2
2
  import { n as getApi } from "./api-Bx3gKW_y.esm.js";
3
- import "./sessionInitializer-BYRz75qo.esm.js";
3
+ import "./sessionInitializer-CeJD35gp.esm.js";
4
4
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
5
- import { i as toIncodeApiError } from "./apiError-BYAeyi5l.esm.js";
5
+ import { i as toIncodeApiError } from "./apiError-CYrUaWmt.esm.js";
6
6
  //#region src/internal/session/sessionService.ts
7
7
  /**
8
8
  * HTTP status codes the QR validation endpoint emits, keyed by their semantic
@@ -1,9 +1,9 @@
1
1
  import { r as getToken } from "./api-Bx3gKW_y.esm.js";
2
2
  import { r as subscribeHttpErrors } from "./HttpRequestError-Bh0pNGSC.esm.js";
3
- import { i as initializeSession, l as whenSessionFingerprintSettled } from "./sessionInitializer-BYRz75qo.esm.js";
4
- import { t as IncodeApiError } from "./apiError-BYAeyi5l.esm.js";
5
- import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-C4YDzCNf.esm.js";
6
- import { n as getFinishStatus } from "./flowCompletionService-DtmAlWoR.esm.js";
3
+ import { i as initializeSession, l as whenSessionFingerprintSettled } from "./sessionInitializer-CeJD35gp.esm.js";
4
+ import { t as IncodeApiError } from "./apiError-CYrUaWmt.esm.js";
5
+ import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-BpPlEwg1.esm.js";
6
+ import { n as getFinishStatus } from "./flowCompletionService-B88wZwPr.esm.js";
7
7
  //#region src/internal/session/sessionExpired.ts
8
8
  var SessionExpiredError = class extends Error {
9
9
  constructor() {
@@ -1,8 +1,8 @@
1
- import { d as fetchFeatureConfig, f as isFeatureEnabled, h as noteEnvironment, l as trueSightLog, p as resetFeatureConfigCache, s as startTrueSightCollection, v as noteTokenActivated } from "./trueSightService-uPi0JTP9.esm.js";
2
- import { E as updateFeatureManagementUser } from "./feature-management-yrz9ElzD.esm.js";
1
+ import { d as fetchFeatureConfig, f as isFeatureEnabled, h as noteEnvironment, l as trueSightLog, p as resetFeatureConfigCache, s as startTrueSightCollection, v as noteTokenActivated } from "./trueSightService-DYP2I0S7.esm.js";
2
+ import { E as updateFeatureManagementUser } from "./feature-management-DqyL-7YL.esm.js";
3
3
  import { c as setToken, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
4
4
  import { v as addEvent, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
5
- import { t as SDK_VERSION } from "./sdkVersion-Czjkl1g-.esm.js";
5
+ import { t as SDK_VERSION } from "./sdkVersion-j06Bczzt.esm.js";
6
6
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
7
7
  import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue } from "./stats-CZcy2J53.esm.js";
8
8
  import { t as getParsedUserAgent } from "./getParsedUserAgent-B2iFDql1.esm.js";
@@ -1,16 +1,16 @@
1
- import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, _ as noteTestingSignals, b as getStoredHttpConfig, k as resolveWasmConfig, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-uPi0JTP9.esm.js";
1
+ import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, _ as noteTestingSignals, b as getStoredHttpConfig, k as resolveWasmConfig, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-DYP2I0S7.esm.js";
2
2
  import { i as setWasmOnDeviceMode, o as warmupWasm } from "./warmup-REsua-sF.esm.js";
3
3
  import { r as WasmUtilProvider, t as resolveLocalStorage } from "./safeStorage-C511Hltw.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-yrz9ElzD.esm.js";
5
+ import { C as resetFeatureManagement, D as applyEnvironment, O as getEnvironment, S as optOutFeatureManagement, b as initializeFeatureManagement, c as resetResolvedExperiments, k as resetEnvironment, v as getIsFeatureManagementLocked, w as resetFeatureManagementProviderInstance } from "./feature-management-DqyL-7YL.esm.js";
6
6
  import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
7
7
  import { a as resetApi, i as isApiConfigured, n as getApi, r as getToken, s as setHttpRequestObserver, t as api } from "./api-Bx3gKW_y.esm.js";
8
8
  import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
9
- import { a as resetSessionInit, b as BrowserEnvironmentProvider, c as setClientIpLookupEnabled, d as registerFlowPreloader, f as resetStandaloneFlowPolicy, i as initializeSession, m as setStandaloneFlowPolicy, o as setClientFingerprintEnabled, p as resolveStandaloneFlowPolicy, s as setClientHostingApp } from "./sessionInitializer-BYRz75qo.esm.js";
9
+ import { a as resetSessionInit, b as BrowserEnvironmentProvider, c as setClientIpLookupEnabled, d as registerFlowPreloader, f as resetStandaloneFlowPolicy, i as initializeSession, m as setStandaloneFlowPolicy, o as setClientFingerprintEnabled, p as resolveStandaloneFlowPolicy, s as setClientHostingApp } from "./sessionInitializer-CeJD35gp.esm.js";
10
10
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
11
11
  import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-CZcy2J53.esm.js";
12
12
  import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-4RsGrIt6.esm.js";
13
- import { i as resetDashboardFlowCache, r as preloadDashboardFlow } from "./flowServices-CwCIwsDY.esm.js";
13
+ import { i as resetDashboardFlowCache, r as preloadDashboardFlow } from "./flowServices-iZN4jwIF.esm.js";
14
14
  //#region ../infra/src/providers/browser/BrowserPageLifecycleProvider.ts
15
15
  var BrowserPageLifecycleProvider = class {
16
16
  sendBeacon(url, body, contentType = "application/json") {
@@ -3,7 +3,7 @@ import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.
3
3
  import { i as isApiConfigured, n as getApi, o as setClient, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
4
4
  import { n as reportHttpError, t as HttpRequestError } from "./HttpRequestError-Bh0pNGSC.esm.js";
5
5
  import { S as subscribeEvent, n as eventModuleNames } from "./events-ijlbX_Wx.esm.js";
6
- import { t as SDK_VERSION } from "./sdkVersion-Czjkl1g-.esm.js";
6
+ import { t as SDK_VERSION } from "./sdkVersion-j06Bczzt.esm.js";
7
7
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
8
8
  //#region ../infra/src/wasm/wasmDefaults.ts
9
9
  const WASM_CDN_BASE_URL = "https://cdn.incodesmile.com/ml-wasm-kit-release";
@@ -1470,7 +1470,7 @@ let cryptoProviderPromise = null;
1470
1470
  * the service's prewarm).
1471
1471
  */
1472
1472
  function loadDiagnosticsCryptoProvider() {
1473
- cryptoProviderPromise ??= import("./BrowserDiagnosticsCryptoProvider-DVxSwO13.esm.js").then((module) => new module.BrowserDiagnosticsCryptoProvider());
1473
+ cryptoProviderPromise ??= import("./BrowserDiagnosticsCryptoProvider-D58DzD_O.esm.js").then((module) => new module.BrowserDiagnosticsCryptoProvider());
1474
1474
  return cryptoProviderPromise;
1475
1475
  }
1476
1476
  /**
@@ -710,6 +710,8 @@ type IdCaptureEvent = {
710
710
  documentType: IdDocumentType;
711
711
  } | {
712
712
  type: 'NEXT_STEP';
713
+ } | {
714
+ type: 'CONTINUE_TO_PERMISSION';
713
715
  } |
714
716
  /**
715
717
  * IDC-05: the phase boundary. Raised by `runDetection` `captureWindowMs` after
@@ -1,16 +1,16 @@
1
1
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
2
- import { t as ensureWasmPipelines } from "./setup-CIsrxPxL.esm.js";
2
+ import { t as ensureWasmPipelines } from "./setup-udpxoaon.esm.js";
3
3
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
4
4
  import { t as api } from "./api-Bx3gKW_y.esm.js";
5
5
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
6
- import { d as facingModeForStep, f as resolveVideoSelfieSteps, p as videoSelfieWasmPipelines } from "./flowServices-CwCIwsDY.esm.js";
6
+ import { d as facingModeForStep, f as resolveVideoSelfieSteps, p as videoSelfieWasmPipelines } from "./flowServices-iZN4jwIF.esm.js";
7
7
  import { i as assign, r as sendTo, s as createActor, t as setup, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
8
8
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
9
9
  import { t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-BrJN1B8A.esm.js";
10
10
  import { t as MultipartRecordingService } from "./multipartRecordingService-OEgIRvqC.esm.js";
11
- import { i as CameraCompositor } from "./idCaptureDefaults-CYVOGvJM.esm.js";
11
+ import { i as CameraCompositor } from "./idCaptureDefaults-Dx4MsYsw.esm.js";
12
12
  import { t as VIDEO_SELFIE_VALIDATION_ATTEMPTS_EXHAUSTED_CODE } from "./advanceableErrors-CpF2cBy6.esm.js";
13
- import { a as isConnectionError, n as defaultAcquireCamera, r as createDefaultStepDetector, t as createVideoSelfieCameraWarmer } from "./videoSelfieCameraWarmer-B_eO1wsZ.esm.js";
13
+ import { a as isConnectionError, n as defaultAcquireCamera, r as createDefaultStepDetector, t as createVideoSelfieCameraWarmer } from "./videoSelfieCameraWarmer-BdEba3lE.esm.js";
14
14
  import { t as videoSelfieFlowModuleMachine } from "./videoSelfieFlowModuleMachine-DQTlyw98.esm.js";
15
15
  //#region src/modules/video-selfie/videoSelfieWasm.ts
16
16
  function warmupVideoSelfieWasm(config, steps = resolveVideoSelfieSteps(config)) {
@@ -1,16 +1,16 @@
1
1
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
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
- import { d as facingModeForStep, f as resolveVideoSelfieSteps } from "./flowServices-CwCIwsDY.esm.js";
4
+ import { d as facingModeForStep, f as resolveVideoSelfieSteps } from "./flowServices-iZN4jwIF.esm.js";
5
5
  import { a as requestCameraWithFallback, i as requestCameraAccess } from "./camera-sIa9ceW2.esm.js";
6
- import { t as checkPermission } from "./permissionServices-C8DqhjX7.esm.js";
7
- import { n as encryptSelfieImage, o as startDetection, t as FaceDetectionProvider } from "./FaceDetectionProvider-C38l-Sls.esm.js";
6
+ import { t as checkPermission } from "./permissionServices-DIaG8BlW.esm.js";
7
+ import { n as encryptSelfieImage, o as startDetection, t as FaceDetectionProvider } from "./FaceDetectionProvider-BaGFMIB8.esm.js";
8
8
  import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
9
9
  import { t as StreamCanvasProcessingSession } from "./StreamCanvasProcessingSession-CBnbTnOr.esm.js";
10
10
  import { n as getBackCameraStream } from "./backCameraStream-B0-YgP_y.esm.js";
11
11
  import { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
12
12
  import { i as uploadSelfie, r as processFace, t as getFaceErrorCodeFromUnknown } from "./selfieErrorUtils-yjRptLFi.esm.js";
13
- import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-CYVOGvJM.esm.js";
13
+ import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-Dx4MsYsw.esm.js";
14
14
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-C9jtgBdT.esm.js";
15
15
  //#region src/modules/video-selfie/videoSelfieCompareService.ts
16
16
  async function postVideoSelfieCompare(endpoint, base64Image) {
package/dist/wasm.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { g as WASM_PIPELINE_MODEL_NAMES, m as WASM_PIPELINE_LAZY_MODEL_NAMES, p as WASM_MODEL_FILES } from "./wasmWebClient-DPPQlS-U.esm.js";
2
- import { D as buildWasmConfigFromBasePath, E as buildDefaultWasmConfig, T as DEFAULT_WASM_VERSION, k as resolveWasmConfig } from "./trueSightService-uPi0JTP9.esm.js";
2
+ import { D as buildWasmConfigFromBasePath, E as buildDefaultWasmConfig, T as DEFAULT_WASM_VERSION, k as resolveWasmConfig } from "./trueSightService-DYP2I0S7.esm.js";
3
3
  import { o as warmupWasm } from "./warmup-REsua-sF.esm.js";
4
- import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines } from "./setup-CIsrxPxL.esm.js";
4
+ import { a as resolveWasmConfigForPipelines, c as upgradeToWasmHttpClient, n as initializeWasmUtil, o as setWasmConfig, t as ensureWasmPipelines } from "./setup-udpxoaon.esm.js";
5
5
  //#region src/defineWasm.ts
6
6
  function requiredModels(pipelines) {
7
7
  const models = /* @__PURE__ */ new Set();