@incodetech/core 0.0.0-dev-20260512-e44bacb → 0.0.0-dev-20260512-cffbe28

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 (45) hide show
  1. package/dist/{BaseWasmProvider-C2cw9STp.esm.js → BaseWasmProvider-IiHnsP8E.esm.js} +17 -17
  2. package/dist/{WasmUtilProvider-B8VtGgvF.esm.js → WasmUtilProvider-BrEYcdhY.esm.js} +1 -1
  3. package/dist/ae-signature.d.ts +1 -1
  4. package/dist/authentication.esm.js +6 -6
  5. package/dist/{authenticationManager-D0Yv5R02.esm.js → authenticationManager-CKDxnLtG.esm.js} +2 -2
  6. package/dist/{authenticationStateMachine-CFiP6P_V.esm.js → authenticationStateMachine-BNs4VCxh.esm.js} +2 -2
  7. package/dist/consent.d.ts +50 -50
  8. package/dist/cpf-ocr.d.ts +17 -17
  9. package/dist/{deepsightLoader-CFNSfs2N.esm.js → deepsightLoader-BMeAmiNh.esm.js} +2 -2
  10. package/dist/document-capture.d.ts +76 -76
  11. package/dist/document-upload.d.ts +49 -49
  12. package/dist/ekyb.esm.js +3 -3
  13. package/dist/{ekybStateMachine-Cq7M50sN.esm.js → ekybStateMachine-tZ1_L9vE.esm.js} +1 -1
  14. package/dist/electronic-signature.d.ts +1 -1
  15. package/dist/extensibility.d.ts +1 -1
  16. package/dist/extensibility.esm.js +11 -11
  17. package/dist/{faceCaptureSetup-zLRBv0-5.esm.js → faceCaptureSetup-CUzqUwkP.esm.js} +1 -1
  18. package/dist/flow.esm.js +2 -2
  19. package/dist/{flowServices-CLnM71N7.esm.js → flowServices-CLo2qihS.esm.js} +1 -1
  20. package/dist/home.d.ts +10 -10
  21. package/dist/id-ocr.d.ts +55 -55
  22. package/dist/id.d.ts +1 -1
  23. package/dist/id.esm.js +5 -5
  24. package/dist/{idCaptureManager-C4xBRJNt.d.ts → idCaptureManager-DiFBYm7h.d.ts} +43 -1
  25. package/dist/{idCaptureManager-vkJ6QLuk.esm.js → idCaptureManager-ZtfBOR6V.esm.js} +64 -1
  26. package/dist/{idCaptureStateMachine-C94NHeR2.esm.js → idCaptureStateMachine-BuX1-VlB.esm.js} +358 -14
  27. package/dist/identity-reuse.d.ts +40 -40
  28. package/dist/{index-CNrrk1gH.d.ts → index-BRdxM5zm.d.ts} +119 -119
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.esm.js +4 -4
  31. package/dist/mandatory-consent.d.ts +50 -50
  32. package/dist/qe-signature.d.ts +1 -1
  33. package/dist/{recordingService-BsYjkILQ.esm.js → recordingService-DMaVUhWY.esm.js} +2 -2
  34. package/dist/selfie.esm.js +6 -6
  35. package/dist/{selfieManager-ByCKxpZC.esm.js → selfieManager-DC9hKgt7.esm.js} +2 -2
  36. package/dist/{selfieStateMachine-ecwZ7tWK.esm.js → selfieStateMachine-DvOTE42w.esm.js} +2 -2
  37. package/dist/{session-DWFMKdX6.esm.js → session-DAspZUCj.esm.js} +1 -1
  38. package/dist/session.esm.js +1 -1
  39. package/dist/{setup-D3rE3N3K.d.ts → setup-DM301Lyz.d.ts} +39 -5
  40. package/dist/{setup-h75-vL1d.esm.js → setup-DyspWyTY.esm.js} +326 -169
  41. package/dist/wasm.d.ts +1 -1
  42. package/dist/wasm.esm.js +4 -4
  43. package/dist/workflow.d.ts +84 -84
  44. package/dist/workflow.esm.js +9 -9
  45. package/package.json +3 -3
@@ -1,11 +1,11 @@
1
- import { a as IdCaptureModelType, i as WasmPipelineType, r as mlWasmJSApi_default, t as BaseWasmProvider } from "./BaseWasmProvider-C2cw9STp.esm.js";
1
+ import { a as WasmPipelineType, o as IdCaptureModelType, r as mlWasmJSApi_default, t as BaseWasmProvider } from "./BaseWasmProvider-IiHnsP8E.esm.js";
2
2
  import { t as BrowserTimerProvider } from "./BrowserTimerProvider-BZGH3sYJ.esm.js";
3
3
  import { r as getToken, t as api } from "./api-eqRXuVG-.esm.js";
4
4
  import { S as revokeObjectURL } from "./events-Bt1azl2B.esm.js";
5
5
  import { t as endpoints } from "./endpoints-B3V1U9Dg.esm.js";
6
- import { t as getDisableIpify } from "./session-DWFMKdX6.esm.js";
6
+ import { t as getDisableIpify } from "./session-DAspZUCj.esm.js";
7
7
  import { a as fromPromise, i as fromCallback, n as sendTo, r as assign, t as setup } from "./xstate.esm-7GmmAwg6.esm.js";
