@frankieone/one-sdk 1.9.42 → 1.10.0-rc

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 (184) hide show
  1. package/dist/commit.txt +1 -1
  2. package/dist/esm/modules/biometrics/vendors/Daon/index.d.ts +1 -1
  3. package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.d.ts +3 -1
  4. package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.d.ts.map +1 -1
  5. package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.js +15 -2
  6. package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.js.map +1 -1
  7. package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.d.ts +3 -1
  8. package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.d.ts.map +1 -1
  9. package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.js +15 -2
  10. package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.js.map +1 -1
  11. package/dist/esm/modules/biometrics/vendors/Onfido/shared.d.ts +7 -0
  12. package/dist/esm/modules/biometrics/vendors/Onfido/shared.d.ts.map +1 -1
  13. package/dist/esm/modules/biometrics/vendors/Onfido/shared.js +20 -5
  14. package/dist/esm/modules/biometrics/vendors/Onfido/shared.js.map +1 -1
  15. package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.d.ts.map +1 -1
  16. package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.js +6 -2
  17. package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.js.map +1 -1
  18. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.d.ts.map +1 -1
  19. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.js +5 -2
  20. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.js.map +1 -1
  21. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.d.ts +11 -0
  22. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.d.ts.map +1 -1
  23. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.js +1 -0
  24. package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.js.map +1 -1
  25. package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.d.ts.map +1 -1
  26. package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.js +18 -3
  27. package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.js.map +1 -1
  28. package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.d.ts.map +1 -1
  29. package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.js +1 -1
  30. package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.js.map +1 -1
  31. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.d.ts.map +1 -1
  32. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js +1 -1
  33. package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js.map +1 -1
  34. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts +585 -585
  35. package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts.map +1 -1
  36. package/dist/esm/modules/form/vendors/react/index.js +15 -0
  37. package/dist/esm/modules/form/vendors/react/index.js.map +1 -1
  38. package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.d.ts +4 -4
  39. package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.d.ts.map +1 -1
  40. package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.js.map +1 -1
  41. package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts +4 -4
  42. package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts.map +1 -1
  43. package/dist/esm/modules/frankie-client/clients/IDVClient.js.map +1 -1
  44. package/dist/esm/modules/idv/actions/mount.d.ts +9 -0
  45. package/dist/esm/modules/idv/actions/mount.d.ts.map +1 -1
  46. package/dist/esm/modules/idv/actions/mount.js +3 -1
  47. package/dist/esm/modules/idv/actions/mount.js.map +1 -1
  48. package/dist/esm/modules/idv/index.d.ts.map +1 -1
  49. package/dist/esm/modules/idv/index.js +17 -2
  50. package/dist/esm/modules/idv/index.js.map +1 -1
  51. package/dist/esm/modules/idv/vendors/Daon/index.d.ts +1 -1
  52. package/dist/esm/modules/idv/vendors/Incode/index.d.ts +1 -1
  53. package/dist/esm/modules/idv/vendors/Mastercard/index.d.ts +1 -1
  54. package/dist/esm/modules/idv/vendors/OcrLabs/index.d.ts +1 -1
  55. package/dist/esm/modules/idv/vendors/Onfido/index.d.ts +1 -1
  56. package/dist/esm/modules/idv/vendors/Onfido/index.d.ts.map +1 -1
  57. package/dist/esm/modules/idv/vendors/Onfido/index.js +20 -2
  58. package/dist/esm/modules/idv/vendors/Onfido/index.js.map +1 -1
  59. package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.d.ts +3 -1
  60. package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.d.ts.map +1 -1
  61. package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.js +15 -2
  62. package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.js.map +1 -1
  63. package/dist/esm/modules/idv/vendors/Sumsub/index.d.ts +1 -1
  64. package/dist/esm/modules/idv/vendors/Truuth/index.d.ts +1 -1
  65. package/dist/esm/modules/idv/vendors/Truuth/index.d.ts.map +1 -1
  66. package/dist/esm/modules/idv/vendors/Truuth/index.js +13 -1
  67. package/dist/esm/modules/idv/vendors/Truuth/index.js.map +1 -1
  68. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts +1 -1
  69. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts.map +1 -1
  70. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js +19 -1
  71. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js.map +1 -1
  72. package/dist/esm/modules/index.d.ts +2 -0
  73. package/dist/esm/modules/index.d.ts.map +1 -1
  74. package/dist/esm/modules/index.js +1 -0
  75. package/dist/esm/modules/index.js.map +1 -1
  76. package/dist/esm/modules/journey/classify/classify.d.ts +8 -0
  77. package/dist/esm/modules/journey/classify/classify.d.ts.map +1 -0
  78. package/dist/esm/modules/journey/classify/classify.js +105 -0
  79. package/dist/esm/modules/journey/classify/classify.js.map +1 -0
  80. package/dist/esm/modules/journey/classify/transportError.d.ts +24 -0
  81. package/dist/esm/modules/journey/classify/transportError.d.ts.map +1 -0
  82. package/dist/esm/modules/journey/classify/transportError.js +35 -0
  83. package/dist/esm/modules/journey/classify/transportError.js.map +1 -0
  84. package/dist/esm/modules/journey/classify/v1Status.d.ts +24 -0
  85. package/dist/esm/modules/journey/classify/v1Status.d.ts.map +1 -0
  86. package/dist/esm/modules/journey/classify/v1Status.js +43 -0
  87. package/dist/esm/modules/journey/classify/v1Status.js.map +1 -0
  88. package/dist/esm/modules/journey/flows/ekycFlow.d.ts +38 -0
  89. package/dist/esm/modules/journey/flows/ekycFlow.d.ts.map +1 -0
  90. package/dist/esm/modules/journey/flows/ekycFlow.js +179 -0
  91. package/dist/esm/modules/journey/flows/ekycFlow.js.map +1 -0
  92. package/dist/esm/modules/journey/flows/idvFlow.d.ts +32 -0
  93. package/dist/esm/modules/journey/flows/idvFlow.d.ts.map +1 -0
  94. package/dist/esm/modules/journey/flows/idvFlow.js +509 -0
  95. package/dist/esm/modules/journey/flows/idvFlow.js.map +1 -0
  96. package/dist/esm/modules/journey/flows/ocrFlow.d.ts +27 -0
  97. package/dist/esm/modules/journey/flows/ocrFlow.d.ts.map +1 -0
  98. package/dist/esm/modules/journey/flows/ocrFlow.js +434 -0
  99. package/dist/esm/modules/journey/flows/ocrFlow.js.map +1 -0
  100. package/dist/esm/modules/journey/flows/screenSequence.d.ts +127 -0
  101. package/dist/esm/modules/journey/flows/screenSequence.d.ts.map +1 -0
  102. package/dist/esm/modules/journey/flows/screenSequence.js +418 -0
  103. package/dist/esm/modules/journey/flows/screenSequence.js.map +1 -0
  104. package/dist/esm/modules/journey/flows/submitAndClassify.d.ts +32 -0
  105. package/dist/esm/modules/journey/flows/submitAndClassify.d.ts.map +1 -0
  106. package/dist/esm/modules/journey/flows/submitAndClassify.js +101 -0
  107. package/dist/esm/modules/journey/flows/submitAndClassify.js.map +1 -0
  108. package/dist/esm/modules/journey/index.d.ts +34 -0
  109. package/dist/esm/modules/journey/index.d.ts.map +1 -0
  110. package/dist/esm/modules/journey/index.js +183 -0
  111. package/dist/esm/modules/journey/index.js.map +1 -0
  112. package/dist/esm/modules/journey/journeyHandle.d.ts +35 -0
  113. package/dist/esm/modules/journey/journeyHandle.d.ts.map +1 -0
  114. package/dist/esm/modules/journey/journeyHandle.js +130 -0
  115. package/dist/esm/modules/journey/journeyHandle.js.map +1 -0
  116. package/dist/esm/modules/journey/screens/ctaConfig.d.ts +2 -0
  117. package/dist/esm/modules/journey/screens/ctaConfig.d.ts.map +1 -0
  118. package/dist/esm/modules/journey/screens/ctaConfig.js +23 -0
  119. package/dist/esm/modules/journey/screens/ctaConfig.js.map +1 -0
  120. package/dist/esm/modules/journey/screens/resultScreen.d.ts +21 -0
  121. package/dist/esm/modules/journey/screens/resultScreen.d.ts.map +1 -0
  122. package/dist/esm/modules/journey/screens/resultScreen.js +108 -0
  123. package/dist/esm/modules/journey/screens/resultScreen.js.map +1 -0
  124. package/dist/esm/modules/journey/simulate/fixtures.d.ts +9 -0
  125. package/dist/esm/modules/journey/simulate/fixtures.d.ts.map +1 -0
  126. package/dist/esm/modules/journey/simulate/fixtures.js +41 -0
  127. package/dist/esm/modules/journey/simulate/fixtures.js.map +1 -0
  128. package/dist/esm/modules/journey/steps/firstPaint.d.ts +43 -0
  129. package/dist/esm/modules/journey/steps/firstPaint.d.ts.map +1 -0
  130. package/dist/esm/modules/journey/steps/firstPaint.js +28 -0
  131. package/dist/esm/modules/journey/steps/firstPaint.js.map +1 -0
  132. package/dist/esm/modules/journey/steps/stepMachine.d.ts +52 -0
  133. package/dist/esm/modules/journey/steps/stepMachine.d.ts.map +1 -0
  134. package/dist/esm/modules/journey/steps/stepMachine.js +90 -0
  135. package/dist/esm/modules/journey/steps/stepMachine.js.map +1 -0
  136. package/dist/esm/modules/journey/steps/stepTable.d.ts +234 -0
  137. package/dist/esm/modules/journey/steps/stepTable.d.ts.map +1 -0
  138. package/dist/esm/modules/journey/steps/stepTable.js +241 -0
  139. package/dist/esm/modules/journey/steps/stepTable.js.map +1 -0
  140. package/dist/esm/modules/journey/theme/applyTheme.d.ts +17 -0
  141. package/dist/esm/modules/journey/theme/applyTheme.d.ts.map +1 -0
  142. package/dist/esm/modules/journey/theme/applyTheme.js +49 -0
  143. package/dist/esm/modules/journey/theme/applyTheme.js.map +1 -0
  144. package/dist/esm/modules/journey/types/classification.d.ts +10 -0
  145. package/dist/esm/modules/journey/types/classification.d.ts.map +1 -0
  146. package/dist/esm/modules/journey/types/classification.js +2 -0
  147. package/dist/esm/modules/journey/types/classification.js.map +1 -0
  148. package/dist/esm/modules/journey/types/classifierInput.d.ts +45 -0
  149. package/dist/esm/modules/journey/types/classifierInput.d.ts.map +1 -0
  150. package/dist/esm/modules/journey/types/classifierInput.js +2 -0
  151. package/dist/esm/modules/journey/types/classifierInput.js.map +1 -0
  152. package/dist/esm/modules/journey/types/contract.d.ts +60 -0
  153. package/dist/esm/modules/journey/types/contract.d.ts.map +1 -0
  154. package/dist/esm/modules/journey/types/contract.js +7 -0
  155. package/dist/esm/modules/journey/types/contract.js.map +1 -0
  156. package/dist/esm/modules/journey/types/resultConfig.d.ts +23 -0
  157. package/dist/esm/modules/journey/types/resultConfig.d.ts.map +1 -0
  158. package/dist/esm/modules/journey/types/resultConfig.js +2 -0
  159. package/dist/esm/modules/journey/types/resultConfig.js.map +1 -0
  160. package/dist/esm/modules/meta.json +1 -1
  161. package/dist/esm/modules/ocr/vendors/Daon/index.d.ts +1 -1
  162. package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.d.ts +3 -1
  163. package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.d.ts.map +1 -1
  164. package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.js +15 -2
  165. package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.js.map +1 -1
  166. package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.d.ts +3 -1
  167. package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.d.ts.map +1 -1
  168. package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.js +15 -2
  169. package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.js.map +1 -1
  170. package/dist/esm/modules/ocr/vendors/Onfido/shared.d.ts +17 -0
  171. package/dist/esm/modules/ocr/vendors/Onfido/shared.d.ts.map +1 -1
  172. package/dist/esm/modules/ocr/vendors/Onfido/shared.js +33 -5
  173. package/dist/esm/modules/ocr/vendors/Onfido/shared.js.map +1 -1
  174. package/dist/esm/modules/sdk/index.d.ts.map +1 -1
  175. package/dist/esm/modules/sdk/index.js +5 -1
  176. package/dist/esm/modules/sdk/index.js.map +1 -1
  177. package/dist/esm/modules/sdk/types/globalEvents.d.ts +13 -0
  178. package/dist/esm/modules/sdk/types/globalEvents.d.ts.map +1 -1
  179. package/dist/esm/modules/sdk/types/oneSDK.d.ts +1 -0
  180. package/dist/esm/modules/sdk/types/oneSDK.d.ts.map +1 -1
  181. package/dist/esm/styles/f1-style.css +1 -1
  182. package/dist/release.txt +1 -1
  183. package/dist/version.txt +1 -1
  184. package/package.json +1 -1
