@incodetech/core 0.0.0-dev-20260414-db434be → 0.0.0-dev-20260415-432dcaa

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 (146) hide show
  1. package/dist/{OpenViduRecordingProvider-CCUuM9nV.esm.js → OpenViduRecordingProvider-Ciy_C-1w.esm.js} +1 -1
  2. package/dist/{WasmUtilProvider-CYe0Xlh-.esm.js → WasmUtilProvider-RZBzkh7k.esm.js} +1 -1
  3. package/dist/{addressSearch-Ui2rQ1v-.esm.js → addressSearch-Cz9NYgko.esm.js} +4 -4
  4. package/dist/ae-signature.d.ts +24 -0
  5. package/dist/ae-signature.esm.js +15 -0
  6. package/dist/antifraud.d.ts +1 -1
  7. package/dist/antifraud.esm.js +4 -4
  8. package/dist/{antifraudStateMachine-ZNM45OSv.esm.js → antifraudStateMachine-CVr29EJh.esm.js} +3 -3
  9. package/dist/authentication.d.ts +11 -11
  10. package/dist/authentication.esm.js +22 -22
  11. package/dist/{authenticationManager-CwWzwxMp.esm.js → authenticationManager-BxcMxtQl.esm.js} +6 -6
  12. package/dist/{authenticationManager-BuWdnIab.d.ts → authenticationManager-CK4l8wr4.d.ts} +2 -2
  13. package/dist/{authenticationStateMachine-CAvcWS_b.esm.js → authenticationStateMachine-BWKN0R2c.esm.js} +6 -6
  14. package/dist/{backCameraStream-amVBjSd6.esm.js → backCameraStream-CpBKOMnS.esm.js} +3 -3
  15. package/dist/camera.d.ts +1 -1
  16. package/dist/camera.esm.js +3 -3
  17. package/dist/consent.d.ts +55 -55
  18. package/dist/consent.esm.js +4 -4
  19. package/dist/{consentStateMachine-YbOlYveq.esm.js → consentStateMachine-DbBjzAXB.esm.js} +3 -3
  20. package/dist/cross-document-data-match.d.ts +1 -1
  21. package/dist/cross-document-data-match.esm.js +4 -4
  22. package/dist/curp-validation.d.ts +5 -5
  23. package/dist/curp-validation.esm.js +4 -4
  24. package/dist/{curpValidationStateMachine-D3NZ1SVG.esm.js → curpValidationStateMachine-AuZoCjxU.esm.js} +3 -3
  25. package/dist/{deepsightLoader-BqeQIeno.esm.js → deepsightLoader-9DucrEFj.esm.js} +10 -10
  26. package/dist/{deepsightService-CNR9-7As.d.ts → deepsightService-C28DG6Ft.d.ts} +2 -2
  27. package/dist/{deepsightService-B14izXzw.esm.js → deepsightService-EaIu5DxV.esm.js} +5 -5
  28. package/dist/device.esm.js +3 -3
  29. package/dist/document-capture.d.ts +98 -106
  30. package/dist/document-capture.esm.js +8 -8
  31. package/dist/document-upload.d.ts +72 -72
  32. package/dist/document-upload.esm.js +7 -7
  33. package/dist/{documentCaptureStateMachine-CFNsZHSs.esm.js → documentCaptureStateMachine-DenkJZKV.esm.js} +14 -23
  34. package/dist/ekyb.d.ts +3 -3
  35. package/dist/ekyb.esm.js +10 -10
  36. package/dist/{ekybStateMachine-BJS8bjot.esm.js → ekybStateMachine-Cl7b0XCy.esm.js} +5 -5
  37. package/dist/ekyc.d.ts +3 -3
  38. package/dist/ekyc.esm.js +6 -6
  39. package/dist/{ekycStateMachine-CYGpzMDd.esm.js → ekycStateMachine-aVfjxZ41.esm.js} +4 -4
  40. package/dist/electronicSignatureManager-BqePYetY.esm.js +432 -0
  41. package/dist/electronicSignatureManager-C6fUzNt6.d.ts +1153 -0
  42. package/dist/email.d.ts +3 -3
  43. package/dist/email.esm.js +6 -6
  44. package/dist/{emailManager-DT0plT1F.d.ts → emailManager-DAWpPgCJ.d.ts} +2 -2
  45. package/dist/{emailManager-BNmWTggA.esm.js → emailManager-DTYtzTYm.esm.js} +3 -3
  46. package/dist/{emailStateMachine-vD2VtYZM.esm.js → emailStateMachine-BHNluo0p.esm.js} +4 -4
  47. package/dist/{events-B3HfNWqp.esm.js → events-DmzL4OZZ.esm.js} +7 -1
  48. package/dist/events.d.ts +2 -0
  49. package/dist/events.esm.js +2 -2
  50. package/dist/extensibility.d.ts +15 -15
  51. package/dist/extensibility.esm.js +33 -33
  52. package/dist/face-match.d.ts +1 -1
  53. package/dist/face-match.esm.js +4 -4
  54. package/dist/{faceCaptureManagerFactory-odfjA0d8.esm.js → faceCaptureManagerFactory-CJsHKhu8.esm.js} +2 -2
  55. package/dist/{faceCaptureManagerFactory-BBwp70tn.d.ts → faceCaptureManagerFactory-Car0SoBv.d.ts} +8 -8
  56. package/dist/{faceCaptureSetup-CdYYDgN6.esm.js → faceCaptureSetup-H3x5y_nm.esm.js} +4 -4
  57. package/dist/{faceMatchStateMachine-DptHGpKT.esm.js → faceMatchStateMachine-CmFGmxtP.esm.js} +3 -3
  58. package/dist/flow.d.ts +8 -8
  59. package/dist/flow.esm.js +9 -9
  60. package/dist/{flowCompletionService-BhzS182Y.esm.js → flowCompletionService-DvZhkDzr.esm.js} +2 -2
  61. package/dist/{flowServices-D_yVNocO.esm.js → flowServices-uftC020V.esm.js} +3 -3
  62. package/dist/geolocation.d.ts +2 -2
  63. package/dist/geolocation.esm.js +5 -5
  64. package/dist/{geolocationStateMachine-DY8eWROq.esm.js → geolocationStateMachine-cw1LrE-R.esm.js} +4 -4
  65. package/dist/{getDeviceClass-CkdEWjAM.esm.js → getDeviceClass-DvSG23zt.esm.js} +1 -1
  66. package/dist/government-validation.d.ts +2 -2
  67. package/dist/government-validation.esm.js +5 -5
  68. package/dist/{governmentValidationStateMachine-DCqdkm8Z.esm.js → governmentValidationStateMachine-B5X079V6.esm.js} +4 -4
  69. package/dist/home.d.ts +14 -14
  70. package/dist/home.esm.js +3 -3
  71. package/dist/http.esm.js +1 -1
  72. package/dist/id.d.ts +10 -10
  73. package/dist/id.esm.js +22 -22
  74. package/dist/{idCaptureManager-_e78xuEM.esm.js → idCaptureManager-B0ipfrTC.esm.js} +4 -4
  75. package/dist/{idCaptureManager-D1MiNNuR.d.ts → idCaptureManager-C2y_hNL4.d.ts} +7 -7
  76. package/dist/{idCaptureStateMachine-CYPfS8iO.esm.js → idCaptureStateMachine-aKKT9PIC.esm.js} +16 -16
  77. package/dist/identity-reuse.d.ts +49 -49
  78. package/dist/identity-reuse.esm.js +3 -3
  79. package/dist/index.d.ts +2 -2
  80. package/dist/index.esm.js +8 -8
  81. package/dist/{lib-BcTqNgYu.esm.js → lib-CTYFcYOn.esm.js} +1 -1
  82. package/dist/mandatory-consent.d.ts +59 -59
  83. package/dist/mandatory-consent.esm.js +4 -4
  84. package/dist/{mandatoryConsentStateMachine-D0weA8Cn.esm.js → mandatoryConsentStateMachine-BqOdr8kI.esm.js} +3 -3
  85. package/dist/openviduLazy-CYWQSgV9.esm.js +3 -0
  86. package/dist/{openviduLazy-BiBkiXcn.esm.js → openviduLazy-CsZvAzAX.esm.js} +2 -2
  87. package/dist/{permissionServices-ElKNJ-9J.esm.js → permissionServices-CMsg2Z9E.esm.js} +2 -2
  88. package/dist/phone.d.ts +3 -3
  89. package/dist/phone.esm.js +6 -6
  90. package/dist/{phoneManager-BxWESUBK.d.ts → phoneManager-Bj2WG_9H.d.ts} +2 -2
  91. package/dist/{phoneManager-CRVt9rvr.esm.js → phoneManager-DMlXPxkM.esm.js} +3 -3
  92. package/dist/{phoneStateMachine-BMTT0tvu.esm.js → phoneStateMachine-DOySziDt.esm.js} +4 -4
  93. package/dist/qe-signature.d.ts +24 -0
  94. package/dist/qe-signature.esm.js +15 -0
  95. package/dist/{recordingService-BNOxJMAM.esm.js → recordingService-BmI8K0rU.esm.js} +13 -13
  96. package/dist/redirect-to-mobile.d.ts +2 -2
  97. package/dist/redirect-to-mobile.esm.js +5 -5
  98. package/dist/{redirectToMobileStateMachine-8yOC9dnH.esm.js → redirectToMobileStateMachine-Df9Wiij3.esm.js} +4 -4
  99. package/dist/{runChildModule-eBqC5Z25.esm.js → runChildModule-BdmUJlUx.esm.js} +1 -1
  100. package/dist/selfie.d.ts +11 -11
  101. package/dist/selfie.esm.js +22 -22
  102. package/dist/{selfieManager-B7XmNptL.d.ts → selfieManager-C3FdEHmA.d.ts} +2 -2
  103. package/dist/{selfieManager-C6pl5f2B.esm.js → selfieManager-_Vz0tGue.esm.js} +6 -6
  104. package/dist/{selfieStateMachine-B88Q3SFX.esm.js → selfieStateMachine-Dt_3P1iP.esm.js} +3 -3
  105. package/dist/{session-D2s2kUoa.esm.js → session-DCwK8lml.esm.js} +4 -4
  106. package/dist/session.d.ts +1 -1
  107. package/dist/session.esm.js +6 -6
  108. package/dist/{setup-DR4SBtyZ.d.ts → setup-C9KXCo_m.d.ts} +1 -1
  109. package/dist/{setup-nE0hEkGl.esm.js → setup-TyKY9awM.esm.js} +5 -5
  110. package/dist/signature.d.ts +2 -2
  111. package/dist/signature.esm.js +4 -4
  112. package/dist/{signatureStateMachine-BOdPhzPM.esm.js → signatureStateMachine-D3QtzFAx.esm.js} +3 -3
  113. package/dist/{stats-D0m-GAIR.esm.js → stats-nPGKzcyf.esm.js} +1 -1
  114. package/dist/stats.esm.js +2 -2
  115. package/dist/{types-DR5Xxm-c.d.ts → types-C6RDNA3x.d.ts} +1 -1
  116. package/dist/{types-BoV6HZZE.d.ts → types-DoaP1d4y.d.ts} +1 -1
  117. package/dist/{types-vklwHgIM.d.ts → types-Dt0PX_G8.d.ts} +1 -1
  118. package/dist/wasm.d.ts +2 -2
  119. package/dist/wasm.esm.js +8 -8
  120. package/dist/watchlist.d.ts +1 -1
  121. package/dist/watchlist.esm.js +3 -3
  122. package/dist/workflow.d.ts +86 -86
  123. package/dist/workflow.esm.js +41 -41
  124. package/package.json +13 -1
  125. package/dist/openviduLazy-CrjlHYIL.esm.js +0 -3
  126. /package/dist/{Actor-iMyH_hBY.d.ts → Actor-3i5cyga0.d.ts} +0 -0
  127. /package/dist/{BaseWasmProvider-DFM6aa1Z.esm.js → BaseWasmProvider-RaPH9kjo.esm.js} +0 -0
  128. /package/dist/{BrowserEnvironmentProvider-4Vr7ceoW.esm.js → BrowserEnvironmentProvider-CcXAZs6A.esm.js} +0 -0
  129. /package/dist/{BrowserStorageProvider-Dp9k9EzW.esm.js → BrowserStorageProvider-Dhz61PBs.esm.js} +0 -0
  130. /package/dist/{BrowserTimerProvider-BfL0cWbj.esm.js → BrowserTimerProvider-evgXyST-.esm.js} +0 -0
  131. /package/dist/{ITimerCapability-_YySEUj7.esm.js → ITimerCapability-3xSd36bT.esm.js} +0 -0
  132. /package/dist/{Manager-BzPNdMJn.d.ts → Manager-JJUrroR5.d.ts} +0 -0
  133. /package/dist/{MotionSensorProvider-Bi6DuLLP.esm.js → MotionSensorProvider-68EX-ga5.esm.js} +0 -0
  134. /package/dist/{StateMachine-DIeoDJ7r.d.ts → StateMachine-BgnvBNw_.d.ts} +0 -0
  135. /package/dist/{api-CGdjmBzR.esm.js → api-Dp5p_Y6w.esm.js} +0 -0
  136. /package/dist/{browserSimulation-D9FTZt0Z.esm.js → browserSimulation-CPICg9y_.esm.js} +0 -0
  137. /package/dist/{camera-C4T2nh2F.esm.js → camera-B8eOgxVH.esm.js} +0 -0
  138. /package/dist/{camera-DdgjYGQh.d.ts → camera-CXTjb-hl.d.ts} +0 -0
  139. /package/dist/{chunk-CT7w1OiQ.esm.js → chunk-B08Z0byF.esm.js} +0 -0
  140. /package/dist/{displayErrors-CGztf2Nk.d.ts → displayErrors-BmAb2BTD.d.ts} +0 -0
  141. /package/dist/{flowCompletionService-CNpeRlnP.d.ts → flowCompletionService-B91gpDV1.d.ts} +0 -0
  142. /package/dist/{getBrowser-DR_WEE3I.esm.js → getBrowser-CWOVfVnz.esm.js} +0 -0
  143. /package/dist/{platform-B81QvKKx.esm.js → platform-CvkRGlos.esm.js} +0 -0
  144. /package/dist/{types-Bo7LR34d.d.ts → types-DOxS53jV.d.ts} +0 -0
  145. /package/dist/{warmup-C5bT21Jo.d.ts → warmup-BOX_DSYX.d.ts} +0 -0
  146. /package/dist/{xstate.esm-DW_uPCba.esm.js → xstate.esm-CitJJ2CJ.esm.js} +0 -0
