@incodetech/core 0.0.0-dev-20260701-bdeaa221 → 0.0.0-dev-20260701-b6fc71dc

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 (121) hide show
  1. package/dist/{addressSearch-BGuQejtl.esm.js → addressSearch-C6cEsEqK.esm.js} +1 -1
  2. package/dist/{ae-signature-G5MZoOKy.esm.js → ae-signature-hbFTJkGk.esm.js} +1 -1
  3. package/dist/ae-signature.d.ts +1 -1
  4. package/dist/ae-signature.esm.js +3 -3
  5. package/dist/antifraud.esm.js +3 -3
  6. package/dist/{antifraudManager-BwWxvE5A.esm.js → antifraudManager-BKdQoMFf.esm.js} +2 -2
  7. package/dist/{antifraudStateMachine-DLKtOiwd.esm.js → antifraudStateMachine-C0NGnP9W.esm.js} +1 -1
  8. package/dist/authentication.esm.js +5 -5
  9. package/dist/{authenticationManager-Mk-k_cwG.esm.js → authenticationManager-BVM5Czih.esm.js} +3 -3
  10. package/dist/{authenticationStateMachine-BMnMVLy-.esm.js → authenticationStateMachine-BUb8hzFa.esm.js} +2 -2
  11. package/dist/certificate-issuance.d.ts +28 -28
  12. package/dist/certificate-issuance.esm.js +2 -2
  13. package/dist/{certificateIssuanceStateMachine-x9HFaxKK.esm.js → certificateIssuanceStateMachine-BGtRVDgj.esm.js} +1 -1
  14. package/dist/consent.d.ts +1 -1
  15. package/dist/consent.esm.js +3 -3
  16. package/dist/{consentManager-Cj83yok8.esm.js → consentManager-BtnPZUW4.esm.js} +2 -2
  17. package/dist/{consentManager-B--Uv8aw.d.ts → consentManager-DTzlkzyY.d.ts} +52 -52
  18. package/dist/{consentStateMachine-YtU_4jUt.esm.js → consentStateMachine-DO2JqoZW.esm.js} +1 -1
  19. package/dist/cpf-ocr.d.ts +1 -1
  20. package/dist/cpf-ocr.esm.js +2 -2
  21. package/dist/{cpfOcrManager-D8H0HGKj.esm.js → cpfOcrManager-C4rLgKsu.esm.js} +1 -1
  22. package/dist/{cpfOcrManager-C0BUpDyT.d.ts → cpfOcrManager-DvYfmJuu.d.ts} +20 -20
  23. package/dist/cross-document-data-match.esm.js +1 -1
  24. package/dist/curp-validation.esm.js +3 -3
  25. package/dist/{curpValidationManager-DRHOME_q.esm.js → curpValidationManager-BafobPXC.esm.js} +2 -2
  26. package/dist/{curpValidationStateMachine-B68HEUSO.esm.js → curpValidationStateMachine-DXTPK6vI.esm.js} +1 -1
  27. package/dist/custom-fields.esm.js +1 -1
  28. package/dist/custom-watchlist.esm.js +2 -2
  29. package/dist/{customWatchlistStateMachine-ji778XCE.esm.js → customWatchlistStateMachine-B4G3Chkx.esm.js} +1 -1
  30. package/dist/document-capture.d.ts +173 -173
  31. package/dist/document-capture.esm.js +2 -2
  32. package/dist/document-upload.d.ts +46 -46
  33. package/dist/document-upload.esm.js +1 -1
  34. package/dist/{documentCaptureStateMachine-BKXzGfAp.esm.js → documentCaptureStateMachine-DSOX2epf.esm.js} +1 -1
  35. package/dist/dynamic-forms.esm.js +2 -2
  36. package/dist/{dynamicFormsStateMachine-BZSn4t1z.esm.js → dynamicFormsStateMachine-BXHcaocI.esm.js} +1 -1
  37. package/dist/ekyb.esm.js +6 -6
  38. package/dist/{ekybStateMachine-DiyeD-bn.esm.js → ekybStateMachine-CTf3nb0j.esm.js} +3 -3
  39. package/dist/ekyc.esm.js +3 -3
  40. package/dist/{ekycStateMachine-C9681Yzd.esm.js → ekycStateMachine-Bytm3LyZ.esm.js} +2 -2
  41. package/dist/electronic-signature.d.ts +1 -1
  42. package/dist/electronic-signature.esm.js +2 -2
  43. package/dist/{electronicSignatureManager-DTX6Pccb.esm.js → electronicSignatureManager-BNglIp7-.esm.js} +1 -1
  44. package/dist/email.esm.js +3 -3
  45. package/dist/{emailManager-CyJ3OwB0.esm.js → emailManager-CH6GlUSk.esm.js} +2 -2
  46. package/dist/{emailStateMachine-DlZr3jep.esm.js → emailStateMachine-CajoaJk-.esm.js} +1 -1
  47. package/dist/extensibility.d.ts +5 -5
  48. package/dist/extensibility.esm.js +29 -29
  49. package/dist/face-match.esm.js +2 -2
  50. package/dist/{faceCaptureManagerFactory-C6K2AbsU.esm.js → faceCaptureManagerFactory-BbFl762r.esm.js} +2 -2
  51. package/dist/{faceCaptureSetup-Bq_wPGhK.esm.js → faceCaptureSetup-CIkrBLYz.esm.js} +1 -1
  52. package/dist/{faceMatchStateMachine-v8z7PvvD.esm.js → faceMatchStateMachine-CDx5ZRhv.esm.js} +1 -1
  53. package/dist/field-comparison.esm.js +2 -2
  54. package/dist/{fieldComparisonManager-D0RJA6Qx.esm.js → fieldComparisonManager-Bf42dczM.esm.js} +1 -1
  55. package/dist/fiscal-qr.esm.js +1 -1
  56. package/dist/flow.d.ts +2 -2
  57. package/dist/flow.esm.js +5 -5
  58. package/dist/{flowServices-nx81re-L.esm.js → flowServices-B0ai-ANo.esm.js} +1 -1
  59. package/dist/geolocation.esm.js +2 -2
  60. package/dist/{geolocationStateMachine-5NOAiXiW.esm.js → geolocationStateMachine-BYfOOOG0.esm.js} +1 -1
  61. package/dist/government-validation.esm.js +2 -2
  62. package/dist/{governmentValidationStateMachine-DK1YeRDr.esm.js → governmentValidationStateMachine-yCQaD7zl.esm.js} +1 -1
  63. package/dist/home.d.ts +10 -10
  64. package/dist/home.esm.js +1 -1
  65. package/dist/id-ocr.d.ts +55 -55
  66. package/dist/id-ocr.esm.js +2 -2
  67. package/dist/id-verification.d.ts +25 -25
  68. package/dist/id-verification.esm.js +2 -2
  69. package/dist/id.d.ts +1 -1
  70. package/dist/id.esm.js +5 -5
  71. package/dist/{idCaptureManager-CeaNK-Ve.esm.js → idCaptureManager-FXTdeOsf.esm.js} +4 -3
  72. package/dist/{idCaptureManager-DDkfMlsm.d.ts → idCaptureManager-fvEYwU_l.d.ts} +16 -9
  73. package/dist/{idCaptureStateMachine-DdlLGjwa.esm.js → idCaptureStateMachine-BlLvve6M.esm.js} +193 -141
  74. package/dist/{idOcrStateMachine-Tr48722s.esm.js → idOcrStateMachine-6vUdYjRV.esm.js} +1 -1
  75. package/dist/{idVerificationStateMachine-DwjJiKun.esm.js → idVerificationStateMachine-cT7LtSYe.esm.js} +1 -1
  76. package/dist/identity-reuse.d.ts +1 -1
  77. package/dist/identity-reuse.esm.js +3 -3
  78. package/dist/{identityReuseManager-piMy-REi.d.ts → identityReuseManager-BOnaxwJI.d.ts} +35 -35
  79. package/dist/{identityReuseManager-DjhuypVV.esm.js → identityReuseManager-BeyKVX1g.esm.js} +2 -2
  80. package/dist/{identityReuseStateMachine-CE7CiLs9.esm.js → identityReuseStateMachine-BYYzDw-l.esm.js} +1 -1
  81. package/dist/{index-B75DQgX_.d.ts → index-E3D7OvnG.d.ts} +168 -168
  82. package/dist/index.esm.js +3 -3
  83. package/dist/mandatory-consent.d.ts +1 -1
  84. package/dist/mandatory-consent.esm.js +3 -3
  85. package/dist/{mandatoryConsentManager-CwQSmcyl.esm.js → mandatoryConsentManager-CNbs9cub.esm.js} +2 -2
  86. package/dist/{mandatoryConsentManager-BT8eEhPZ.d.ts → mandatoryConsentManager-CyoaXoEe.d.ts} +52 -52
  87. package/dist/{mandatoryConsentStateMachine-DMHuQ9p6.esm.js → mandatoryConsentStateMachine-DgAXyMs4.esm.js} +1 -1
  88. package/dist/personhood.esm.js +1 -1
  89. package/dist/phone.esm.js +3 -3
  90. package/dist/{phoneManager-DoREHm5q.esm.js → phoneManager-CiiQOE21.esm.js} +2 -2
  91. package/dist/{phoneStateMachine-DBCFyMqD.esm.js → phoneStateMachine-sn2Nt44W.esm.js} +1 -1
  92. package/dist/{qe-signature-CvRT6Nr8.esm.js → qe-signature-D5gwX-fY.esm.js} +1 -1
  93. package/dist/qe-signature.d.ts +1 -1
  94. package/dist/qe-signature.esm.js +3 -3
  95. package/dist/redirect-to-mobile.esm.js +3 -3
  96. package/dist/{redirectToMobileManager-BlK4U22c.esm.js → redirectToMobileManager-DIc_xDDn.esm.js} +2 -2
  97. package/dist/{redirectToMobileStateMachine-DbHl-Hnq.esm.js → redirectToMobileStateMachine-H-iEztA6.esm.js} +1 -1
  98. package/dist/{runChildModule-Cm4q5mtc.esm.js → runChildModule-Wr_2wB1m.esm.js} +1 -1
  99. package/dist/selfie.esm.js +5 -5
  100. package/dist/{selfieManager-mMYgwONo.esm.js → selfieManager-CjFFQTKK.esm.js} +3 -3
  101. package/dist/{selfieStateMachine-j8QNgRSM.esm.js → selfieStateMachine-2UJDOv3d.esm.js} +2 -2
  102. package/dist/session.esm.js +2 -2
  103. package/dist/{sessionInitializer-BPoQYSR2.esm.js → sessionInitializer-Dfc__RkA.esm.js} +2 -2
  104. package/dist/{setup-DttzrMgn.esm.js → setup-f4ttZO62.esm.js} +2 -2
  105. package/dist/signature.esm.js +2 -2
  106. package/dist/{signatureStateMachine-Ds7LOonk.esm.js → signatureStateMachine-c-HlL0-y.esm.js} +1 -1
  107. package/dist/{tri-RHgg98ap.esm.js → tri-D6YWLiyE.esm.js} +10 -0
  108. package/dist/tri.esm.js +1 -1
  109. package/dist/trust-graph.d.ts +2 -2
  110. package/dist/trust-graph.esm.js +1 -1
  111. package/dist/video-selfie.d.ts +2 -2
  112. package/dist/video-selfie.esm.js +4 -4
  113. package/dist/wasm.esm.js +3 -3
  114. package/dist/watchlist-for-business.esm.js +2 -2
  115. package/dist/watchlist.esm.js +2 -2
  116. package/dist/{watchlistForBusinessStateMachine-DXpbE4Sx.esm.js → watchlistForBusinessStateMachine-DNaxGviI.esm.js} +1 -1
  117. package/dist/{watchlistStateMachine-ByxT83kR.esm.js → watchlistStateMachine-DPLVxv_x.esm.js} +1 -1
  118. package/dist/workflow.d.ts +156 -156
  119. package/dist/workflow.esm.js +35 -35
  120. package/dist/{xstate.esm-r0zHjE2E.esm.js → xstate.esm-Bomq1a0z.esm.js} +41 -1
  121. package/package.json +1 -1
