@incodetech/core 0.0.0-dev-20260804-9b4fdd44 → 0.0.0-dev-20260804-aaf46585

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 (65) hide show
  1. package/dist/{3dAvatarProvider-1zpeX-h8.esm.js → 3dAvatarProvider-g02DTFqT.esm.js} +1 -1
  2. package/dist/{Face2DProvider-TLwFIRn4.esm.js → Face2DProvider-UUQt_vRC.esm.js} +1 -1
  3. package/dist/ae-signature.esm.js +1 -1
  4. package/dist/{apiError-DOnx7LCu.esm.js → apiError-eRypMxcU.esm.js} +1 -1
  5. package/dist/authentication.esm.js +2 -2
  6. package/dist/{authenticationManager-CPlSYMSu.esm.js → authenticationManager-DzPHEt-8.esm.js} +2 -2
  7. package/dist/{authenticationStateMachine-52hJ7h08.esm.js → authenticationStateMachine-B7tJiWTU.esm.js} +2 -2
  8. package/dist/avatar.esm.js +1 -1
  9. package/dist/consent.d.ts +1 -1
  10. package/dist/{consentManager-3Pbtj-RV.d.ts → consentManager-uhDPdU6i.d.ts} +4 -4
  11. package/dist/{createFaceAvatar-AF92I3xf.esm.js → createFaceAvatar-DQKaRise.esm.js} +2 -2
  12. package/dist/{deepsightLoader-CtbxPjkP.esm.js → deepsightLoader-DL7Y2GDJ.esm.js} +3 -3
  13. package/dist/document-capture.d.ts +1 -1
  14. package/dist/{documentCaptureManager-BiKjyojT.d.ts → documentCaptureManager-pEqMY_Oo.d.ts} +65 -65
  15. package/dist/dynamic-forms.esm.js +2 -2
  16. package/dist/{dynamicFormsManager-C4__pyA8.esm.js → dynamicFormsManager-BooCrMaK.esm.js} +1 -1
  17. package/dist/{dynamicFormsStateMachine-CC3whfef.esm.js → dynamicFormsStateMachine-Bjn28VPz.esm.js} +1 -1
  18. package/dist/ekyb.esm.js +3 -3
  19. package/dist/{ekybManager-BLbvnaXY.esm.js → ekybManager-h28g_Xtv.esm.js} +1 -1
  20. package/dist/{ekybStateMachine-z1zwF66d.esm.js → ekybStateMachine-bnK91htx.esm.js} +1 -1
  21. package/dist/electronic-signature.esm.js +1 -1
  22. package/dist/{electronicSignatureManager-DSlc92or.esm.js → electronicSignatureManager-k8eOulTu.esm.js} +1 -1
  23. package/dist/extensibility.d.ts +3 -3
  24. package/dist/extensibility.esm.js +9 -9
  25. package/dist/{faceCaptureManagerFactory-DXiHb5K5.esm.js → faceCaptureManagerFactory-XgV9yjtn.esm.js} +1 -1
  26. package/dist/{faceCaptureSetup-CrvkDJYo.esm.js → faceCaptureSetup-CVS6IhMo.esm.js} +3 -3
  27. package/dist/flow.esm.js +3 -3
  28. package/dist/{flowCompletionService-C8gB_xVc.esm.js → flowCompletionService-B66s2grx.esm.js} +1 -1
  29. package/dist/{flowServices-BcOeV10R.esm.js → flowServices-Dqeralkm.esm.js} +3 -3
  30. package/dist/geolocation.esm.js +2 -2
  31. package/dist/{geolocationManager-SwAxbq_r.esm.js → geolocationManager-Ci0ZCKr6.esm.js} +1 -1
  32. package/dist/{geolocationStateMachine-BCdzxi38.esm.js → geolocationStateMachine-j-nPXT5l.esm.js} +1 -1
  33. package/dist/id-selfie-flow.d.ts +1 -1
  34. package/dist/id-selfie-flow.esm.js +7 -7
  35. package/dist/id.esm.js +3 -3
  36. package/dist/{idCaptureManager-wNcfDQjf.esm.js → idCaptureManager-DCdBkzIB.esm.js} +1 -1
  37. package/dist/{idCaptureServices-BEgLmVdK.esm.js → idCaptureServices-pFRvnFdd.esm.js} +2 -2
  38. package/dist/{idCaptureStateMachine-DlLwhwt-.esm.js → idCaptureStateMachine-BPZDytNe.esm.js} +7 -7
  39. package/dist/index.esm.js +1 -1
  40. package/dist/mandatory-consent.d.ts +1 -1
  41. package/dist/{mandatoryConsentManager-DyPzUmsZ.d.ts → mandatoryConsentManager-B29kR0XA.d.ts} +4 -4
  42. package/dist/{mediapipeShared-D0syL_Gp.esm.js → mediapipeShared-B6oNoXEQ.esm.js} +13 -2
  43. package/dist/{onDeviceFaceResults-C_VQPc0W.esm.js → onDeviceFaceResults-DzrHstja.esm.js} +3 -3
  44. package/dist/personhood.esm.js +3 -3
  45. package/dist/qe-signature.esm.js +1 -1
  46. package/dist/{recordingService-CM2IDz-n.esm.js → recordingService-DvWs45V_.esm.js} +1 -1
  47. package/dist/{runChildModule-CwWb8Rvf.esm.js → runChildModule-BnlwDAAF.esm.js} +1 -1
  48. package/dist/selfie.esm.js +5 -5
  49. package/dist/{selfieErrorUtils-DggLa9pg.esm.js → selfieErrorUtils-EEHiYwTi.esm.js} +11 -2
  50. package/dist/{selfieManager-C6lVydU4.esm.js → selfieManager-hCzyzJU_.esm.js} +2 -2
  51. package/dist/{selfieStateMachine-DmcrK2Vm.esm.js → selfieStateMachine-bPv7LlHS.esm.js} +3 -3
  52. package/dist/{session-DcYQOVD5.esm.js → session-DtiTFOeb.esm.js} +4 -4
  53. package/dist/session.esm.js +4 -4
  54. package/dist/{sessionInitializer-C4v9OFr1.esm.js → sessionInitializer-67b35_K1.esm.js} +2 -2
  55. package/dist/{setup-CCxXCMOr.esm.js → setup-Ba31IGP9.esm.js} +12 -10
  56. package/dist/trueSight-C5D_RAuu.esm.js +1 -0
  57. package/dist/{trueSightService-C5I_Ofy4.esm.js → trueSightService-CAM-jmTL.esm.js} +1 -1
  58. package/dist/video-selfie.d.ts +34 -10
  59. package/dist/video-selfie.esm.js +280 -64
  60. package/dist/{videoSelfieCameraWarmer-C_aifzgw.esm.js → videoSelfieCameraWarmer-BdfteLhE.esm.js} +49 -12
  61. package/dist/{videoSelfieStepDetector-144x423X.d.ts → videoSelfieStepDetector-OoiAbUo2.d.ts} +8 -2
  62. package/dist/wasm.esm.js +1 -1
  63. package/dist/workflow.esm.js +14 -14
  64. package/package.json +1 -1
  65. package/dist/trueSight-a5onjsbx.esm.js +0 -1
