@incodetech/core 0.0.0-dev-20260924-9aba82df → 0.0.0-dev-20260924-e9f5a050

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 (63) hide show
  1. package/dist/{BrowserDiagnosticsCryptoProvider-5RBhrTGS.esm.js → BrowserDiagnosticsCryptoProvider-BT5v_TqE.esm.js} +1 -1
  2. package/dist/{FaceDetectionProvider-7UfeT1dY.esm.js → FaceDetectionProvider-BuuArRWH.esm.js} +4 -4
  3. package/dist/ae-signature.esm.js +1 -1
  4. package/dist/{apiError-nVzKTbtn.esm.js → apiError-Ly5kgcPk.esm.js} +1 -1
  5. package/dist/authentication.esm.js +2 -2
  6. package/dist/{authenticationManager-BK21vHAC.esm.js → authenticationManager-Dymn736O.esm.js} +3 -3
  7. package/dist/{authenticationStateMachine-BEYORRNw.esm.js → authenticationStateMachine-DYmjk6b6.esm.js} +2 -2
  8. package/dist/consent.d.ts +1 -1
  9. package/dist/{consentManager-Cv_0QKLD.d.ts → consentManager-B8PXGCuW.d.ts} +8 -8
  10. package/dist/{deepsightLoader-CKSBVjR-.esm.js → deepsightLoader-DZ5jfHnI.esm.js} +3 -3
  11. package/dist/dynamic-forms.esm.js +2 -2
  12. package/dist/{dynamicFormsManager-CwISQDBz.esm.js → dynamicFormsManager-DzJQCyQQ.esm.js} +1 -1
  13. package/dist/{dynamicFormsStateMachine-BHrUB9NH.esm.js → dynamicFormsStateMachine-BliJsP_v.esm.js} +1 -1
  14. package/dist/ekyb.esm.js +3 -3
  15. package/dist/{ekybManager-RQYhWZsO.esm.js → ekybManager-D2mdXjsU.esm.js} +1 -1
  16. package/dist/{ekybStateMachine-EgA3HbIZ.esm.js → ekybStateMachine-4_zoq2CY.esm.js} +1 -1
  17. package/dist/electronic-signature.esm.js +1 -1
  18. package/dist/{electronicSignatureManager-V4TYaSvS.esm.js → electronicSignatureManager-CVhuhthS.esm.js} +1 -1
  19. package/dist/extensibility.d.ts +5 -5
  20. package/dist/extensibility.esm.js +10 -10
  21. package/dist/{faceCaptureManagerFactory-tDf-QZjq.esm.js → faceCaptureManagerFactory-C7SVm_ws.esm.js} +1 -1
  22. package/dist/{faceCaptureSetup-BelKNcJz.esm.js → faceCaptureSetup-DXZqcFhK.esm.js} +3 -3
  23. package/dist/{feature-management-DN4TxMxc.esm.js → feature-management-DC2LJ0ZF.esm.js} +1 -1
  24. package/dist/feature-management.esm.js +1 -1
  25. package/dist/flow.d.ts +1 -1
  26. package/dist/flow.esm.js +3 -3
  27. package/dist/{flowCompletionService-Dc67PpxA.esm.js → flowCompletionService-DL0JHvhJ.esm.js} +1 -1
  28. package/dist/{flowServices-B20jmlyf.esm.js → flowServices-CLloYVJf.esm.js} +4 -4
  29. package/dist/geolocation.esm.js +2 -2
  30. package/dist/{geolocationManager-CxoFV2vf.esm.js → geolocationManager-BJZqKgXo.esm.js} +1 -1
  31. package/dist/{geolocationStateMachine-DqgDRFKR.esm.js → geolocationStateMachine-CfaBaWDZ.esm.js} +1 -1
  32. package/dist/id-selfie-flow.esm.js +7 -7
  33. package/dist/id.d.ts +3 -3
  34. package/dist/id.esm.js +4 -4
  35. package/dist/{idCaptureDefaults-0fKD_ZnW.esm.js → idCaptureDefaults-DoeRxHF8.esm.js} +1 -1
  36. package/dist/{idCaptureManager-vKljsFdL.esm.js → idCaptureManager-9sJxnTNJ.esm.js} +3 -34
  37. package/dist/{idCaptureManager-BWzWmvEc.d.ts → idCaptureManager-BwCRMOUG.d.ts} +160 -2
  38. package/dist/{idCaptureServices-gm3rsyKd.esm.js → idCaptureServices-BzTcreOa.esm.js} +3 -3
  39. package/dist/{idCaptureStateMachine-BRFeInDT.esm.js → idCaptureStateMachine-BaB3MsWL.esm.js} +228 -12
  40. package/dist/identity-reuse.d.ts +1 -1
  41. package/dist/{identityReuseManager-x2QG6QAm.d.ts → identityReuseManager-D30b2UEC.d.ts} +4 -4
  42. package/dist/index.esm.js +1 -1
  43. package/dist/mandatory-consent.d.ts +1 -1
  44. package/dist/{mandatoryConsentManager-CTAa9lBQ.d.ts → mandatoryConsentManager-CMAyZpNe.d.ts} +4 -4
  45. package/dist/personhood.esm.js +4 -4
  46. package/dist/qe-signature.esm.js +1 -1
  47. package/dist/{runChildModule-Dr5CFawD.esm.js → runChildModule-BXmSYzH5.esm.js} +1 -1
  48. package/dist/{sdkVersion-CyhykVhu.esm.js → sdkVersion-BwSmsU1e.esm.js} +1 -1
  49. package/dist/selfie.esm.js +5 -5
  50. package/dist/{selfieManager-tuvIeNF7.esm.js → selfieManager-COimv2A_.esm.js} +3 -3
  51. package/dist/{selfieStateMachine-CL8gCuwx.esm.js → selfieStateMachine-CsrGamdm.esm.js} +2 -2
  52. package/dist/{session-4d1MA6e0.esm.js → session-CCmW6Mvk.esm.js} +3 -3
  53. package/dist/session.esm.js +4 -4
  54. package/dist/{sessionInitializer-DNyFwDBo.esm.js → sessionInitializer-Do2m7gBN.esm.js} +3 -3
  55. package/dist/{setup-DdHWj_DR.esm.js → setup-CBwTvRhV.esm.js} +4 -4
  56. package/dist/{trueSightService-BY4OYH9f.esm.js → trueSightService-DdGN8biX.esm.js} +2 -2
  57. package/dist/{types-Vh9cUnOR2.d.ts → types-H6yoTrWC2.d.ts} +8 -1
  58. package/dist/video-selfie.esm.js +4 -4
  59. package/dist/{videoSelfieCameraWarmer-BPu9VaIH.esm.js → videoSelfieCameraWarmer-DdS4LV7-.esm.js} +3 -3
  60. package/dist/wasm.esm.js +2 -2
  61. package/dist/workflow.d.ts +4 -4
  62. package/dist/workflow.esm.js +14 -14
  63. package/package.json +1 -1