package/dist/id.esm.js CHANGED
@@ -6,13 +6,13 @@ import { n as eventModuleNames } from "./types-ElOJAGaM.esm.js";
6
6
  import "./endpoints-BzMJFAPV.esm.js";
7
7
  import "./stats-CYcScXcO.esm.js";
8
8
  import "./browserSimulation-TsSoavQv.esm.js";
9
- import "./sessionInitializer-BPoQYSR2.esm.js";
9
+ import "./sessionInitializer-Dfc__RkA.esm.js";
10
10
  import "./getDeviceData-TrKM8NPh.esm.js";
11
11
  import "./thumbmarkAdapter-fHBUDlAP.esm.js";
12
12
  import "./IpifyProvider-BRW14_uo.esm.js";
13
13
  import "./platform-uIVQUnJP.esm.js";
14
- import "./tri-RHgg98ap.esm.js";
15
- import { a as fromPromise, r as assign, s as createActor } from "./xstate.esm-r0zHjE2E.esm.js";
14
+ import "./tri-D6YWLiyE.esm.js";
15
+ import { a as fromPromise, r as assign, s as createActor } from "./xstate.esm-Bomq1a0z.esm.js";
16
16
  import "./apiError-C7SFQTB2.esm.js";
17
17
  import "./BrowserVisibilityObserverProvider-rim9Jrz-.esm.js";
