@incodetech/core 0.0.0-dev-20260923-b02a604b → 0.0.0-dev-20260923-1a4dbec8

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 (67) hide show
  1. package/dist/{BrowserDiagnosticsCryptoProvider-BbzXpsEC.esm.js → BrowserDiagnosticsCryptoProvider-B5poAx1_.esm.js} +1 -1
  2. package/dist/{FaceDetectionProvider-Dhsd1bta.esm.js → FaceDetectionProvider-Ydsahps4.esm.js} +4 -4
  3. package/dist/ae-signature.esm.js +1 -1
  4. package/dist/{apiError-DB2-l78R.esm.js → apiError-B5izenZ8.esm.js} +1 -1
  5. package/dist/authentication.esm.js +2 -2
  6. package/dist/{authenticationManager-WZa0YWtA.esm.js → authenticationManager-xf4GoLxc.esm.js} +3 -3
  7. package/dist/{authenticationStateMachine-DUFndYPs.esm.js → authenticationStateMachine-BkvMIijO.esm.js} +2 -2
  8. package/dist/consent.d.ts +1 -1
  9. package/dist/{consentManager-CTdFloVJ.d.ts → consentManager-DlA1jDLP.d.ts} +5 -5
  10. package/dist/{deepsightLoader-B-RhfysI.esm.js → deepsightLoader-L0JGAPDe.esm.js} +3 -3
  11. package/dist/document-capture.d.ts +1 -1
  12. package/dist/{documentCaptureManager-C8eO0hbv.d.ts → documentCaptureManager-CbAGkHWh.d.ts} +1 -1
  13. package/dist/dynamic-forms.esm.js +2 -2
  14. package/dist/{dynamicFormsManager-C5i6tvit.esm.js → dynamicFormsManager-l_3MYzBs.esm.js} +1 -1
  15. package/dist/{dynamicFormsStateMachine-BAnPrrwx.esm.js → dynamicFormsStateMachine-DOF7ba6-.esm.js} +1 -1
  16. package/dist/ekyb.esm.js +3 -3
  17. package/dist/{ekybManager-CSlS2-G9.esm.js → ekybManager-lxNzE1kk.esm.js} +1 -1
  18. package/dist/{ekybStateMachine-DbDpZfls.esm.js → ekybStateMachine-DNBBT-S9.esm.js} +1 -1
  19. package/dist/electronic-signature.esm.js +1 -1
  20. package/dist/{electronicSignatureManager-BRgVS6Ix.esm.js → electronicSignatureManager-COJYfU0x.esm.js} +1 -1
  21. package/dist/extensibility.d.ts +7 -7
  22. package/dist/extensibility.esm.js +10 -10
  23. package/dist/{faceCaptureManagerFactory-DdyD3-87.esm.js → faceCaptureManagerFactory-CIj0Cuh2.esm.js} +1 -1
  24. package/dist/{faceCaptureSetup-DFKhRjlG.esm.js → faceCaptureSetup-LKIkhOFU.esm.js} +3 -3
  25. package/dist/{feature-management-BtPrCL0R.esm.js → feature-management-BdEYtp-i.esm.js} +1 -1
  26. package/dist/feature-management.esm.js +1 -1
  27. package/dist/flow.d.ts +1 -1
  28. package/dist/flow.esm.js +3 -3
  29. package/dist/{flowCompletionService-D-sZAB8F.esm.js → flowCompletionService-__FouXqN.esm.js} +1 -1
  30. package/dist/{flowServices-TAw_H5L7.esm.js → flowServices-Bzs_X1o4.esm.js} +4 -4
  31. package/dist/geolocation.esm.js +2 -2
  32. package/dist/{geolocationManager-D77YU1kr.esm.js → geolocationManager-B9ljrS0X.esm.js} +1 -1
  33. package/dist/{geolocationStateMachine--wQ7GI74.esm.js → geolocationStateMachine-DjxU3gOp.esm.js} +1 -1
  34. package/dist/id-ocr.d.ts +1 -1
  35. package/dist/id-selfie-flow.esm.js +7 -7
  36. package/dist/id.d.ts +3 -3
  37. package/dist/id.esm.js +3 -3
  38. package/dist/{idCaptureDefaults-wC6OTAwJ.esm.js → idCaptureDefaults-BJglMiCL.esm.js} +1 -1
  39. package/dist/{idCaptureManager-BpaSzeSc.d.ts → idCaptureManager-BWzWmvEc.d.ts} +20 -3
  40. package/dist/{idCaptureManager-BWmCxl4l.esm.js → idCaptureManager-C2DaehZ0.esm.js} +14 -6
  41. package/dist/{idCaptureServices-D-l4iN6Y.esm.js → idCaptureServices-B3rNM_gb.esm.js} +3 -3
  42. package/dist/{idCaptureStateMachine-CTPgT1vk.esm.js → idCaptureStateMachine-CnAu9UcE.esm.js} +135 -54
  43. package/dist/{idOcrManager-BTdHlJ9D.d.ts → idOcrManager-DT3kPIB3.d.ts} +1 -1
  44. package/dist/identity-reuse.d.ts +1 -1
  45. package/dist/{identityReuseManager-D7EOLZ_p.d.ts → identityReuseManager-BBE2R_S7.d.ts} +5 -5
  46. package/dist/index.esm.js +1 -1
  47. package/dist/mandatory-consent.d.ts +1 -1
  48. package/dist/{mandatoryConsentManager-aTEPb_2-.d.ts → mandatoryConsentManager-CMAyZpNe.d.ts} +5 -5
  49. package/dist/personhood.esm.js +4 -4
  50. package/dist/qe-signature.esm.js +1 -1
  51. package/dist/{runChildModule-DEjs5nlr.esm.js → runChildModule-CNOpKnr8.esm.js} +1 -1
  52. package/dist/{sdkVersion-DO5PGvvI.esm.js → sdkVersion-DD5MTu4p.esm.js} +1 -1
  53. package/dist/selfie.esm.js +5 -5
  54. package/dist/{selfieManager-BhS7jRrj.esm.js → selfieManager-BLCxM_Ci.esm.js} +3 -3
  55. package/dist/{selfieStateMachine-BKkYc62E.esm.js → selfieStateMachine-BYUhydKm.esm.js} +2 -2
  56. package/dist/{session-CH8asu6f.esm.js → session-cbcxp2lM.esm.js} +3 -3
  57. package/dist/session.esm.js +4 -4
  58. package/dist/{sessionInitializer-IOkkHkWp.esm.js → sessionInitializer-BQnUIKSb.esm.js} +3 -3
  59. package/dist/{setup-DSwwBv11.esm.js → setup-CzOLxZwN.esm.js} +4 -4
  60. package/dist/{trueSightService-CVbokFq4.esm.js → trueSightService-BWs2WTYv.esm.js} +2 -2
  61. package/dist/{types-CEBr-ro22.d.ts → types-Vh9cUnOR2.d.ts} +46 -1
  62. package/dist/video-selfie.esm.js +4 -4
  63. package/dist/{videoSelfieCameraWarmer-4gIaCX7Q.esm.js → videoSelfieCameraWarmer-BnPBPjIw.esm.js} +3 -3
  64. package/dist/wasm.esm.js +2 -2
  65. package/dist/workflow.d.ts +4 -4
  66. package/dist/workflow.esm.js +14 -14
  67. package/package.json +3 -3