@@ -12,7 +12,7 @@ import "./types-CfuWgAi-.js";
12
12
  import { n as DeepsightService } from "./StreamCanvasCapture-CeBBJ_RC.js";
13
13
  import { t as CameraStream } from "./camera-9wWD-pwg.js";
14
14
  import { i as Pdf417DecodeResult, n as IIdCaptureCapability, t as DetectionOrientation } from "./IIdCaptureCapability-DBsv9-7M.js";
15
- import { E as IdErrorCode, G as FailureReason, M as DeviceWalletFailReason, O as UploadIdResponse, P as DeviceWalletPlatform, W as DigitalIdProviderId, b as IdCaptureOnlyConfig, c as DetectionStatus, d as IdCaptureContext, f as IdCaptureDependencies, g as IdCaptureEvent, h as IdCaptureDigitalIdRedirectOption, i as CaptureIdResponse, k as IAnalyticsCapability, r as AddBarcodeV3Response, s as DetectionArea, t as AcceptedDocument, u as IdCaptureConfig, v as IdCaptureInput, w as IdDocumentType, x as IdCaptureOutput, y as IdCaptureMode } from "./types-Vh9cUnOR2.js";
15
+ import { A as DeviceWalletDecision, E as IdErrorCode, F as DeviceWalletProvider, G as DigitalIdProviderId, I as DeviceWalletServices, J as IDigitalCredentialsCapability, K as FailureReason, M as DeviceWalletFailReason, O as UploadIdResponse, P as DeviceWalletPlatform, b as IdCaptureOnlyConfig, c as DetectionStatus, d as IdCaptureContext, f as IdCaptureDependencies, g as IdCaptureEvent, h as IdCaptureDigitalIdRedirectOption, i as CaptureIdResponse, j as DeviceWalletDecryptResponse, k as IAnalyticsCapability, r as AddBarcodeV3Response, s as DetectionArea, t as AcceptedDocument, u as IdCaptureConfig, v as IdCaptureInput, w as IdDocumentType, x as IdCaptureOutput, y as IdCaptureMode } from "./types-H6yoTrWC2.js";
16
16
  //#region ../infra/src/providers/wasm/WasmUtilProvider.d.ts