8
- import { _ as StreamCanvasCapture, d as createRecordingSession, f as startRecording, g as flagIdManualReview, m as StreamCanvasProcessingSession, n as preloadOpenViduProvider, p as stopRecording$1 } from "./recordingService-BsYjkILQ.esm.js";
8
+ import { _ as StreamCanvasCapture, d as createRecordingSession, f as startRecording, g as flagIdManualReview, m as StreamCanvasProcessingSession, n as preloadOpenViduProvider, p as stopRecording$1 } from "./recordingService-DMaVUhWY.esm.js";
9
9
  import { n as IncodeCanvas } from "./deepsightService-IxmrmdKl.esm.js";
10
10
  import { r as getWindowDimensions } from "./getBrowser-Y88tNVud.esm.js";
11
11
  import { t as addDeviceStats } from "./stats-Bqq9IKre.esm.js";
@@ -591,7 +591,7 @@ const uploadManualFileActor = fromPromise(async ({ input, signal }) => {
591
591
  signal
592
592
  });
593
593
  });
594
- const getUploadResponseFromEvent = (event) => {
594
+ const getUploadResponseFromEvent$1 = (event) => {
595
595
  if ("output" in event) return event.output;
596
596
  };
597
597
  const _manualUploadMachine = setup({
@@ -682,7 +682,7 @@ const _manualUploadMachine = setup({
682
682
  },
683
683
  canContinueFromPassportTab: ({ context }) => context.activeTab === "passport" && context.passportUploaded,
684
684
  manualUploadResponseHasError: ({ context, event }) => {
685
- const response = getUploadResponseFromEvent(event);
685
+ const response = getUploadResponseFromEvent$1(event);
686
686
  if (!response) return false;
687
687
  return mapFailReasonToErrorKey(response, context.activeTab) !== null;
688
688
  }
@@ -835,6 +835,300 @@ const _manualUploadMachine = setup({
835
835
  });
836
836
  const manualUploadMachine = _manualUploadMachine;
837
837
 
838
+ //#endregion
839
+ //#region src/modules/id/digitalUpload/digitalUploadErrors.ts
840
+ const TERMINAL_FAIL_REASONS = new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
841
+ function isKnownFailReason(reason) {
842
+ return reason === "DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED" || reason === "ID_TYPE_UNACCEPTABLE" || reason === "FILE_CHANGED_ERROR" || reason === "NETWORK_ERROR" || reason === "GENERIC";
843
+ }
844
+ function mapDigitalIdFailReason(response) {
845
+ const failReason = response?.failReason;
846
+ if (typeof failReason !== "string" || failReason.length === 0) return null;
847
+ if (isKnownFailReason(failReason)) return failReason;
848
+ return "GENERIC";
849
+ }
850
+ function isTerminalDigitalIdFailReason(response) {
851
+ return typeof response?.failReason === "string" && TERMINAL_FAIL_REASONS.has(response.failReason);
852
+ }
853
+ function classifyNetworkError(err) {
854
+ const message = err instanceof Error ? err.message : String(err);
855
+ if (message.includes("ERR_UPLOAD_FILE_CHANGED") || message.includes("file changed") || message.includes("FILE_CHANGED")) return "FILE_CHANGED_ERROR";
856
+ return "NETWORK_ERROR";
857
+ }
858
+
859
+ //#endregion
860
+ //#region src/modules/id/digitalUpload/digitalUploadServices.ts
861
+ const DIGITAL_ID_UPLOAD_PATH = "/omni/add/front-id";
862
+ async function uploadDigitalIdFile(params) {
863
+ const { file, signal, onProgress } = params;
864
+ const response = await api.post(DIGITAL_ID_UPLOAD_PATH, file, {
865
+ query: { idType: "DigitalId" },
866
+ headers: { "Content-Type": file.type || "application/pdf" },
867
+ onUploadProgress: onProgress,
868
+ signal
869
+ });
870
+ if (!response.ok) throw new Error(`POST ${DIGITAL_ID_UPLOAD_PATH} failed: ${response.status}`);
871
+ return {
872
+ ...response.data,
873
+ uploadDurationMs: 0
874
+ };
875
+ }
876
+
877
+ //#endregion
878
+ //#region src/modules/id/digitalUpload/types.ts
879
+ const DIGITAL_UPLOAD_MAX_RETRIES = 3;
880
+ const DIGITAL_UPLOAD_MAX_FILE_SIZE_BYTES = 5 * 1024 * 1024;
881
+ const DIGITAL_UPLOAD_HOLDING_TIMEOUT_MS = 8e3;
882
+ const DIGITAL_UPLOAD_ALLOWED_MIME_TYPES = ["application/pdf"];
883
+
884
+ //#endregion
885
+ //#region src/modules/id/digitalUpload/digitalUploadStateMachine.ts
886
+ const uploadDigitalIdActor = fromPromise(async ({ input, signal }) => {
887
+ return uploadDigitalIdFile({
888
+ file: input.file,
889
+ signal: input.signal ?? signal,
890
+ onProgress: input.onProgress
891
+ });
892
+ });
893
+ const getUploadResponseFromEvent = (event) => {
894
+ if (!("output" in event)) return;
895
+ return event.output;
896
+ };
897
+ const _digitalUploadMachine = setup({
898
+ types: {
899
+ context: {},
900
+ events: {},
901
+ input: {},
902
+ output: {}
903
+ },
904
+ actors: { uploadDigitalId: uploadDigitalIdActor },
905
+ actions: {
906
+ requestPickerIfPending: assign(({ context }) => {
907
+ if (!context.pendingPickerAutoOpen) return {};
908
+ return {
909
+ pickerRequestId: context.pickerRequestId + 1,
910
+ pendingPickerAutoOpen: false
911
+ };
912
+ }),
913
+ setPendingPickerAutoOpen: assign(() => ({ pendingPickerAutoOpen: true })),
914
+ storeSelectedFile: assign(({ event }) => {
915
+ if (event.type !== "FILE_PICKED") return {};
916
+ return {
917
+ file: event.file,
918
+ failReason: null
919
+ };
920
+ }),
921
+ clearSelectedFile: assign(() => ({
922
+ file: null,
923
+ uploadProgress: 0,
924
+ failReason: null,
925
+ response: void 0,
926
+ uploadDurationMs: void 0
927
+ })),
928
+ setInvalidFileTypeError: assign(() => ({ failReason: "INVALID_FILE_TYPE" })),
929
+ setUploadProgressCapped: assign(({ event }) => {
930
+ if (event.type !== "UPLOAD_PROGRESS") return {};
931
+ return { uploadProgress: Math.min(90, Math.max(0, event.progress)) };
932
+ }),
933
+ setUploadProgressCompleted: assign(() => ({ uploadProgress: 100 })),
934
+ storeUploadResponse: assign(({ event }) => {
935
+ if (!("output" in event)) return {};
936
+ const output = event;
937
+ return {
938
+ response: output.output,
939
+ uploadDurationMs: output.output.uploadDurationMs
940
+ };
941
+ }),
942
+ setFailReasonFromResponse: assign(({ event }) => {
943
+ if (!("output" in event)) return {};
944
+ const response = event.output;
945
+ return { failReason: mapDigitalIdFailReason(response) ?? "GENERIC" };
946
+ }),
947
+ setFailReasonFromNetworkError: assign(({ event }) => {
948
+ if (!("error" in event)) return {};
949
+ return { failReason: classifyNetworkError(event.error) };
950
+ }),
951
+ decrementAttemptOnRetry: assign(({ context }) => {
952
+ if (!(context.failReason !== "INVALID_FILE_TYPE" && context.failReason !== null && context.failReason !== "DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED" && context.failReason !== "ID_TYPE_UNACCEPTABLE")) return {};
953
+ return { attemptsRemaining: Math.max(0, context.attemptsRemaining - 1) };
954
+ })
955
+ },
956
+ guards: {
957
+ isSelectedFileTooLarge: ({ event }) => event.type === "FILE_PICKED" && event.file.size > DIGITAL_UPLOAD_MAX_FILE_SIZE_BYTES,
958
+ isSelectedFileMimeInvalid: ({ event }) => event.type === "FILE_PICKED" && !DIGITAL_UPLOAD_ALLOWED_MIME_TYPES.includes(event.file.type),
959
+ hasSelectedFile: ({ context }) => context.file !== null,
960
+ responseHasFailReason: ({ event }) => mapDigitalIdFailReason(getUploadResponseFromEvent(event)) !== null,
961
+ hasAttemptsRemaining: ({ context }) => context.attemptsRemaining > 0,
962
+ isTerminalFailReason: ({ event }) => {
963
+ return isTerminalDigitalIdFailReason(getUploadResponseFromEvent(event));
964
+ },
965
+ isCurrentFailReasonTerminal: ({ context }) => {
966
+ const terminalReasons = new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
967
+ return context.failReason !== null && terminalReasons.has(context.failReason);
968
+ }
969
+ }
970
+ }).createMachine({
971
+ id: "digitalUpload",
972
+ initial: "decideStart",
973
+ context: ({ input }) => ({
974
+ showTutorial: input.showTutorial,
975
+ file: null,
976
+ uploadProgress: 0,
977
+ attemptsRemaining: DIGITAL_UPLOAD_MAX_RETRIES,
978
+ failReason: null,
979
+ response: void 0,
980
+ uploadDurationMs: void 0,
981
+ pickerRequestId: 0,
982
+ pendingPickerAutoOpen: !input.showTutorial,
983
+ resultType: null
984
+ }),
985
+ output: ({ context }) => ({ result: context.resultType ?? "exhausted" }),
986
+ states: {
987
+ decideStart: { always: [{
988
+ guard: ({ context }) => context.showTutorial,
989
+ target: "tutorial"
990
+ }, { target: "selecting" }] },
991
+ tutorial: { on: { NEXT_STEP: {
992
+ target: "selecting",
993
+ actions: ["setPendingPickerAutoOpen"]
994
+ } } },
995
+ selecting: {
996
+ entry: ["requestPickerIfPending"],
997
+ on: { FILE_PICKED: [
998
+ {
999
+ guard: "isSelectedFileTooLarge",
1000
+ target: "fileTooLarge",
1001
+ actions: ["clearSelectedFile"]
1002
+ },
1003
+ {
1004
+ guard: "isSelectedFileMimeInvalid",
1005
+ target: "error",
1006
+ actions: ["setInvalidFileTypeError"]
1007
+ },
1008
+ {
1009
+ target: "reviewing",
1010
+ actions: ["storeSelectedFile"]
1011
+ }
1012
+ ] }
1013
+ },
1014
+ fileTooLarge: { on: { CHOOSE_ANOTHER: {
1015
+ target: "selecting",
1016
+ actions: ["clearSelectedFile", "setPendingPickerAutoOpen"]
1017
+ } } },
1018
+ reviewing: { on: {
1019
+ CONFIRM: {
1020
+ target: "uploading",
1021
+ guard: "hasSelectedFile"
1022
+ },
1023
+ REPLACE: {
1024
+ target: "selecting",
1025
+ actions: ["setPendingPickerAutoOpen"]
1026
+ }
1027
+ } },
1028
+ uploading: {
1029
+ invoke: {
1030
+ id: "uploadDigitalId",
1031
+ src: "uploadDigitalId",
1032
+ input: ({ context, self }) => ({
1033
+ file: context.file,
1034
+ onProgress: (progress) => {
1035
+ self.send({
1036
+ type: "UPLOAD_PROGRESS",
1037
+ progress
1038
+ });
1039
+ }
1040
+ }),
1041
+ onDone: [
1042
+ {
1043
+ guard: "isTerminalFailReason",
1044
+ target: "retriesExhausted",
1045
+ actions: ["storeUploadResponse", "setFailReasonFromResponse"]
1046
+ },
1047
+ {
1048
+ guard: "responseHasFailReason",
1049
+ target: "checkRetries",
1050
+ actions: ["storeUploadResponse", "setFailReasonFromResponse"]
1051
+ },
1052
+ {
1053
+ target: "success",
1054
+ actions: ["storeUploadResponse", "setUploadProgressCompleted"]
1055
+ }
1056
+ ],
1057
+ onError: {
1058
+ target: "checkRetries",
1059
+ actions: ["setFailReasonFromNetworkError"]
1060
+ }
1061
+ },
1062
+ initial: "analyzing",
1063
+ states: {
1064
+ analyzing: { after: { [DIGITAL_UPLOAD_HOLDING_TIMEOUT_MS]: { target: "holding" } } },
1065
+ holding: {}
1066
+ },
1067
+ on: { UPLOAD_PROGRESS: { actions: ["setUploadProgressCapped"] } }
1068
+ },
1069
+ checkRetries: { always: [
1070
+ {
1071
+ guard: "isCurrentFailReasonTerminal",
1072
+ target: "retriesExhausted"
1073
+ },
1074
+ {
1075
+ guard: "hasAttemptsRemaining",
1076
+ target: "error"
1077
+ },
1078
+ { target: "retriesExhausted" }
1079
+ ] },
1080
+ error: { on: {
1081
+ RETRY: {
1082
+ target: "selecting",
1083
+ actions: [
1084
+ "decrementAttemptOnRetry",
1085
+ "setPendingPickerAutoOpen",
1086
+ "clearSelectedFile"
1087
+ ]
1088
+ },
1089
+ SCAN_INSTEAD: { target: "closed" }
1090
+ } },
1091
+ retriesExhausted: {
1092
+ type: "final",
1093
+ entry: assign({ resultType: "exhausted" })
1094
+ },
1095
+ closed: {
1096
+ type: "final",
1097
+ entry: assign({ resultType: "closed" })
1098
+ },
1099
+ success: { on: { NEXT_STEP: { target: "completed" } } },
1100
+ completed: {
1101
+ type: "final",
1102
+ entry: assign({ resultType: "success" })
1103
+ }
1104
+ }
1105
+ });
1106
+ const digitalUploadMachine = _digitalUploadMachine;
1107
+
1108
+ //#endregion
1109
+ //#region src/modules/id/digitalUpload/instrumentation.ts
1110
+ const TERMINAL_REASONS = new Set(["DIGITAL_ID_REQUESTED_BUT_OTHER_PROVIDED", "ID_TYPE_UNACCEPTABLE"]);
1111
+ function isHoldingState(value) {
1112
+ if (value === "holding") return true;
1113
+ if (typeof value !== "object" || value === null) return false;
1114
+ const uploadingState = value.uploading;
1115
+ if (uploadingState === "holding") return true;
1116
+ if (typeof uploadingState === "object" && uploadingState !== null) return Object.prototype.hasOwnProperty.call(uploadingState, "holding");
1117
+ return false;
1118
+ }
1119
+ function mapDigitalIdScreenName(value, failReason) {
1120
+ if (value === "tutorial") return "uploadDigitalid.tutorial.default";
1121
+ if (value === "selecting" || value === "reviewing") return "uploadDigitalid.review.default";
1122
+ if (value === "uploading" || isHoldingState(value)) return "uploadDigitalid.analyzing.default";
1123
+ if (value === "success") return "uploadDigitalid.success.default";
1124
+ if (value === "fileTooLarge") return "uploadDigitalid.error.filetoolarge";
1125
+ if (value === "error") {
1126
+ if (failReason !== null && TERMINAL_REASONS.has(failReason)) return "uploadDigitalid.error.notaccepted";
1127
+ return "uploadDigitalid.error.default";
1128
+ }
1129
+ return "uploadDigitalid.review.default";
1130
+ }
1131
+
838
1132
  //#endregion
839
1133
  //#region ../infra/src/wasm/idCaptureDefaults.ts
840
1134
  /**
@@ -1175,7 +1469,7 @@ const checkMotionSensorActor = fromCallback(({ input, sendBack }) => {
1175
1469
  });
1176
1470
  const initializeDeepsightSessionActor = fromPromise(async ({ input }) => {
1177
1471
  if (!input.dependencies) return;
1178
- const { loadDeepsightSession } = await import("./deepsightLoader-CFNSfs2N.esm.js");
1472
+ const { loadDeepsightSession } = await import("./deepsightLoader-BMeAmiNh.esm.js");
1179
1473
  return loadDeepsightSession({
1180
1474
  ds: input.ds,
1181
1475
  storage: input.dependencies.storage,
@@ -1480,6 +1774,7 @@ const isDeepsightReadyGuard = ({ context }) => context.deepsightService !== void
1480
1774
  const needsDeepsightInitGuard = ({ context }) => context.dependencies !== void 0 && context.deepsightService === void 0 && !context.deepsightInitAttempted;
1481
1775
  const hasOnlyManualUploadAvailableGuard = ({ context }) => context.availableDocumentTypes.length === 1 && context.availableDocumentTypes[0] === "manualIdUpload";
1482
1776
  const isManualIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "manualIdUpload";
1777
+ const isDigitalIdUploadSelectedGuard = ({ event }) => event.type === "SELECT_DOCUMENT" && event.documentType === "digitalIdUpload";
1483
1778
 
1484
1779
  //#endregion
1485
1780
  //#region src/modules/id/idCaptureStateMachine.ts
@@ -1506,7 +1801,8 @@ const _idCaptureMachine = setup({
1506
1801
  checkMotionSensor: checkMotionSensorActor,
1507
1802
  initializeDeepsightSession: initializeDeepsightSessionActor,
1508
1803
  checkVirtualCamera: checkVirtualCameraActor,
1509
- manualUploadMachine
1804
+ manualUploadMachine,
1805
+ digitalUploadMachine
1510
1806
  },
1511
1807
  actions: {
1512
1808
  stopMediaStream: assign(({ context }) => {
@@ -1680,7 +1976,11 @@ const _idCaptureMachine = setup({
1680
1976
  needsDeepsightInit: needsDeepsightInitGuard,
1681
1977
  hasOnlyManualUploadAvailable: hasOnlyManualUploadAvailableGuard,
1682
1978
  isManualIdUploadSelected: isManualIdUploadSelectedGuard,
1683
- isManualUploadExhausted: ({ event }) => event.output?.result === "exhausted"
1979
+ isDigitalIdUploadSelected: isDigitalIdUploadSelectedGuard,
1980
+ isManualUploadExhausted: ({ event }) => event.output?.result === "exhausted",
1981
+ isDigitalUploadExhausted: ({ event }) => event.output?.result === "exhausted",
1982
+ isDigitalUploadClosed: ({ event }) => event.output?.result === "closed",
1983
+ isDigitalUploadSuccessful: ({ event }) => event.output?.result === "success"
1684
1984
  }
1685
1985
  }).createMachine({
1686
1986
  id: "idCapture",
@@ -1749,6 +2049,11 @@ const _idCaptureMachine = setup({
1749
2049
  { target: "loading" }
1750
2050
  ] } },
1751
2051
  chooser: { on: { SELECT_DOCUMENT: [
2052
+ {
2053
+ target: "digitalIdUpload",
2054
+ guard: "isDigitalIdUploadSelected",
2055
+ actions: ["setSelectedDocument"]
2056
+ },
1752
2057
  {
1753
2058
  target: "manualIdUpload",
1754
2059
  guard: "isManualIdUploadSelected",
@@ -2355,10 +2660,7 @@ const _idCaptureMachine = setup({
2355
2660
  id: "processId",
2356
2661
  src: "processId",
2357
2662
  input: ({ context }) => ({ isSecondId: context.config.isSecondId ?? false }),
2358
- onDone: [{
2359
- target: "expired",
2360
- guard: ({ event }) => event.output.isDocumentExpired
2361
- }, { target: "finished" }],
2663
+ onDone: { target: "finished" },
2362
2664
  onError: { target: "finished" }
2363
2665
  }
2364
2666
  },
@@ -2437,10 +2739,52 @@ const _idCaptureMachine = setup({
2437
2739
  MANUAL_UPLOAD_RESET: { actions: sendTo("manualIdUpload", ({ event }) => event) }
2438
2740
  }
2439
2741
  },
2440
- digitalIdUpload: { on: { QUIT: { target: "closed" } } }
2742
+ digitalIdUpload: {
2743
+ invoke: {
2744
+ id: "digitalIdUpload",
2745
+ src: "digitalUploadMachine",
2746
+ input: ({ context }) => ({ showTutorial: context.config.showTutorial }),
2747
+ onSnapshot: { actions: () => {} },
2748
+ onDone: [
2749
+ {
2750
+ guard: "isDigitalUploadExhausted",
2751
+ target: "#idCapture.finished"
2752
+ },
2753
+ {
2754
+ guard: "isDigitalUploadClosed",
2755
+ target: "#idCapture.chooser"
2756
+ },
2757
+ {
2758
+ guard: "isDigitalUploadSuccessful",
2759
+ target: "#idCapture.processing"
2760
+ },
2761
+ {
2762
+ target: "#idCapture.error",
2763
+ actions: assign({ error: () => "Digital upload finished without output" })
2764
+ }
2765
+ ],
2766
+ onError: {
2767
+ target: "#idCapture.error",
2768
+ actions: assign({ error: ({ event }) => String(event.error) })
2769
+ }
2770
+ },
2771
+ on: {
2772
+ QUIT: { target: "closed" },
2773
+ DIGITAL_UPLOAD_NEXT_STEP: { actions: sendTo("digitalIdUpload", { type: "NEXT_STEP" }) },
2774
+ DIGITAL_UPLOAD_FILE_PICKED: { actions: sendTo("digitalIdUpload", ({ event }) => ({
2775
+ type: "FILE_PICKED",
2776
+ file: event.file
2777
+ })) },
2778
+ DIGITAL_UPLOAD_CONFIRM: { actions: sendTo("digitalIdUpload", { type: "CONFIRM" }) },
2779
+ DIGITAL_UPLOAD_REPLACE: { actions: sendTo("digitalIdUpload", { type: "REPLACE" }) },
2780
+ DIGITAL_UPLOAD_RETRY: { actions: sendTo("digitalIdUpload", { type: "RETRY" }) },
2781
+ DIGITAL_UPLOAD_SCAN_INSTEAD: { actions: sendTo("digitalIdUpload", { type: "SCAN_INSTEAD" }) },
2782
+ DIGITAL_UPLOAD_CHOOSE_ANOTHER: { actions: sendTo("digitalIdUpload", { type: "CHOOSE_ANOTHER" }) }
2783
+ }
2784
+ }
2441
2785
  }
2442
2786
  });
2443
2787
  const idCaptureMachine = _idCaptureMachine;
2444
2788
 
2445
2789
  //#endregion
2446
- export { startRecordingSession as a, uploadIdImage as c, ID_ERROR_CODES as d, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS as f, processId as i, uploadManualIdFile as l, MANUAL_UPLOAD_MAX_RETRIES as m, initializeIdCapture as n, stopRecording as o, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES as p, preloadIdRecordingProvider as r, stopStream as s, idCaptureMachine as t, validateUploadResponse as u };
2790
+ export { preloadIdRecordingProvider as a, stopRecording as c, uploadManualIdFile as d, validateUploadResponse as f, MANUAL_UPLOAD_MAX_RETRIES as g, MANUAL_UPLOAD_MAX_FILE_SIZE_BYTES as h, initializeIdCapture as i, stopStream as l, MANUAL_UPLOAD_EXHAUSTION_FORWARD_MS as m, mapDigitalIdScreenName as n, processId as o, ID_ERROR_CODES as p, DIGITAL_UPLOAD_MAX_RETRIES as r, startRecordingSession as s, idCaptureMachine as t, uploadIdImage as u };
@@ -1,6 +1,6 @@
1
1
  import { t as Manager } from "./Manager-D9pehGyp.js";
2
2
  import { t as ActorRefFrom } from "./Actor-YjWTo26u.js";
3
- import * as xstate157 from "xstate";
3
+ import * as xstate322 from "xstate";
4
4
 
5
5
  //#region src/modules/identity-reuse/types.d.ts
6
6
 
@@ -32,7 +32,7 @@ type IdentityReuseContext = {
32
32
  type IdentityReuseInput = {
33
33
  config: IdentityReuseConfig;
34
34
  };
35
- declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext, {
35
+ declare const identityReuseMachine: xstate322.StateMachine<IdentityReuseContext, {
36
36
  type: "LOAD";
37
37
  } | {
38
38
  type: "START_SELECTION";
@@ -48,49 +48,49 @@ declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext,
48
48
  } | {
49
49
  type: "RETRY";
50
50
  }, {
51
- [x: string]: xstate157.ActorRefFromLogic<xstate157.PromiseActorLogic<FetchCandidatesResponse, void, xstate157.EventObject>> | xstate157.ActorRefFromLogic<xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>> | undefined;
52
- }, xstate157.Values<{
51
+ [x: string]: xstate322.ActorRefFromLogic<xstate322.PromiseActorLogic<FetchCandidatesResponse, void, xstate322.EventObject>> | xstate322.ActorRefFromLogic<xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>> | undefined;
52
+ }, xstate322.Values<{
53
53
  fetchCandidates: {
54
54
  src: "fetchCandidates";
55
- logic: xstate157.PromiseActorLogic<FetchCandidatesResponse, void, xstate157.EventObject>;
55
+ logic: xstate322.PromiseActorLogic<FetchCandidatesResponse, void, xstate322.EventObject>;
56
56
  id: string | undefined;
57
57
  };
58
58
  submitContinue: {
59
59
  src: "submitContinue";
60
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
60
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
61
61
  id: string | undefined;
62
62
  };
63
63
  submitSkip: {
64
64
  src: "submitSkip";
65
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
65
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
66
66
  id: string | undefined;
67
67
  };
68
- }>, xstate157.Values<{
68
+ }>, xstate322.Values<{
69
69
  setError: {
70
70
  type: "setError";
71
- params: xstate157.NonReducibleUnknown;
71
+ params: xstate322.NonReducibleUnknown;
72
72
  };
73
73
  clearError: {
74
74
  type: "clearError";
75
- params: xstate157.NonReducibleUnknown;
75
+ params: xstate322.NonReducibleUnknown;
76
76
  };
77
77
  setCandidates: {
78
78
  type: "setCandidates";
79
- params: xstate157.NonReducibleUnknown;
79
+ params: xstate322.NonReducibleUnknown;
80
80
  };
81
81
  setSelectedCandidate: {
82
82
  type: "setSelectedCandidate";
83
- params: xstate157.NonReducibleUnknown;
83
+ params: xstate322.NonReducibleUnknown;
84
84
  };
85
85
  autoSelectSingleCandidate: {
86
86
  type: "autoSelectSingleCandidate";
87
- params: xstate157.NonReducibleUnknown;
87
+ params: xstate322.NonReducibleUnknown;
88
88
  };
89
89
  clearSelection: {
90
90
  type: "clearSelection";
91
- params: xstate157.NonReducibleUnknown;
91
+ params: xstate322.NonReducibleUnknown;
92
92
  };
93
- }>, xstate157.Values<{
93
+ }>, xstate322.Values<{
94
94
  hasMultipleCandidates: {
95
95
  type: "hasMultipleCandidates";
96
96
  params: unknown;
@@ -105,7 +105,7 @@ declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext,
105
105
  };
106
106
  }>, never, "error" | "idle" | "finished" | "loading" | "submitContinue" | "submitSkip" | "oneCandidateFound" | "noCandidatesFound" | {
107
107
  multiCandidatesFound: "noCandidateSelected" | "choosingCandidate" | "candidateSelected";
108
- }, string, IdentityReuseInput, xstate157.NonReducibleUnknown, xstate157.EventObject, xstate157.MetaObject, {
108
+ }, string, IdentityReuseInput, xstate322.NonReducibleUnknown, xstate322.EventObject, xstate322.MetaObject, {
109
109
  readonly id: "identityReuse";
110
110
  readonly initial: "idle";
111
111
  readonly context: ({
@@ -114,75 +114,75 @@ declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext,
114
114
  spawn: {
115
115
  <TSrc extends "fetchCandidates" | "submitContinue" | "submitSkip">(logic: TSrc, ...[options]: ({
116
116
  src: "fetchCandidates";
117
- logic: xstate157.PromiseActorLogic<FetchCandidatesResponse, void, xstate157.EventObject>;
117
+ logic: xstate322.PromiseActorLogic<FetchCandidatesResponse, void, xstate322.EventObject>;
118
118
  id: string | undefined;
119
119
  } extends infer T ? T extends {
120
120
  src: "fetchCandidates";
121
- logic: xstate157.PromiseActorLogic<FetchCandidatesResponse, void, xstate157.EventObject>;
121
+ logic: xstate322.PromiseActorLogic<FetchCandidatesResponse, void, xstate322.EventObject>;
122
122
  id: string | undefined;
123
123
  } ? T extends {
124
124
  src: TSrc;
125
- } ? xstate157.ConditionalRequired<[options?: ({
125
+ } ? xstate322.ConditionalRequired<[options?: ({
126
126
  id?: T["id"] | undefined;
127
127
  systemId?: string;
128
- input?: xstate157.InputFrom<T["logic"]> | undefined;
128
+ input?: xstate322.InputFrom<T["logic"]> | undefined;
129
129
  syncSnapshot?: boolean;
130
- } & { [K in xstate157.RequiredActorOptions<T>]: unknown }) | undefined], xstate157.IsNotNever<xstate157.RequiredActorOptions<T>>> : never : never : never) | ({
130
+ } & { [K in xstate322.RequiredActorOptions<T>]: unknown }) | undefined], xstate322.IsNotNever<xstate322.RequiredActorOptions<T>>> : never : never : never) | ({
131
131
  src: "submitContinue";
132
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
132
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
133
133
  id: string | undefined;
134
134
  } extends infer T_1 ? T_1 extends {
135
135
  src: "submitContinue";
136
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
136
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
137
137
  id: string | undefined;
138
138
  } ? T_1 extends {
139
139
  src: TSrc;
140
- } ? xstate157.ConditionalRequired<[options?: ({
140
+ } ? xstate322.ConditionalRequired<[options?: ({
141
141
  id?: T_1["id"] | undefined;
142
142
  systemId?: string;
143
- input?: xstate157.InputFrom<T_1["logic"]> | undefined;
143
+ input?: xstate322.InputFrom<T_1["logic"]> | undefined;
144
144
  syncSnapshot?: boolean;
145
- } & { [K_1 in xstate157.RequiredActorOptions<T_1>]: unknown }) | undefined], xstate157.IsNotNever<xstate157.RequiredActorOptions<T_1>>> : never : never : never) | ({
145
+ } & { [K_1 in xstate322.RequiredActorOptions<T_1>]: unknown }) | undefined], xstate322.IsNotNever<xstate322.RequiredActorOptions<T_1>>> : never : never : never) | ({
146
146
  src: "submitSkip";
147
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
147
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
148
148
  id: string | undefined;
149
149
  } extends infer T_2 ? T_2 extends {
150
150
  src: "submitSkip";
151
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
151
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
152
152
  id: string | undefined;
153
153
  } ? T_2 extends {
154
154
  src: TSrc;
155
- } ? xstate157.ConditionalRequired<[options?: ({
155
+ } ? xstate322.ConditionalRequired<[options?: ({
156
156
  id?: T_2["id"] | undefined;
157
157
  systemId?: string;
158
- input?: xstate157.InputFrom<T_2["logic"]> | undefined;
158
+ input?: xstate322.InputFrom<T_2["logic"]> | undefined;
159
159
  syncSnapshot?: boolean;
160
- } & { [K_2 in xstate157.RequiredActorOptions<T_2>]: unknown }) | undefined], xstate157.IsNotNever<xstate157.RequiredActorOptions<T_2>>> : never : never : never)): xstate157.ActorRefFromLogic<xstate157.GetConcreteByKey<xstate157.Values<{
160
+ } & { [K_2 in xstate322.RequiredActorOptions<T_2>]: unknown }) | undefined], xstate322.IsNotNever<xstate322.RequiredActorOptions<T_2>>> : never : never : never)): xstate322.ActorRefFromLogic<xstate322.GetConcreteByKey<xstate322.Values<{
161
161
  fetchCandidates: {
162
162
  src: "fetchCandidates";
163
- logic: xstate157.PromiseActorLogic<FetchCandidatesResponse, void, xstate157.EventObject>;
163
+ logic: xstate322.PromiseActorLogic<FetchCandidatesResponse, void, xstate322.EventObject>;
164
164
  id: string | undefined;
165
165
  };
166
166
  submitContinue: {
167
167
  src: "submitContinue";
168
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
168
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
169
169
  id: string | undefined;
170
170
  };
171
171
  submitSkip: {
172
172
  src: "submitSkip";
173
- logic: xstate157.PromiseActorLogic<SubmitResponse, void, xstate157.EventObject>;
173
+ logic: xstate322.PromiseActorLogic<SubmitResponse, void, xstate322.EventObject>;
174
174
  id: string | undefined;
175
175
  };
176
176
  }>, "src", TSrc>["logic"]>;
177
- <TLogic extends xstate157.AnyActorLogic>(src: TLogic, ...[options]: xstate157.ConditionalRequired<[options?: ({
177
+ <TLogic extends xstate322.AnyActorLogic>(src: TLogic, ...[options]: xstate322.ConditionalRequired<[options?: ({
178
178
  id?: never;
179
179
  systemId?: string;
180
- input?: xstate157.InputFrom<TLogic> | undefined;
180
+ input?: xstate322.InputFrom<TLogic> | undefined;
181
181
  syncSnapshot?: boolean;
182
- } & { [K in xstate157.RequiredLogicInput<TLogic>]: unknown }) | undefined], xstate157.IsNotNever<xstate157.RequiredLogicInput<TLogic>>>): xstate157.ActorRefFromLogic<TLogic>;
182
+ } & { [K in xstate322.RequiredLogicInput<TLogic>]: unknown }) | undefined], xstate322.IsNotNever<xstate322.RequiredLogicInput<TLogic>>>): xstate322.ActorRefFromLogic<TLogic>;
183
183
  };
184
184
  input: IdentityReuseInput;
185
- self: xstate157.ActorRef<xstate157.MachineSnapshot<IdentityReuseContext, {
185
+ self: xstate322.ActorRef<xstate322.MachineSnapshot<IdentityReuseContext, {
186
186
  type: "LOAD";
187
187
  } | {
188
188
  type: "START_SELECTION";
@@ -197,7 +197,7 @@ declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext,
197
197
  type: "SKIP";
198
198
  } | {
199
199
  type: "RETRY";
200
- }, Record<string, xstate157.AnyActorRef | undefined>, xstate157.StateValue, string, unknown, any, any>, {
200
+ }, Record<string, xstate322.AnyActorRef | undefined>, xstate322.StateValue, string, unknown, any, any>, {
201
201
  type: "LOAD";
202
202
  } | {
203
203
  type: "START_SELECTION";
@@ -212,7 +212,7 @@ declare const identityReuseMachine: xstate157.StateMachine<IdentityReuseContext,
212
212
  type: "SKIP";
213
213
  } | {
214
214
  type: "RETRY";
215
- }, xstate157.AnyEventObject>;
215
+ }, xstate322.AnyEventObject>;
216
216
  }) => {
217
217
  config: IdentityReuseConfig;
218
218
  currentOrganizationName: undefined;