@@ -1,12 +1,12 @@
1
- import { l as BrowserStorageProvider } from "./setup-DSwwBv11.esm.js";
1
+ import { l as BrowserStorageProvider } from "./setup-CzOLxZwN.esm.js";
2
2
  import { n as eventModuleNames, o as createManagerInstrumentation } from "./events-ijlbX_Wx.esm.js";
3
3
  import { t as topLevelStateName } from "./topLevelStateName-B5i2avbh.esm.js";
4
4
  import { s as createActor, u as createManager } from "./xstate.esm-Bg3FuvIs.esm.js";
5
5
  import { t as setWasmDsFlagSync } from "./wasmDsFlagSync-Czjlp68o.esm.js";
6
6
  import { t as BrowserVisibilityObserverProvider } from "./BrowserVisibilityObserverProvider-BrJN1B8A.esm.js";
7
7
  import { c as resetWasmMotionPrimedForModule, o as requiresMotionPermissionUserGesture, r as primeMotionFromUserGestureIfNeeded } from "./permissionServices-DIaG8BlW.esm.js";
8
- import { l as createIdProtectedCaptureController, n as provideIdProtectedCaptureController, t as idCaptureMachine, u as findIdProtectedCaptureController } from "./idCaptureStateMachine-CTPgT1vk.esm.js";
9
- import { _ as resolveIdCaptureThresholds, g as resolveCaptureOptimizingTreatment } from "./idCaptureServices-D-l4iN6Y.esm.js";
8
+ import { l as createIdProtectedCaptureController, n as provideIdProtectedCaptureController, t as idCaptureMachine, u as findIdProtectedCaptureController } from "./idCaptureStateMachine-CnAu9UcE.esm.js";
9
+ import { _ as resolveIdCaptureThresholds, g as resolveCaptureOptimizingTreatment } from "./idCaptureServices-B3rNM_gb.esm.js";
10
10
  //#region src/modules/id/digitalUpload/instrumentation.ts
11
11
  const TERMINAL_REASONS = /* @__PURE__ */ new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