17
17
  declare class WasmUtilProvider extends BaseWasmProvider implements IWasmUtilCapability {
18
18
  private static instance;
@@ -197,6 +197,164 @@ declare function createIdCaptureOnlyActor(options: CreateIdCaptureOnlyActorOptio
197
197
  //#region src/modules/id/digitalUpload/types.d.ts
198
198
  type DigitalUploadFailReason = 'DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED' | 'ID_TYPE_UNACCEPTABLE' | 'FILE_CHANGED_ERROR' | 'INVALID_FILE_TYPE' | 'NETWORK_ERROR' | 'GENERIC';
199
199
  //#endregion
200
+ //#region src/modules/id/deviceWallet/deviceWalletActor.d.ts
201
+ type CreateDeviceWalletActorOptions = {
202
+ /**
203
+ * Force a wallet backend. Omit to auto-detect from the device
204
+ * (`apple_web` on iOS/iPadOS and macOS Safari, `google` elsewhere).
205
+ */
206
+ provider?: DeviceWalletProvider;
207
+ /** Override the Digital Credentials capability (tests, custom hosts). */
208
+ credentials?: IDigitalCredentialsCapability;
209
+ /** Override the request/decrypt services (tests, custom backends). */
210
+ services?: DeviceWalletServices;
211
+ };
212
+ //#endregion
213
+ //#region src/modules/id/deviceWallet/deviceWalletManager.d.ts
214
+ /** The backend wallet-request payload is being fetched. */
215
+ type DeviceWalletRequestingState = {
216
+ status: 'requesting';
217
+ platform: DeviceWalletPlatform;
218
+ };
219
+ /**
220
+ * The OS wallet sheet is open. Reached only from a user gesture — iOS Safari
221
+ * requires transient user activation for `navigator.credentials.get()`.
222
+ */
223
+ type DeviceWalletPresentingState = {
224
+ status: 'presenting';
225
+ platform: DeviceWalletPlatform;
226
+ };
227
+ /** The opaque wallet response is being decrypted server-side. */
228
+ type DeviceWalletDecryptingState = {
229
+ status: 'decrypting';
230
+ platform: DeviceWalletPlatform;
231
+ };
232
+ /**
233
+ * The handshake completed. A `REJECTED` decision is still a completed
234
+ * handshake — the decision is data, not a failure.
235
+ *
236
+ * The verified ID attributes are NOT here: they land in the session and are
237
+ * read back through the standard OCR / score APIs.
238
+ */
239
+ type DeviceWalletFinishedState = {
240
+ status: 'finished';
241
+ platform: DeviceWalletPlatform;
242
+ decision: DeviceWalletDecision | undefined;
243
+ response: DeviceWalletDecryptResponse;
244
+ };
245
+ /** Recoverable failure — call `retry()` or `useAnotherMethod()`. */
246
+ type DeviceWalletFailedState = {
247
+ status: 'failed';
248
+ platform: DeviceWalletPlatform;
249
+ reason: DeviceWalletFailReason;
250
+ };
251
+ /** The consumer gave up on the wallet (`useAnotherMethod()`). */
252
+ type DeviceWalletClosedState = {
253
+ status: 'closed';
254
+ platform: DeviceWalletPlatform;
255
+ };
256
+ /**
257
+ * Union of every public device-wallet state.
258
+ *
259
+ * @example
260
+ * ```typescript
261
+ * const state = manager.getState();
262
+ * if (state.status === 'finished') console.log(state.decision);
263
+ * if (state.status === 'failed') console.log(state.reason);
264
+ * ```
265
+ */
266
+ type DeviceWalletState = DeviceWalletRequestingState | DeviceWalletPresentingState | DeviceWalletDecryptingState | DeviceWalletFinishedState | DeviceWalletFailedState | DeviceWalletClosedState;
267
+ /**
268
+ * Creates a headless device-wallet (mDL) manager — the V2 equivalent of V1's
269
+ * `renderWallet`, with the intermediate states observable.
270
+ *
271
+ * Runs the Apple Wallet (web) / Google Wallet handshake with zero Incode UI,
272
+ * so integrators trigger it from their own button and render their own UX.
273
+ * Call it from a user gesture: iOS Safari requires transient user activation
274
+ * for `navigator.credentials.get()`.
275
+ *
276
+ * Requires an initialized session (`setup({ apiURL, token })`) — the request
277
+ * and decrypt calls are session-scoped.
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * import { setup } from '@incodetech/core';
282
+ * import { createDeviceWalletManager } from '@incodetech/core/id';
283
+ *
284
+ * setup({ apiURL, token });
285
+ *
286
+ * button.addEventListener('click', () => {
287
+ * const manager = createDeviceWalletManager();
288
+ * manager.subscribe((state) => {
289
+ * if (state.status === 'finished') manager.stop();
290
+ * if (state.status === 'failed') console.error(state.reason);
291
+ * });
292
+ * });
293
+ * ```
294
+ */
295
+ declare function createDeviceWalletManager(options?: CreateDeviceWalletActorOptions): Manager<DeviceWalletState> & {
296
+ /** Restarts the handshake after a failure. Needs a fresh user gesture. */
297
+ retry(): void;
298
+ /**
299
+ * Abandons the wallet path from a failure and moves the manager to
300
+ * `closed`, so the consumer can fall back to a camera ID capture.
301
+ */
302
+ useAnotherMethod(): void;
303
+ };
304
+ type DeviceWalletManager = ReturnType<typeof createDeviceWalletManager>;
305
+ //#endregion
306
+ //#region src/modules/id/deviceWallet/renderWallet.d.ts
307
+ /**
308
+ * Failure handed to `onError`. Mirrors V1's `DigitalIdWalletError` — `code`
309
+ * carries the same three values V1 used (`UNSUPPORTED_PLATFORM`,
310
+ * `NO_CREDENTIAL`, `WALLET_ERROR`).
311
+ */
312
+ type RenderWalletError = {
313
+ code: DeviceWalletFailReason;
314
+ message: string;
315
+ };
316
+ type RenderWalletParams = CreateDeviceWalletActorOptions & {
317
+ /**
318
+ * The handshake completed. Carries the decrypt response (with its
319
+ * `decision`), never `null` — an empty wallet is reported through
320
+ * `onError(NO_CREDENTIAL)`.
321
+ */
322
+ onSuccess: (result: DeviceWalletDecryptResponse) => void;
323
+ onError: (error: RenderWalletError) => void;
324
+ };
325
+ /**
326
+ * Headless device-wallet (mDL) API — the V1 `renderWallet` shape, ported.
327
+ *
328
+ * Runs the Apple Wallet (web) / Google Wallet handshake with zero Incode UI,
329
+ * so integrators trigger it from their own button and render their own UX.
330
+ * Resolves once the handshake settles; the outcome arrives through
331
+ * `onSuccess` / `onError` exactly as in V1.
332
+ *
333
+ * MUST be called from a user gesture (e.g. a click handler) — iOS/Safari
334
+ * requires transient user activation for `navigator.credentials.get()` to
335
+ * present the wallet sheet.
336
+ *
337
+ * Requires an initialized session (`setup({ apiURL, token })`). The verified
338
+ * attributes are NOT returned here: they land in the session and are read back
339
+ * through the standard OCR / score APIs. `onSuccess` receives the submission
340
+ * decision/status.
341
+ *
342
+ * Prefer {@link createDeviceWalletManager} for new integrations — it exposes
343
+ * the intermediate `requesting` / `presenting` / `decrypting` states (and a
344
+ * `retry()`), which this one-shot wrapper collapses.
345
+ *
346
+ * @example
347
+ * ```typescript
348
+ * button.addEventListener('click', () => {
349
+ * void renderWallet({
350
+ * onSuccess: (result) => console.log(result.decision),
351
+ * onError: (error) => console.error(error.code, error.message),
352
+ * });
353
+ * });
354
+ * ```
355
+ */
356
+ declare function renderWallet({ onSuccess, onError, ...actorOptions }: RenderWalletParams): Promise<void>;
357
+ //#endregion
200
358
  //#region src/internal/idCapture/idCaptureManagerFactory.d.ts
201
359
  type CaptureStatus = 'initializing' | 'detecting' | 'capturing' | 'holdOn' | 'optimizing' | 'uploading' | 'uploadError' | 'success';
202
360
  type IdCaptureIdleState = {
@@ -583,4 +741,4 @@ declare function createIdCaptureManager(options: CreateIdCaptureActorOptions): M
583
741
  deviceWalletUseAnotherMethod(): void;
584
742
  };
585
743
  //#endregion
586
- export { processId as A, barcodeToBase64 as C, initializeIdCapture as D, getRealQualityValue as E, validateUploadResponse as F, WasmUtilProvider as I, stopRecording as M, stopStream as N, pauseRecordingForAttempt as O, uploadIdImage as P, addBarcode as S, finalizeRecordingSession as T, IdCaptureInitResult as _, CreateIdCaptureOnlyActorOptions as a, UploadIdImageParams as b, IdCaptureOnlyMachine as c, IdCaptureActor as d, createIdCaptureActor as f, FinalizedIdRecording as g, AddBarcodeParams as h, createIdCaptureManagerFromActor as i, startRecordingSession as j, prepareRecordingForCameraRetry as k, idCaptureOnlyMachine as l, idCaptureMachine as m, IdCaptureManager as n, IdCaptureOnlyActor as o, IdCaptureMachine as p, IdCaptureState as r, createIdCaptureOnlyActor as s, createIdCaptureManager as t, CreateIdCaptureActorOptions as u, InitializeIdCaptureParams as v, disposeRecordingSession as w, ValidationError as x, StartRecordingParams as y };
744
+ export { barcodeToBase64 as A, stopStream as B, FinalizedIdRecording as C, UploadIdImageParams as D, StartRecordingParams as E, pauseRecordingForAttempt as F, validateUploadResponse as H, prepareRecordingForCameraRetry as I, processId as L, finalizeRecordingSession as M, getRealQualityValue as N, ValidationError as O, initializeIdCapture as P, startRecordingSession as R, AddBarcodeParams as S, InitializeIdCaptureParams as T, WasmUtilProvider as U, uploadIdImage as V, CreateIdCaptureActorOptions as _, RenderWalletError as a, IdCaptureMachine as b, DeviceWalletManager as c, CreateDeviceWalletActorOptions as d, CreateIdCaptureOnlyActorOptions as f, idCaptureOnlyMachine as g, IdCaptureOnlyMachine as h, createIdCaptureManagerFromActor as i, disposeRecordingSession as j, addBarcode as k, DeviceWalletState as l, createIdCaptureOnlyActor as m, IdCaptureManager as n, RenderWalletParams as o, IdCaptureOnlyActor as p, IdCaptureState as r, renderWallet as s, createIdCaptureManager as t, createDeviceWalletManager as u, IdCaptureActor as v, IdCaptureInitResult as w, idCaptureMachine as x, createIdCaptureActor as y, stopRecording as z };
@@ -1,5 +1,5 @@
1
- import { t as ensureWasmPipelines } from "./setup-DdHWj_DR.esm.js";
2
- import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-DN4TxMxc.esm.js";
1
+ import { t as ensureWasmPipelines } from "./setup-CBwTvRhV.esm.js";
2
+ import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-DC2LJ0ZF.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";
@@ -9,7 +9,7 @@ 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-0fKD_ZnW.esm.js";
12
+ import { i as CameraCompositor, n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-DoeRxHF8.esm.js";
13
13
  //#region src/internal/camera/cameraServices.ts
14
14
  function createCameraServices(camera) {
15
15
  return {
@@ -1,17 +1,17 @@
1
- import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-BY4OYH9f.esm.js";
1
+ import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-DdGN8biX.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-DdHWj_DR.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-CBwTvRhV.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { s as exposeExperimentOnce } from "./feature-management-DN4TxMxc.esm.js";
5
+ import { s as exposeExperimentOnce } from "./feature-management-DC2LJ0ZF.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
- import { n as eventModuleNames, s as recordExperimentAssignmentOnce } from "./events-ijlbX_Wx.esm.js";
9
- import { t as getDisableIpify } from "./sessionInitializer-DNyFwDBo.esm.js";
8
+ import { n as eventModuleNames, o as createManagerInstrumentation, s as recordExperimentAssignmentOnce } from "./events-ijlbX_Wx.esm.js";
9
+ import { t as getDisableIpify } from "./sessionInitializer-Do2m7gBN.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-4d1MA6e0.esm.js";
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";
13
+ import "./session-CCmW6Mvk.esm.js";
14
+ import { c as not, i as assign, l as raise, n as enqueueActions, o as and, r as sendTo, s as createActor, t as setup, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
15
15
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
16
16
  import { n as getUrlSearchParam, t as buildUrlWithSearchParams } from "./urlUtils-D6phjq1-.esm.js";
17
17
  import { r as getCameraReacquisitionConstraints } from "./camera-sIa9ceW2.esm.js";
@@ -24,8 +24,8 @@ 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-0fKD_ZnW.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-gm3rsyKd.esm.js";
27
+ import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-DoeRxHF8.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-BzTcreOa.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"]);
@@ -529,6 +529,222 @@ function resolveWalletPlatform(provider) {
529
529
  return isIOS() || isMacOsSafari() || isIPad() ? "ios" : "android";
530
530
  }
531
531
  //#endregion
532
+ //#region src/modules/id/deviceWallet/instrumentation.ts
533
+ /**
534
+ * Maps a device-wallet child-machine snapshot to a tracked screen name.
535
+ * Family is `deviceWallet.*` — emitted cross-family under the parent
536
+ * `idCapture` module token, same as `mapDigitalIdScreenName`. See
537
+ * `docs/patterns/INSTRUMENTATION.md`.
538
+ */
539
+ function mapDeviceWalletScreenName(value, failReason) {
540
+ if (value === "presenting") return "deviceWallet.wallet.default";
541
+ if (value === "failed") {
542
+ if (failReason === "NO_CREDENTIAL") return "deviceWallet.error.nocredential";
543
+ if (failReason === "UNSUPPORTED_PLATFORM") return "deviceWallet.error.unsupported";
544
+ return "deviceWallet.error.default";
545
+ }
546
+ return "deviceWallet.loading.default";
547
+ }
548
+ //#endregion
549
+ //#region ../infra/src/providers/browser/BrowserDigitalCredentialsProvider.ts
550
+ var BrowserDigitalCredentialsProvider = class {
551
+ isAvailable() {
552
+ return typeof navigator !== "undefined" && typeof navigator.credentials?.get === "function" && typeof globalThis.DigitalCredential !== "undefined";
553
+ }
554
+ async get(request, options) {
555
+ return { response: (await navigator.credentials.get({
556
+ mediation: "required",
557
+ signal: options?.signal,
558
+ digital: { requests: [request] }
559
+ }))?.data?.response };
560
+ }
561
+ };
562
+ //#endregion
563
+ //#region src/modules/id/deviceWallet/deviceWalletActor.ts
564
+ /**
565
+ * Starts a device-wallet actor for headless use. The ID-Capture parent invokes
566
+ * `deviceWalletMachine` itself (and resolves the platform through the
567
+ * digital-ID funnel); this factory is the standalone entry point for
568
+ * integrators driving the wallet handshake on their own.
569
+ */
570
+ function createDeviceWalletActor(options = {}) {
571
+ return createActor(deviceWalletMachine, { input: {
572
+ platform: resolveWalletPlatform(options.provider),
573
+ credentials: options.credentials ?? new BrowserDigitalCredentialsProvider(),
574
+ services: options.services
575
+ } }).start();
576
+ }
577
+ //#endregion
578
+ //#region src/modules/id/deviceWallet/deviceWalletManager.ts
579
+ /**
580
+ * Absolute tracked-screen name for a device-wallet snapshot. Emitted verbatim
581
+ * on `event.screen` under the parent `idCapture` module token — the wallet is
582
+ * an ID-Capture sub-flow, so it does not own an analytics module of its own
583
+ * (see `docs/patterns/INSTRUMENTATION.md`).
584
+ */
585
+ function getDeviceWalletScreenName(snapshot) {
586
+ return mapDeviceWalletScreenName(snapshot.value, snapshot.context?.failReason ?? null);
587
+ }
588
+ function mapState(snapshot) {
589
+ const typedSnapshot = snapshot;
590
+ const { context } = typedSnapshot;
591
+ const { platform } = context;
592
+ if (typedSnapshot.matches("presenting")) return {
593
+ status: "presenting",
594
+ platform
595
+ };
596
+ if (typedSnapshot.matches("decrypting")) return {
597
+ status: "decrypting",
598
+ platform
599
+ };
600
+ if (typedSnapshot.matches("finished") && context.response) return {
601
+ status: "finished",
602
+ platform,
603
+ decision: context.response.decision,
604
+ response: context.response
605
+ };
606
+ if (typedSnapshot.matches("failed")) return {
607
+ status: "failed",
608
+ platform,
609
+ reason: context.failReason ?? "WALLET_ERROR"
610
+ };
611
+ if (typedSnapshot.matches("closed")) return {
612
+ status: "closed",
613
+ platform
614
+ };
615
+ return {
616
+ status: "requesting",
617
+ platform
618
+ };
619
+ }
620
+ function createApi({ actor, trackElementClicked }) {
621
+ return {
622
+ /** Restarts the handshake after a failure. Needs a fresh user gesture. */
623
+ retry() {
624
+ trackElementClicked?.("retry");
625
+ actor.send({ type: "RETRY" });
626
+ },
627
+ /**
628
+ * Abandons the wallet path from a failure and moves the manager to
629
+ * `closed`, so the consumer can fall back to a camera ID capture.
630
+ */
631
+ useAnotherMethod() {
632
+ trackElementClicked?.("useAnotherMethod");
633
+ actor.send({ type: "USE_ANOTHER_METHOD" });
634
+ }
635
+ };
636
+ }
637
+ /**
638
+ * Creates a headless device-wallet (mDL) manager — the V2 equivalent of V1's
639
+ * `renderWallet`, with the intermediate states observable.
640
+ *
641
+ * Runs the Apple Wallet (web) / Google Wallet handshake with zero Incode UI,
642
+ * so integrators trigger it from their own button and render their own UX.
643
+ * Call it from a user gesture: iOS Safari requires transient user activation
644
+ * for `navigator.credentials.get()`.
645
+ *
646
+ * Requires an initialized session (`setup({ apiURL, token })`) — the request
647
+ * and decrypt calls are session-scoped.
648
+ *
649
+ * @example
650
+ * ```typescript
651
+ * import { setup } from '@incodetech/core';
652
+ * import { createDeviceWalletManager } from '@incodetech/core/id';
653
+ *
654
+ * setup({ apiURL, token });
655
+ *
656
+ * button.addEventListener('click', () => {
657
+ * const manager = createDeviceWalletManager();
658
+ * manager.subscribe((state) => {
659
+ * if (state.status === 'finished') manager.stop();
660
+ * if (state.status === 'failed') console.error(state.reason);
661
+ * });
662
+ * });
663
+ * ```
664
+ */
665
+ function createDeviceWalletManager(options = {}) {
666
+ return createDeviceWalletManagerFromActor(createDeviceWalletActor(options));
667
+ }
668
+ /**
669
+ * Creates a device-wallet manager from a pre-built actor. Use this when
670
+ * overriding the machine via `.provide()` for custom backends or tests.
671
+ */
672
+ function createDeviceWalletManagerFromActor(actor) {
673
+ return createManager({
674
+ actor,
675
+ mapState,
676
+ createApi,
677
+ instrumentation: createManagerInstrumentation(eventModuleNames.idCapture, { getEventScreenName: getDeviceWalletScreenName })
678
+ });
679
+ }
680
+ //#endregion
681
+ //#region src/modules/id/deviceWallet/renderWallet.ts
682
+ const FAIL_MESSAGES = {
683
+ UNSUPPORTED_PLATFORM: "Device wallet is not supported on this platform/browser",
684
+ NO_CREDENTIAL: "The wallet returned no digital ID credential",
685
+ WALLET_ERROR: "Device wallet request failed"
686
+ };
687
+ /**
688
+ * Headless device-wallet (mDL) API — the V1 `renderWallet` shape, ported.
689
+ *
690
+ * Runs the Apple Wallet (web) / Google Wallet handshake with zero Incode UI,
691
+ * so integrators trigger it from their own button and render their own UX.
692
+ * Resolves once the handshake settles; the outcome arrives through
693
+ * `onSuccess` / `onError` exactly as in V1.
694
+ *
695
+ * MUST be called from a user gesture (e.g. a click handler) — iOS/Safari
696
+ * requires transient user activation for `navigator.credentials.get()` to
697
+ * present the wallet sheet.
698
+ *
699
+ * Requires an initialized session (`setup({ apiURL, token })`). The verified
700
+ * attributes are NOT returned here: they land in the session and are read back
701
+ * through the standard OCR / score APIs. `onSuccess` receives the submission
702
+ * decision/status.
703
+ *
704
+ * Prefer {@link createDeviceWalletManager} for new integrations — it exposes
705
+ * the intermediate `requesting` / `presenting` / `decrypting` states (and a
706
+ * `retry()`), which this one-shot wrapper collapses.
707
+ *
708
+ * @example
709
+ * ```typescript
710
+ * button.addEventListener('click', () => {
711
+ * void renderWallet({
712
+ * onSuccess: (result) => console.log(result.decision),
713
+ * onError: (error) => console.error(error.code, error.message),
714
+ * });
715
+ * });
716
+ * ```
717
+ */
718
+ function renderWallet({ onSuccess, onError, ...actorOptions }) {
719
+ return new Promise((resolve) => {
720
+ const manager = createDeviceWalletManager(actorOptions);
721
+ const subscription = {};
722
+ let settled = false;
723
+ const settle = (state) => {
724
+ if (state.status === "requesting" || state.status === "presenting" || state.status === "decrypting") return false;
725
+ settled = true;
726
+ subscription.unsubscribe?.();
727
+ manager.stop();
728
+ if (state.status === "finished") onSuccess(state.response);
729
+ else if (state.status === "failed") onError({
730
+ code: state.reason,
731
+ message: FAIL_MESSAGES[state.reason]
732
+ });
733
+ else onError({
734
+ code: "WALLET_ERROR",
735
+ message: FAIL_MESSAGES.WALLET_ERROR
736
+ });
737
+ resolve();
738
+ return true;
739
+ };
740
+ if (settle(manager.getState())) return;
741
+ subscription.unsubscribe = manager.subscribe((state) => {
742
+ if (settled) return;
743
+ settle(state);
744
+ });
745
+ });
746
+ }
747
+ //#endregion
532
748
  //#region src/modules/id/idCaptureGuards.ts
533
749
  function getPermissionOutput(event) {
534
750
  if (!("output" in event)) return;
@@ -1180,7 +1396,7 @@ fromPromise(async ({ input }) => {
1180
1396
  });
1181
1397
  fromPromise(async ({ input }) => {
1182
1398
  if (!input.dependencies) return;
1183
- const { loadDeepsightSession } = await import("./deepsightLoader-CKSBVjR-.esm.js");
1399
+ const { loadDeepsightSession } = await import("./deepsightLoader-DZ5jfHnI.esm.js");
1184
1400
  return loadDeepsightSession({
1185
1401
  ds: input.ds,
1186
1402
  storage: input.dependencies.storage,
@@ -1623,7 +1839,7 @@ function cleanup(service) {
1623
1839
  service.cleanup();
1624
1840
  } catch {}
1625
1841
  }
1626
- function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-CKSBVjR-.esm.js")).loadDeepsightSession(input)) {
1842
+ function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-DZ5jfHnI.esm.js")).loadDeepsightSession(input)) {
1627
1843
  let disposed = false;
1628
1844
  let preparation;
1629
1845
  let service;
@@ -5061,4 +5277,4 @@ function provideIdProtectedCaptureController(machine, controller) {
5061
5277
  });
5062
5278
  }
5063
5279
  //#endregion
5064
- export { isRedirectFlowType as a, createIdCaptureOnlyDeliveryActor as c, resolveWalletPlatform as d, DIGITAL_ID_REGISTRY as i, createIdProtectedCaptureController as l, provideIdProtectedCaptureController as n, resolveDigitalIdImplementation as o, DIGITAL_ID_DOCUMENT_TYPES as r, attachIdProtectedCaptureController as s, idCaptureMachine as t, findIdProtectedCaptureController as u };
5280
+ export { isRedirectFlowType as a, createIdCaptureOnlyDeliveryActor as c, renderWallet as d, createDeviceWalletManager as f, resolveWalletPlatform as h, DIGITAL_ID_REGISTRY as i, createIdProtectedCaptureController as l, mapDeviceWalletScreenName as m, provideIdProtectedCaptureController as n, resolveDigitalIdImplementation as o, BrowserDigitalCredentialsProvider as p, DIGITAL_ID_DOCUMENT_TYPES as r, attachIdProtectedCaptureController as s, idCaptureMachine as t, findIdProtectedCaptureController as u };
@@ -1,2 +1,2 @@
1
- import { c as identityReuseMachine, d as ReusableDocument, f as SubmitResponse, i as createIdentityReuseManagerFromActor, l as FetchDocumentsResponse, n as IdentityReuseState, o as SCAN_NEW_DOCUMENT, r as createIdentityReuseManager, s as SelectedDocumentId, t as IdentityReuseManager, u as IdentityReuseConfig } from "./identityReuseManager-x2QG6QAm.js";
1
+ import { c as identityReuseMachine, d as ReusableDocument, f as SubmitResponse, i as createIdentityReuseManagerFromActor, l as FetchDocumentsResponse, n as IdentityReuseState, o as SCAN_NEW_DOCUMENT, r as createIdentityReuseManager, s as SelectedDocumentId, t as IdentityReuseManager, u as IdentityReuseConfig } from "./identityReuseManager-D30b2UEC.js";
2
2
  export { type FetchDocumentsResponse, type IdentityReuseConfig, type IdentityReuseManager, type IdentityReuseState, type ReusableDocument, SCAN_NEW_DOCUMENT, type SelectedDocumentId, type SubmitResponse, createIdentityReuseManager, createIdentityReuseManagerFromActor, identityReuseMachine };
@@ -107,14 +107,14 @@ declare const identityReuseMachine: StateMachine<IdentityReuseContext, {
107
107
  type: "setError";
108
108
  params: NonReducibleUnknown;
109
109
  };
110
- setSelectedDocument: {
111
- type: "setSelectedDocument";
112
- params: NonReducibleUnknown;
113
- };
114
110
  clearError: {
115
111
  type: "clearError";
116
112
  params: NonReducibleUnknown;
117
113
  };
114
+ setSelectedDocument: {
115
+ type: "setSelectedDocument";
116
+ params: NonReducibleUnknown;
117
+ };
118
118
  }>, Values<{
119
119
  hasDocuments: {
120
120
  type: "hasDocuments";
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as reset, r as isConfigured, s as setup } from "./setup-DdHWj_DR.esm.js";
1
+ import { i as reset, r as isConfigured, s as setup } from "./setup-CBwTvRhV.esm.js";
2
2
  export { isConfigured, reset, setup };
@@ -1,3 +1,3 @@
1
1
  import { r as MandatoryConsentConfig } from "./types-C--rKe_Y.js";
2
- import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-CTAa9lBQ.js";
2
+ import { a as MandatoryConsentActor, i as createMandatoryConsentManagerFromActor, n as MandatoryConsentState, o as mandatoryConsentMachine, r as createMandatoryConsentManager, t as MandatoryConsentManager } from "./mandatoryConsentManager-CMAyZpNe.js";
3
3
  export { type MandatoryConsentActor, type MandatoryConsentConfig, type MandatoryConsentManager, type MandatoryConsentState, createMandatoryConsentManager, createMandatoryConsentManagerFromActor, mandatoryConsentMachine };
@@ -60,14 +60,14 @@ declare const mandatoryConsentMachine: StateMachine<MandatoryConsentContext, {
60
60
  type: "clearError";
61
61
  params: NonReducibleUnknown;
62
62
  };
63
- toggleSigned: {
64
- type: "toggleSigned";
65
- params: NonReducibleUnknown;
66
- };
67
63
  resetContext: {
68
64
  type: "resetContext";
69
65
  params: NonReducibleUnknown;
70
66
  };
67
+ toggleSigned: {
68
+ type: "toggleSigned";
69
+ params: NonReducibleUnknown;
70
+ };
71
71
  }>, {
72
72
  type: "canSubmit";
73
73
  params: unknown;
@@ -1,16 +1,16 @@
1
- import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-BY4OYH9f.esm.js";
1
+ import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-DdGN8biX.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-DdHWj_DR.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-CBwTvRhV.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-DNyFwDBo.esm.js";
7
+ import { b as BrowserEnvironmentProvider, h as isBrowserSimulation, n as getFingerprintEnabled, v as getThumbmarkId, y as getDeviceFingerprintInfo } from "./sessionInitializer-Do2m7gBN.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
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-7UfeT1dY.esm.js";
13
+ import { i as initializeDeepsightSession, o as startDetection, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-BuuArRWH.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-V4TYaSvS.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-CVhuhthS.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-BY4OYH9f.esm.js";
1
+ import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-DdGN8biX.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-20260924-9aba82df";
2
+ const SDK_VERSION = "0.0.0-dev-20260924-e9f5a050";
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-DdHWj_DR.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-CBwTvRhV.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-BelKNcJz.esm.js";
7
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-tDf-QZjq.esm.js";
6
+ import { n as createDefaultProtectedFaceControllerActor, t as faceCaptureMachine } from "./faceCaptureSetup-DXZqcFhK.esm.js";
7
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-C7SVm_ws.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-CL8gCuwx.esm.js";
11
- import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-tuvIeNF7.esm.js";
10
+ import { t as selfieMachine } from "./selfieStateMachine-CsrGamdm.esm.js";
11
+ import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-COimv2A_.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-DdHWj_DR.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-CBwTvRhV.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-tDf-QZjq.esm.js";
6
- import { t as selfieMachine } from "./selfieStateMachine-CL8gCuwx.esm.js";
5
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-C7SVm_ws.esm.js";
6
+ import { t as selfieMachine } from "./selfieStateMachine-CsrGamdm.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-BelKNcJz.esm.js";
4
- import { c as isOnDeviceMode } from "./FaceDetectionProvider-7UfeT1dY.esm.js";
3
+ import { t as faceCaptureMachine } from "./faceCaptureSetup-DXZqcFhK.esm.js";
4
+ import { c as isOnDeviceMode } from "./FaceDetectionProvider-BuuArRWH.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-BY4OYH9f.esm.js";
1
+ import { g as noteSessionCreated, l as trueSightLog } from "./trueSightService-DdGN8biX.esm.js";
2
2
  import { n as getApi } from "./api-Bx3gKW_y.esm.js";
3
- import "./sessionInitializer-DNyFwDBo.esm.js";
3
+ import "./sessionInitializer-Do2m7gBN.esm.js";
4
4
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
5
- import { i as toIncodeApiError } from "./apiError-nVzKTbtn.esm.js";
5
+ import { i as toIncodeApiError } from "./apiError-Ly5kgcPk.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