@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.
- package/dist/commit.txt +1 -1
- package/dist/esm/modules/biometrics/vendors/Daon/index.d.ts +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.d.ts +3 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.d.ts.map +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.js +15 -2
- package/dist/esm/modules/biometrics/vendors/Onfido/onfido.init.js.map +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.d.ts +3 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.d.ts.map +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.js +15 -2
- package/dist/esm/modules/biometrics/vendors/Onfido/onfidoLegacy.init.js.map +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/shared.d.ts +7 -0
- package/dist/esm/modules/biometrics/vendors/Onfido/shared.d.ts.map +1 -1
- package/dist/esm/modules/biometrics/vendors/Onfido/shared.js +20 -5
- package/dist/esm/modules/biometrics/vendors/Onfido/shared.js.map +1 -1
- package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.d.ts.map +1 -1
- package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.js +6 -2
- package/dist/esm/modules/common/shared/utils/fetchCheckProcessingStatus.js.map +1 -1
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.d.ts.map +1 -1
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.js +5 -2
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframe.js.map +1 -1
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.d.ts +11 -0
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.d.ts.map +1 -1
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.js +1 -0
- package/dist/esm/modules/common/vendors/common/iframeUtils/createIframeEventListener.js.map +1 -1
- package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.d.ts.map +1 -1
- package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.js +18 -3
- package/dist/esm/modules/common/vendors/daon/mapMessageToEvent.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.js +1 -1
- package/dist/esm/modules/form/vendors/react/components/base/FrankieLoader/FrankieLoader.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js +1 -1
- package/dist/esm/modules/form/vendors/react/components/view/Progress/Progress.js.map +1 -1
- package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts +585 -585
- package/dist/esm/modules/form/vendors/react/features/PersonalDetails/personalDetails.config.d.ts.map +1 -1
- package/dist/esm/modules/form/vendors/react/index.js +15 -0
- package/dist/esm/modules/form/vendors/react/index.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.d.ts +4 -4
- package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.d.ts.map +1 -1
- package/dist/esm/modules/frankie-client/clients/F2/IDVClientF2.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts +4 -4
- package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts.map +1 -1
- package/dist/esm/modules/frankie-client/clients/IDVClient.js.map +1 -1
- package/dist/esm/modules/idv/actions/mount.d.ts +9 -0
- package/dist/esm/modules/idv/actions/mount.d.ts.map +1 -1
- package/dist/esm/modules/idv/actions/mount.js +3 -1
- package/dist/esm/modules/idv/actions/mount.js.map +1 -1
- package/dist/esm/modules/idv/index.d.ts.map +1 -1
- package/dist/esm/modules/idv/index.js +17 -2
- package/dist/esm/modules/idv/index.js.map +1 -1
- package/dist/esm/modules/idv/vendors/Daon/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Incode/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Mastercard/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/OcrLabs/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.d.ts.map +1 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.js +20 -2
- package/dist/esm/modules/idv/vendors/Onfido/index.js.map +1 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.d.ts +3 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.d.ts.map +1 -1
- package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.js +15 -2
- package/dist/esm/modules/idv/vendors/Onfido/index.useOneStep.js.map +1 -1
- package/dist/esm/modules/idv/vendors/Sumsub/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Truuth/index.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/Truuth/index.d.ts.map +1 -1
- package/dist/esm/modules/idv/vendors/Truuth/index.js +13 -1
- package/dist/esm/modules/idv/vendors/Truuth/index.js.map +1 -1
- package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts +1 -1
- package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts.map +1 -1
- package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js +19 -1
- package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js.map +1 -1
- package/dist/esm/modules/index.d.ts +2 -0
- package/dist/esm/modules/index.d.ts.map +1 -1
- package/dist/esm/modules/index.js +1 -0
- package/dist/esm/modules/index.js.map +1 -1
- package/dist/esm/modules/journey/classify/classify.d.ts +8 -0
- package/dist/esm/modules/journey/classify/classify.d.ts.map +1 -0
- package/dist/esm/modules/journey/classify/classify.js +105 -0
- package/dist/esm/modules/journey/classify/classify.js.map +1 -0
- package/dist/esm/modules/journey/classify/transportError.d.ts +24 -0
- package/dist/esm/modules/journey/classify/transportError.d.ts.map +1 -0
- package/dist/esm/modules/journey/classify/transportError.js +35 -0
- package/dist/esm/modules/journey/classify/transportError.js.map +1 -0
- package/dist/esm/modules/journey/classify/v1Status.d.ts +24 -0
- package/dist/esm/modules/journey/classify/v1Status.d.ts.map +1 -0
- package/dist/esm/modules/journey/classify/v1Status.js +43 -0
- package/dist/esm/modules/journey/classify/v1Status.js.map +1 -0
- package/dist/esm/modules/journey/flows/ekycFlow.d.ts +38 -0
- package/dist/esm/modules/journey/flows/ekycFlow.d.ts.map +1 -0
- package/dist/esm/modules/journey/flows/ekycFlow.js +179 -0
- package/dist/esm/modules/journey/flows/ekycFlow.js.map +1 -0
- package/dist/esm/modules/journey/flows/idvFlow.d.ts +32 -0
- package/dist/esm/modules/journey/flows/idvFlow.d.ts.map +1 -0
- package/dist/esm/modules/journey/flows/idvFlow.js +509 -0
- package/dist/esm/modules/journey/flows/idvFlow.js.map +1 -0
- package/dist/esm/modules/journey/flows/ocrFlow.d.ts +27 -0
- package/dist/esm/modules/journey/flows/ocrFlow.d.ts.map +1 -0
- package/dist/esm/modules/journey/flows/ocrFlow.js +434 -0
- package/dist/esm/modules/journey/flows/ocrFlow.js.map +1 -0
- package/dist/esm/modules/journey/flows/screenSequence.d.ts +127 -0
- package/dist/esm/modules/journey/flows/screenSequence.d.ts.map +1 -0
- package/dist/esm/modules/journey/flows/screenSequence.js +418 -0
- package/dist/esm/modules/journey/flows/screenSequence.js.map +1 -0
- package/dist/esm/modules/journey/flows/submitAndClassify.d.ts +32 -0
- package/dist/esm/modules/journey/flows/submitAndClassify.d.ts.map +1 -0
- package/dist/esm/modules/journey/flows/submitAndClassify.js +101 -0
- package/dist/esm/modules/journey/flows/submitAndClassify.js.map +1 -0
- package/dist/esm/modules/journey/index.d.ts +34 -0
- package/dist/esm/modules/journey/index.d.ts.map +1 -0
- package/dist/esm/modules/journey/index.js +183 -0
- package/dist/esm/modules/journey/index.js.map +1 -0
- package/dist/esm/modules/journey/journeyHandle.d.ts +35 -0
- package/dist/esm/modules/journey/journeyHandle.d.ts.map +1 -0
- package/dist/esm/modules/journey/journeyHandle.js +130 -0
- package/dist/esm/modules/journey/journeyHandle.js.map +1 -0
- package/dist/esm/modules/journey/screens/ctaConfig.d.ts +2 -0
- package/dist/esm/modules/journey/screens/ctaConfig.d.ts.map +1 -0
- package/dist/esm/modules/journey/screens/ctaConfig.js +23 -0
- package/dist/esm/modules/journey/screens/ctaConfig.js.map +1 -0
- package/dist/esm/modules/journey/screens/resultScreen.d.ts +21 -0
- package/dist/esm/modules/journey/screens/resultScreen.d.ts.map +1 -0
- package/dist/esm/modules/journey/screens/resultScreen.js +108 -0
- package/dist/esm/modules/journey/screens/resultScreen.js.map +1 -0
- package/dist/esm/modules/journey/simulate/fixtures.d.ts +9 -0
- package/dist/esm/modules/journey/simulate/fixtures.d.ts.map +1 -0
- package/dist/esm/modules/journey/simulate/fixtures.js +41 -0
- package/dist/esm/modules/journey/simulate/fixtures.js.map +1 -0
- package/dist/esm/modules/journey/steps/firstPaint.d.ts +43 -0
- package/dist/esm/modules/journey/steps/firstPaint.d.ts.map +1 -0
- package/dist/esm/modules/journey/steps/firstPaint.js +28 -0
- package/dist/esm/modules/journey/steps/firstPaint.js.map +1 -0
- package/dist/esm/modules/journey/steps/stepMachine.d.ts +52 -0
- package/dist/esm/modules/journey/steps/stepMachine.d.ts.map +1 -0
- package/dist/esm/modules/journey/steps/stepMachine.js +90 -0
- package/dist/esm/modules/journey/steps/stepMachine.js.map +1 -0
- package/dist/esm/modules/journey/steps/stepTable.d.ts +234 -0
- package/dist/esm/modules/journey/steps/stepTable.d.ts.map +1 -0
- package/dist/esm/modules/journey/steps/stepTable.js +241 -0
- package/dist/esm/modules/journey/steps/stepTable.js.map +1 -0
- package/dist/esm/modules/journey/theme/applyTheme.d.ts +17 -0
- package/dist/esm/modules/journey/theme/applyTheme.d.ts.map +1 -0
- package/dist/esm/modules/journey/theme/applyTheme.js +49 -0
- package/dist/esm/modules/journey/theme/applyTheme.js.map +1 -0
- package/dist/esm/modules/journey/types/classification.d.ts +10 -0
- package/dist/esm/modules/journey/types/classification.d.ts.map +1 -0
- package/dist/esm/modules/journey/types/classification.js +2 -0
- package/dist/esm/modules/journey/types/classification.js.map +1 -0
- package/dist/esm/modules/journey/types/classifierInput.d.ts +45 -0
- package/dist/esm/modules/journey/types/classifierInput.d.ts.map +1 -0
- package/dist/esm/modules/journey/types/classifierInput.js +2 -0
- package/dist/esm/modules/journey/types/classifierInput.js.map +1 -0
- package/dist/esm/modules/journey/types/contract.d.ts +60 -0
- package/dist/esm/modules/journey/types/contract.d.ts.map +1 -0
- package/dist/esm/modules/journey/types/contract.js +7 -0
- package/dist/esm/modules/journey/types/contract.js.map +1 -0
- package/dist/esm/modules/journey/types/resultConfig.d.ts +23 -0
- package/dist/esm/modules/journey/types/resultConfig.d.ts.map +1 -0
- package/dist/esm/modules/journey/types/resultConfig.js +2 -0
- package/dist/esm/modules/journey/types/resultConfig.js.map +1 -0
- package/dist/esm/modules/meta.json +1 -1
- package/dist/esm/modules/ocr/vendors/Daon/index.d.ts +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.d.ts +3 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.d.ts.map +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.js +15 -2
- package/dist/esm/modules/ocr/vendors/Onfido/onfido.init.js.map +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.d.ts +3 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.d.ts.map +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.js +15 -2
- package/dist/esm/modules/ocr/vendors/Onfido/onfidoLegacy.init.js.map +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/shared.d.ts +17 -0
- package/dist/esm/modules/ocr/vendors/Onfido/shared.d.ts.map +1 -1
- package/dist/esm/modules/ocr/vendors/Onfido/shared.js +33 -5
- package/dist/esm/modules/ocr/vendors/Onfido/shared.js.map +1 -1
- package/dist/esm/modules/sdk/index.d.ts.map +1 -1
- package/dist/esm/modules/sdk/index.js +5 -1
- package/dist/esm/modules/sdk/index.js.map +1 -1
- package/dist/esm/modules/sdk/types/globalEvents.d.ts +13 -0
- package/dist/esm/modules/sdk/types/globalEvents.d.ts.map +1 -1
- package/dist/esm/modules/sdk/types/oneSDK.d.ts +1 -0
- package/dist/esm/modules/sdk/types/oneSDK.d.ts.map +1 -1
- package/dist/esm/styles/f1-style.css +1 -1
- package/dist/release.txt +1 -1
- package/dist/version.txt +1 -1
- 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"}
|