12
12
  function isHoldingState(value) {
@@ -359,7 +359,8 @@ function mapState(snapshot, presentationStream) {
359
359
  if (loadingPhase) return mapLoadingState(snapshot, loadingPhase);
360
360
  if (snapshot.matches("chooser")) return {
361
361
  status: "chooser",
362
- availableDocumentTypes: context.availableDocumentTypes
362
+ availableDocumentTypes: context.availableDocumentTypes,
363
+ digitalIdRedirectOptions: context.digitalIdRedirectOptions
363
364
  };
364
365
  if (snapshot.matches("loading")) return mapLoadingState(snapshot, "bootstrapping");
365
366
  if (snapshot.matches("tutorial")) return mapTutorialState(snapshot, context);
@@ -417,11 +418,18 @@ function createApi({ actor, trackElementClicked, trackCaptureAttemptFinished })
417
418
  resetWasmMotionPrimedForModule();
418
419
  actor.send({ type: "LOAD" });
419
420
  },
420
- selectDocument(documentType) {
421
+ /**
422
+ * Picks a chooser option. For `'digitalIdRedirect'`, pass the provider of
423
+ * the card the user tapped (`digitalIdRedirectOptions[].providerId`) so the
424
+ * verification is created for that provider; without it the first
425
+ * configured redirect method is launched (backwards compatible).
426
+ */
427
+ selectDocument(documentType, options) {
421
428
  trackElementClicked?.(`selectDocument.${documentType}`);
422
429
  actor.send({
423
430
  type: "SELECT_DOCUMENT",
424
- documentType
431
+ documentType,
432
+ providerId: options?.providerId
425
433
  });
426
434
  },
427
435
  async nextStep() {
@@ -1,5 +1,5 @@
1
- import { t as ensureWasmPipelines } from "./setup-DSwwBv11.esm.js";
2
- import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-BtPrCL0R.esm.js";
1
+ import { t as ensureWasmPipelines } from "./setup-CzOLxZwN.esm.js";
2
+ import { i as numberParam, n as defineExperimentParams, t as booleanParam, u as resolveExperimentOnce } from "./feature-management-BdEYtp-i.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-wC6OTAwJ.esm.js";
12
+ import { i as CameraCompositor, n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-BJglMiCL.esm.js";
13
13
  //#region src/internal/camera/cameraServices.ts
14
14
  function createCameraServices(camera) {
15
15
  return {
@@ -1,16 +1,16 @@
1
- import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-CVbokFq4.esm.js";
1
+ import { c as trueSightHintTransition, l as trueSightLog, m as isTrueSightTesting, r as noteTrueSightCaptureActivity } from "./trueSightService-BWs2WTYv.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-DSwwBv11.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-CzOLxZwN.esm.js";
4
4
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BXhgNxLt.esm.js";
5
- import { s as exposeExperimentOnce } from "./feature-management-BtPrCL0R.esm.js";
5
+ import { s as exposeExperimentOnce } from "./feature-management-BdEYtp-i.esm.js";
6
6
  import { n as revokeObjectURL, t as getTimestamp } from "./IBrowserEnvironmentCapability-DEaRRk-R.esm.js";
7
7
  import { r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
8
8
  import { n as eventModuleNames, s as recordExperimentAssignmentOnce } from "./events-ijlbX_Wx.esm.js";
9
- import { t as getDisableIpify } from "./sessionInitializer-IOkkHkWp.esm.js";
9
+ import { t as getDisableIpify } from "./sessionInitializer-BQnUIKSb.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-CH8asu6f.esm.js";
13
+ import "./session-cbcxp2lM.esm.js";
14
14
  import { c as not, i as assign, l as raise, n as enqueueActions, o as and, r as sendTo, t as setup } from "./xstate.esm-Bg3FuvIs.esm.js";
15
15
  import { n as fromPromise, t as fromCallback } from "./xstate-actors.esm-Ccyzgxj1.esm.js";
16
16
  import { n as getUrlSearchParam, t as buildUrlWithSearchParams } from "./urlUtils-D6phjq1-.esm.js";
@@ -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-wC6OTAwJ.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-D-l4iN6Y.esm.js";
27
+ import { n as DEFAULT_ID_CAPTURE_THRESHOLDS, r as IdCaptureProvider } from "./idCaptureDefaults-BJglMiCL.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-B3rNM_gb.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"]);
@@ -1180,7 +1180,7 @@ fromPromise(async ({ input }) => {
1180
1180
  });
1181
1181
  fromPromise(async ({ input }) => {
1182
1182
  if (!input.dependencies) return;
1183
- const { loadDeepsightSession } = await import("./deepsightLoader-B-RhfysI.esm.js");
1183
+ const { loadDeepsightSession } = await import("./deepsightLoader-L0JGAPDe.esm.js");
1184
1184
  return loadDeepsightSession({
1185
1185
  ds: input.ds,
1186
1186
  storage: input.dependencies.storage,
@@ -1623,7 +1623,7 @@ function cleanup(service) {
1623
1623
  service.cleanup();
1624
1624
  } catch {}
1625
1625
  }
1626
- function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-B-RhfysI.esm.js")).loadDeepsightSession(input)) {
1626
+ function createIdMetadataPreparationCoordinator(load = async (input) => (await import("./deepsightLoader-L0JGAPDe.esm.js")).loadDeepsightSession(input)) {
1627
1627
  let disposed = false;
1628
1628
  let preparation;
1629
1629
  let service;
@@ -2567,14 +2567,67 @@ function asDigitalIdsConfig(config) {
2567
2567
  return config.digitalIds;
2568
2568
  }
2569
2569
  /**
2570
+ * Persisted method name → catalog provider id, derived from the registry's
2571
+ * Trinsic entries (single source of truth). Lets the SDK launch iDIN / FTN
2572
+ * from a backend that does not yet send `providerId` on each method.
2573
+ * TODO(roadmap: fully-catalog-driven): remove once every backend enriches
2574
+ * `digitalIds.methods[]` with `providerId` + `flowType`.
2575
+ */
2576
+ const REDIRECT_PROVIDER_BY_METHOD = (() => {
2577
+ const map = {};
2578
+ for (const docType of DIGITAL_ID_DOCUMENT_TYPES) for (const entry of DIGITAL_ID_REGISTRY[docType]) if (entry.kind === "trinsicRedirect") map[entry.method] = entry.providerId;
2579
+ return map;
2580
+ })();
2581
+ /**
2582
+ * Redirect providers that are the fallback leg of a wallet-first funnel
2583
+ * (mDL): they are reached through the `digitalId` tile's funnel resolution,
2584
+ * not offered as a standalone chooser card.
2585
+ */
2586
+ const WALLET_FUNNEL_REDIRECT_PROVIDER_IDS = new Set(DIGITAL_ID_DOCUMENT_TYPES.flatMap((docType) => {
2587
+ const entries = DIGITAL_ID_REGISTRY[docType];
2588
+ if (!entries.some((entry) => entry.kind === "incodeWallet")) return [];
2589
+ return entries.flatMap((entry) => entry.kind === "trinsicRedirect" ? [entry.providerId] : []);
2590
+ }));
2591
+ /**
2592
+ * True for a redirect provider that gets its own chooser card (iDIN, FTN, any
2593
+ * catalog-enriched redirect method) — as opposed to the mDL wallet fallback,
2594
+ * which only surfaces through the Digital ID tile.
2595
+ */
2596
+ function isStandaloneRedirectProvider(providerId) {
2597
+ return !WALLET_FUNNEL_REDIRECT_PROVIDER_IDS.has(providerId);
2598
+ }
2599
+ /**
2600
+ * The provider id a configured method launches with, when it is a
2601
+ * web-redirect method; `undefined` for wallets / other flow shapes.
2602
+ *
2603
+ * Resolution order:
2604
+ * 1. an explicit redirect `flowType` with a `provider` (mapped shape) or
2605
+ * `providerId` (catalog-enriched raw shape) — backend-authoritative;
2606
+ * 2. otherwise the persisted method name via the registry (legacy raw shape).
2607
+ */
2608
+ function resolveRedirectProviderId(method) {
2609
+ if (method.flowType) {
2610
+ if (!isRedirectFlowType(method.flowType)) return;
2611
+ const explicit = method.provider ?? method.providerId;
2612
+ if (explicit) return explicit;
2613
+ }
2614
+ return method.method ? REDIRECT_PROVIDER_BY_METHOD[method.method.toUpperCase()] : void 0;
2615
+ }
2616
+ /**
2570
2617
  * Tolerant view over `config.digitalIds`: accepts both the mapped array
2571
2618
  * (`IdCaptureDigitalIdMethod[]`) and the raw backend object
2572
2619
  * (`{ enabled, methods: [...] }`). Extracted from the old
2573
2620
  * `getDigitalIdRedirectMethod` cast so every consumer parses it the same way.
2621
+ *
2622
+ * Honors both dashboard toggles: a raw object with `enabled: false` yields no
2623
+ * methods, and individual methods with `enabled: false` are dropped (absent
2624
+ * `enabled` counts as on). This is what "enabled for the flow / workflow"
2625
+ * means — for the redirect chooser cards as much as for the wallet tile.
2574
2626
  */
2575
2627
  function normalizeDigitalIdMethods(config) {
2576
2628
  const raw = asDigitalIdsConfig(config);
2577
- return Array.isArray(raw) ? raw : raw?.methods ?? [];
2629
+ if (!Array.isArray(raw) && raw?.enabled === false) return [];
2630
+ return (Array.isArray(raw) ? raw : raw?.methods ?? []).filter((method) => method.enabled !== false);
2578
2631
  }
2579
2632
  /**
2580
2633
  * Persisted method names of the Incode-native device wallets — the backend
@@ -2591,12 +2644,11 @@ const DEVICE_WALLET_METHODS = /* @__PURE__ */ new Set([
2591
2644
  * Redirect methods (iDIN, FTN) never count, whatever their name or type — they
2592
2645
  * must not surface a wallet tile with no wallet behind it.
2593
2646
  *
2594
- * Honors the method's own dashboard toggle: `enabled: false` is off, absent
2595
- * counts as on. The container's `digitalIds.enabled` switch is checked by
2596
- * `hasEnabledDeviceWalletMethod` before the list is walked.
2647
+ * Classifies by *kind* only. Whether a method is switched on is already
2648
+ * settled by `normalizeDigitalIdMethods`, which drops disabled methods before
2649
+ * any caller walks the list.
2597
2650
  */
2598
- function isEnabledDeviceWalletMethod(method) {
2599
- if (method.enabled === false) return false;
2651
+ function isDeviceWalletMethod(method) {
2600
2652
  if (method.flowType && isRedirectFlowType(method.flowType)) return false;
2601
2653
  if (method.type?.toUpperCase() === "MDL") return true;
2602
2654
  return method.method !== void 0 && DEVICE_WALLET_METHODS.has(method.method.toUpperCase());
@@ -2627,8 +2679,8 @@ function isEntryActive(entry, config, platform) {
2627
2679
  /**
2628
2680
  * The configured `digitalIds` method matching a Trinsic funnel entry — by
2629
2681
  * persisted method name, or (mapped shape) by provider id on a redirect
2630
- * flowType. Mirrors the old first-match semantics; `methods[].enabled` is
2631
- * deliberately still not consulted (pre-existing behavior).
2682
+ * flowType. First match wins; disabled methods are already dropped by
2683
+ * `normalizeDigitalIdMethods`.
2632
2684
  */
2633
2685
  function findConfiguredMethod(entry, config) {
2634
2686
  return normalizeDigitalIdMethods(config).find((method) => method.method?.toUpperCase() === entry.method || method.provider === entry.providerId && !!method.flowType && isRedirectFlowType(method.flowType));
@@ -2641,7 +2693,8 @@ function toMappedMethod(entry, method) {
2641
2693
  provider: entry.providerId,
2642
2694
  flowType: "WEB_REDIRECT",
2643
2695
  country: method.country ?? method.countries?.[0],
2644
- displayName: method.displayName
2696
+ displayName: method.displayName,
2697
+ logoUrl: method.logoUrl
2645
2698
  };
2646
2699
  }
2647
2700
  /**
@@ -2650,16 +2703,11 @@ function toMappedMethod(entry, method) {
2650
2703
  * and each method's own `enabled` flag. An absent `enabled` counts as on, the
2651
2704
  * tolerant reading the rest of this module uses.
2652
2705
  *
2653
- * The toggles are applied here rather than inside `normalizeDigitalIdMethods`
2654
- * because that helper also feeds the redirect funnel, which today deliberately
2655
- * ignores `methods[].enabled`; widening it would change redirect behaviour as a
2656
- * side effect of a wallet fix. Fold this into `normalizeDigitalIdMethods` once
2657
- * every consumer is meant to skip disabled methods.
2706
+ * Both toggles are applied by `normalizeDigitalIdMethods`, so this only has to
2707
+ * ask whether any surviving method is a wallet.
2658
2708
  */
2659
2709
  function hasEnabledDeviceWalletMethod(config) {
2660
- const raw = asDigitalIdsConfig(config);
2661
- if (!Array.isArray(raw) && raw?.enabled === false) return false;
2662
- return normalizeDigitalIdMethods(config).some(isEnabledDeviceWalletMethod);
2710
+ return normalizeDigitalIdMethods(config).some(isDeviceWalletMethod);
2663
2711
  }
2664
2712
  /**
2665
2713
  * Resolves the implementation that should fulfil a digital-ID document type:
@@ -2681,38 +2729,64 @@ function resolveDigitalIdImplementation(docType, config, platform) {
2681
2729
  //#endregion
2682
2730
  //#region src/modules/id/idCaptureHelpers.ts
2683
2731
  /**
2684
- * Persisted method name → catalog provider id, derived from the digital-ID
2685
- * registry's Trinsic entries (single source of truth — was a hardcoded map
2686
- * here before the registry existed).
2732
+ * Normalizes a configured method into the mapped redirect shape for a
2733
+ * resolved provider. The already-mapped shape is returned as-is; the raw
2734
+ * backend shape gets `provider` + `WEB_REDIRECT` filled in.
2687
2735
  */
2688
- const REDIRECT_PROVIDER_BY_METHOD = (() => {
2689
- const map = {};
2690
- for (const docType of DIGITAL_ID_DOCUMENT_TYPES) for (const entry of DIGITAL_ID_REGISTRY[docType]) if (entry.kind === "trinsicRedirect") map[entry.method] = entry.providerId;
2691
- return map;
2692
- })();
2736
+ function toRedirectMethod(method, provider) {
2737
+ if (method.provider && method.flowType) return method;
2738
+ return {
2739
+ method: method.method,
2740
+ provider,
2741
+ flowType: "WEB_REDIRECT",
2742
+ country: method.country ?? method.countries?.[0],
2743
+ displayName: method.displayName,
2744
+ logoUrl: method.logoUrl
2745
+ };
2746
+ }
2693
2747
  /**
2694
- * The first enabled web-redirect digital-ID method (iDIN-only for now), or
2695
- * `undefined` when none is configured. Drives both the `digitalIdRedirect`
2696
- * chooser option and the provider passed to the `digitalIdRedirectMachine`.
2748
+ * The enabled web-redirect digital-ID method to launch — the one matching
2749
+ * `providerId` when given (a chooser card was picked), else the first
2750
+ * configured redirect method — or `undefined` when none is configured.
2751
+ * Drives the provider and country passed to the `digitalIdRedirectMachine`.
2697
2752
  *
2698
2753
  * Accepts both the mapped array (`IdCaptureDigitalIdMethod[]`) and the raw
2699
2754
  * backend `configuration.digitalIds` object (`{ enabled, methods: [...] }`);
2700
- * for the raw shape it derives `provider`/`flowType` from the persisted method
2701
- * name via the digital-ID registry (`IDIN` → `trinsic_netherlands_idin`,
2702
- * `WEB_REDIRECT`).
2755
+ * for the raw shape the provider comes from the backend-enriched
2756
+ * `providerId`/`flowType` when present, else from the persisted method name
2757
+ * via the digital-ID registry (`IDIN` → `trinsic_netherlands_idin`).
2703
2758
  */
2704
- function getDigitalIdRedirectMethod(config) {
2759
+ function getDigitalIdRedirectMethod(config, providerId) {
2705
2760
  for (const method of normalizeDigitalIdMethods(config)) {
2706
- if (method.flowType && isRedirectFlowType(method.flowType)) return method;
2707
- const provider = method.method ? REDIRECT_PROVIDER_BY_METHOD[method.method.toUpperCase()] : void 0;
2708
- if (provider) return {
2761
+ const provider = resolveRedirectProviderId(method);
2762
+ if (!provider || providerId !== void 0 && provider !== providerId) continue;
2763
+ return toRedirectMethod(method, provider);
2764
+ }
2765
+ }
2766
+ /**
2767
+ * The digital-ID web-redirect providers that get their own chooser card: one
2768
+ * per enabled redirect method in `config.digitalIds`, in backend (dashboard)
2769
+ * order, deduped by provider. Wallet-funnel fallbacks (the Trinsic mDL leg)
2770
+ * are excluded — they surface through the Digital ID tile instead.
2771
+ *
2772
+ * Card display data (`displayName`, `logoUrl`, `country`) is whatever the
2773
+ * backend enriched the method with; the UI falls back to generic copy / icon
2774
+ * when absent.
2775
+ */
2776
+ function getAvailableDigitalIdRedirectOptions(config) {
2777
+ const options = [];
2778
+ for (const method of normalizeDigitalIdMethods(config)) {
2779
+ const providerId = resolveRedirectProviderId(method);
2780
+ if (!providerId || !isStandaloneRedirectProvider(providerId) || options.some((option) => option.providerId === providerId)) continue;
2781
+ options.push({
2782
+ providerId,
2709
2783
  method: method.method,
2710
- provider,
2711
- flowType: "WEB_REDIRECT",
2712
- country: method.country ?? method.countries?.[0],
2713
- displayName: method.displayName
2714
- };
2784
+ displayName: method.displayName,
2785
+ logoUrl: method.logoUrl,
2786
+ country: method.country ?? method.countries?.[0]
2787
+ });
2715
2788
  }
2789
+ return options;
2716
2790
  }
2717
2791
  /**
2718
2792
  * Map of config properties received from the backend to adjusted, internal document types.
@@ -2747,6 +2821,7 @@ function getAvailableDocumentTypes(config, platform = { credentialsAvailable: fa
2747
2821
  const documentType = route.kind === "incodeWallet" ? "digitalId" : "digitalIdRedirect";
2748
2822
  if (!adjustedDocumentTypes.includes(documentType)) adjustedDocumentTypes.push(documentType);
2749
2823
  }
2824
+ if (!adjustedDocumentTypes.includes("digitalIdRedirect") && getAvailableDigitalIdRedirectOptions(config).length > 0) adjustedDocumentTypes.push("digitalIdRedirect");
2750
2825
  return adjustedDocumentTypes;
2751
2826
  }
2752
2827
  /**
@@ -3565,9 +3640,12 @@ const idCaptureMachine = setup({
3565
3640
  performStopMediaRecording(context);
3566
3641
  },
3567
3642
  clearRecordingSession: assign({ recordingSession: () => void 0 }),
3568
- setSelectedDocument: assign({ selectedDocumentType: ({ event }) => {
3569
- if ("documentType" in event) return event.documentType;
3570
- } }),
3643
+ setSelectedDocument: assign({
3644
+ selectedDocumentType: ({ event }) => {
3645
+ if ("documentType" in event) return event.documentType;
3646
+ },
3647
+ selectedDigitalIdProviderId: ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "digitalIdRedirect" ? event.providerId : void 0
3648
+ }),
3571
3649
  setCurrentMode: assign({ currentMode: ({ event, context }) => getCurrentModeFromEvent(context, asPublicIdEvent(event)) }),
3572
3650
  storeCapturedImage: assign(({ context, event }) => getStoreCapturedImageValues(context, asPublicIdEvent(event))),
3573
3651
  setCandidateFrame: assign(({ context, event }) => getCandidateFrameValues(context, asPublicIdEvent(event))),
@@ -3875,6 +3953,8 @@ const idCaptureMachine = setup({
3875
3953
  disableIpify: getDisableIpify(),
3876
3954
  deepsightInitAttempted: false,
3877
3955
  availableDocumentTypes: getAvailableDocumentTypes(input.config, { credentialsAvailable: input.dependencies?.credentials?.isAvailable() ?? false }),
3956
+ digitalIdRedirectOptions: getAvailableDigitalIdRedirectOptions(input.config),
3957
+ selectedDigitalIdProviderId: void 0,
3878
3958
  captureResolution: void 0,
3879
3959
  cameraFallbackLevel: void 0,
3880
3960
  usingBackCamera: void 0
@@ -4868,12 +4948,13 @@ const idCaptureMachine = setup({
4868
4948
  id: "digitalIdRedirect",
4869
4949
  src: "digitalIdRedirectMachine",
4870
4950
  input: ({ context }) => {
4871
- const method = getDigitalIdRedirectMethod(context.config);
4872
4951
  const resuming = context.digitalIdReturnParams !== void 0 && context.digitalIdResumeVerificationId !== void 0;
4873
4952
  const routedProvider = context.digitalIdRoute?.kind === "trinsicRedirect" ? context.digitalIdRoute.providerId : void 0;
4953
+ const presetProvider = context.digitalIdResumeProviderId ?? routedProvider ?? context.selectedDigitalIdProviderId;
4954
+ const method = presetProvider !== void 0 ? getDigitalIdRedirectMethod(context.config, presetProvider) : getDigitalIdRedirectMethod(context.config);
4874
4955
  return {
4875
4956
  config: {
4876
- provider: context.digitalIdResumeProviderId ?? routedProvider ?? method?.provider,
4957
+ provider: presetProvider ?? method?.provider,
4877
4958
  returnUrl: context.config.digitalIdReturnUrl,
4878
4959
  country: method?.country
4879
4960
  },
@@ -109,7 +109,7 @@ declare const idOcrStateMachine: StateMachine<IdOcrContext, {
109
109
  type: "shouldProceedWithoutSubmitToSecondId";
110
110
  params: unknown;
111
111
  };
112
- }>, never, "error" | "idle" | "success" | "finished" | "loading" | "submitting" | "inputting" | "readonly" | "validatingContinue", string, IdOcrInput, NonReducibleUnknown, EventObject, MetaObject, {
112
+ }>, never, "error" | "idle" | "success" | "finished" | "submitting" | "loading" | "inputting" | "readonly" | "validatingContinue", string, IdOcrInput, NonReducibleUnknown, EventObject, MetaObject, {
113
113
  readonly id: "idOcr";
114
114
  readonly initial: "idle";
115
115
  readonly context: ({ input }: {
@@ -1,2 +1,2 @@
1
- import { c as identityReuseMachine, d as ReusableDocument, f as SubmitResponse, i as createIdentityReuseManagerFromActor, l as FetchDocumentsResponse, n as IdentityReuseState, o as SCAN_NEW_DOCUMENT, r as createIdentityReuseManager, s as SelectedDocumentId, t as IdentityReuseManager, u as IdentityReuseConfig } from "./identityReuseManager-D7EOLZ_p.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-BBE2R_S7.js";
2
2
  export { type FetchDocumentsResponse, type IdentityReuseConfig, type IdentityReuseManager, type IdentityReuseState, type ReusableDocument, SCAN_NEW_DOCUMENT, type SelectedDocumentId, type SubmitResponse, createIdentityReuseManager, createIdentityReuseManagerFromActor, identityReuseMachine };
@@ -103,6 +103,10 @@ declare const identityReuseMachine: StateMachine<IdentityReuseContext, {
103
103
  type: "setDocuments";
104
104
  params: NonReducibleUnknown;
105
105
  };
106
+ setSelectedDocument: {
107
+ type: "setSelectedDocument";
108
+ params: NonReducibleUnknown;
109
+ };
106
110
  setError: {
107
111
  type: "setError";
108
112
  params: NonReducibleUnknown;
@@ -111,10 +115,6 @@ declare const identityReuseMachine: StateMachine<IdentityReuseContext, {
111
115
  type: "clearError";
112
116
  params: NonReducibleUnknown;
113
117
  };
114
- setSelectedDocument: {
115
- type: "setSelectedDocument";
116
- params: NonReducibleUnknown;
117
- };
118
118
  }>, Values<{
119
119
  hasDocuments: {
120
120
  type: "hasDocuments";
@@ -124,7 +124,7 @@ declare const identityReuseMachine: StateMachine<IdentityReuseContext, {
124
124
  type: "hasSelection";
125
125
  params: unknown;
126
126
  };
127
- }>, never, "error" | "idle" | "finished" | "loading" | "submitting" | "documentsFound", string, IdentityReuseInput, NonReducibleUnknown, EventObject, MetaObject, {
127
+ }>, never, "error" | "idle" | "finished" | "submitting" | "loading" | "documentsFound", string, IdentityReuseInput, NonReducibleUnknown, EventObject, MetaObject, {
128
128
  readonly id: "identityReuse";
129
129
  readonly initial: "idle";
130
130
  readonly context: ({ input }: {
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import { i as reset, r as isConfigured, s as setup } from "./setup-DSwwBv11.esm.js";
1
+ import { i as reset, r as isConfigured, s as setup } from "./setup-CzOLxZwN.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-aTEPb_2-.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 };
@@ -56,10 +56,6 @@ declare const mandatoryConsentMachine: StateMachine<MandatoryConsentContext, {
56
56
  type: "setError";
57
57
  params: NonReducibleUnknown;
58
58
  };
59
- toggleSigned: {
60
- type: "toggleSigned";
61
- params: NonReducibleUnknown;
62
- };
63
59
  clearError: {
64
60
  type: "clearError";
65
61
  params: NonReducibleUnknown;
@@ -68,10 +64,14 @@ declare const mandatoryConsentMachine: StateMachine<MandatoryConsentContext, {
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;
74
- }, never, "error" | "idle" | "closed" | "finished" | "loading" | "submitting" | "display", string, MandatoryConsentInput, NonReducibleUnknown, EventObject, MetaObject, {
74
+ }, never, "error" | "idle" | "closed" | "finished" | "submitting" | "loading" | "display", string, MandatoryConsentInput, NonReducibleUnknown, EventObject, MetaObject, {
75
75
  readonly id: "mandatoryConsent";
76
76
  readonly initial: "idle";
77
77
  readonly context: ({ input }: {
@@ -1,16 +1,16 @@
1
- import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-CVbokFq4.esm.js";
1
+ import { b as getStoredHttpConfig, w as createApi$1, y as randomUUID } from "./trueSightService-BWs2WTYv.esm.js";
2
2
  import { r as WasmUtilProvider } from "./safeStorage-C511Hltw.esm.js";
3
- import { l as BrowserStorageProvider } from "./setup-DSwwBv11.esm.js";
3
+ import { l as BrowserStorageProvider } from "./setup-CzOLxZwN.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-IOkkHkWp.esm.js";
7
+ import { b as BrowserEnvironmentProvider, h as isBrowserSimulation, n as getFingerprintEnabled, v as getThumbmarkId, y as getDeviceFingerprintInfo } from "./sessionInitializer-BQnUIKSb.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-Dhsd1bta.esm.js";
13
+ import { i as initializeDeepsightSession, o as startDetection, s as stopStream, t as FaceDetectionProvider } from "./FaceDetectionProvider-Ydsahps4.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-BRgVS6Ix.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-COJYfU0x.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-CVbokFq4.esm.js";
1
+ import { a as notifyTrueSightManagerStopped, i as notifyTrueSightFlowEvent } from "./trueSightService-BWs2WTYv.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-20260923-b02a604b";
2
+ const SDK_VERSION = "0.0.0-dev-20260923-1a4dbec8";
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-DSwwBv11.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-CzOLxZwN.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-DFKhRjlG.esm.js";
7
- import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-DdyD3-87.esm.js";
6
+ import { n as createDefaultProtectedFaceControllerActor, t as faceCaptureMachine } from "./faceCaptureSetup-LKIkhOFU.esm.js";
7
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-CIj0Cuh2.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-BKkYc62E.esm.js";
11
- import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-BhS7jRrj.esm.js";
10
+ import { t as selfieMachine } from "./selfieStateMachine-BYUhydKm.esm.js";
11
+ import { n as createSelfieManagerFromActor, t as createSelfieManager } from "./selfieManager-BLCxM_Ci.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-DSwwBv11.esm.js";
2
+ import { l as BrowserStorageProvider } from "./setup-CzOLxZwN.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-DdyD3-87.esm.js";
6
- import { t as selfieMachine } from "./selfieStateMachine-BKkYc62E.esm.js";
5
+ import { t as createFaceCaptureManagerFromActor } from "./faceCaptureManagerFactory-CIj0Cuh2.esm.js";
6
+ import { t as selfieMachine } from "./selfieStateMachine-BYUhydKm.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-DFKhRjlG.esm.js";
4
- import { c as isOnDeviceMode } from "./FaceDetectionProvider-Dhsd1bta.esm.js";
3
+ import { t as faceCaptureMachine } from "./faceCaptureSetup-LKIkhOFU.esm.js";
4
+ import { c as isOnDeviceMode } from "./FaceDetectionProvider-Ydsahps4.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-CVbokFq4.esm.js";
1
+ import { g as noteSessionCreated, l as trueSightLog } from "./trueSightService-BWs2WTYv.esm.js";
2
2
  import { n as getApi } from "./api-Bx3gKW_y.esm.js";
3
- import "./sessionInitializer-IOkkHkWp.esm.js";
3
+ import "./sessionInitializer-BQnUIKSb.esm.js";
4
4
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
5
- import { i as toIncodeApiError } from "./apiError-DB2-l78R.esm.js";
5
+ import { i as toIncodeApiError } from "./apiError-B5izenZ8.esm.js";
6
6
  //#region src/internal/session/sessionService.ts
7
7
  /**
8
8
  * HTTP status codes the QR validation endpoint emits, keyed by their semantic
@@ -1,9 +1,9 @@
1
1
  import { r as getToken } from "./api-Bx3gKW_y.esm.js";
2
2
  import { r as subscribeHttpErrors } from "./HttpRequestError-Bh0pNGSC.esm.js";
3
- import { i as initializeSession, l as whenSessionFingerprintSettled } from "./sessionInitializer-IOkkHkWp.esm.js";
4
- import { t as IncodeApiError } from "./apiError-DB2-l78R.esm.js";
5
- import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-CH8asu6f.esm.js";
6
- import { n as getFinishStatus } from "./flowCompletionService-D-sZAB8F.esm.js";
3
+ import { i as initializeSession, l as whenSessionFingerprintSettled } from "./sessionInitializer-BQnUIKSb.esm.js";
4
+ import { t as IncodeApiError } from "./apiError-B5izenZ8.esm.js";
5
+ import { a as refreshQrUrlUuid, i as createSession, n as QrValidationError, o as validateQrUuid, r as bootstrapSession, t as QR_VALIDATION_ERROR_CODES } from "./session-cbcxp2lM.esm.js";
6
+ import { n as getFinishStatus } from "./flowCompletionService-__FouXqN.esm.js";
7
7
  //#region src/internal/session/sessionExpired.ts
8
8
  var SessionExpiredError = class extends Error {
9
9
  constructor() {
@@ -1,8 +1,8 @@
1
- import { d as fetchFeatureConfig, f as isFeatureEnabled, h as noteEnvironment, l as trueSightLog, p as resetFeatureConfigCache, s as startTrueSightCollection, v as noteTokenActivated } from "./trueSightService-CVbokFq4.esm.js";
2
- import { E as updateFeatureManagementUser } from "./feature-management-BtPrCL0R.esm.js";
1
+ import { d as fetchFeatureConfig, f as isFeatureEnabled, h as noteEnvironment, l as trueSightLog, p as resetFeatureConfigCache, s as startTrueSightCollection, v as noteTokenActivated } from "./trueSightService-BWs2WTYv.esm.js";
2
+ import { E as updateFeatureManagementUser } from "./feature-management-BdEYtp-i.esm.js";
3
3
  import { c as setToken, r as getToken, t as api } from "./api-Bx3gKW_y.esm.js";
4
4
  import { v as addEvent, y as getAnalyticsBatcher } from "./events-ijlbX_Wx.esm.js";
5
- import { t as SDK_VERSION } from "./sdkVersion-DO5PGvvI.esm.js";
5
+ import { t as SDK_VERSION } from "./sdkVersion-DD5MTu4p.esm.js";
6
6
  import { t as endpoints } from "./endpoints-B-3Q-LUw.esm.js";
7
7
  import { n as flushDeviceStatsQueue, r as resetDeviceStatsQueue } from "./stats-CZcy2J53.esm.js";
8
8
  import { t as getParsedUserAgent } from "./getParsedUserAgent-B2iFDql1.esm.js";