@@ -0,0 +1,432 @@
1
+ import { t as api } from "./api-Dp5p_Y6w.esm.js";
2
+ import { _ as endpoints, n as eventModuleNames, o as createManagerInstrumentation } from "./events-DmzL4OZZ.esm.js";
3
+ import { a as createActor, i as fromPromise, n as assign, o as createManager, t as setup } from "./xstate.esm-CitJJ2CJ.esm.js";
4
+
5
+ //#region ../infra/src/http/externalFetch.ts
6
+ async function externalFetch(config) {
7
+ const res = await fetch(config.url, {
8
+ method: config.method,
9
+ headers: config.headers,
10
+ body: config.body,
11
+ signal: config.signal
12
+ });
13
+ if (!res.ok) throw new Error(`${config.method} ${config.url} failed: ${res.status} ${res.statusText}`);
14
+ return res;
15
+ }
16
+
17
+ //#endregion
18
+ //#region src/internal/electronicSignature/electronicSignatureServices.ts
19
+ async function fetchUnsignedDocuments(signal) {
20
+ const res = await api.get(endpoints.aesUnsignedDocuments, { signal });
21
+ if (!res.ok) throw new Error(`GET ${endpoints.aesUnsignedDocuments} failed: ${res.status} ${res.statusText}`);
22
+ return res.data;
23
+ }
24
+ function getSignEndpoint(variant) {
25
+ return variant === "qe" ? endpoints.qesSignDocument : endpoints.aesSignDocument;
26
+ }
27
+ async function signDocument(documentRef, variant, signal) {
28
+ const endpoint = getSignEndpoint(variant);
29
+ const res = await api.post(endpoint, {
30
+ documentRef,
31
+ userConsented: true
32
+ }, { signal });
33
+ if (!res.ok) throw new Error(`POST ${endpoint} failed: ${res.status} ${res.statusText}`);
34
+ return res.data;
35
+ }
36
+ async function generateUploadUrl(signal) {
37
+ const res = await api.post(endpoints.aesGenerateUploadUrl, {}, { signal });
38
+ if (!res.ok) throw new Error(`POST ${endpoints.aesGenerateUploadUrl} failed: ${res.status} ${res.statusText}`);
39
+ return res.data;
40
+ }
41
+ /**
42
+ * Uploads a PDF file to a presigned S3 URL.
43
+ * Uses externalFetch (infra) to avoid SDK default headers (api-version, Accept, etc.)
44
+ * that would cause S3 signature mismatch on the presigned URL.
45
+ */
46
+ async function uploadDocumentFile(presignedUrl, data, signal) {
47
+ await externalFetch({
48
+ method: "PUT",
49
+ url: presignedUrl,
50
+ headers: { "Content-Type": "application/pdf" },
51
+ body: data,
52
+ signal
53
+ });
54
+ }
55
+
56
+ //#endregion
57
+ //#region src/internal/electronicSignature/electronicSignatureActors.ts
58
+ const fetchUnsignedDocsActor = fromPromise(async ({ signal }) => fetchUnsignedDocuments(signal));
59
+ const signDocumentsActor = fromPromise(async ({ input, signal }) => {
60
+ return (await Promise.all(input.documents.map((doc) => signDocument(doc.documentRef, input.variant, signal)))).map((r) => ({ signedDocumentUrl: r.signedDocumentUrl }));
61
+ });
62
+ const uploadDocumentActor = fromPromise(async ({ input, signal }) => {
63
+ const fileData = input.getFileData();
64
+ if (!fileData) throw new Error("No file data available for upload");
65
+ const { preSignedUrl } = await generateUploadUrl(signal);
66
+ await uploadDocumentFile(preSignedUrl, fileData, signal);
67
+ });
68
+
69
+ //#endregion
70
+ //#region src/internal/electronicSignature/types.ts
71
+ const AE_CONSENT_KEYS = [
72
+ "terms",
73
+ "signElectronically",
74
+ "signDisplayed"
75
+ ];
76
+ const QE_CONSENT_KEYS = [
77
+ "issuance",
78
+ "qesAcknowledgement",
79
+ "qscdConfirmation",
80
+ "termsAgreement",
81
+ "documentsReviewed"
82
+ ];
83
+ function getConsentKeys(variant) {
84
+ return variant === "qe" ? QE_CONSENT_KEYS : AE_CONSENT_KEYS;
85
+ }
86
+ function getDefaultConsentChecks(variant) {
87
+ const keys = getConsentKeys(variant);
88
+ return Object.fromEntries(keys.map((k) => [k, false]));
89
+ }
90
+ function areAllConsented(checks) {
91
+ return Object.values(checks).every(Boolean);
92
+ }
93
+
94
+ //#endregion
95
+ //#region src/internal/electronicSignature/electronicSignatureStateMachine.ts
96
+ const electronicSignatureMachine = setup({
97
+ types: {
98
+ context: {},
99
+ events: {},
100
+ input: {}
101
+ },
102
+ actors: {
103
+ fetchUnsignedDocs: fetchUnsignedDocsActor,
104
+ signDocuments: signDocumentsActor,
105
+ uploadDocument: uploadDocumentActor
106
+ },
107
+ actions: {
108
+ setDocuments: assign(({ event }) => {
109
+ const { output } = event;
110
+ return { documents: output.documents ?? [] };
111
+ }),
112
+ setSignedDocuments: assign(({ event }) => {
113
+ const { output } = event;
114
+ return { signedDocuments: output };
115
+ }),
116
+ setFile: assign(({ event }) => {
117
+ const { fileName, fileSize, fileUrl } = event;
118
+ return {
119
+ fileName,
120
+ fileSize,
121
+ fileUrl
122
+ };
123
+ }),
124
+ updateConsent: assign(({ context, event }) => {
125
+ const { name, checked } = event;
126
+ return { consentChecks: {
127
+ ...context.consentChecks,
128
+ [name]: checked
129
+ } };
130
+ }),
131
+ setViewingDocument: assign(({ event }) => ({ viewingDocumentUrl: event.url })),
132
+ clearViewingDocument: assign({ viewingDocumentUrl: () => null })
133
+ },
134
+ guards: {
135
+ errorFromUpload: ({ context }) => context.errorSource === "upload",
136
+ errorFromSigning: ({ context }) => context.errorSource === "signing",
137
+ shouldUpload: ({ context }) => context.config.uploadDocument === true,
138
+ shouldDownload: ({ context }) => context.config.downloadDocument === true,
139
+ allConsented: ({ context }) => areAllConsented(context.consentChecks),
140
+ hasDocuments: ({ event }) => {
141
+ const { output } = event;
142
+ return (output.documents?.length ?? 0) > 0;
143
+ },
144
+ allSigned: ({ event }) => {
145
+ const { output } = event;
146
+ return output.every((d) => !!d.signedDocumentUrl);
147
+ },
148
+ allSignedAndDownload: ({ context, event }) => {
149
+ const { output } = event;
150
+ return output.every((d) => !!d.signedDocumentUrl) && context.config.downloadDocument === true;
151
+ }
152
+ }
153
+ }).createMachine({
154
+ id: "electronicSignature",
155
+ initial: "idle",
156
+ context: ({ input }) => ({
157
+ config: input.config,
158
+ getFileData: input.getFileData,
159
+ documents: [],
160
+ signedDocuments: [],
161
+ fileName: null,
162
+ fileSize: null,
163
+ fileUrl: null,
164
+ consentChecks: getDefaultConsentChecks(input.config.variant ?? "ae"),
165
+ viewingDocumentUrl: null,
166
+ errorMessage: "",
167
+ errorSource: null
168
+ }),
169
+ states: {
170
+ idle: { on: { LOAD: [{
171
+ target: "uploading",
172
+ guard: "shouldUpload"
173
+ }, { target: "fetchingDocs" }] } },
174
+ uploading: { on: {
175
+ SELECT_FILE: {
176
+ target: "reviewing",
177
+ actions: "setFile"
178
+ },
179
+ CLOSE: { target: "closed" }
180
+ } },
181
+ reviewing: { on: {
182
+ REPLACE_FILE: {
183
+ target: "uploading",
184
+ actions: assign({
185
+ fileName: () => null,
186
+ fileSize: () => null,
187
+ fileUrl: () => null
188
+ })
189
+ },
190
+ CONFIRM_FILE: { target: "uploadingFile" },
191
+ CLOSE: { target: "closed" }
192
+ } },
193
+ uploadingFile: { invoke: {
194
+ id: "uploadDocument",
195
+ src: "uploadDocument",
196
+ input: ({ context }) => ({ getFileData: context.getFileData }),
197
+ onDone: { target: "fetchingDocs" },
198
+ onError: {
199
+ target: "error",
200
+ actions: assign(({ event }) => ({
201
+ errorMessage: String(event.error ?? "aes.error"),
202
+ errorSource: "upload"
203
+ }))
204
+ }
205
+ } },
206
+ fetchingDocs: { invoke: {
207
+ id: "fetchUnsignedDocs",
208
+ src: "fetchUnsignedDocs",
209
+ onDone: [{
210
+ target: "signing",
211
+ guard: "hasDocuments",
212
+ actions: "setDocuments"
213
+ }, {
214
+ target: "error",
215
+ actions: assign({
216
+ errorMessage: () => "aes.noDocuments",
217
+ errorSource: () => "fetchDocs"
218
+ })
219
+ }],
220
+ onError: {
221
+ target: "error",
222
+ actions: assign(({ event }) => ({
223
+ errorMessage: String(event.error ?? "aes.error"),
224
+ errorSource: "fetchDocs"
225
+ }))
226
+ }
227
+ } },
228
+ signing: { on: {
229
+ SET_CONSENT: { actions: "updateConsent" },
230
+ VIEW_DOCUMENT: { actions: "setViewingDocument" },
231
+ CLOSE_DOCUMENT_VIEW: { actions: "clearViewingDocument" },
232
+ SIGN: {
233
+ target: "processing",
234
+ guard: "allConsented"
235
+ },
236
+ CLOSE: { target: "closed" }
237
+ } },
238
+ processing: { invoke: {
239
+ id: "signDocuments",
240
+ src: "signDocuments",
241
+ input: ({ context }) => ({
242
+ documents: context.documents,
243
+ variant: context.config.variant ?? "ae"
244
+ }),
245
+ onDone: [
246
+ {
247
+ target: "successDownload",
248
+ guard: "allSignedAndDownload",
249
+ actions: "setSignedDocuments"
250
+ },
251
+ {
252
+ target: "success",
253
+ guard: "allSigned",
254
+ actions: "setSignedDocuments"
255
+ },
256
+ {
257
+ target: "error",
258
+ actions: assign({
259
+ errorMessage: () => "aes.signingFailed",
260
+ errorSource: () => "signing"
261
+ })
262
+ }
263
+ ],
264
+ onError: {
265
+ target: "error",
266
+ actions: assign(({ event }) => ({
267
+ errorMessage: String(event.error ?? "aes.error"),
268
+ errorSource: "signing"
269
+ }))
270
+ }
271
+ } },
272
+ success: { after: { 3e3: "finished" } },
273
+ successDownload: { on: {
274
+ FINISH: { target: "finished" },
275
+ CLOSE: { target: "closed" }
276
+ } },
277
+ error: { on: {
278
+ RETRY: [
279
+ {
280
+ target: "uploading",
281
+ guard: "errorFromUpload",
282
+ actions: assign({
283
+ errorMessage: () => "",
284
+ errorSource: () => null,
285
+ fileName: () => null,
286
+ fileSize: () => null,
287
+ fileUrl: () => null
288
+ })
289
+ },
290
+ {
291
+ target: "signing",
292
+ guard: "errorFromSigning",
293
+ actions: assign({
294
+ errorMessage: () => "",
295
+ errorSource: () => null
296
+ })
297
+ },
298
+ {
299
+ target: "fetchingDocs",
300
+ actions: assign({
301
+ errorMessage: () => "",
302
+ errorSource: () => null
303
+ })
304
+ }
305
+ ],
306
+ CLOSE: { target: "closed" }
307
+ } },
308
+ finished: { type: "final" },
309
+ closed: { type: "final" }
310
+ }
311
+ });
312
+
313
+ //#endregion
314
+ //#region src/internal/electronicSignature/electronicSignatureActor.ts
315
+ function createElectronicSignatureActor(options) {
316
+ return createActor(electronicSignatureMachine, { input: {
317
+ config: options.config,
318
+ getFileData: options.getFileData
319
+ } }).start();
320
+ }
321
+
322
+ //#endregion
323
+ //#region src/internal/electronicSignature/electronicSignatureManager.ts
324
+ function mapState(snapshot) {
325
+ const { context } = snapshot;
326
+ if (snapshot.matches("idle") || snapshot.matches("fetchingDocs") || snapshot.matches("uploadingFile")) return { status: "loading" };
327
+ if (snapshot.matches("uploading")) return {
328
+ status: "uploading",
329
+ fileName: context.fileName
330
+ };
331
+ if (snapshot.matches("reviewing")) return {
332
+ status: "reviewing",
333
+ fileName: context.fileName,
334
+ fileUrl: context.fileUrl
335
+ };
336
+ if (snapshot.matches("signing")) return {
337
+ status: "signing",
338
+ variant: context.config.variant ?? "ae",
339
+ documents: context.documents,
340
+ consentChecks: context.consentChecks,
341
+ allConsented: areAllConsented(context.consentChecks),
342
+ viewingDocumentUrl: context.viewingDocumentUrl
343
+ };
344
+ if (snapshot.matches("processing")) return { status: "processing" };
345
+ if (snapshot.matches("success") || snapshot.matches("successDownload")) return {
346
+ status: "success",
347
+ signedDocuments: context.signedDocuments,
348
+ downloadDocument: context.config.downloadDocument === true
349
+ };
350
+ if (snapshot.matches("error")) return {
351
+ status: "error",
352
+ errorMessage: context.errorMessage
353
+ };
354
+ if (snapshot.matches("finished")) return { status: "finished" };
355
+ if (snapshot.matches("closed")) return { status: "closed" };
356
+ throw new Error(`Unhandled electronic-signature state: ${JSON.stringify(snapshot.value)}`);
357
+ }
358
+ function createApi({ actor, trackElementClicked, fileDataRef }) {
359
+ return {
360
+ load() {
361
+ actor.send({ type: "LOAD" });
362
+ },
363
+ setConsent(name, checked) {
364
+ actor.send({
365
+ type: "SET_CONSENT",
366
+ name,
367
+ checked
368
+ });
369
+ },
370
+ selectFile(fileName, fileData, fileUrl) {
371
+ fileDataRef.current = fileData;
372
+ actor.send({
373
+ type: "SELECT_FILE",
374
+ fileName,
375
+ fileSize: fileData.byteLength,
376
+ fileUrl
377
+ });
378
+ },
379
+ replaceFile() {
380
+ fileDataRef.current = null;
381
+ actor.send({ type: "REPLACE_FILE" });
382
+ },
383
+ confirmFile() {
384
+ trackElementClicked?.("confirmFile");
385
+ actor.send({ type: "CONFIRM_FILE" });
386
+ },
387
+ viewDocument(url) {
388
+ actor.send({
389
+ type: "VIEW_DOCUMENT",
390
+ url
391
+ });
392
+ },
393
+ closeDocumentView() {
394
+ actor.send({ type: "CLOSE_DOCUMENT_VIEW" });
395
+ },
396
+ sign() {
397
+ trackElementClicked?.("sign");
398
+ actor.send({ type: "SIGN" });
399
+ },
400
+ finish() {
401
+ trackElementClicked?.("finish");
402
+ actor.send({ type: "FINISH" });
403
+ },
404
+ retry() {
405
+ trackElementClicked?.("retry");
406
+ fileDataRef.current = null;
407
+ actor.send({ type: "RETRY" });
408
+ },
409
+ close() {
410
+ trackElementClicked?.("close");
411
+ actor.send({ type: "CLOSE" });
412
+ }
413
+ };
414
+ }
415
+ function createElectronicSignatureManager(options) {
416
+ const fileDataRef = { current: null };
417
+ return createManager({
418
+ actor: createElectronicSignatureActor({
419
+ config: options.config,
420
+ getFileData: () => fileDataRef.current
421
+ }),
422
+ mapState,
423
+ createApi: (apiOptions) => createApi({
424
+ ...apiOptions,
425
+ fileDataRef
426
+ }),
427
+ instrumentation: createManagerInstrumentation(options.config.variant === "qe" ? eventModuleNames.qeSignature : eventModuleNames.aeSignature)
428
+ });
429
+ }
430
+
431
+ //#endregion
432
+ export { areAllConsented as a, QE_CONSENT_KEYS as i, electronicSignatureMachine as n, getDefaultConsentChecks as o, AE_CONSENT_KEYS as r, createElectronicSignatureManager as t };