@@ -0,0 +1,241 @@
1
+ import { FORM_CONSENT_READY, FORM_DOCUMENT_READY, FORM_PERSONAL_DETAILS_READY, FORM_RESULT_FAILED, FORM_RESULT_PARTIAL, FORM_RESULT_PENDING, FORM_RESULT_SUCCESS, FORM_RESULT_TIMEOUT, FORM_REVIEW_FAILED, FORM_REVIEW_PARTIAL, FORM_REVIEW_PENDING, FORM_REVIEW_READY, FORM_REVIEW_SUCCESS, FORM_START_READY, FORM_WELCOME_READY, } from '../../form/events.js';
2
+ import { RESULT_STATE } from '../../form/vendors/react/appConfig.type.js';
3
+ /**
4
+ * The pseudo-signal for a step that completes without any event: the emitter
5
+ * genuinely emits nothing, and the completion is the mount promise settling.
6
+ * It is not an event name, so it is never subscribed to — `completingEventsFor`
7
+ * excludes it by name, as a stated rule rather than as a side effect of how its
8
+ * `completes` field happens to be written.
9
+ */
10
+ export const MOUNT_RESOLVED = 'mount() resolved — no event is emitted';
11
+ export const STEP_COMPLETION = {
12
+ START: {
13
+ completesOn: [
14
+ {
15
+ event: FORM_START_READY,
16
+ means: 'Start.tsx:17 passes `documentReady` as the Wrapper CTA handler — emitted on CTA click, NOT on render.',
17
+ completes: true,
18
+ },
19
+ ],
20
+ note: 'Human-gated: a person reading a screen is not a stalled flow, so there is no timeout. A screen that fails to *mount* is engine silence and fails the step instead.',
21
+ },
22
+ WELCOME: {
23
+ completesOn: [
24
+ {
25
+ event: FORM_WELCOME_READY,
26
+ means: 'Welcome.tsx:20 passes `documentReady` as the Wrapper CTA handler — emitted on CTA click, NOT on render.',
27
+ completes: true,
28
+ },
29
+ ],
30
+ note: 'Human-gated: no timeout. See START.',
31
+ },
32
+ CONSENT: {
33
+ completesOn: [
34
+ {
35
+ event: FORM_CONSENT_READY,
36
+ means: 'Consent.tsx:28 calls `documentReady` from `triggerEvent`, after `giveConsents` — emitted on submit, NOT on render.',
37
+ completes: true,
38
+ },
39
+ ],
40
+ note: 'Human-gated: no timeout. The journey records consents only after this fires, so auto-advancing here would record consent nobody gave.',
41
+ },
42
+ PERSONAL: {
43
+ completesOn: [
44
+ {
45
+ event: FORM_PERSONAL_DETAILS_READY,
46
+ means: "PersonalDetails.tsx:150 calls `documentReady()` from `handleFormSubmit`, wired to the form's `onSubmit` — emitted on submit, NOT on render.",
47
+ completes: true,
48
+ },
49
+ ],
50
+ note: 'Human-gated: no timeout, same as START/WELCOME/CONSENT. ekycFlow.ts only (idv/ocr have no PERSONAL step).',
51
+ },
52
+ DOCUMENT: {
53
+ completesOn: [
54
+ {
55
+ event: FORM_DOCUMENT_READY,
56
+ means: 'IdSelection.tsx:69 calls `documentReady(document)` from `handleSubmit`, itself called on selecting/submitting an ID type — emitted on submit, NOT on render.',
57
+ completes: true,
58
+ },
59
+ ],
60
+ note: "Human-gated: no timeout, same as PERSONAL. ekycFlow.ts only. SECOND EXIT, not in this list because it does not complete the step the way a row event does: IdSelection.tsx:118-121 also emits `form:document:back` from the 'Back' link, and the form vendor tears its own screen down on it (`vendors/react/index.tsx` registers `cleanUpInstance` on `{screen}:back` as well as `{screen}:ready`). `screenSequence.ts`'s `presentDocument` wires it as a `DocumentExit` of 'back' and `ekycFlow.ts`'s `presentIdentity` re-presents PERSONAL — the same thing `templateManualKyc.js` does by hand. Ignoring it is what left the applicant on a blank container with this step never completing (FDEL-53225 QA bug 2).",
61
+ },
62
+ CAPTURE: {
63
+ completesOn: [
64
+ {
65
+ event: 'detection_complete',
66
+ means: 'the vendor finished capture. The payload is vendor-specific: iframe vendors (Daon) emit it with NO payload at all (defineIframeIDVWrapper.ts:193), Sumsub/Truuth emit `{ provider }` only, and `source` comes solely from the split Onfido flow — `ocr/vendors/Onfido/onfido.init.ts:117-119` and `onfidoLegacy.init.ts:135-137` supply `source: "ocr"`, `idv/vendors/Onfido/index.useOneStep.ts:142` supplies `source: "biometrics"`, both forwarded by `idv/vendors/Onfido/index.ts:90-94`. So the `source !== "ocr"` test shows the extraction screen for every vendor that omits it, which is the intent (FDEL-52471).',
67
+ completes: false,
68
+ },
69
+ {
70
+ event: 'vendor_sdk_failed_loading',
71
+ means: "`vendorLoading.ts:187` — the vendor's own SDK could not be fetched or initialised at all, so there is no capture UI and never will be. Emitted immediately BEFORE the generic `error` at :191, which is the only form this used to reach the journey in; since the machine settles first-wins, subscribing here is enough to claim it without deferral. Carries `{ vendor, errorObject }`, so the host finally learns which vendor failed — before FDEL-53728 Q2 that only reached `<MODULE>:VENDOR_FAILED_LOADING` telemetry.",
72
+ completes: true,
73
+ },
74
+ {
75
+ event: 'detection_failed',
76
+ means: "the vendor's capture ended without a result. Two different things wear this name, which is why the row is conditional. For `defineIframeIDVWrapper.ts:233-256` (Daon, Incode), `Truuth/index.ts:349-360` and `OcrLabs/endFlow.ts:15` it is the whole story: the frame is removed and nothing else follows, so before FDEL-53728 the container simply went blank and `start()` never resolved. For Onfido (`idv/vendors/Onfido/index.useOneStep.ts:160`, `ocr/vendors/Onfido/onfido.init.ts:163`) and IDVerse (`common/vendors/idverse/index.ts:361/:372` ) it is a *prelude*, emitted synchronously ahead of `input_required` / `session_interrupted` / `error`, which say far more. Incode's `onError` emits it bare when the applicant is out of attempts.",
77
+ completes: 'only if nothing else settles the step first — the runners defer it by one microtask, so any event the vendor emits synchronously after it wins',
78
+ },
79
+ {
80
+ event: 'results',
81
+ means: 'checkStatusEventMapping.ts:34 — COMPLETE and not REJECTED. The runner then reviews and submits; the step completes on the submit result, not on this event alone.',
82
+ completes: 'once review + submit have resolved',
83
+ },
84
+ {
85
+ event: 'error',
86
+ means: 'checkStatusEventMapping.ts:26/:45 — COMPLETE+REJECTED and FAILED, as a OneSDKError whose payload carries `checkStatus`/`result`.',
87
+ completes: true,
88
+ },
89
+ {
90
+ event: 'info',
91
+ means: 'fetchCheckProcessingStatus.ts:112 emits `FetchProcessingExceededAttempts` when polling is exhausted. Every other `info` (defineIframeIDVWrapper.ts:171/:196, getInitProcessResults.ts:48) is chatter and must not settle anything.',
92
+ completes: 'only for name === FetchProcessingExceededAttempts',
93
+ },
94
+ {
95
+ event: 'session_interrupted',
96
+ means: 'the vendor session ended without a result. Emission is vendor-specific and NO iframe vendor emits it — Daon included — so on this spike\'s flow it never fires. `eventName: "USER_CLOSED_MODAL"`, which the runner reads to tell a deliberate exit from an interruption (spec §5.4), is emitted only by `biometrics/vendors/Onfido/onfido.init.ts:164`; the other emitters send `eventName: "USER_EXITED"` (`idv/vendors/Onfido/index.useOneStep.ts:168`, `ocr/vendors/Onfido/onfido.init.ts:176`, `onfidoLegacy.init.ts:116`), which therefore classifies as `abandoned / session_interrupted` rather than `user_exited`. Recorded, not changed here.',
97
+ completes: true,
98
+ },
99
+ {
100
+ event: 'input_required',
101
+ means: 'checkStatusEventMapping.ts:62 emits `(info, checkStatus)` for INTERRUPTED / INCOMPLETE / DOCUMENTS_INVALID / WAITING_DOC_UPLOAD / WAITING_SELFIE_UPLOAD. AWAITING_CONSENT re-presents consent and INCOMPLETE re-fetches, so neither completes the step.',
102
+ completes: 'except AWAITING_CONSENT and INCOMPLETE (spec §5.4)',
103
+ },
104
+ ],
105
+ note: 'No timeout: capture is bounded by the applicant taking photographs (minutes) and by server-side polling the engine already bounds itself. `checkStatusEventMapping.ts:68-81` emits AWAITING_CONSENT and PROVIDER_OFFLINE as `error`, with the status under `payload.errorStatus` rather than `payload.checkStatus` — so spec §5.4 is wrong to list them under `input_required`, and on every iframe vendor (Daon, Incode) they arrive by the `error` door. FDEL-53728 B6: the `error` listener now reads `errorStatus` and routes both back through the same status ladder, so the AWAITING_CONSENT re-present is live for those vendors too rather than reading as a vendor outage.',
106
+ },
107
+ REVIEW: {
108
+ completesOn: [
109
+ {
110
+ event: FORM_REVIEW_READY,
111
+ means: 'Review.tsx:104 calls `documentReady` after `individual().submit()` resolves — emitted on submit, NOT on render.',
112
+ completes: true,
113
+ },
114
+ ],
115
+ note: 'Human-gated: no timeout. Advancing without this would let unreviewed data through.',
116
+ },
117
+ REVIEW_VERIFY: {
118
+ completesOn: [
119
+ {
120
+ event: FORM_REVIEW_SUCCESS,
121
+ means: "ekycFlow.ts only. ReviewDocument.tsx:239 calls `individual().submit({ verify })` itself (verify: true, passed via config), then its own :246-296 classifies the result inline (alertList/status.type/retryPages) into a RESULT_STATE, and :341-349's effect emits `ResultStates[resultStatus]` via `idvEventEmitter` — but ONLY when `docConfig.customResult` is true (also forced by ekycFlow.ts); otherwise ReviewDocument renders its own <Result> screen and never emits this row's events at all. SUCCESS = RESULT_STATE.SUCCESS (status.type 'passed'/'pass_manual').",
122
+ completes: true,
123
+ },
124
+ {
125
+ event: FORM_REVIEW_FAILED,
126
+ means: "same emitter as above. FAILED = RESULT_STATE.FAIL — a duplicate/blacklist/too-many alert, or status.type 'failed' (ReviewDocument.tsx:272-289). Not a data-correction case: classified as declined, not retried.",
127
+ completes: true,
128
+ },
129
+ {
130
+ event: FORM_REVIEW_PARTIAL,
131
+ means: "same emitter. PARTIAL = RESULT_STATE.PARTIAL — a 'partial'/'404' alert, a PROVIDER_ERROR retryPage, or status.type 'archived' (ReviewDocument.tsx:249-284), all collapsed into one bucket. ekycFlow.ts treats every case here as a data-correction retry (spec §6), which is coarser than classify.ts's own per-status reasons (e.g. 'archived' is a terminal decline there) — a deliberate simplification: ReviewDocument.tsx's own classification is trusted as-is here rather than re-derived from a second submit.",
132
+ completes: true,
133
+ },
134
+ {
135
+ event: FORM_REVIEW_PENDING,
136
+ means: 'same emitter. PENDING = RESULT_STATE.PENDING, the `default` branch of the status.type switch (ReviewDocument.tsx:290-292) — anything not passed/pass_manual/archived/failed and not already bucketed by an alert or retryPage.',
137
+ completes: true,
138
+ },
139
+ ],
140
+ note: "ekycFlow.ts does NOT call `submitAndClassify`/`individual().submit()` itself for this step — ReviewDocument.tsx's built-in verify+classify is the only submit. Consequence: the resulting `ClassifierInput` never carries `checkResult` (nothing here exposes the raw submit response — `idvEventEmitter`'s payload is `{name: 'REVIEW'}` only, ReviewDocument.tsx:342-347), so a success/pending/declined outcome via this step settles without one. Reached twice per journey by design: once for the main attempt (REVIEW screen), again from inside the RETRY module once it lands back on REVIEW (`Retry.tsx` case REVIEW renders `<ReviewDocument/>` directly) — `getEventConfig` resolves the event name from `extraEventInfo.name`, not from which screen was originally mounted, so it is still `form:review:*` either time (`layout.util.tsx:47-51`).",
141
+ },
142
+ PARTIAL: {
143
+ completesOn: [
144
+ {
145
+ event: FORM_RESULT_PARTIAL,
146
+ means: 'Result.tsx:145-149 — the RESULT screen emits on CTA click only, never on render; PARTIAL maps to `partial` (form.const.ts:225).',
147
+ completes: true,
148
+ },
149
+ ],
150
+ note: 'spec §6 — the data-correction retry. Its CTA ("Review details") IS the retry action, so this screen keeps its CTA where terminal screens hide theirs (D5).',
151
+ },
152
+ RESULT: {
153
+ completesOn: [
154
+ {
155
+ event: MOUNT_RESOLVED,
156
+ means: 'the terminal screen is non-interactive by default (`cta.hidden`, spec D5) and emits nothing on render, so the completion is `mount()` settling — resolved or rejected. Waiting on an event here is what the `form:result:ready` defect did, and the event never came.',
157
+ completes: 'when no CTA is configured (the default)',
158
+ },
159
+ {
160
+ event: 'form:result:{success|failed|partial|pending|timeout}',
161
+ means: 'Result.tsx:145-149 emits the event `ResultStates[state]` names, on CTA click only. The exact event per state is `RESULT_CTA_EVENT` below.',
162
+ completes: 'when the host configured a CTA (spec §7.2)',
163
+ },
164
+ ],
165
+ note: 'A CTA screen that never rendered also completes: no click can follow a screen that is not there.',
166
+ },
167
+ };
168
+ /**
169
+ * The event each RESULT state emits when its CTA is clicked. Mirrors
170
+ * `ResultStates` (`form/vendors/react/constants/form.const.ts:224`), which is
171
+ * what `Result.tsx:147` reads to decide what to emit.
172
+ */
173
+ export const RESULT_CTA_EVENT = {
174
+ [RESULT_STATE.SUCCESS]: FORM_RESULT_SUCCESS,
175
+ [RESULT_STATE.FAIL]: FORM_RESULT_FAILED,
176
+ [RESULT_STATE.PENDING]: FORM_RESULT_PENDING,
177
+ [RESULT_STATE.PARTIAL]: FORM_RESULT_PARTIAL,
178
+ [RESULT_STATE.UPLOAD_SUCCESS]: FORM_RESULT_SUCCESS,
179
+ [RESULT_STATE.UPLOAD_FAIL]: FORM_RESULT_FAILED,
180
+ [RESULT_STATE.PROVIDER_ERROR]: FORM_RESULT_PARTIAL,
181
+ [RESULT_STATE.TIMEOUT]: FORM_RESULT_TIMEOUT,
182
+ };
183
+ /** every engine event the capture step subscribes to, straight from the table */
184
+ export const CAPTURE_EVENTS = STEP_COMPLETION.CAPTURE.completesOn.map((signal) => signal.event);
185
+ /**
186
+ * The `ocr` module's own CAPTURE row (`ocrFlow.ts`). Same event *names* as
187
+ * `idv`'s row above — unsurprising, since `idv` is `ocr` + biometrics composed
188
+ * — but NOT the same *meaning* for every vendor, so it gets its own row rather
189
+ * than reusing IDV's:
190
+ *
191
+ * - `detection_complete` never carries `source: 'biometrics'` here (there is no
192
+ * biometrics leg), so, unlike IDV, this row's listener shows the extraction
193
+ * screen unconditionally — nothing to suppress it for.
194
+ * - `error`/`input_required` status vocabulary is vendor-dependent in a way
195
+ * IDV's row is not fully:
196
+ * - Daon (`modules/ocr/vendors/Daon/index.ts`) shares `defineIframeIDVWrapper`
197
+ * with the idv module, so its statuses and the same Daon gap noted in the
198
+ * CAPTURE row above apply verbatim.
199
+ * - Incode/Onfido/Sumsub go through
200
+ * `modules/ocr/vendors/common/statusEvaluators.ts`, whose `documentStatus`
201
+ * is the raw `OCRStatus` enum (`modules/frankie-client/clients/OCRClient.ts`)
202
+ * — a different string vocabulary from IDV's `checkStatusEventMapping.ts`.
203
+ * `PROVIDER_OFFLINE`/`FAILED`/`WAITING_OCR_RUN` all emit a payload-less
204
+ * `error` there (statusEvaluators.ts:26-49), never `input_required`.
205
+ *
206
+ * KNOWN GAP, flagged rather than guessed at: `statusEvaluators.ts`'s `default`
207
+ * branch emits `input_required` for every other `OCRStatus`, including
208
+ * `WAITING_BACK`/`WAITING_FRONT` (still waiting for the other side of a
209
+ * two-sided document) and `AWAITING_DOCUMENT_UPLOAD_INVALID_TYPE` /
210
+ * `AWAITING_DOCUMENT_UPLOAD_FAILED_OCR` / `DOCUMENT_INVALID_EXCEEDED_SIZE_LIMIT`
211
+ * / `DOCUMENT_INVALID_INCORRECT_FILE_FORMAT` / `SHARE_DECLINED` (upload
212
+ * failures). Whether `WAITING_BACK`/`WAITING_FRONT` ever reach this listener,
213
+ * as opposed to being resolved inside the vendor's own capture UI before it
214
+ * gets here, is not yet confirmed against Onfido/Incode's full init flow.
215
+ * `ocrFlow.ts`'s recapture list only treats the confirmed failure statuses as
216
+ * a recapture; an unconfirmed status still settles safely as `unmapped_status`
217
+ * (diagnosable) rather than being silently misclassified either way.
218
+ */
219
+ export const OCR_CAPTURE_EVENTS = CAPTURE_EVENTS;
220
+ /**
221
+ * Every `form:review:*` outcome event the REVIEW_VERIFY step subscribes to
222
+ * (ekycFlow.ts). Values still come from the table at runtime — only the
223
+ * *type* is asserted narrow: `FORM_REVIEW_SUCCESS` and friends are typed
224
+ * `FormEventKeyType` (every `FormEvents` key) at their declaration in
225
+ * `@module/form/events`, which is too wide for a per-event handler map, and
226
+ * `as const` on an object literal cannot narrow a reference to an
227
+ * already-typed constant back down. Order must match the REVIEW_VERIFY row.
228
+ */
229
+ export const REVIEW_VERIFY_EVENTS = STEP_COMPLETION.REVIEW_VERIFY.completesOn.map((signal) => signal.event);
230
+ /**
231
+ * The events that complete `step` outright — what the machine subscribes a
232
+ * screen to. Two exclusions, both by rule rather than by accident:
233
+ * `MOUNT_RESOLVED` is not an event name and can never be subscribed to, and a
234
+ * conditional `completes` is the caller's to interpret, spelled out in its row.
235
+ */
236
+ const isSubscribable = (signal) => signal.event !== MOUNT_RESOLVED;
237
+ export const completingEventsFor = (step) => STEP_COMPLETION[step].completesOn
238
+ .filter(isSubscribable)
239
+ .filter((signal) => signal.completes === true)
240
+ .map((signal) => signal.event);
241
+ //# sourceMappingURL=stepTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepTable.js","sourceRoot":"","sources":["../../../../../modules/journey/steps/stepTable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type ThemeTokens = {
2
+ logo?: string;
3
+ fontFamily?: string;
4
+ primaryColor?: string;
5
+ secondaryColor?: string;
6
+ };
7
+ /**
8
+ * spec §9.2 — tokens become custom properties on the mount element plus a
9
+ * stylesheet that lives *under* that element, so the journey owns its
10
+ * lifecycle and leaves nothing in the host page. `!important` matches the
11
+ * hosted templates for now; §14.4 replaces this with module-native theming.
12
+ */
13
+ export declare const applyTheme: (deps: {
14
+ container: HTMLElement;
15
+ tokens: ThemeTokens;
16
+ }) => (() => void);
17
+ //# sourceMappingURL=applyTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTheme.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/theme/applyTheme.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAoCF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU;IAC/B,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;CACrB,KAAG,CAAC,MAAM,IAAI,CAwBd,CAAC"}
@@ -0,0 +1,49 @@
1
+ const PROPERTY = {
2
+ fontFamily: '--font-family',
3
+ primaryColor: '--primary-color',
4
+ secondaryColor: '--secondary-color',
5
+ };
6
+ let scopeCounter = 0;
7
+ const rulesFor = (tokens, scope) => {
8
+ const blocks = [];
9
+ if (tokens.primaryColor) {
10
+ blocks.push(`.${scope} .ff-button:not(.ff-disabled-button) { background-color: var(--primary-color) !important; }`, `.${scope} .ff-checkbox-item { accent-color: var(--primary-color) !important; }`, `.${scope} .ff-instruction-item svg { fill: var(--primary-color) !important; }`, `.${scope} .ff-edit-button { fill: var(--primary-color) !important; }`);
11
+ }
12
+ if (tokens.fontFamily) {
13
+ blocks.push(`.${scope} .form.react.ff-react-form { font-family: var(--font-family) !important; }`, `.${scope} .form.react.ff-react-form :where(input, select) { font-family: var(--font-family) !important; }`);
14
+ }
15
+ if (tokens.secondaryColor) {
16
+ blocks.push(`.${scope} .loader { border-left-color: var(--secondary-color); border-right-color: var(--secondary-color); border-bottom-color: var(--secondary-color); }`, `.${scope} .ff-loading { fill: var(--secondary-color) !important; }`);
17
+ }
18
+ return blocks.join('\n');
19
+ };
20
+ /**
21
+ * spec §9.2 — tokens become custom properties on the mount element plus a
22
+ * stylesheet that lives *under* that element, so the journey owns its
23
+ * lifecycle and leaves nothing in the host page. `!important` matches the
24
+ * hosted templates for now; §14.4 replaces this with module-native theming.
25
+ */
26
+ export const applyTheme = (deps) => {
27
+ const { container, tokens } = deps;
28
+ scopeCounter += 1;
29
+ const scope = `ff-journey-theme-${scopeCounter}`;
30
+ container.classList.add(scope);
31
+ const applied = [];
32
+ Object.entries(PROPERTY).forEach(([token, property]) => {
33
+ const value = tokens[token];
34
+ if (!value)
35
+ return;
36
+ container.style.setProperty(property, value);
37
+ applied.push(property);
38
+ });
39
+ const tag = document.createElement('style');
40
+ tag.setAttribute('data-onesdk-journey-theme', scope);
41
+ tag.textContent = rulesFor(tokens, scope);
42
+ container.appendChild(tag);
43
+ return () => {
44
+ tag.remove();
45
+ container.classList.remove(scope);
46
+ applied.forEach((property) => container.style.removeProperty(property));
47
+ };
48
+ };
49
+ //# sourceMappingURL=applyTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyTheme.js","sourceRoot":"","sources":["../../../../../modules/journey/theme/applyTheme.ts"],"names":[],"mappings":"AAOA,MAAM,QAAQ,GAAG;IACf,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,iBAAiB;IAC/B,cAAc,EAAE,mBAAmB;CACpC,CAAC;AAEF,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,MAAM,QAAQ,GAAG,CAAC,MAAmB,EAAE,KAAa,EAAU,EAAE;IAC9D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CACT,IAAI,KAAK,6FAA6F,EACtG,IAAI,KAAK,uEAAuE,EAChF,IAAI,KAAK,sEAAsE,EAC/E,IAAI,KAAK,6DAA6D,CACvE,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CACT,IAAI,KAAK,4EAA4E,EACrF,IAAI,KAAK,kGAAkG,CAC5G,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CACT,IAAI,KAAK,kJAAkJ,EAC3J,IAAI,KAAK,2DAA2D,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAG1B,EAAgB,EAAE;IACjB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,YAAY,IAAI,CAAC,CAAC;IAClB,MAAM,KAAK,GAAG,oBAAoB,YAAY,EAAE,CAAC;IACjD,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAA8B,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,GAAG,CAAC,YAAY,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IACrD,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAE3B,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { JourneyResult } from './contract';
2
+ /** plain `Omit` is not distributive over a union and would collapse the discriminant */
3
+ type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
4
+ export type Terminal = DistributiveOmit<JourneyResult, 'flow' | 'attempts' | 'finishedAt' | 'ref'>;
5
+ /** `retry` is internal only — it never reaches a customer (spec D1) */
6
+ export type Classification = Terminal | {
7
+ outcome: 'retry';
8
+ };
9
+ export {};
10
+ //# sourceMappingURL=classification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classification.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/types/classification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wFAAwF;AACxF,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAC3D,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,KAAK,CAAC;AAEV,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CACrC,aAAa,EACb,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,CAC3C,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=classification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classification.js","sourceRoot":"","sources":["../../../../../modules/journey/types/classification.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import type { CheckSummary } from '../../common/shared/models/CheckSummary';
2
+ /**
3
+ * One normalised struct assembled from whatever the engine gave us.
4
+ * Every field optional: the classifier is total (spec D14) and must
5
+ * decide something for any combination, including an empty one.
6
+ */
7
+ export type ClassifierInput = {
8
+ /** v1 CheckSummary.status.type, or a raw backend status key */
9
+ statusType?: string;
10
+ /** normalised v1 alertList terms */
11
+ alerts: string[];
12
+ /** ServiceProfileState — ARCHIVED / INACTIVE / BLOCKLISTED / DELETED (spec §5.1 layer 1) */
13
+ profileState?: string;
14
+ /** F2 workflowExecutionState — designed, not exercised by the demo */
15
+ executionState?: string;
16
+ /** F2 workflow status — designed, not exercised by the demo */
17
+ workflowStatus?: string;
18
+ /** v1 retryPages[].name */
19
+ retryPage?: string;
20
+ /** a signal that already carries its own verdict, e.g. a vendor rejection */
21
+ signal?: 'idv_rejected' | 'processing_timeout'
22
+ /**
23
+ * The flow was configured not to trigger verification
24
+ * (`triggerVerificationOnSubmit: false`), so the SDK never called
25
+ * `submit()`. The capture itself completed and the data is on the entity —
26
+ * which is why this is a success and not a pending: there is nothing in
27
+ * flight to wait on. Set by `submitAndClassify.ts` (FDEL-53993).
28
+ */
29
+ | 'captured' | 'vendor_load_failed' | 'vendor_offline' | 'network' | 'session_expired' | 'submit_failed' | 'session_interrupted' | 'user_exited'
30
+ /**
31
+ * A check that did not pass and whose only recovery path — correcting the
32
+ * data — is not open, because the flow has no review screen to correct it
33
+ * on. Set by `submitAndClassify.ts` (FDEL-53227).
34
+ */
35
+ | 'partial_unrecoverable' | 'unmapped_status';
36
+ /** free-form detail attached to error outcomes */
37
+ errorDetail?: {
38
+ code: string;
39
+ message: string;
40
+ vendor?: string;
41
+ };
42
+ /** the raw check result, passed through to success/pending/declined (spec D10) */
43
+ checkResult?: CheckSummary;
44
+ };
45
+ //# sourceMappingURL=classifierInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifierInput.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/types/classifierInput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,MAAM,CAAC,EACH,cAAc,GACd,oBAAoB;IACtB;;;;;;OAMG;OACD,UAAU,GACV,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,GACT,iBAAiB,GACjB,eAAe,GACf,qBAAqB,GACrB,aAAa;IACf;;;;OAIG;OACD,uBAAuB,GACvB,iBAAiB,CAAC;IACtB,kDAAkD;IAClD,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,kFAAkF;IAClF,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=classifierInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifierInput.js","sourceRoot":"","sources":["../../../../../modules/journey/types/classifierInput.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import type { CheckSummary } from '../../common/shared/models/CheckSummary';
2
+ export declare enum JourneyName {
3
+ IDV = "idv",
4
+ OCR = "ocr",
5
+ EKYC = "ekyc"
6
+ }
7
+ export type JourneyOutcome = 'success' | 'pending' | 'declined' | 'abandoned' | 'error';
8
+ export type JourneyRef = {
9
+ entityId: string | null;
10
+ serviceProfileId?: string;
11
+ workflowExecutionId?: string;
12
+ checkId?: string;
13
+ requestId?: string;
14
+ };
15
+ export type JourneyErrorDetail = {
16
+ code: string;
17
+ message: string;
18
+ vendor?: string;
19
+ httpStatus?: number;
20
+ requestId?: string;
21
+ };
22
+ type JourneyMeta = {
23
+ flow: JourneyName;
24
+ attempts: {
25
+ used: number;
26
+ max: number;
27
+ };
28
+ finishedAt: string;
29
+ ref: JourneyRef;
30
+ };
31
+ export type JourneyResult = JourneyMeta & ({
32
+ outcome: 'success';
33
+ /**
34
+ * `captured` does NOT mean verified. It means the capture completed and
35
+ * the data is on the entity, with no check run — the journey was
36
+ * configured with `triggerVerificationOnSubmit: false` and the host
37
+ * verifies on its own schedule. A host branching only on `outcome` will
38
+ * treat it as a pass; branch on `reason` if that distinction matters.
39
+ */
40
+ reason: 'verified' | 'verified_manually' | 'captured';
41
+ checkResult?: CheckSummary;
42
+ } | {
43
+ outcome: 'pending';
44
+ reason: 'manual_review' | 'awaiting_checks' | 'processing_timeout';
45
+ checkResult?: CheckSummary;
46
+ } | {
47
+ outcome: 'declined';
48
+ reason: 'checks_failed' | 'declined_manually' | 'duplicate' | 'blocklisted' | 'fraud' | 'attempts_exhausted' | 'profile_archived' | 'profile_inactive' | 'profile_deleted';
49
+ checkResult?: CheckSummary;
50
+ } | {
51
+ outcome: 'abandoned';
52
+ reason: 'session_interrupted' | 'user_exited';
53
+ } | {
54
+ outcome: 'error';
55
+ reason: 'vendor_load_failed' | 'vendor_offline' | 'network' | 'session_expired' | 'submit_failed' | 'workflow_error' | 'workflow_timeout' | 'internal';
56
+ recoverable: boolean;
57
+ error: JourneyErrorDetail;
58
+ });
59
+ export {};
60
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/types/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,UAAU,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GACrC,CACI;IACE,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,EAAE,UAAU,GAAG,mBAAmB,GAAG,UAAU,CAAC;IACtD,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,GACD;IACE,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;IACnE,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,GACD;IACE,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EACF,eAAe,GACf,mBAAmB,GACnB,WAAW,GACX,aAAa,GACb,OAAO,GACP,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,CAAC;IACtB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,GACD;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,qBAAqB,GAAG,aAAa,CAAA;CAAE,GACvE;IACE,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EACF,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,GACT,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,kBAAkB,GAClB,UAAU,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC;CAC3B,CACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export var JourneyName;
2
+ (function (JourneyName) {
3
+ JourneyName["IDV"] = "idv";
4
+ JourneyName["OCR"] = "ocr";
5
+ JourneyName["EKYC"] = "ekyc";
6
+ })(JourneyName || (JourneyName = {}));
7
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../../modules/journey/types/contract.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,4BAAa,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -0,0 +1,23 @@
1
+ import type { RESULT_STATE } from '../../form/vendors/react/appConfig.type';
2
+ /**
3
+ * The states `screenStateFor` can return — the journey's terminal cards.
4
+ *
5
+ * Narrower than `RESULT_STATE` on purpose: `UPLOAD_SUCCESS` and `UPLOAD_FAIL`
6
+ * belong to the standalone document-upload screens, which no journey mounts,
7
+ * and `PARTIAL` is mid-loop rather than terminal. Naming the real range here
8
+ * means `config.result` can be keyed by exactly what a host can actually see.
9
+ */
10
+ export type JourneyTerminalState = RESULT_STATE.SUCCESS | RESULT_STATE.PENDING | RESULT_STATE.FAIL | RESULT_STATE.PROVIDER_ERROR | RESULT_STATE.TIMEOUT;
11
+ /**
12
+ * The form module's native RESULT config, per screen state, verbatim — the
13
+ * same passthrough every other journey screen already has (`welcome`,
14
+ * `consent`, `review`, …). Layered over the SDK's own `resultInfoMapping`
15
+ * defaults by the form module's existing merge, so a host overrides only the
16
+ * keys they name.
17
+ *
18
+ * `PARTIAL` is included even though it is not terminal: it is the same RESULT
19
+ * component, `screenStateFor` can never return it, so the key space does not
20
+ * collide and one map covers every RESULT screen a journey mounts.
21
+ */
22
+ export type JourneyResultConfig = Partial<Record<JourneyTerminalState | RESULT_STATE.PARTIAL, Record<string, unknown>>>;
23
+ //# sourceMappingURL=resultConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultConfig.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/types/resultConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,YAAY,CAAC,OAAO,GACpB,YAAY,CAAC,OAAO,GACpB,YAAY,CAAC,IAAI,GACjB,YAAY,CAAC,cAAc,GAC3B,YAAY,CAAC,OAAO,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,MAAM,CAAC,oBAAoB,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAC7E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resultConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resultConfig.js","sourceRoot":"","sources":["../../../../../modules/journey/types/resultConfig.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- { "version": "1.9.42" }
1
+ { "version": "1.10.0-rc" }
@@ -2,7 +2,7 @@ export declare const initialise: import("../../../common/types").WrapperInitiali
2
2
  eventHub: import("../../../common").EventHub<import("../../../biometrics").Events>;