18
18
  import "./MotionSensorProvider-DCbId4De.esm.js";
@@ -33,9 +33,9 @@ import "./permissionGuards-BR2oN573.esm.js";
33
33
  import "./recordingService-D8zRQbVb.esm.js";
34
34
  import "./mediaRecorderOptions-C3NAkVgK.esm.js";
35
35
  import "./session-D4m9r-7U.esm.js";
36
- import { a as processId, c as stopStream, d as validateUploadResponse, f as ID_ERROR_CODES, h as MANUAL_UPLOAD_MAX_RETRIES, i as preloadIdRecordingProvider, l as uploadIdImage, m as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, o as startRecordingSession, p as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, r as initializeIdCapture, s as stopRecording, t as idCaptureMachine, u as uploadManualIdFile } from "./idCaptureStateMachine-DdlLGjwa.esm.js";
36
+ import { a as preloadIdRecordingProvider, c as stopRecording, d as uploadManualIdFile, f as validateUploadResponse, g as MANUAL_UPLOAD_MAX_RETRIES, h as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, i as initializeIdCapture, l as stopStream, m as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, o as processId, p as ID_ERROR_CODES, s as startRecordingSession, t as idCaptureMachine, u as uploadIdImage } from "./idCaptureStateMachine-BlLvve6M.esm.js";
37
37
  import "./idCaptureDefaults-GTCesE6K.esm.js";
38
- import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-CeaNK-Ve.esm.js";
38
+ import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-FXTdeOsf.esm.js";
39
39
  import { t as invokeOnCaptureCallback } from "./invokeOnCaptureCallback-DrpXOwkG.esm.js";
40
40
 
41
41
  //#region src/modules/id/idCaptureOnlyStateMachine.ts
@@ -1,10 +1,10 @@
1
1
  import { n as createManagerInstrumentation, t as topLevelStateName } from "./events-CqGY1yMq.esm.js";
2
2
  import { n as eventModuleNames } from "./types-ElOJAGaM.esm.js";
