@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,179 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { REVIEW_VERIFY_EVENTS } from '../steps/stepTable.js';
11
+ import { transportErrorSignal } from '../classify/transportError.js';
12
+ import { mkScreenSequence } from './screenSequence.js';
13
+ const ABANDONED = { alerts: [], signal: 'user_exited' };
14
+ /**
15
+ * `stepTable.ts`'s REVIEW_VERIFY row: ReviewDocument.tsx's own built-in
16
+ * submit({verify:true})+classify is trusted as-is, not re-derived from a
17
+ * second submit — so this maps each outcome event straight to the
18
+ * ClassifierInput that produces the matching classify.ts outcome, rather
19
+ * than reading alerts/statusType off a CheckSummary nobody fetched here.
20
+ */
21
+ const REVIEW_OUTCOME = {
22
+ 'form:review:success': { alerts: [], statusType: 'passed' },
23
+ 'form:review:failed': { alerts: [], statusType: 'failed' },
24
+ 'form:review:partial': { alerts: ['partial'] },
25
+ 'form:review:pending': { alerts: [] },
26
+ };
27
+ /**
28
+ * eKYC's own step runner — no vendor, no CAPTURE step. The whole attempt is
29
+ * PERSONAL → DOCUMENT → REVIEW, all human-gated form screens.
30
+ *
31
+ * REVIEW itself is where this flow genuinely diverges from idv/ocr: it does
32
+ * NOT call `submitAndClassify` (`individual().submit({verify:true})`) itself.
33
+ * ReviewDocument.tsx (the `type: 'manual'` REVIEW component) already has its
34
+ * own built-in submit-and-classify — `verify: true` makes it call submit
35
+ * itself, and `customResult: true` makes it emit
36
+ * `form:review:{success|failed|pending|partial}` with the outcome, instead of
37
+ * rendering its own `<Result>` UI. Calling submit a second time here would be
38
+ * redundant at best. See `stepTable.ts`'s REVIEW_VERIFY row for exactly which
39
+ * ReviewDocument.tsx branch produces which event.
40
+ *
41
+ * The data-correction retry (spec §6) uses the dedicated RETRY module
42
+ * (`Retry.tsx`), not a second plain REVIEW mount — it reads the previous
43
+ * submission's `retryPages` and routes the applicant straight to whichever
44
+ * field needs correcting, landing back on `<ReviewDocument/>` to resubmit.
45
+ */
46
+ export const mkEkycStepRunner = (deps) => {
47
+ const { oneSdk, config, machine, firstPaint } = deps;
48
+ const screens = mkScreenSequence({ oneSdk, config, machine, firstPaint });
49
+ const logo = config.logo ? { src: config.logo } : undefined;
50
+ const finish = (input) => {
51
+ if (!machine.isPending('REVIEW_VERIFY'))
52
+ return;
53
+ machine.complete('REVIEW_VERIFY', input);
54
+ };
55
+ machine.release(() => finish(ABANDONED));
56
+ const failInternal = (error) => {
57
+ // FDEL-53728 Q2. A transport failure is not an internal fault, and the same
58
+ // 401 must not report one way from the verify-submit and another from
59
+ // `search()`. `transportErrorSignal` returns undefined for everything else,
60
+ // so a genuine fault keeps `unmapped_status` / `internal` as before.
61
+ const transport = transportErrorSignal(error);
62
+ if (transport) {
63
+ finish({
64
+ alerts: [],
65
+ signal: transport,
66
+ errorDetail: { code: transport, message: error.message },
67
+ });
68
+ return;
69
+ }
70
+ finish({
71
+ alerts: [],
72
+ signal: 'unmapped_status',
73
+ errorDetail: { code: 'internal', message: error.message },
74
+ });
75
+ };
76
+ /**
77
+ * Wires every REVIEW_VERIFY_EVENTS listener onto `screen` and settles the
78
+ * step with the matching outcome. Bypasses `screenSequence.ts`'s generic
79
+ * `present()` (built for "one event completes the step", not "any of four
80
+ * events completes it, and which one decides the outcome") — the same
81
+ * reason `idvFlow.ts`'s CAPTURE listeners wire directly rather than through
82
+ * it. Listeners are attached before `mount()`, so a fast auto-submit cannot
83
+ * be missed, and released once, on the machine's single teardown.
84
+ */
85
+ const listenForOutcome = (screen) => {
86
+ const emitter = screen;
87
+ const listener = (event) => () => finish(REVIEW_OUTCOME[event]);
88
+ const listeners = REVIEW_VERIFY_EVENTS.map((event) => [event, listener(event)]);
89
+ listeners.forEach(([event, cb]) => emitter.on(event, cb));
90
+ machine.release(() => listeners.forEach(([event, cb]) => { var _a; return (_a = emitter.off) === null || _a === void 0 ? void 0 : _a.call(emitter, event, cb); }));
91
+ };
92
+ /**
93
+ * `verify`/`customResult` are forced, not passthrough: the whole point of
94
+ * this step is ReviewDocument.tsx actually running its built-in
95
+ * submit+classify and emitting the outcome, not rendering its own
96
+ * `<Result>` UI, so a passed-through `config.review.verify` cannot turn
97
+ * either off.
98
+ */
99
+ const mountReviewVerify = () => {
100
+ const screen = oneSdk.component('form', Object.assign(Object.assign({ name: 'REVIEW', mode: 'individual', type: 'manual', logo }, config.review), { verify: true, customResult: true }));
101
+ listenForOutcome(screen);
102
+ // reachable as the first screen only via the startAt:'REVIEW' test seam —
103
+ // the normal path already fires this from presentPersonal()
104
+ firstPaint.watch(screen, ['form:review:loaded']);
105
+ return screen.mount(config.container);
106
+ };
107
+ /**
108
+ * The retry module reads the previous submission's `retryPages`/form data
109
+ * straight out of the react form vendor's shared redux store
110
+ * (`modules/form/vendors/react/redux/store.ts` — a module-level singleton,
111
+ * so this fresh `component('form', {name:'RETRY'})` instance still sees
112
+ * it) and routes the applicant to whichever field actually needs
113
+ * correcting. It renders `<ReviewDocument/>` once it lands back on REVIEW,
114
+ * still reading the REVIEW slot's config (`verify`/`customResult`) that
115
+ * `mountReviewVerify()` set — so it fires the same REVIEW_VERIFY_EVENTS.
116
+ */
117
+ const mountRetry = () => {
118
+ const screen = oneSdk.component('form', Object.assign({ name: 'RETRY', mode: 'individual', type: 'manual', logo }, config.retry));
119
+ listenForOutcome(screen);
120
+ return screen.mount(config.container);
121
+ };
122
+ /**
123
+ * PERSONAL → DOCUMENT, with DOCUMENT's "Back" link looping back to PERSONAL
124
+ * rather than dead-ending (`screenSequence.ts`'s `presentDocument`). Each
125
+ * pass re-runs both steps through the machine: they have already completed,
126
+ * so they are no longer in flight and `run()` opens a fresh screen for each
127
+ * — the react form vendor's redux store is a module-level singleton, so what
128
+ * the applicant already entered is still there when PERSONAL comes back.
129
+ */
130
+ const presentIdentity = () => __awaiter(void 0, void 0, void 0, function* () {
131
+ yield screens.presentPersonal();
132
+ const exit = yield screens.presentDocument();
133
+ if (exit === 'back')
134
+ yield presentIdentity();
135
+ });
136
+ const runFullSequence = () => screens
137
+ .presentPreCapture()
138
+ .then(() => presentIdentity())
139
+ .then(() => mountReviewVerify())
140
+ .catch(failInternal);
141
+ /** spec §6 — the data-correction retry: PARTIAL screen, then the RETRY module */
142
+ const retryWithCorrectedData = () => screens
143
+ .presentPartial()
144
+ .then(() => mountRetry())
145
+ .catch(failInternal);
146
+ /** TEST SEAM (idvFlow.ts) — go straight to review, mounting nothing before it */
147
+ const startAtReview = () => Promise.resolve(mountReviewVerify()).catch(failInternal);
148
+ const run = (attempt) => {
149
+ if (machine.isTorn())
150
+ return Promise.resolve(ABANDONED);
151
+ return machine.run('REVIEW_VERIFY', () => {
152
+ if (attempt === 0 && config.startAt === 'REVIEW') {
153
+ void startAtReview();
154
+ return undefined;
155
+ }
156
+ if (attempt > 0) {
157
+ void retryWithCorrectedData();
158
+ return undefined;
159
+ }
160
+ void runFullSequence();
161
+ return undefined;
162
+ });
163
+ };
164
+ /**
165
+ * Leave the container clear for the terminal card (FDEL-53993 QA B10) —
166
+ * `ocrFlow.ts`'s copy carries the full reasoning.
167
+ *
168
+ * eKYC has no vendor, so there is no `unmount()` to ask first. What it does
169
+ * have is its own REVIEW screen, still mounted when the journey settles: the
170
+ * one-screen-at-a-time rule applies to that just as much as to a vendor's
171
+ * modal, so the clear is the same.
172
+ */
173
+ const clearForTerminalScreen = () => {
174
+ screens.unmountAll();
175
+ config.container.innerHTML = '';
176
+ };
177
+ return { run, clearForTerminalScreen };
178
+ };
179
+ //# sourceMappingURL=ekycFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ekycFlow.js","sourceRoot":"","sources":["../../../../../modules/journey/flows/ekycFlow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { OneSdkContext } from '../../sdk/types/oneSDK';
2
+ import type { JourneyScreenConfig, ScreenSequence } from './screenSequence';
3
+ import type { StepRunner } from '../journeyHandle';
4
+ import type { FirstPaintSignal } from '../steps/firstPaint';
5
+ import type { StepMachine } from '../steps/stepMachine';
6
+ export type IdvStepRunner = {
7
+ run: StepRunner;
8
+ /** take the vendor's UI down at terminal settlement — see the implementation */
9
+ /** leave the container clear for the terminal card — see the implementation */
10
+ clearForTerminalScreen: () => void;
11
+ };
12
+ /**
13
+ * Converts engine events into a ClassifierInput. Decides nothing itself —
14
+ * spec §5.0.1: the IDV status is process state, never an outcome.
15
+ *
16
+ * Which engine events the capture step listens to, and which of them complete
17
+ * it, is declared in `steps/stepTable.ts` (row CAPTURE) — the handler map below
18
+ * has to cover exactly those events or it will not compile. Everything is
19
+ * subscribed once, through the machine, and released by its single teardown.
20
+ *
21
+ * There is deliberately **no fallback timer** on anything the applicant does.
22
+ * The only timer in this file waits out the idv module's own mount debounce,
23
+ * which guards engine behaviour rather than human action.
24
+ */
25
+ export declare const mkIdvStepRunner: (deps: {
26
+ oneSdk: OneSdkContext;
27
+ config: JourneyScreenConfig;
28
+ machine: StepMachine;
29
+ firstPaint: FirstPaintSignal;
30
+ }) => IdvStepRunner;
31
+ export type { JourneyScreenConfig, ScreenSequence };
32
+ //# sourceMappingURL=idvFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idvFlow.d.ts","sourceRoot":"","sources":["../../../../../modules/journey/flows/idvFlow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAS9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAoCrE,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,gFAAgF;IAChF,+EAA+E;IAC/E,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC,CAAC;AAKF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;CAC9B,KAAG,aAieH,CAAC;AAEF,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC"}