3
3
  mountElement: HTMLElement;
4
4
  }, import("../../../biometrics").BiometricsWrapperContext, "async", {
5
- localEventHub: import("../../../common").EventHub<import("../../../../types").TreeShaken<Omit<import("../..").Events & import("../../../biometrics").Events, "error" | "detection_failed" | "input_required" | "results" | "processing"> & {
5
+ localEventHub: import("../../../common").EventHub<import("../../../../types").TreeShaken<Omit<import("../..").Events & import("../../../biometrics").Events, "error" | "results" | "detection_failed" | "input_required" | "processing"> & {
6
6
  detection_failed: [{
7
7
  message: string;
8
8
  payload?: Record<string, unknown>;
@@ -2,6 +2,8 @@ import type { WrapperParameters } from '../../../common/modules/defineModule';
2
2
  import type { OCRModule } from '../..';
3
3
  import type { IDVSession } from '../../../common/modules/createIDVSession';
4
4
  type Shared = WrapperParameters<OCRModule>[0];
5
- export declare const initialiseOnfidoSDK: (idvSession: IDVSession, shared: Shared, options: OCRModule["wrapperOptions"]) => Promise<{}>;
5
+ export declare const initialiseOnfidoSDK: (idvSession: IDVSession, shared: Shared, options: OCRModule["wrapperOptions"]) => Promise<{
6
+ unmount: () => void;
7
+ }>;
6
8
  export {};
7
9
  //# sourceMappingURL=onfido.init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"onfido.init.d.ts","sourceRoot":"","sources":["../../../../../../modules/ocr/vendors/Onfido/onfido.init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAa7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE3E,KAAK,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C,eAAO,MAAM,mBAAmB,eAClB,UAAU,UACd,MAAM,WACL,SAAS,CAAC,gBAAgB,CAAC,gBA6KrC,CAAC"}
1
+ {"version":3,"file":"onfido.init.d.ts","sourceRoot":"","sources":["../../../../../../modules/ocr/vendors/Onfido/onfido.init.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAa7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE3E,KAAK,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9C,eAAO,MAAM,mBAAmB,eAClB,UAAU,UACd,MAAM,WACL,SAAS,CAAC,gBAAgB,CAAC;;EA0LrC,CAAC"}
@@ -13,7 +13,7 @@ import { OneSDKError } from '../../../common/index.js';
13
13
  import { emitWhenNoCameraAccess } from '../../../common/modules/cameraAccess.js';
14
14
  import { install, observeReady, resolveOnfidoVersion, resolveShowExitButton, } from '../../../common/vendors/onfido/index.js';
15
15
  import { initProcessAndEvaluateResults } from '../common/initProcess.js';
16
- import { declaringOnfidoSteps, removeOnfidoSdk } from './shared.js';
16
+ import { declaringOnfidoSteps, mkOnfidoUnmount, removeOnfidoSdk, } from './shared.js';
17
17
  export const initialiseOnfidoSDK = (idvSession, shared, options) => __awaiter(void 0, void 0, void 0, function* () {
18
18
  var _a;
19
19
  const { recipe, session } = shared;
@@ -126,6 +126,19 @@ export const initialiseOnfidoSDK = (idvSession, shared, options) => __awaiter(vo
126
126
  onfidoScriptElement,
127
127
  });
128
128
  }, crossDevicePolicy: (provider === null || provider === void 0 ? void 0 : provider.name) === 'onfido' ? provider.crossDevicePolicy : 'disable', _crossDeviceLinkMethods, language: (provider === null || provider === void 0 ? void 0 : provider.name) === 'onfido' ? provider.language : undefined, translations: (provider === null || provider === void 0 ? void 0 : provider.name) === 'onfido' ? provider.translations : undefined }));
129
- return {};
129
+ // FDEL-53728 B1 — the host's way out. Onfido's portal lives on `<body>`, so
130
+ // clearing the mount element cannot remove it; `ocr.unmount()` reaching this
131
+ // is what lets a host (or the journey's stop()/destroy()) end the flow
132
+ // without stranding the applicant in a live vendor UI.
133
+ return {
134
+ unmount: mkOnfidoUnmount(instance, {
135
+ eventHub,
136
+ loadingEvent: `Vendor 'Onfido' was unmounted`,
137
+ sdkVersion: onfidoVersion.number,
138
+ userAnalyticsEventListener,
139
+ onfidoScriptElement,
140
+ component: 'ocr',
141
+ }),
142
+ };
130
143
  });
131
144
  //# sourceMappingURL=onfido.init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onfido.init.js","sourceRoot":"","sources":["../../../../../../modules/ocr/vendors/Onfido/onfido.init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onfido.init.js","sourceRoot":"","sources":["../../../../../../modules/ocr/vendors/Onfido/onfido.init.ts"],"names":[],"mappings":"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"}