3
- import { c as createManager, s as createActor } from "./xstate.esm-r0zHjE2E.esm.js";
3
+ import { l as createManager, s as createActor } from "./xstate.esm-Bomq1a0z.esm.js";
4
4
  import { n as setWasmDsFlagSync, t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-rim9Jrz-.esm.js";
5
5
  import { o as resetWasmMotionPrimedForModule, r as primeMotionFromUserGestureIfNeeded } from "./permissionServices-BJhGL13R.esm.js";
6
6
  import { t as BrowserStorageProvider } from "./BrowserStorageProvider-CrrN540a.esm.js";
7
- import { g as mapDigitalIdScreenName, n as mapIdManualUploadScreenName, t as idCaptureMachine } from "./idCaptureStateMachine-DdlLGjwa.esm.js";
7
+ import { _ as mapDigitalIdScreenName, n as MAX_EXPIRED_FIRST_SIDE_ATTEMPTS, r as mapIdManualUploadScreenName, t as idCaptureMachine } from "./idCaptureStateMachine-BlLvve6M.esm.js";
8
8
 
9
9
  //#region src/internal/idCapture/idCaptureManagerFactory.ts
10
10
  function getPermissionStatus(snapshot) {
@@ -236,9 +236,10 @@ function mapState(snapshot) {
236
236
  if (snapshot.matches("expiredExhausted")) return { status: "expiredExhausted" };
237
237
  if (snapshot.matches("expired")) {
238
238
  const counter = context.expiredFromUpload ? context.expiredAttempts : context.processingExpiredAttempts;
239
+ const cap = context.expiredFromUpload ? MAX_EXPIRED_FIRST_SIDE_ATTEMPTS : context.config.captureAttempts;
239
240
  return {
240
241
  status: "expired",
241
- attemptsRemaining: Math.max(0, context.config.captureAttempts - counter),
242
+ attemptsRemaining: Math.max(0, cap - counter),
242
243
  currentMode: context.currentMode
243
244
  };
244
245
  }
@@ -423,8 +423,11 @@ type IdCaptureContext = {
423
423
  attemptsRemaining: number;
424
424
  /**
425
425
  * Number of consecutive `isDocumentExpired === true` upload responses for
426
- * the current side. Reset on side change; preserved across the soft-retry
427
- * cycle (`expired capture`). Compared against `config.captureAttempts`.
426
+ * the current side (V1's `expiredFirstSideAttempt`). Reset on every side
427
+ * change; preserved across the same-side soft-retry cycle
428
+ * (`expired → capture`). Compared against `config.captureAttempts`. This is
429
+ * a per-side local counter only — the cross-side expired-back→front redirect
430
+ * is bounded separately by `expiredRedirected` (see below).
428
431
  */
429
432
  expiredAttempts: number;
430
433
  /**
@@ -470,14 +473,18 @@ type IdCaptureContext = {
470
473
  */
471
474
  forceFinishAfterProcessing: boolean;
472
475
  /**
473
- * Set by the Story #2.1 expired-back redirect transition so that
474
- * `resetForFrontCapture` (backFinished entry) and `resetForBackCapture`
475
- * (frontFinished entry) skip zeroing `expiredAttempts`. Without this, the
476
- * per-side counter resets every cycle and `expiredExhausted` is never
477
- * reached. Consumed (cleared) by `resetForBackCapture` once back capture
478
- * resumes with the preserved count.
476
+ * One-shot flag (V1's `expiredRedirected`). Set when an expired BACK upload
477
+ * in a multi-side flow sends the user back to FRONT capture for one more
478
+ * attempt (Figma Story #2.1 / ENG-46592). Session-global preserved across
479
+ * the front/back side resets so it survives the flip cycle. Once set, any
480
+ * further expired upload routes straight to `expiredExhausted` instead of
481
+ * redirecting again, so the back→front redirect happens AT MOST ONCE per
482
+ * session. This is what keeps total captures within the backend's
483
+ * max-attempts/OCR cap (re-respects ENG-45666). Session-global: preserved
484
+ * across side resets and mid-flow `resetContext` restarts (like V1's
485
+ * localStorage flag); a fresh session starts it `false`.
479
486
  */
480
- skipExpiredAttemptsReset: boolean;
487
+ expiredRedirected: boolean;
481
488
  uploadError: IdErrorCode | undefined;
482
489
  permissionResult: PermissionResult | 'refresh' | undefined;
483
490
  resetDetection: (() => void) | undefined;
@@ -3,9 +3,9 @@ import { r as getToken, t as api } from "./api-DsbUi7TO.esm.js";
3
3
  import { v as revokeObjectURL } from "./events-CqGY1yMq.esm.js";
4
4
  import { t as endpoints } from "./endpoints-BzMJFAPV.esm.js";
5
5
  import { t as addDeviceStats } from "./stats-CYcScXcO.esm.js";
6
- import { t as getDisableIpify } from "./sessionInitializer-BPoQYSR2.esm.js";
6
+ import { t as getDisableIpify } from "./sessionInitializer-Dfc__RkA.esm.js";
7
7
  import { n as isDesktop } from "./platform-uIVQUnJP.esm.js";
8
- import { a as fromPromise, i as fromCallback, n as sendTo, o as and, r as assign, t as setup } from "./xstate.esm-r0zHjE2E.esm.js";
8
+ import { a as fromPromise, c as not, i as fromCallback, n as sendTo, o as and, r as assign, t as setup } from "./xstate.esm-Bomq1a0z.esm.js";
9
9
  import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-BJhGL13R.esm.js";
10
10
  import { _ as stopRecording$1, g as startRecording, h as createRecordingSession, y as StreamCanvasProcessingSession } from "./onDeviceFaceResults-DlErdHcT.esm.js";
11
11
  import { t as IncodeCanvas } from "./canvas-_I95hkPg.esm.js";
@@ -1166,6 +1166,157 @@ function mapIdManualUploadScreenName(value, context) {
1166
1166
  return "IDmanual.upload.uploadedFront";
1167
1167
  }
1168
1168
 
1169
+ //#endregion
1170
+ //#region src/modules/id/idCaptureGuards.ts
1171
+ const hasShowTutorialGuard = ({ context }) => context.config.showTutorial;
1172
+ const hasAgeAssuranceGuard = ({ context }) => context.config.ageAssurance === true;
1173
+ const hasShowDocumentChooserGuard = ({ context }) => !context.config.onlyBack && (context.config.showDocumentChooserScreen ?? false);
1174
+ const isPermissionGrantedGuard = ({ event }) => {
1175
+ if ("output" in event) return event.output === "granted";
1176
+ return false;
1177
+ };
1178
+ const isReadyForCaptureGuard = ({ context, event }) => {
1179
+ return isReadyForCaptureFromPermission(resolveStoredPermissionResult("output" in event ? event.output : void 0, context.permissionResult), context.config.ds);
1180
+ };
1181
+ const needsMotionPrimeOnlyGuard = ({ context, event }) => {
1182
+ return needsMotionPrimeOnlyFromPermission(resolveStoredPermissionResult("output" in event ? event.output : void 0, context.permissionResult), context.config.ds);
1183
+ };
1184
+ const isPermissionDeniedErrorGuard = ({ event }) => {
1185
+ if ("error" in event) {
1186
+ const error = event.error;
1187
+ return error?.name === "NotAllowedError" || error?.name === "PermissionDeniedError";
1188
+ }
1189
+ return false;
1190
+ };
1191
+ const hasStreamGuard = ({ context }) => context.stream !== void 0;
1192
+ const hasAttemptsRemainingGuard = ({ context }) => context.attemptsRemaining > 0;
1193
+ const hasCapturedImageGuard = ({ context }) => {
1194
+ return context.provider?.getCapturedCanvas() !== null;
1195
+ };
1196
+ const hasUploadValidationErrorGuard = ({ context }) => {
1197
+ if (!context.uploadResponse) return false;
1198
+ return validateUploadResponse(context.uploadResponse, {
1199
+ skipGlareFront: context.uploadResponse.skipGlareFront,
1200
+ skipGlareBack: context.uploadResponse.skipGlareBack
1201
+ }) !== void 0;
1202
+ };
1203
+ const isFrontModeGuard = ({ context }) => context.currentMode === "front" || context.currentMode === "passport";
1204
+ /**
1205
+ * `config.onlyFront` from the orchestrated flow JSON is intentionally not
1206
+ * read here: the flow value cannot account for per-document overrides, so the
1207
+ * backend resolves the real policy per document at upload time
1208
+ * (via `skipBackIdCapture` on the upload response). Standalone
1209
+ * `idCaptureManager` consumers that pass `onlyFront: true` directly will
1210
+ * therefore also be ignored — re-wire this guard if that capability is needed
1211
+ * again.
1212
+ */
1213
+ const isOnlyFrontGuard = (_args) => false;
1214
+ const shouldContinueToBackGuard = ({ context }) => {
1215
+ if (context.currentMode !== "front" && context.currentMode !== "passport") return false;
1216
+ if (context.config.onlyBack) return false;
1217
+ if (context.config.usSmartCapture) return false;
1218
+ if (context.uploadResponse?.skipBackIdCapture) {
1219
+ if (!(context.config.alwaysCaptureBackOfId === true && context.currentMode !== "passport")) return false;
1220
+ }
1221
+ return true;
1222
+ };
1223
+ const shouldContinueToFrontGuard = ({ context }) => context.config.usSmartCapture === true && context.currentMode === "back" && context.uploadResponse?.forceFrontIdCapture === true;
1224
+ const hasMandatoryConsentGuard = ({ context }) => context.uploadResponse?.showMandatoryConsent === true;
1225
+ const isDeepsightEnabledGuard = ({ context }) => context.dependencies !== void 0;
1226
+ const isDeepsightReadyGuard = ({ context }) => context.deepsightService !== void 0;
1227
+ const needsDeepsightInitGuard = ({ context }) => context.dependencies !== void 0 && context.deepsightService === void 0 && !context.deepsightInitAttempted;
1228
+ const hasOnlyManualUploadAvailableGuard = ({ context }) => context.availableDocumentTypes.length === 1 && context.availableDocumentTypes[0] === "manualIdUpload";
1229
+ const isManualIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "manualIdUpload";
1230
+ const isDigitalIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "digitalIdUpload";
1231
+ const isUploadExpiredGuard = ({ context }) => context.uploadResponse?.isDocumentExpired === true;
1232
+ /**
1233
+ * Fixed cap on same-side expired retries, intentionally decoupled from the
1234
+ * dashboard-configurable `captureAttempts`.
1235
+ *
1236
+ * Business decision: the expired-ID retry policy is a fixed UX limit ("let the
1237
+ * user try a different ID a bounded number of times"), separate from the
1238
+ * generic capture-quality retry budget. The value `3` and this separation are
1239
+ * prescribed by the ENG-41643 spec — "[WEB] Document FE - Handle Expired ID
1240
+ * Errors on Front and Back ID Capture"
1241
+ * (https://app.notion.com/p/3264c3caef498080a44adf5ab62fcb77): *"Add
1242
+ * `MAX_EXPIRED_FIRST_SIDE_ATTEMPTS = 3` constant"* / *"Allow up to 3 attempts
1243
+ * when expired ID is detected on first side capture"*. SDK V1 implements it as
1244
+ * exactly this hardcoded constant (incode-welcome `Capture.tsx`), independent
1245
+ * of the configured capture-attempts; this restores that parity for ENG-46592
1246
+ * (https://app.notion.com/p/36b4c3caef4980f58f3ee3b1b4e234f2).
1247
+ *
1248
+ * NOTE: ENG-45666's acceptance text says the cap should follow "a specified
1249
+ * number of times if differently set on dashboard/SDK level". That wording
1250
+ * conflicts with the ENG-41643 spec + V1 for the *expired* path specifically;
1251
+ * V1 parity was chosen as source of truth here (see changeset
1252
+ * `eng-46592-r2-expired-id-v1-parity`). The configurable `captureAttempts`
1253
+ * still governs generic (non-expired) capture retries.
1254
+ */
1255
+ const MAX_EXPIRED_FIRST_SIDE_ATTEMPTS = 3;
1256
+ /**
1257
+ * True when *this* expired upload will exhaust the same-side expired budget.
1258
+ * Compares the post-increment count, so the exhaustion branch can be picked in
1259
+ * the same tick that runs `incrementExpiredAttempts`:
1260
+ * - attempt 1 → 0+1=1 (not exhausted)
1261
+ * - attempt 2 → 1+1=2 (not exhausted)
1262
+ * - attempt 3 → 2+1=3 (exhausted, force-back / finish)
1263
+ */
1264
+ const isExpiredAttemptsExhaustedGuard = ({ context }) => context.expiredAttempts + 1 >= MAX_EXPIRED_FIRST_SIDE_ATTEMPTS;
1265
+ const isNotPassportModeGuard = ({ context }) => context.currentMode !== "passport";
1266
+ /**
1267
+ * V1 parity for `shouldApplyAlwaysCaptureBackOverride` — force-redirects to
1268
+ * back capture after expired-front-attempts exhaust, but only when:
1269
+ * - we're on the front side
1270
+ * - `alwaysCaptureBackOfId` is set
1271
+ * - the flow isn't single-side (onlyBack / usSmartCapture)
1272
+ * - the session isn't a Digital ID upload (digital IDs are PDFs — no back
1273
+ * side exists, so the override never applies regardless of config)
1274
+ */
1275
+ const shouldForceBackOnExpiredGuard = ({ context }) => context.currentMode === "front" && context.config.alwaysCaptureBackOfId === true && !context.config.onlyBack && !context.config.usSmartCapture && !context.isDigitalUpload;
1276
+ const wasExpiredFromUploadGuard = ({ context }) => context.expiredFromUpload === true;
1277
+ const shouldSkipProcessIdGuard = ({ context }) => context.skipProcessId === true;
1278
+ /**
1279
+ * Bug 4 fix: when `expiredExhausted` is reached via the per-upload-expired
1280
+ * exhaustion path with a back side captured (or the entire single-side back
1281
+ * flow), we want `processId` to run once on Continue so the backend
1282
+ * processes whatever sides were uploaded. Front-only exhaustion (no back to
1283
+ * process) and the force-back V1 path keep using `setSkipProcessId` instead.
1284
+ */
1285
+ const shouldProcessAfterExhaustionGuard = ({ context }) => context.exhaustedFromUpload === true && context.currentMode === "back" && (context.config.onlyBack === true || context.config.usSmartCapture === true);
1286
+ /**
1287
+ * `processing.onDone` reads this to short-circuit straight to `finished`
1288
+ * after the post-exhaustion `processId` call returns — without it, an
1289
+ * `isDocumentExpired:true` response would loop back to the Expired screen
1290
+ * we just terminated.
1291
+ */
1292
+ const forceFinishAfterProcessingGuard = ({ context }) => context.forceFinishAfterProcessing === true;
1293
+ /**
1294
+ * Cap on the end-of-flow (`processId`) expired path — digital uploads and the
1295
+ * multi-side post-capture process step. This path intentionally still keys off
1296
+ * the dashboard-configurable `config.captureAttempts`, unlike the per-upload
1297
+ * (camera) same-side expired path, which uses the fixed
1298
+ * `MAX_EXPIRED_FIRST_SIDE_ATTEMPTS` (decoupled for V1 parity — see ENG-46592).
1299
+ * The two expired caps are therefore different by design.
1300
+ */
1301
+ const isProcessingExpiredExhaustedGuard = ({ context }) => context.processingExpiredAttempts + 1 >= context.config.captureAttempts;
1302
+ /**
1303
+ * True when capturing the back side of a two-sided (front+back) ID flow.
1304
+ * Used to redirect an expired-back capture to front rather than retrying
1305
+ * the same back side (Figma Story #2.1).
1306
+ * Excludes onlyBack and usSmartCapture — those are single-side back flows
1307
+ * with no front to redirect to.
1308
+ */
1309
+ const isBackModeInMultiSideFlowGuard = ({ context }) => context.currentMode === "back" && !context.config.onlyBack && !context.config.usSmartCapture;
1310
+ /**
1311
+ * True once the user has already been redirected from an expired second-side
1312
+ * (back) capture to the first side (front) for their one extra attempt
1313
+ * (V1's `expiredRedirected`). Used to make the expired-back→front redirect a
1314
+ * one-shot: any subsequent expired upload routes to `expiredExhausted` instead
1315
+ * of redirecting again, so total captures stay within the backend's
1316
+ * max-attempts/OCR cap (ENG-46592 / re-respects ENG-45666).
1317
+ */
1318
+ const wasExpiredRedirectedGuard = ({ context }) => context.expiredRedirected === true;
1319
+
1169
1320
  //#endregion
1170
1321
  //#region src/modules/id/idCaptureHelpers.ts
1171
1322
  /**
@@ -1750,122 +1901,6 @@ function getCurrentModeFromEvent(context, event) {
1750
1901
  return context.currentMode;
1751
1902
  }
1752
1903
 
1753
- //#endregion
1754
- //#region src/modules/id/idCaptureGuards.ts
1755
- const hasShowTutorialGuard = ({ context }) => context.config.showTutorial;
1756
- const hasAgeAssuranceGuard = ({ context }) => context.config.ageAssurance === true;
1757
- const hasShowDocumentChooserGuard = ({ context }) => !context.config.onlyBack && (context.config.showDocumentChooserScreen ?? false);
1758
- const isPermissionGrantedGuard = ({ event }) => {
1759
- if ("output" in event) return event.output === "granted";
1760
- return false;
1761
- };
1762
- const isReadyForCaptureGuard = ({ context, event }) => {
1763
- return isReadyForCaptureFromPermission(resolveStoredPermissionResult("output" in event ? event.output : void 0, context.permissionResult), context.config.ds);
1764
- };
1765
- const needsMotionPrimeOnlyGuard = ({ context, event }) => {
1766
- return needsMotionPrimeOnlyFromPermission(resolveStoredPermissionResult("output" in event ? event.output : void 0, context.permissionResult), context.config.ds);
1767
- };
1768
- const isPermissionDeniedErrorGuard = ({ event }) => {
1769
- if ("error" in event) {
1770
- const error = event.error;
1771
- return error?.name === "NotAllowedError" || error?.name === "PermissionDeniedError";
1772
- }
1773
- return false;
1774
- };
1775
- const hasStreamGuard = ({ context }) => context.stream !== void 0;
1776
- const hasAttemptsRemainingGuard = ({ context }) => context.attemptsRemaining > 0;
1777
- const hasCapturedImageGuard = ({ context }) => {
1778
- return context.provider?.getCapturedCanvas() !== null;
1779
- };
1780
- const hasUploadValidationErrorGuard = ({ context }) => {
1781
- if (!context.uploadResponse) return false;
1782
- return validateUploadResponse(context.uploadResponse, {
1783
- skipGlareFront: context.uploadResponse.skipGlareFront,
1784
- skipGlareBack: context.uploadResponse.skipGlareBack
1785
- }) !== void 0;
1786
- };
1787
- const isFrontModeGuard = ({ context }) => context.currentMode === "front" || context.currentMode === "passport";
1788
- /**
1789
- * `config.onlyFront` from the orchestrated flow JSON is intentionally not
1790
- * read here: the flow value cannot account for per-document overrides, so the
1791
- * backend resolves the real policy per document at upload time
1792
- * (via `skipBackIdCapture` on the upload response). Standalone
1793
- * `idCaptureManager` consumers that pass `onlyFront: true` directly will
1794
- * therefore also be ignored — re-wire this guard if that capability is needed
1795
- * again.
1796
- */
1797
- const isOnlyFrontGuard = (_args) => false;
1798
- const shouldContinueToBackGuard = ({ context }) => {
1799
- if (context.currentMode !== "front" && context.currentMode !== "passport") return false;
1800
- if (context.config.onlyBack) return false;
1801
- if (context.config.usSmartCapture) return false;
1802
- if (context.uploadResponse?.skipBackIdCapture) {
1803
- if (!(context.config.alwaysCaptureBackOfId === true && context.currentMode !== "passport")) return false;
1804
- }
1805
- return true;
1806
- };
1807
- const shouldContinueToFrontGuard = ({ context }) => context.config.usSmartCapture === true && context.currentMode === "back" && context.uploadResponse?.forceFrontIdCapture === true;
1808
- const hasMandatoryConsentGuard = ({ context }) => context.uploadResponse?.showMandatoryConsent === true;
1809
- const isDeepsightEnabledGuard = ({ context }) => context.dependencies !== void 0;
1810
- const isDeepsightReadyGuard = ({ context }) => context.deepsightService !== void 0;
1811
- const needsDeepsightInitGuard = ({ context }) => context.dependencies !== void 0 && context.deepsightService === void 0 && !context.deepsightInitAttempted;
1812
- const hasOnlyManualUploadAvailableGuard = ({ context }) => context.availableDocumentTypes.length === 1 && context.availableDocumentTypes[0] === "manualIdUpload";
1813
- const isManualIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "manualIdUpload";
1814
- const isDigitalIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "digitalIdUpload";
1815
- const isUploadExpiredGuard = ({ context }) => context.uploadResponse?.isDocumentExpired === true;
1816
- /**
1817
- * True when *this* expired upload will exhaust the budget. Compares the
1818
- * post-increment count, so the exhaustion branch can be picked in the same
1819
- * tick that runs `incrementExpiredAttempts`. With `captureAttempts=3`:
1820
- * - attempt 1 → 0+1=1 (not exhausted)
1821
- * - attempt 2 → 1+1=2 (not exhausted)
1822
- * - attempt 3 → 2+1=3 (exhausted, force-back / finish)
1823
- */
1824
- const isExpiredAttemptsExhaustedGuard = ({ context }) => context.expiredAttempts + 1 >= context.config.captureAttempts;
1825
- const isNotPassportModeGuard = ({ context }) => context.currentMode !== "passport";
1826
- /**
1827
- * V1 parity for `shouldApplyAlwaysCaptureBackOverride` — force-redirects to
1828
- * back capture after expired-front-attempts exhaust, but only when:
1829
- * - we're on the front side
1830
- * - `alwaysCaptureBackOfId` is set
1831
- * - the flow isn't single-side (onlyBack / usSmartCapture)
1832
- * - the session isn't a Digital ID upload (digital IDs are PDFs — no back
1833
- * side exists, so the override never applies regardless of config)
1834
- */
1835
- const shouldForceBackOnExpiredGuard = ({ context }) => context.currentMode === "front" && context.config.alwaysCaptureBackOfId === true && !context.config.onlyBack && !context.config.usSmartCapture && !context.isDigitalUpload;
1836
- const wasExpiredFromUploadGuard = ({ context }) => context.expiredFromUpload === true;
1837
- const shouldSkipProcessIdGuard = ({ context }) => context.skipProcessId === true;
1838
- /**
1839
- * Bug 4 fix: when `expiredExhausted` is reached via the per-upload-expired
1840
- * exhaustion path with a back side captured (or the entire single-side back
1841
- * flow), we want `processId` to run once on Continue so the backend
1842
- * processes whatever sides were uploaded. Front-only exhaustion (no back to
1843
- * process) and the force-back V1 path keep using `setSkipProcessId` instead.
1844
- */
1845
- const shouldProcessAfterExhaustionGuard = ({ context }) => context.exhaustedFromUpload === true && context.currentMode === "back" && (context.config.onlyBack === true || context.config.usSmartCapture === true);
1846
- /**
1847
- * `processing.onDone` reads this to short-circuit straight to `finished`
1848
- * after the post-exhaustion `processId` call returns — without it, an
1849
- * `isDocumentExpired:true` response would loop back to the Expired screen
1850
- * we just terminated.
1851
- */
1852
- const forceFinishAfterProcessingGuard = ({ context }) => context.forceFinishAfterProcessing === true;
1853
- /**
1854
- * Cap on the end-of-flow expired path. All capture types (camera, digital,
1855
- * manual) share `config.captureAttempts` for consistency — the user-visible
1856
- * "X attempts remaining" counter is the same regardless of how the document
1857
- * was submitted.
1858
- */
1859
- const isProcessingExpiredExhaustedGuard = ({ context }) => context.processingExpiredAttempts + 1 >= context.config.captureAttempts;
1860
- /**
1861
- * True when capturing the back side of a two-sided (front+back) ID flow.
1862
- * Used to redirect an expired-back capture to front rather than retrying
1863
- * the same back side (Figma Story #2.1).
1864
- * Excludes onlyBack and usSmartCapture — those are single-side back flows
1865
- * with no front to redirect to.
1866
- */
1867
- const isBackModeInMultiSideFlowGuard = ({ context }) => context.currentMode === "back" && !context.config.onlyBack && !context.config.usSmartCapture;
1868
-
1869
1904
  //#endregion
1870
1905
  //#region src/modules/id/idCaptureStateMachine.ts
1871
1906
  function getIdErrorCodeFromUnknown(error) {
@@ -1927,8 +1962,7 @@ const _idCaptureMachine = setup({
1927
1962
  uploadProgress: void 0,
1928
1963
  manualCaptureTriggered: false,
1929
1964
  attemptsRemaining: context.config.captureAttempts,
1930
- expiredAttempts: context.skipExpiredAttemptsReset ? context.expiredAttempts : 0,
1931
- skipExpiredAttemptsReset: false,
1965
+ expiredAttempts: 0,
1932
1966
  expiredFromUpload: false,
1933
1967
  exhaustedFromUpload: false,
1934
1968
  forceFinishAfterProcessing: false,
@@ -1953,6 +1987,7 @@ const _idCaptureMachine = setup({
1953
1987
  uploadProgress: void 0,
1954
1988
  manualCaptureTriggered: false,
1955
1989
  attemptsRemaining: context.config.captureAttempts,
1990
+ expiredAttempts: 0,
1956
1991
  expiredFromUpload: false,
1957
1992
  exhaustedFromUpload: false,
1958
1993
  forceFinishAfterProcessing: false,
@@ -2063,7 +2098,7 @@ const _idCaptureMachine = setup({
2063
2098
  setSkipProcessId: assign({ skipProcessId: () => true }),
2064
2099
  setExpiredFromUpload: assign({ expiredFromUpload: () => true }),
2065
2100
  setExhaustedFromUpload: assign({ exhaustedFromUpload: () => true }),
2066
- setSkipExpiredAttemptsReset: assign({ skipExpiredAttemptsReset: () => true }),
2101
+ setExpiredRedirected: assign({ expiredRedirected: () => true }),
2067
2102
  setForceFinishAfterProcessing: assign({ forceFinishAfterProcessing: () => true }),
2068
2103
  clearExpiredFromUpload: assign({ expiredFromUpload: () => false })
2069
2104
  },
@@ -2100,6 +2135,7 @@ const _idCaptureMachine = setup({
2100
2135
  shouldProcessAfterExhaustion: shouldProcessAfterExhaustionGuard,
2101
2136
  forceFinishAfterProcessing: forceFinishAfterProcessingGuard,
2102
2137
  isBackModeInMultiSideFlow: isBackModeInMultiSideFlowGuard,
2138
+ wasExpiredRedirected: wasExpiredRedirectedGuard,
2103
2139
  isManualUploadExhausted: ({ event }) => event.output?.result === "exhausted",
2104
2140
  isDigitalUploadExhausted: ({ event }) => event.output?.result === "exhausted",
2105
2141
  isDigitalUploadSuccessful: ({ event }) => event.output?.result === "success"
@@ -2126,7 +2162,7 @@ const _idCaptureMachine = setup({
2126
2162
  recordingSession: void 0,
2127
2163
  attemptsRemaining: input.config.captureAttempts,
2128
2164
  expiredAttempts: 0,
2129
- skipExpiredAttemptsReset: false,
2165
+ expiredRedirected: false,
2130
2166
  processingExpiredAttempts: 0,
2131
2167
  skipProcessId: input.config.skipProcessId === true,
2132
2168
  expiredFromUpload: false,
@@ -2656,6 +2692,15 @@ const _idCaptureMachine = setup({
2656
2692
  target: "#idCapture.finished",
2657
2693
  guard: and(["shouldSkipProcessId", "isUploadExpired"])
2658
2694
  },
2695
+ {
2696
+ target: "#idCapture.expiredExhausted",
2697
+ guard: and([
2698
+ "isNotPassportMode",
2699
+ "isUploadExpired",
2700
+ "wasExpiredRedirected"
2701
+ ]),
2702
+ actions: ["setExhaustedFromUpload"]
2703
+ },
2659
2704
  {
2660
2705
  target: "#idCapture.expiredExhausted",
2661
2706
  guard: and([
@@ -2857,12 +2902,16 @@ const _idCaptureMachine = setup({
2857
2902
  expired: { on: { RETRY_CAPTURE: [
2858
2903
  {
2859
2904
  target: "#idCapture.backFinished",
2860
- guard: and(["wasExpiredFromUpload", "isBackModeInMultiSideFlow"]),
2905
+ guard: and([
2906
+ "wasExpiredFromUpload",
2907
+ "isBackModeInMultiSideFlow",
2908
+ not("wasExpiredRedirected")
2909
+ ]),
2861
2910
  actions: [
2862
2911
  "resetDetection",
2863
2912
  "clearExpiredFromUpload",
2864
2913
  "clearUploadFailure",
2865
- "setSkipExpiredAttemptsReset"
2914
+ "setExpiredRedirected"
2866
2915
  ]
2867
2916
  },
2868
2917
  {
@@ -2894,22 +2943,25 @@ const _idCaptureMachine = setup({
2894
2943
  actions: "resetContext"
2895
2944
  }
2896
2945
  ] } },
2897
- expiredExhausted: { on: { CONTINUE_EXHAUSTED: [
2898
- {
2899
- target: "#idCapture.frontFinished",
2900
- guard: "shouldForceBackOnExpired",
2901
- actions: ["setSkipProcessId"]
2902
- },
2903
- {
2904
- target: "#idCapture.processing",
2905
- guard: "shouldProcessAfterExhaustion",
2906
- actions: ["setForceFinishAfterProcessing"]
2907
- },
2908
- {
2909
- target: "#idCapture.finished",
2910
- actions: ["setSkipProcessId"]
2911
- }
2912
- ] } },
2946
+ expiredExhausted: {
2947
+ entry: "flagIdManualReview",
2948
+ on: { CONTINUE_EXHAUSTED: [
2949
+ {
2950
+ target: "#idCapture.frontFinished",
2951
+ guard: "shouldForceBackOnExpired",
2952
+ actions: ["setSkipProcessId"]
2953
+ },
2954
+ {
2955
+ target: "#idCapture.processing",
2956
+ guard: "shouldProcessAfterExhaustion",
2957
+ actions: ["setForceFinishAfterProcessing"]
2958
+ },
2959
+ {
2960
+ target: "#idCapture.finished",
2961
+ actions: ["setSkipProcessId"]
2962
+ }
2963
+ ] }
2964
+ },
2913
2965
  finished: {
2914
2966
  entry: [
2915
2967
  "stopMediaRecording",
@@ -3016,4 +3068,4 @@ const _idCaptureMachine = setup({
3016
3068
  const idCaptureMachine = _idCaptureMachine;
3017
3069
 
3018
3070
  //#endregion
3019
- export { processId as a, stopStream as c, validateUploadResponse as d, ID_ERROR_CODES as f, mapDigitalIdScreenName as g, MANUAL_UPLOAD_MAX_RETRIES as h, preloadIdRecordingProvider as i, uploadIdImage as l, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES as m, mapIdManualUploadScreenName as n, startRecordingSession as o, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS as p, initializeIdCapture as r, stopRecording as s, idCaptureMachine as t, uploadManualIdFile as u };
3071
+ export { mapDigitalIdScreenName as _, preloadIdRecordingProvider as a, stopRecording as c, uploadManualIdFile as d, validateUploadResponse as f, MANUAL_UPLOAD_MAX_RETRIES as g, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES as h, initializeIdCapture as i, stopStream as l, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS as m, MAX_EXPIRED_FIRST_SIDE_ATTEMPTS as n, processId as o, ID_ERROR_CODES as p, mapIdManualUploadScreenName as r, startRecordingSession as s, idCaptureMachine as t, uploadIdImage as u };
@@ -1,7 +1,7 @@
1
1
  import { t as api } from "./api-DsbUi7TO.esm.js";
2
2
  import { _ as getTimestamp } from "./events-CqGY1yMq.esm.js";
3
3
  import { t as endpoints } from "./endpoints-BzMJFAPV.esm.js";
4
- import { a as fromPromise, r as assign, t as setup } from "./xstate.esm-r0zHjE2E.esm.js";
4
+ import { a as fromPromise, r as assign, t as setup } from "./xstate.esm-Bomq1a0z.esm.js";
5
5
  import { t as validateCPF } from "./cpf-BKaho0j_.esm.js";
6
6
 
7
7
  //#region ../infra/src/providers/browser/DateFormattingProvider.ts
@@ -1,6 +1,6 @@
1
1
  import { t as api } from "./api-DsbUi7TO.esm.js";
2
2
  import { t as endpoints } from "./endpoints-BzMJFAPV.esm.js";
3
- import { a as fromPromise, t as setup } from "./xstate.esm-r0zHjE2E.esm.js";
3
+ import { a as fromPromise, t as setup } from "./xstate.esm-Bomq1a0z.esm.js";
4
4
 
5
5
  //#region src/modules/id-verification/idVerificationServices.ts
6
6
  /**
@@ -1,4 +1,4 @@
1
1
  import "./Manager-BUc6OqO5.js";
2
2
  import "./Actor-Du_LU0S4.js";
3
- 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-piMy-REi.js";
3
+ 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-BOnaxwJI.js";
4
4
  export { type FetchDocumentsResponse, type IdentityReuseConfig, type IdentityReuseManager, type IdentityReuseState, type ReusableDocument, SCAN_NEW_DOCUMENT, type SelectedDocumentId, type SubmitResponse, createIdentityReuseManager, createIdentityReuseManagerFromActor, identityReuseMachine };
@@ -2,8 +2,8 @@ import "./api-DsbUi7TO.esm.js";
2
2
  import "./events-CqGY1yMq.esm.js";
3
3
  import "./types-ElOJAGaM.esm.js";
4
4
  import "./endpoints-BzMJFAPV.esm.js";
5
- import "./xstate.esm-r0zHjE2E.esm.js";
6
- import { n as identityReuseMachine, t as SCAN_NEW_DOCUMENT } from "./identityReuseStateMachine-CE7CiLs9.esm.js";
7
- import { n as createIdentityReuseManagerFromActor, t as createIdentityReuseManager } from "./identityReuseManager-DjhuypVV.esm.js";
5
+ import "./xstate.esm-Bomq1a0z.esm.js";
6
+ import { n as identityReuseMachine, t as SCAN_NEW_DOCUMENT } from "./identityReuseStateMachine-BYYzDw-l.esm.js";
7
+ import { n as createIdentityReuseManagerFromActor, t as createIdentityReuseManager } from "./identityReuseManager-BeyKVX1g.esm.js";
8
8
 
9
9
  export { SCAN_NEW_DOCUMENT, createIdentityReuseManager, createIdentityReuseManagerFromActor, identityReuseMachine };