@@ -1,9 +1,9 @@
1
1
  import { _ as updateFeatureManagementUser } from "./feature-management-CFRmD8Nr.esm.js";
2
2
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
3
- import { c as getStandaloneFlowPolicy, i as initializeSession, r as getSessionFingerprintResult } from "./sessionInitializer-C4v9OFr1.esm.js";
3
+ import { c as getStandaloneFlowPolicy, i as initializeSession, r as getSessionFingerprintResult } from "./sessionInitializer-67b35_K1.esm.js";
4
4
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
5
- import { r as toIncodeApiError } from "./apiError-DOnx7LCu.esm.js";
6
- import "./session-DcYQOVD5.esm.js";
5
+ import { r as toIncodeApiError } from "./apiError-eRypMxcU.esm.js";
6
+ import "./session-DtiTFOeb.esm.js";
7
7
  import { i as toEkycConfig } from "./ekycUtils-Dew1rBG0.esm.js";
8
8
  //#region src/modules/flow/dashboardConfig.ts
9
9
  function isPlainObject(value) {
@@ -1,3 +1,3 @@
1
- import { t as createGeolocationManager } from "./geolocationManager-SwAxbq_r.esm.js";
2
- import { t as geolocationMachine } from "./geolocationStateMachine-BCdzxi38.esm.js";
1
+ import { t as createGeolocationManager } from "./geolocationManager-Ci0ZCKr6.esm.js";
2
+ import { t as geolocationMachine } from "./geolocationStateMachine-j-nPXT5l.esm.js";
3
3
  export { createGeolocationManager, geolocationMachine };
@@ -1,6 +1,6 @@
1
1
  import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ethtfu2b.esm.js";
2
2
  import { c as createManager, o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.js";
3
- import { t as geolocationMachine } from "./geolocationStateMachine-BCdzxi38.esm.js";
3
+ import { t as geolocationMachine } from "./geolocationStateMachine-j-nPXT5l.esm.js";
4
4
  //#region ../infra/src/providers/browser/BrowserGeolocationProvider.ts
5
5
  var BrowserGeolocationProvider = class {
6
6
  getCurrentPosition() {
@@ -1,7 +1,7 @@
1
1
  import { t as api } from "./api-Bx3gKW_y.esm.js";
2
2
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
3
3
  import { r as isIOS, t as isAndroid } from "./platform-Cd_yWGNG.esm.js";
4
- import { n as isConnectivityError } from "./apiError-DOnx7LCu.esm.js";
4
+ import { n as isConnectivityError } from "./apiError-eRypMxcU.esm.js";
5
5
  import { r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
6
6
  import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
7
7
  //#region src/modules/geolocation/geolocationServices.ts
@@ -3,7 +3,7 @@ import "./Actor-iTq7YY48.js";
3
3
  import { t as CameraStream } from "./camera-9wWD-pwg.js";
4
4
  import { t as DetectionOrientation } from "./IIdCaptureCapability-Cj_aceph.js";
5
5
  import { n as FinishStatus } from "./flowCompletionService-BlAHsKyv.js";
6
- import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-144x423X.js";
6
+ import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-OoiAbUo2.js";
7
7
  //#region src/modules/id-selfie-flow/types.d.ts
8
8
  /**
9
9
  * The capture steps an ID + Selfie flow session can run, in flow order. A
@@ -1,17 +1,17 @@
1
1
  import { r as WasmUtilProvider } from "./safeStorage-Ep56I-f_.esm.js";
2
- import { t as ensureWasmPipelines } from "./setup-CCxXCMOr.esm.js";
2
+ import { t as ensureWasmPipelines } from "./setup-Ba31IGP9.esm.js";
3
3
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
4
- import { i as resolveDashboardModuleConfig, l as facingModeForStep } from "./flowServices-BcOeV10R.esm.js";
4
+ import { i as resolveDashboardModuleConfig, l as facingModeForStep } from "./flowServices-Dqeralkm.esm.js";
5
5
  import { c as createManager, n as sendTo, o as createActor, r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
6
6
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
7
- import { _ as StreamCanvasProcessingSession, a as encryptSelfieImage, l as startDetection, v as FaceDetectionProvider } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
7
+ import { _ as StreamCanvasProcessingSession, a as encryptSelfieImage, l as startDetection, v as FaceDetectionProvider } from "./onDeviceFaceResults-DzrHstja.esm.js";
8
8
  import { n as getWindowDimensions } from "./getDeviceClass-CeBiEayS.esm.js";
9
- import { i as uploadSelfie, r as processFace } from "./selfieErrorUtils-DggLa9pg.esm.js";
9
+ import { i as uploadSelfie, r as processFace } from "./selfieErrorUtils-EEHiYwTi.esm.js";
10
10
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-D2XcXCZ4.esm.js";
11
11
  import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider, t as DEFAULT_ID_CAPTURE_GEOMETRY } from "./idCaptureDefaults-DrQe0hWr.esm.js";
12
- import { a as processId, d as validateUploadResponse, f as ID_ERROR_CODES, l as uploadIdImage } from "./idCaptureServices-BEgLmVdK.esm.js";
13
- import { n as getFinishStatus } from "./flowCompletionService-C8gB_xVc.esm.js";
14
- import { a as delay, n as defaultAcquireCamera, o as isSelfieValidationError, r as CameraCompositor, s as isWrongVideoSelfieIdSide } from "./videoSelfieCameraWarmer-C_aifzgw.esm.js";
12
+ import { a as processId, d as validateUploadResponse, f as ID_ERROR_CODES, l as uploadIdImage } from "./idCaptureServices-pFRvnFdd.esm.js";
13
+ import { n as getFinishStatus } from "./flowCompletionService-B66s2grx.esm.js";
14
+ import { a as delay, c as isWrongVideoSelfieIdSide, n as defaultAcquireCamera, r as CameraCompositor, s as isSelfieValidationError } from "./videoSelfieCameraWarmer-BdfteLhE.esm.js";
15
15
  //#region src/modules/id-selfie-flow/idSelfieFlowStepDetector.ts
16
16
  /** Default autocapture window for the selfie step. */
17
17
  const SELFIE_AUTOCAPTURE_MS = 1e4;
package/dist/id.esm.js CHANGED
@@ -2,9 +2,9 @@ import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.e
2
2
  import { n as eventModuleNames } from "./events-ethtfu2b.esm.js";
3
3
  import { o as createActor, r as assign } from "./xstate.esm-Cf4e0Cfd.esm.js";
4
4
  import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
5
- import { a as MANUAL_UPLOAD_MAX_RETRIES, i as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, r as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, t as idCaptureMachine } from "./idCaptureStateMachine-DlLwhwt-.esm.js";
6
- import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-wNcfDQjf.esm.js";
7
- import { a as processId, c as stopStream, d as validateUploadResponse, f as ID_ERROR_CODES, i as preloadIdRecordingProvider, l as uploadIdImage, n as barcodeToBase64, o as startRecordingSession, r as initializeIdCapture, s as stopRecording, t as addBarcode, u as uploadManualIdFile } from "./idCaptureServices-BEgLmVdK.esm.js";
5
+ import { a as MANUAL_UPLOAD_MAX_RETRIES, i as MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES, r as MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS, t as idCaptureMachine } from "./idCaptureStateMachine-BPZDytNe.esm.js";
6
+ import { n as createIdCaptureActor, r as createIdCaptureManagerFromActor, t as createIdCaptureManager } from "./idCaptureManager-DCdBkzIB.esm.js";
7
+ import { a as processId, c as stopStream, d as validateUploadResponse, f as ID_ERROR_CODES, i as preloadIdRecordingProvider, l as uploadIdImage, n as barcodeToBase64, o as startRecordingSession, r as initializeIdCapture, s as stopRecording, t as addBarcode, u as uploadManualIdFile } from "./idCaptureServices-pFRvnFdd.esm.js";
8
8
  import { t as invokeOnCaptureCallback } from "./invokeOnCaptureCallback-DVtdZdpI.esm.js";
9
9
  //#region src/modules/id/idCaptureOnlyStateMachine.ts
10
10
  function buildSubImage(canvas) {
@@ -5,7 +5,7 @@ import { c as createManager, o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.
5
5
  import { t as setWasmDsFlagSync } from "./wasmDsFlagSync-BqUCwLY8.esm.js";
6
6
  import { t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-BX1BiLDK.esm.js";
7
7
  import { o as resetWasmMotionPrimedForModule, r as primeMotionFromUserGestureIfNeeded } from "./permissionServices-3UAjhmjw.esm.js";
8
- import { n as getManualUploadTabs, t as idCaptureMachine } from "./idCaptureStateMachine-DlLwhwt-.esm.js";
8
+ import { n as getManualUploadTabs, t as idCaptureMachine } from "./idCaptureStateMachine-BPZDytNe.esm.js";
9
9
  //#region src/modules/id/digitalUpload/instrumentation.ts
10
10
  const TERMINAL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
11
11
  function isHoldingState(value) {
@@ -1,10 +1,10 @@
1
1
  import { t as api } from "./api-Bx3gKW_y.esm.js";
2
2
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
3
3
  import { n as isDesktop } from "./platform-Cd_yWGNG.esm.js";
4
- import { h as stopRecording$1, m as startRecording, p as createRecordingSession } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
4
+ import { h as stopRecording$1, m as startRecording, p as createRecordingSession } from "./onDeviceFaceResults-DzrHstja.esm.js";
5
5
  import { n as getBackCameraStream } from "./backCameraStream-BqiXcU28.esm.js";
6
6
  import { t as getDeviceClass } from "./getDeviceClass-BGmoQmjj.esm.js";
7
- import { n as preloadOpenViduProvider } from "./recordingService-CM2IDz-n.esm.js";
7
+ import { n as preloadOpenViduProvider } from "./recordingService-DvWs45V_.esm.js";
8
8
  import { r as IdCaptureProvider } from "./idCaptureDefaults-DrQe0hWr.esm.js";
9
9
  //#region src/modules/id/idCameraStream.ts
10
10
  async function getIdCameraStream(deviceId) {
@@ -1,16 +1,16 @@
1
1
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
2
2
  import { n as revokeObjectURL } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
3
3
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
4
- import { c as trueSightHintTransition, l as trueSightLog, r as noteTrueSightCaptureActivity } from "./trueSightService-C5I_Ofy4.esm.js";
5
- import { t as getDisableIpify } from "./sessionInitializer-C4v9OFr1.esm.js";
6
- import "./trueSight-a5onjsbx.esm.js";
4
+ import { c as trueSightHintTransition, l as trueSightLog, r as noteTrueSightCaptureActivity } from "./trueSightService-CAM-jmTL.esm.js";
5
+ import { t as getDisableIpify } from "./sessionInitializer-67b35_K1.esm.js";
6
+ import "./trueSight-C5D_RAuu.esm.js";
7
7
  import { t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
8
8
  import { t as isAndroid } from "./platform-Cd_yWGNG.esm.js";
9
- import "./session-DcYQOVD5.esm.js";
9
+ import "./session-DtiTFOeb.esm.js";
10
10
  import { a as and, n as sendTo, r as assign, s as not, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
11
11
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
12
12
  import { n as invokeRequestPermissionActor, t as checkPermission } from "./permissionServices-3UAjhmjw.esm.js";
13
- import { _ as StreamCanvasProcessingSession } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
13
+ import { _ as StreamCanvasProcessingSession } from "./onDeviceFaceResults-DzrHstja.esm.js";
14
14
  import { t as sleep } from "./ITimerCapability-DgdDzp8G.esm.js";
15
15
  import { t as IncodeCanvas } from "./canvas-E1zGkel4.esm.js";
16
16
  import { t as getBrowser } from "./getBrowser-DNrQeL4T.esm.js";
@@ -19,7 +19,7 @@ import { t as StreamCanvasCapture } from "./StreamCanvasCapture-D2XcXCZ4.esm.js"
19
19
  import { n as needsMotionPrimeOnlyFromPermission, r as resolveStoredPermissionResult, t as isReadyForCaptureFromPermission } from "./permissionGuards-KNkc71eN.esm.js";
20
20
  import { n as flagIdManualReview } from "./manualReviewService-D4IkipnN.esm.js";
21
21
  import { n as DEFAULT_ID_CAPTURE_THRESHOLDS } from "./idCaptureDefaults-DrQe0hWr.esm.js";
22
- import { a as processId, c as stopStream, d as validateUploadResponse, f as ID_ERROR_CODES, i as preloadIdRecordingProvider, l as uploadIdImage, o as startRecordingSession, p as getIdCameraStream, r as initializeIdCapture, s as stopRecording, t as addBarcode, u as uploadManualIdFile } from "./idCaptureServices-BEgLmVdK.esm.js";
22
+ import { a as processId, c as stopStream, d as validateUploadResponse, f as ID_ERROR_CODES, i as preloadIdRecordingProvider, l as uploadIdImage, o as startRecordingSession, p as getIdCameraStream, r as initializeIdCapture, s as stopRecording, t as addBarcode, u as uploadManualIdFile } from "./idCaptureServices-pFRvnFdd.esm.js";
23
23
  //#region src/modules/id/digitalUpload/digitalUploadErrors.ts
24
24
  const TERMINAL_FAIL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
25
25
  function isKnownFailReason(reason) {
@@ -1316,7 +1316,7 @@ const startRecordingActor = fromPromise(async ({ input }) => {
1316
1316
  });
1317
1317
  const initializeDeepsightSessionActor = fromPromise(async ({ input }) => {
1318
1318
  if (!input.dependencies) return;
1319
- const { loadDeepsightSession } = await import("./deepsightLoader-CtbxPjkP.esm.js");
1319
+ const { loadDeepsightSession } = await import("./deepsightLoader-DL7Y2GDJ.esm.js");
1320
1320
  return loadDeepsightSession({
1321
1321
  ds: input.ds,
1322
1322
  storage: input.dependencies.storage,
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as reset, o as setup, r as isConfigured } from "./setup-CCxXCMOr.esm.js";
1
+ import { i as reset, o as setup, r as isConfigured } from "./setup-Ba31IGP9.esm.js";
2
2
  export { isConfigured, reset, setup };
@@ -1,3 +1,3 @@
1
1
  import { r as MandatoryConsentConfig } from "./types-BX_XkMsQ2.js";
2
- import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-DyPzUmsZ.js";
2
+ import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-B29kR0XA.js";
3
3
  export { type MandatoryConsentActor, type MandatoryConsentConfig, type MandatoryConsentManager, type MandatoryConsentState, createMandatoryConsentManager, createMandatoryConsentManagerFromActor, mandatoryConsentMachine };
@@ -61,14 +61,14 @@ declare const mandatoryConsentMachine: StateMachine<MandatoryConsentContext, {
61
61
  type: "clearError";
62
62
  params: NonReducibleUnknown;
63
63
  };
64
- resetContext: {
65
- type: "resetContext";
66
- params: NonReducibleUnknown;
67
- };
68
64
  toggleSigned: {
69
65
  type: "toggleSigned";
70
66
  params: NonReducibleUnknown;
71
67
  };
68
+ resetContext: {
69
+ type: "resetContext";
70
+ params: NonReducibleUnknown;
71
+ };
72
72
  }>, {
73
73
  type: "canSubmit";
74
74
  params: unknown;
@@ -8,8 +8,18 @@
8
8
  * which, on a function, throws "'caller'/'callee'/'arguments' may not be accessed
9
9
  * on strict mode functions". Stash and clear the global across MediaPipe init,
10
10
  * then restore it for the SDK pipeline. The runtime is loaded from the prebuilt
11
- * ESM (CDN/self-hosted) via a `@vite-ignore` dynamic import; the npm copy is used
12
- * for types only.
11
+ * ESM (CDN/self-hosted) via a bundler-ignored dynamic import; the npm copy is
12
+ * used for types only. The specifier is a runtime URL, so it must stay opaque to
13
+ * every consumer bundler. Two pragmas cover the whole ecosystem (same pairing as
14
+ * `wasm/apiUtilities.ts`):
15
+ *
16
+ * - `@vite-ignore` — vite's import-analysis would otherwise rewrite it.
17
+ * - `webpackIgnore: true` — the webpack family (webpack, Rspack, Turbopack all
18
+ * honour this one) would otherwise replace the expression with a stub that
19
+ * throws `MODULE_NOT_FOUND` at runtime. Verified against all three.
20
+ *
21
+ * Rollup, esbuild, Bun and Parcel leave a non-analyzable specifier alone and need
22
+ * no pragma. Do NOT "simplify" this to a single comment.
13
23
  *
14
24
  * Rejects if init fails (callers handle that defensively — start aborts, or the
15
25
  * detect-failure recovery path retries once).
@@ -34,6 +44,7 @@ async function createFaceLandmarker(paths) {
34
44
  try {
35
45
  const tasksVision = await import(
36
46
  /* @vite-ignore */
47
+ /* webpackIgnore: true */
37
48
  paths.mediapipeModulePath
38
49
  );
39
50
  const fileset = await tasksVision.FilesetResolver.forVisionTasks(paths.mediapipeWasmPath);
@@ -1,8 +1,8 @@
1
1
  import { c as mlWasmJSApi_default, i as BaseWasmProvider } from "./safeStorage-Ep56I-f_.esm.js";
2
2
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
3
- import { c as trueSightHintTransition, l as trueSightLog, r as noteTrueSightCaptureActivity } from "./trueSightService-C5I_Ofy4.esm.js";
3
+ import { c as trueSightHintTransition, l as trueSightLog, r as noteTrueSightCaptureActivity } from "./trueSightService-CAM-jmTL.esm.js";
4
4
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
5
- import "./trueSight-a5onjsbx.esm.js";
5
+ import "./trueSight-C5D_RAuu.esm.js";
6
6
  import { t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
7
7
  import { a as isIPhone14OrHigher, n as isDesktop } from "./platform-Cd_yWGNG.esm.js";
8
8
  import { a as stopCameraStream, r as requestCameraAccess } from "./camera-BmFEyPP_.esm.js";
@@ -521,7 +521,7 @@ async function stopRecording(session) {
521
521
  }
522
522
  }
523
523
  async function initializeDeepsightSession(options) {
524
- const { loadDeepsightSession } = await import("./deepsightLoader-CtbxPjkP.esm.js");
524
+ const { loadDeepsightSession } = await import("./deepsightLoader-DL7Y2GDJ.esm.js");
525
525
  return loadDeepsightSession({
526
526
  ds: options.ds,
527
527
  storage: options.storage
@@ -2,15 +2,15 @@ import { r as WasmUtilProvider } from "./safeStorage-Ep56I-f_.esm.js";
2
2
  import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.esm.js";
3
3
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
4
4
  import { t as api } from "./api-Bx3gKW_y.esm.js";
5
- import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-C5I_Ofy4.esm.js";
5
+ import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-CAM-jmTL.esm.js";
6
6
  import { n as eventModuleNames } from "./events-ethtfu2b.esm.js";
7
- import { _ as getDeviceFingerprintInfo, g as getThumbmarkId, n as getFingerprintEnabled, p as isBrowserSimulation, v as BrowserEnvironmentProvider } from "./sessionInitializer-C4v9OFr1.esm.js";
7
+ import { _ as getDeviceFingerprintInfo, g as getThumbmarkId, n as getFingerprintEnabled, p as isBrowserSimulation, v as BrowserEnvironmentProvider } from "./sessionInitializer-67b35_K1.esm.js";
8
8
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
9
9
  import { c as createManager, o as createActor, r as assign, t as setup } from "./xstate.esm-Cf4e0Cfd.esm.js";
10
10
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
11
11
  import { i as requestPermission, t as checkPermission } from "./permissionServices-3UAjhmjw.esm.js";
12
12
  import { a as stopCameraStream, r as requestCameraAccess } from "./camera-BmFEyPP_.esm.js";
13
- import { f as stopStream, l as startDetection, s as initializeDeepsightSession, v as FaceDetectionProvider } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
13
+ import { f as stopStream, l as startDetection, s as initializeDeepsightSession, v as FaceDetectionProvider } from "./onDeviceFaceResults-DzrHstja.esm.js";
14
14
  import { t as sleep } from "./ITimerCapability-DgdDzp8G.esm.js";
15
15
  import { t as StreamCanvasCapture } from "./StreamCanvasCapture-D2XcXCZ4.esm.js";
16
16
  //#region src/modules/personhood/personhoodServices.ts
@@ -1,4 +1,4 @@
1
- import { a as QE_CONSENT_KEYS, c as getDefaultConsentChecks, o as areAllConsented, r as electronicSignatureMachine, t as createElectronicSignatureManager } from "./electronicSignatureManager-DSlc92or.esm.js";
1
+ import { a as QE_CONSENT_KEYS, c as getDefaultConsentChecks, o as areAllConsented, r as electronicSignatureMachine, t as createElectronicSignatureManager } from "./electronicSignatureManager-k8eOulTu.esm.js";
2
2
  //#region src/modules/qe-signature/index.ts
3
3
  function createQeSignatureManager(options) {
4
4
  return createElectronicSignatureManager({ config: {
@@ -1,5 +1,5 @@
1
1
  import { t as isAndroid } from "./platform-Cd_yWGNG.esm.js";
2
- import { d as stopRecording, g as uploadDeepsightVideo, u as startRecordingSession } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
2
+ import { d as stopRecording, g as uploadDeepsightVideo, u as startRecordingSession } from "./onDeviceFaceResults-DzrHstja.esm.js";
3
3
  import { t as getAdaptiveMediaRecorderOptions } from "./mediaRecorderOptions-CUsftWlH.esm.js";
4
4
  //#region ../infra/src/media/VideoTrimmer.ts
5
5
  async function getDurationBySeek(videoBlob) {
@@ -1,5 +1,5 @@
1
1
  import { t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
2
- import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-C5I_Ofy4.esm.js";
2
+ import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-CAM-jmTL.esm.js";
3
3
  import { C as createEventBus } from "./events-ethtfu2b.esm.js";
4
4
  import { o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.js";
5
5
  import { t as fromCallback } from "./xstate-actors.esm-CtI5S0f4.esm.js";
@@ -3,11 +3,11 @@ import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.e
3
3
  import { n as eventModuleNames } from "./events-ethtfu2b.esm.js";
4
4
  import { o as createActor, r as assign } from "./xstate.esm-Cf4e0Cfd.esm.js";
5
5
  import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
6
- import { t as faceCaptureMachine } from "./faceCaptureSetup-CrvkDJYo.esm.js";
7
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-DXiHb5K5.esm.js";
8
- import { r as processFace } from "./selfieErrorUtils-DggLa9pg.esm.js";
9
- import { t as selfieMachine } from "./selfieStateMachine-DmcrK2Vm.esm.js";
10
- import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-C6lVydU4.esm.js";
6
+ import { t as faceCaptureMachine } from "./faceCaptureSetup-CVS6IhMo.esm.js";
7
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-XgV9yjtn.esm.js";
8
+ import { r as processFace } from "./selfieErrorUtils-EEHiYwTi.esm.js";
9
+ import { t as selfieMachine } from "./selfieStateMachine-bPv7LlHS.esm.js";
10
+ import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-hCzyzJU_.esm.js";
11
11
  import { t as invokeOnCaptureCallback } from "./invokeOnCaptureCallback-DVtdZdpI.esm.js";
12
12
  //#region src/modules/selfie/selfieCaptureOnlyStateMachine.ts
13
13
  /**
@@ -32,10 +32,19 @@ async function uploadSelfie({ encryptedBase64Image, faceCoordinates, signal, met
32
32
  return res.data;
33
33
  } catch (error) {
34
34
  const errorCode = getFaceErrorCodeFromHttpError(error);
35
- if (errorCode) throw new Error(errorCode);
36
- throw new Error(FACE_ERROR_CODES.SERVER);
35
+ throw withTransportStatus(new Error(errorCode ?? FACE_ERROR_CODES.SERVER), error);
37
36
  }
38
37
  }
38
+ /**
39
+ * Copies the HTTP status of `source` onto `target`. The code alone cannot say
40
+ * whether the request got a verdict or never reached the backend — a network
41
+ * failure and a 5xx both map to `SERVER_ERROR` — so a caller that retries
42
+ * transport failures needs the status to survive this mapping.
43
+ */
44
+ function withTransportStatus(target, source) {
45
+ if (typeof source === "object" && source !== null && "status" in source && typeof source.status === "number") return Object.assign(target, { status: source.status });
46
+ return target;
47
+ }
39
48
  const getFaceErrorCodeFromHttpError = (error) => {
40
49
  const err = error;
41
50
  if (err.ok !== false || typeof err.status !== "number") return;
@@ -2,8 +2,8 @@ import { r as WasmUtilProvider } from "./safeStorage-Ep56I-f_.esm.js";
2
2
  import { t as BrowserStorageProvider } from "./BrowserStorageProvider-k-FDkC4W.esm.js";
3
3
  import { n as eventModuleNames } from "./events-ethtfu2b.esm.js";
4
4
  import { o as createActor } from "./xstate.esm-Cf4e0Cfd.esm.js";
5
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-DXiHb5K5.esm.js";
6
- import { t as selfieMachine } from "./selfieStateMachine-DmcrK2Vm.esm.js";
5
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-XgV9yjtn.esm.js";
6
+ import { t as selfieMachine } from "./selfieStateMachine-bPv7LlHS.esm.js";
7
7
  //#region src/modules/selfie/selfieActor.ts
8
8
  function createSelfieActor(options) {
9
9
  const dependencies = options.dependencies ?? {
@@ -1,9 +1,9 @@
1
1
  import { r as assign } from "./xstate.esm-Cf4e0Cfd.esm.js";
2
2
  import { n as fromPromise } from "./xstate-actors.esm-CtI5S0f4.esm.js";
3
- import { t as faceCaptureMachine } from "./faceCaptureSetup-CrvkDJYo.esm.js";
4
- import { i as prepareOnDeviceFaceUpload, n as isOnDeviceMode, r as postOnDeviceFaceResults, t as defaultPrepareFaceUpload } from "./onDeviceFaceResults-C_VQPc0W.esm.js";
3
+ import { t as faceCaptureMachine } from "./faceCaptureSetup-CVS6IhMo.esm.js";
4
+ import { i as prepareOnDeviceFaceUpload, n as isOnDeviceMode, r as postOnDeviceFaceResults, t as defaultPrepareFaceUpload } from "./onDeviceFaceResults-DzrHstja.esm.js";
5
5
  import { t as FACE_ERROR_CODES } from "./types-BN5RPPIZ.esm.js";
6
- import { i as uploadSelfie, n as validateUploadResponse, r as processFace } from "./selfieErrorUtils-DggLa9pg.esm.js";
6
+ import { i as uploadSelfie, n as validateUploadResponse, r as processFace } from "./selfieErrorUtils-EEHiYwTi.esm.js";
7
7
  /**
8
8
  * The selfie capture state machine.
9
9
  *
@@ -1,9 +1,9 @@
1
1
  import { n as getApi } from "./api-Bx3gKW_y.esm.js";
2
- import { h as noteSessionCreated, l as trueSightLog } from "./trueSightService-C5I_Ofy4.esm.js";
3
- import "./sessionInitializer-C4v9OFr1.esm.js";
2
+ import { h as noteSessionCreated, l as trueSightLog } from "./trueSightService-CAM-jmTL.esm.js";
3
+ import "./sessionInitializer-67b35_K1.esm.js";
4
4
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
5
- import "./trueSight-a5onjsbx.esm.js";
6
- import { r as toIncodeApiError } from "./apiError-DOnx7LCu.esm.js";
5
+ import "./trueSight-C5D_RAuu.esm.js";
6
+ import { r as toIncodeApiError } from "./apiError-eRypMxcU.esm.js";
7
7
  //#region src/internal/session/sessionService.ts
8
8
  /**
9
9
  * HTTP status codes the QR validation endpoint emits, keyed by their semantic
@@ -1,5 +1,5 @@
1
- import { i as initializeSession } from "./sessionInitializer-C4v9OFr1.esm.js";
2
- import { t as IncodeApiError } from "./apiError-DOnx7LCu.esm.js";
3
- import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-DcYQOVD5.esm.js";
4
- import { n as getFinishStatus } from "./flowCompletionService-C8gB_xVc.esm.js";
1
+ import { i as initializeSession } from "./sessionInitializer-67b35_K1.esm.js";
2
+ import { t as IncodeApiError } from "./apiError-eRypMxcU.esm.js";
3
+ import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-DtiTFOeb.esm.js";
4
+ import { n as getFinishStatus } from "./flowCompletionService-B66s2grx.esm.js";
5
5
  export { IncodeApiError, QR_VALIDATION_ERROR_CODES, QrValidationError, bootstrapSession, createSession, getFinishStatus, initializeSession, refreshQrUrlUuid, validateQrUuid };
@@ -1,9 +1,9 @@
1
1
  import { _ as updateFeatureManagementUser } from "./feature-management-CFRmD8Nr.esm.js";
2
2
  import { c as setToken, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
3
- import { _ as noteTokenActivated, d as fetchFeatureConfig, f as isFeatureEnabled, l as trueSightLog, m as noteEnvironment, p as resetFeatureConfigCache, s as startTrueSightCollection, v as SDK_VERSION } from "./trueSightService-C5I_Ofy4.esm.js";
3
+ import { _ as noteTokenActivated, d as fetchFeatureConfig, f as isFeatureEnabled, l as trueSightLog, m as noteEnvironment, p as resetFeatureConfigCache, s as startTrueSightCollection, v as SDK_VERSION } from "./trueSightService-CAM-jmTL.esm.js";
4
4
  import { v as addEvent, y as getAnalyticsBatcher } from "./events-ethtfu2b.esm.js";
5
5
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
6
- import "./trueSight-a5onjsbx.esm.js";
6
+ import "./trueSight-C5D_RAuu.esm.js";
7
7
  import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue } from "./stats-B0nFKawG.esm.js";
8
8
  import { n as UAParser, t as getParsedUserAgent } from "./getParsedUserAgent-pJjATANs.esm.js";
9
9
  import { r as isIOS } from "./platform-Cd_yWGNG.esm.js";
@@ -5,14 +5,14 @@ import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.j
5
5
  import { b as resetEnvironment, d as initializeFeatureManagement, h as resetFeatureManagementProviderInstance, l as getIsFeatureManagementLocked, m as resetFeatureManagement, p as optOutFeatureManagement, v as applyEnvironment, y as getEnvironment } from "./feature-management-CFRmD8Nr.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
- import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, b as getStoredHttpConfig, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-C5I_Ofy4.esm.js";
8
+ import { C as upgradeToWasmHttpClient$1, S as resetHttpClientState, b as getStoredHttpConfig, g as noteTestingSignals, l as trueSightLog, n as initializeTrueSightDiagnostics, o as resetTrueSight, t as finalizeTrueSight, u as categoryForEndpoint, x as installFreshHttpClient } from "./trueSightService-CAM-jmTL.esm.js";
9
9
  import { b as resetAnalyticsBatcher, c as resetExperimentAssignments, x as setAnalyticsBatcher, y as getAnalyticsBatcher } from "./events-ethtfu2b.esm.js";
10
- import { a as resetSessionInit, d as resolveStandaloneFlowPolicy, f as setStandaloneFlowPolicy, i as initializeSession, l as registerFlowPreloader, o as setClientFingerprintEnabled, s as setClientIpLookupEnabled, u as resetStandaloneFlowPolicy, v as BrowserEnvironmentProvider } from "./sessionInitializer-C4v9OFr1.esm.js";
10
+ import { a as resetSessionInit, d as resolveStandaloneFlowPolicy, f as setStandaloneFlowPolicy, i as initializeSession, l as registerFlowPreloader, o as setClientFingerprintEnabled, s as setClientIpLookupEnabled, u as resetStandaloneFlowPolicy, v as BrowserEnvironmentProvider } from "./sessionInitializer-67b35_K1.esm.js";
11
11
  import { t as endpoints } from "./endpoints-CCzL3XD_.esm.js";
12
- import "./trueSight-a5onjsbx.esm.js";
12
+ import "./trueSight-C5D_RAuu.esm.js";
13
13
  import { r as resetDeviceStatsQueue, t as addDeviceStats } from "./stats-B0nFKawG.esm.js";
14
14
  import { a as resetTRI, n as initializeTRI, o as resetTRIProviderInstance } from "./tri-4RsGrIt6.esm.js";
15
- import { n as preloadDashboardFlow, r as resetDashboardFlowCache } from "./flowServices-BcOeV10R.esm.js";
15
+ import { n as preloadDashboardFlow, r as resetDashboardFlowCache } from "./flowServices-Dqeralkm.esm.js";
16
16
  //#region ../infra/src/providers/browser/BrowserPageLifecycleProvider.ts
17
17
  var BrowserPageLifecycleProvider = class {
18
18
  sendBeacon(url, body, contentType = "application/json") {
@@ -205,15 +205,17 @@ async function uploadVideoSelfiePart(session, partNumber, chunk) {
205
205
  };
206
206
  }
207
207
  /**
208
- * Finalizes the upload. `parts` must be in ascending `partNumber` order, or
209
- * S3 reassembly fails. The service already knows which parts it stored — the
210
- * list sent here is only cross-checked. Returns the server-reported status.
208
+ * Finalizes the upload. The service assembles from the parts it stored; the
209
+ * optional `parts` list is deliberately NOT sent — chunks staged below the
210
+ * S3 minimum are combined and renumbered server-side, so a client-side list
211
+ * could contradict the authoritative one. Safe to repeat if the response
212
+ * was lost. Returns the server-reported status. Rejects with `400` naming a
213
+ * missing part when the sequence has a hole.
211
214
  */
212
- async function completeVideoSelfieUpload(session, parts) {
215
+ async function completeVideoSelfieUpload(session) {
213
216
  return (await api.post(uploadUrl(endpoints.videoSelfieUploadComplete), {
214
217
  uploadId: session.uploadId,
215
- epoch: session.epoch,
216
- parts
218
+ epoch: session.epoch
217
219
  })).data.status;
218
220
  }
219
221
  /**
@@ -0,0 +1 @@
1
+ import "./trueSightService-CAM-jmTL.esm.js";
@@ -727,7 +727,7 @@ function epochMsToIsoString(epochMs) {
727
727
  }
728
728
  //#endregion
729
729
  //#region src/internal/version/sdkVersion.ts
730
- const SDK_VERSION = "0.0.0-dev-20260804-9b4fdd44";
730
+ const SDK_VERSION = "0.0.0-dev-20260804-aaf46585";
731
731
  //#endregion
732
732
  //#region src/internal/trueSight/recordBuilder.ts
733
733
  /**
@@ -4,12 +4,13 @@ import "./StateMachine-EDpYWy0i.js";
4
4
  import "./Actor-iTq7YY48.js";
5
5
  import { t as CameraStream } from "./camera-9wWD-pwg.js";
6
6
  import { t as DetectionOrientation } from "./IIdCaptureCapability-Cj_aceph.js";
7
- import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, o as VideoSelfieConfig, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-144x423X.js";
7
+ import { a as FacingMode, i as CameraCompositor, n as VideoSelfieDetectionStatus, o as VideoSelfieConfig, r as VideoSelfieValidationFailure, s as VideoSelfieStep, t as StepDetector } from "./videoSelfieStepDetector-OoiAbUo2.js";
8
8
  //#region src/internal/recordings/multipartRecordingService.d.ts
9
9
  type MultipartRecordingResult = {
10
10
  /**
11
11
  * The completed upload's id, or `null` if recording produced no parts, a
12
- * part upload failed, or finalization failed.
12
+ * chunk could not be delivered even after the retry rounds, or
13
+ * finalization failed.
13
14
  */
14
15
  recordingId: string | null;
15
16
  };
@@ -23,27 +24,37 @@ type MultipartRecordingResult = {
23
24
  * / `OpenViduRecordingService`) — it is the replacement for server-side
24
25
  * (OpenVidu) recording, not a sibling of it.
25
26
  *
26
- * Parts upload concurrently with recording, so `stop()` only flushes the final
27
- * part and finalizes — keeping the whole session inside the server's
28
- * video-selfie timeout regardless of length, with client memory bounded to
29
- * ~one part. No client-side encryption: video is encrypted at rest server-side
27
+ * Every ~1 s recorder blob uploads as its own chunk, concurrently with
28
+ * recording, through {@link VideoSelfieChunkUploader} (keep-until-ack +
29
+ * retry with backoff — see its doc for the full policy). The service stages
30
+ * sub-5 MiB chunks and combines them server-side, so `stop()` only drains
31
+ * the stragglers and finalizes; client memory holds un-acked chunks only.
32
+ * No client-side encryption: video is encrypted at rest server-side
30
33
  * (S3 SSE-AES-256).
31
34
  */
32
35
  declare class MultipartRecordingService {
33
36
  private recorder;
37
+ private timer;
34
38
  private session;
35
- private parts;
36
- private inflight;
37
- private uploadFailed;
39
+ private uploader;
40
+ private chunksEmitted;
38
41
  get isRecording(): boolean;
39
42
  start(stream: MediaStream): Promise<void>;
40
43
  stop(): Promise<MultipartRecordingResult>;
41
44
  cleanup(): void;
45
+ /**
46
+ * `complete` is idempotent server-side ("safe to repeat if the response
47
+ * was lost"), so transient failures — network errors, 5xx, 429 — retry a
48
+ * couple of times before the recording is declared failed. A 4xx (e.g.
49
+ * `400` naming a missing part) is permanent: after a clean drain every
50
+ * chunk was acked, so a reported hole cannot be filled from here.
51
+ */
52
+ private completeWithRetry;
42
53
  /**
43
54
  * Fire-and-forget abort: the upload can no longer complete, so tell the
44
55
  * backend to fail it immediately rather than at its expiry. Best-effort —
45
56
  * an abort that doesn't land (including a 409 from a newer epoch having
46
- * taken over) just means the server falls back to expiry.
57
+ * taken over) just means the server falls back to expiry or salvage.
47
58
  */
48
59
  private abandonUpload;
49
60
  }
@@ -58,6 +69,13 @@ type VideoSelfieRecordingDependencies = {
58
69
  /** Minimum time to hold the switching-camera screen before resuming capture. */
59
70
  switchingCameraMinDwellMs?: number;
60
71
  };
72
+ /**
73
+ * Why the module errored: `connection` means a transport-level failure the
74
+ * user can fix by getting back online (the UI shows the connection-error
75
+ * copy); `technical` is everything else (raw detail stays in `error` for
76
+ * diagnostics/hosts, the UI shows its generic fallback).
77
+ */
78
+ type VideoSelfieErrorKind = 'connection' | 'technical';
61
79
  //#endregion
62
80
  //#region src/modules/video-selfie/videoSelfieRecordingActor.d.ts
63
81
  type CreateVideoSelfieRecordingActorOptions = {
@@ -100,6 +118,12 @@ type VideoSelfieRecordingState = {
100
118
  recordingId: string | null;
101
119
  /** Failure detail, set when `status === 'error'`. */
102
120
  error: string | undefined;
121
+ /**
122
+ * Why the module errored: `connection` (transport failure — the UI shows
123
+ * the connection-error copy; raw detail stays in `error` for diagnostics)
124
+ * or `technical` (everything else). Set when `status === 'error'`.
125
+ */
126
+ errorKind: VideoSelfieErrorKind | undefined;
103
127
  };
104
128
  /**
105
129
  * Creates a manager for a multi-step, camera-switching Video Selfie recording.