@frankieone/one-sdk 0.8.3-alpha → 0.8.4-alpha
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/README.md +5 -1
- package/dist/commit.txt +2 -2
- package/dist/esm/modules/meta.json +1 -1
- package/dist/esm/modules/ocr/actions/mount.d.ts +3 -10
- package/dist/esm/modules/ocr/actions/mount.d.ts.map +1 -1
- package/dist/esm/modules/ocr/actions/mount.js +21 -27
- package/dist/esm/modules/ocr/actions/mount.js.map +1 -1
- package/dist/esm/modules/ocr/actions/start.d.ts +10 -9
- package/dist/esm/modules/ocr/actions/start.d.ts.map +1 -1
- package/dist/esm/modules/ocr/actions/start.js +24 -24
- package/dist/esm/modules/ocr/actions/start.js.map +1 -1
- package/dist/esm/modules/ocr/index.d.ts +7 -6
- package/dist/esm/modules/ocr/index.d.ts.map +1 -1
- package/dist/esm/modules/ocr/index.js +44 -23
- package/dist/esm/modules/ocr/index.js.map +1 -1
- package/dist/release.txt +2 -2
- package/dist/umd/oneSdk.umd.js +1 -1
- package/dist/umd/oneSdk.umd.js.map +1 -1
- package/dist/version.txt +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/commit.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
92eb7ea5ac3f456e41585895c6aff40fc1d897cc
|
|
2
|
+
92eb7ea5ac3f456e41585895c6aff40fc1d897cc
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "version": "0.8.
|
|
1
|
+
{ "version": "0.8.4-alpha" }
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export declare const mkMountMethod: ({ globalState, startOCR, }: {
|
|
5
|
-
globalState: InjectedState & {
|
|
6
|
-
localEventHub: EventHub<Events>;
|
|
7
|
-
};
|
|
8
|
-
startOCR: () => Promise<{
|
|
9
|
-
interruptOCR: () => void;
|
|
10
|
-
}>;
|
|
1
|
+
import type { Dependencies } from '@module/ocr/actions/start';
|
|
2
|
+
export declare const mkMountMethod: (deps: Dependencies & {
|
|
3
|
+
loadVendorWrapper;
|
|
11
4
|
}) => (domElementOrSelector: HTMLElement | string) => Promise<void>;
|
|
12
5
|
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../../../../modules/ocr/actions/mount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../../../../modules/ocr/actions/mount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,eAAO,MAAM,aAAa,SAClB,YAAY,GAAG;IACnB,iBAAiB,CAAC;CACnB,4BAQmC,WAAW,GAAG,MAAM,kBA8CzD,CAAC"}
|
|
@@ -7,58 +7,52 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
export const mkMountMethod = (
|
|
13
|
-
const { globalEventHub,
|
|
14
|
-
const loadVendorWrapper = mkVendorLoader({
|
|
15
|
-
// If initialising in dummy mode, force the use of the dummy-ocr wrapper
|
|
16
|
-
// otherwise load the wrapper based on the provider's name
|
|
17
|
-
vendorName: globalState.mode.modeName === SdkModes.DUMMY ? "dummy-ocr" : recipe.ocr.provider.name,
|
|
18
|
-
sharedConfiguration: globalState,
|
|
19
|
-
vendorLoader: {
|
|
20
|
-
"dummy-ocr": () => import(/* webpackChunkName: 'ocr-dummy' */ "../vendors/dummy-ocr/index"),
|
|
21
|
-
onfido: () => import(/* webpackChunkName: 'ocr-onfido' */ "../vendors/Onfido/index"),
|
|
22
|
-
},
|
|
23
|
-
});
|
|
10
|
+
import { mkEventHub } from '../../common';
|
|
11
|
+
import { mkStartMethod } from '../../ocr/actions/start';
|
|
12
|
+
export const mkMountMethod = (deps) => {
|
|
13
|
+
const { globalEventHub, eventHub: publicEventHub, loadVendorWrapper } = deps;
|
|
24
14
|
return (domElementOrSelector) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
15
|
// when mounting, we also run the start method, which has its own logic to define if a new ocr capture is
|
|
26
16
|
// required or not, based on pre-existing document objects with ocrResults.
|
|
27
17
|
// 1) if ocr was already completed successfully, emit a results event
|
|
28
18
|
// 2) otherwise, emit input_required event
|
|
29
|
-
|
|
19
|
+
const privateEventHub = mkEventHub();
|
|
20
|
+
const internalStartMethod = mkStartMethod(Object.assign(Object.assign({}, deps), { eventHub: privateEventHub }));
|
|
21
|
+
// when private results event is captured, broadcast to public event
|
|
22
|
+
privateEventHub.map('results', publicEventHub);
|
|
23
|
+
privateEventHub.on('input_required', () => {
|
|
30
24
|
// Load and initialise vendor wrapper
|
|
31
|
-
// Which will automatically mount camera feed to HTML element provided as parameter above
|
|
25
|
+
// Which will automatically mount camera feed to an HTML element provided as the parameter above
|
|
32
26
|
loadVendorWrapper({
|
|
33
27
|
vendorWrapperOptions: () => {
|
|
34
28
|
// Resolve the target HTML Element
|
|
35
|
-
const mountElement = typeof domElementOrSelector ===
|
|
29
|
+
const mountElement = typeof domElementOrSelector === 'string'
|
|
36
30
|
? window.document.querySelector(domElementOrSelector)
|
|
37
31
|
: domElementOrSelector;
|
|
38
32
|
if (!mountElement)
|
|
39
33
|
throw new Error(`DOM Element ${domElementOrSelector} not found.`);
|
|
40
34
|
// Return values required by the wrapper and the vendor loading function
|
|
41
35
|
return {
|
|
42
|
-
eventHub:
|
|
43
|
-
mountElement
|
|
36
|
+
eventHub: publicEventHub,
|
|
37
|
+
mountElement
|
|
44
38
|
};
|
|
45
39
|
},
|
|
46
40
|
onSuccess: (_, { vendorName }) => {
|
|
47
|
-
globalEventHub.emit(
|
|
48
|
-
eventName:
|
|
49
|
-
data: { vendor: vendorName }
|
|
41
|
+
globalEventHub.emit('telemetry', {
|
|
42
|
+
eventName: 'OCR:MOUNT',
|
|
43
|
+
data: { vendor: vendorName }
|
|
50
44
|
});
|
|
51
45
|
},
|
|
52
46
|
onError: (error, { vendorName }) => {
|
|
53
|
-
globalEventHub.emit(
|
|
54
|
-
eventName:
|
|
47
|
+
globalEventHub.emit('telemetry', {
|
|
48
|
+
eventName: 'OCR:MOUNT:ERROR',
|
|
55
49
|
data: { vendor: vendorName },
|
|
56
|
-
error
|
|
50
|
+
error
|
|
57
51
|
});
|
|
58
|
-
}
|
|
52
|
+
}
|
|
59
53
|
});
|
|
60
54
|
});
|
|
61
|
-
yield
|
|
55
|
+
yield internalStartMethod();
|
|
62
56
|
});
|
|
63
57
|
};
|
|
64
58
|
//# sourceMappingURL=mount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../../../../../modules/ocr/actions/mount.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../../../../../modules/ocr/actions/mount.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,IAEC,EACD,EAAE;IACF,MAAM,EACJ,cAAc,EACd,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAClB,GAAG,IAAI,CAAC;IAET,OAAO,CAAO,oBAA0C,EAAE,EAAE;QAC1D,yGAAyG;QACzG,2EAA2E;QAC3E,qEAAqE;QACrE,0CAA0C;QAC1C,MAAM,eAAe,GAAG,UAAU,EAAU,CAAC;QAC7C,MAAM,mBAAmB,GAAG,aAAa,iCACpC,IAAI,KACP,QAAQ,EAAE,eAAe,IACzB,CAAC;QACH,oEAAoE;QACpE,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAC/C,eAAe,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACxC,qCAAqC;YACrC,gGAAgG;YAChG,iBAAiB,CAAC;gBAChB,oBAAoB,EAAE,GAAG,EAAE;oBACzB,kCAAkC;oBAClC,MAAM,YAAY,GAChB,OAAO,oBAAoB,KAAK,QAAQ;wBACtC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAc,oBAAoB,CAAC;wBAClE,CAAC,CAAC,oBAAoB,CAAC;oBAC3B,IAAI,CAAC,YAAY;wBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,oBAAoB,aAAa,CAAC,CAAC;oBACrF,wEAAwE;oBACxE,OAAO;wBACL,QAAQ,EAAE,cAAc;wBACxB,YAAY;qBACb,CAAC;gBACJ,CAAC;gBACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;oBAC/B,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC/B,SAAS,EAAE,WAAW;wBACtB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;oBACjC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;wBAC/B,SAAS,EAAE,iBAAiB;wBAC5B,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;wBAC5B,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,mBAAmB,EAAE,CAAC;IAC9B,CAAC,CAAA,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { Accessors, EventHub, ReadonlyAccessors } from
|
|
2
|
-
import { Document } from
|
|
3
|
-
import { CompleteStatus, FailedStatus, InputRequiredStatus, OCRClient, OCRResults
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
type
|
|
8
|
-
|
|
1
|
+
import type { Accessors, EventHub, ReadonlyAccessors } from '@module/common';
|
|
2
|
+
import { Document } from '@module/common/shared/models/Document';
|
|
3
|
+
import type { CompleteStatus, FailedStatus, InputRequiredStatus, OCRClient, OCRResults } from '@module/frankie-client/clients/OCRClient';
|
|
4
|
+
import { OCRStatus } from '@module/frankie-client/clients/OCRClient';
|
|
5
|
+
import type { IndividualModule } from '@module/individual';
|
|
6
|
+
import type { GlobalEvents } from '@module/sdk/types';
|
|
7
|
+
import type { Events } from '../events';
|
|
8
|
+
export type Dependencies = {
|
|
9
|
+
_expectedSide$: ReadonlyAccessors<'front' | 'back'>;
|
|
9
10
|
status$: Accessors<InputRequiredStatus | CompleteStatus>;
|
|
10
11
|
document$: Accessors<Document>;
|
|
11
12
|
files$: Accessors<File[]>;
|
|
12
|
-
individual: IndividualModule[
|
|
13
|
+
individual: IndividualModule['moduleContext'];
|
|
13
14
|
eventHub: EventHub<Events>;
|
|
14
15
|
client: OCRClient;
|
|
15
16
|
isPreloaded$: Accessors<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../modules/ocr/actions/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../modules/ocr/actions/start.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,UAAU,EACX,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAIL,SAAS,EACV,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,iBAAiB,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IACpD,OAAO,EAAE,SAAS,CAAC,mBAAmB,GAAG,cAAc,CAAC,CAAC;IACzD,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1B,UAAU,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC9C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACvC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG;IACrD,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AACF,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAK,IAAI,CAAC;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,aAAa,SAAU,YAAY;;EA+E/C,CAAC;AAEF,eAAO,MAAM,cAAc,MAAO,QAAQ,YAQzC,CAAC;AACF,eAAO,MAAM,kBAAkB,SAAgB,yBAAyB,kBA8EvE,CAAC;AACF,eAAO,MAAM,WAAW,SAAU,yBAAyB,SAQ1D,CAAC;AACF,eAAO,MAAM,aAAa,WAChB,SAAS,QACX,yBAAyB,SAYhC,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,yBAAyB,YAAY,IAAI,SAkB5E,CAAC;AAEF,eAAO,MAAM,iBAAiB,SACrB,yBAAyB,eACrB,UAAU,kBACH,OAAO,SAoExB,CAAC"}
|
|
@@ -7,11 +7,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
10
|
+
import { filter, Subject, takeUntil, takeWhile } from 'rxjs';
|
|
11
|
+
import { runOnce } from '../../common';
|
|
12
|
+
import { OneSDKError } from '../../common/errors/OneSDKError';
|
|
13
|
+
import { Document } from '../../common/shared/models/Document';
|
|
14
|
+
import { isCompleteStatus, isFailedStatus, isInputRequiredStatus, OCRStatus, } from '../../frankie-client/clients/OCRClient';
|
|
15
15
|
/**
|
|
16
16
|
* Returns the start method called by customers to trigger the OCR flow
|
|
17
17
|
* It first generates two observables by branching off the OCR's internal state variables
|
|
@@ -51,11 +51,11 @@ import { Subject, filter, takeUntil, takeWhile } from "rxjs";
|
|
|
51
51
|
* @returns { interruptOCR }, where interruptOCR forces the end of the OCR cycles
|
|
52
52
|
*/
|
|
53
53
|
export const mkStartMethod = (deps) => () => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
-
const { status$, failedStatus$, eventHub, document$, files$, isPreloaded$, globalEventHub } = deps;
|
|
55
|
-
globalEventHub.emit(
|
|
54
|
+
const { status$, failedStatus$, eventHub, document$, files$, isPreloaded$, globalEventHub, } = deps;
|
|
55
|
+
globalEventHub.emit('telemetry', 'OCR:START');
|
|
56
56
|
// If flow was interrupted with an error, interrupt observable as well
|
|
57
57
|
const interruptor = new Subject();
|
|
58
|
-
const interruptOCR = ({ message, payload = null }) => interruptor.error({ message, payload });
|
|
58
|
+
const interruptOCR = ({ message, payload = null, }) => interruptor.error({ message, payload });
|
|
59
59
|
// Loop until Status is COMPLETE, then unsubscribe automatically
|
|
60
60
|
// Repeated statuses do not trigger another cycle, so this assumes IDV always returns either a new status or a status flagging an issue
|
|
61
61
|
const statusUntilComplete$ = status$.observable.pipe(filter(Boolean), takeUntil(interruptor), takeWhile(statusIsNotComplete));
|
|
@@ -84,7 +84,7 @@ export const mkStartMethod = (deps) => () => __awaiter(void 0, void 0, void 0, f
|
|
|
84
84
|
error: (e) => {
|
|
85
85
|
// when flow is interrupted by calling interruptOCR, which will in turn
|
|
86
86
|
// emit an error internally, trigerring this error callback
|
|
87
|
-
eventHub.emit(
|
|
87
|
+
eventHub.emit('error', new OneSDKError('While executing OCR callbacks: ' + e.message, e.payload));
|
|
88
88
|
resetState();
|
|
89
89
|
},
|
|
90
90
|
};
|
|
@@ -99,7 +99,7 @@ export const mkStartMethod = (deps) => () => __awaiter(void 0, void 0, void 0, f
|
|
|
99
99
|
// expose interruptOCR() to allow interruption of an active flow, which unregister all listeners
|
|
100
100
|
return {
|
|
101
101
|
interruptOCR: () => interruptOCR({
|
|
102
|
-
message:
|
|
102
|
+
message: 'OCR Flow interrupted externally',
|
|
103
103
|
payload: {
|
|
104
104
|
document: deps.document$.getValue(),
|
|
105
105
|
status: deps.status$.getValue(),
|
|
@@ -132,8 +132,8 @@ export const resetCurrentStatus = (deps) => __awaiter(void 0, void 0, void 0, fu
|
|
|
132
132
|
* 1.b) has no failed KYC (neither manually or electronically rejected). Here manual verification takes precedence for this decision.
|
|
133
133
|
|
|
134
134
|
*/
|
|
135
|
-
const { individual, document$, status$, isPreloaded$, client, failedStatus$, interruptOCR } = deps;
|
|
136
|
-
const allDocuments = individual.access(
|
|
135
|
+
const { individual, document$, status$, isPreloaded$, client, failedStatus$, interruptOCR, } = deps;
|
|
136
|
+
const allDocuments = individual.access('documents');
|
|
137
137
|
// helpers
|
|
138
138
|
const isOcrInterrupted = (status) => status === OCRStatus.WAITING_OCR_RUN;
|
|
139
139
|
const isOcrWaitingOrComplete = (status) => isInputRequiredStatus(status) || isCompleteStatus(status);
|
|
@@ -159,7 +159,7 @@ export const resetCurrentStatus = (deps) => __awaiter(void 0, void 0, void 0, fu
|
|
|
159
159
|
}
|
|
160
160
|
else if (isOcrInterrupted(latestFoundOcrDocument.ocrResult.status)) {
|
|
161
161
|
// If latest OCR document was interrupted and has no 'continuable status', attempt to continue it
|
|
162
|
-
const { documentStatus, ocrDocument } = yield client.rerun(latestFoundOcrDocument.documentId);
|
|
162
|
+
const { documentStatus, ocrDocument, } = yield client.rerun(latestFoundOcrDocument.documentId);
|
|
163
163
|
// IF results are: WAITING_FRONT, WAITING_BACK, COMPLETE_OCR, use that
|
|
164
164
|
if (isInputRequiredStatus(documentStatus) || isCompleteStatus(documentStatus))
|
|
165
165
|
initialiseWith(documentStatus, ocrDocument, true);
|
|
@@ -188,26 +188,26 @@ export const completeOCR = (deps) => {
|
|
|
188
188
|
const document = document$.getValue();
|
|
189
189
|
const entityId = client.entityId;
|
|
190
190
|
individual.updateDocument(document.documentId, document);
|
|
191
|
-
eventHub.emit(
|
|
191
|
+
eventHub.emit('results', { document, entityId });
|
|
192
192
|
};
|
|
193
193
|
export const inputRequired = (status, deps) => {
|
|
194
194
|
const { document$, _expectedSide$, eventHub } = deps;
|
|
195
195
|
const document = document$.getValue();
|
|
196
|
-
const idType = document.idType ===
|
|
196
|
+
const idType = document.idType === 'OTHER' ? null : document.idType;
|
|
197
197
|
const info = {
|
|
198
198
|
documentType: idType,
|
|
199
199
|
side: _expectedSide$.getValue(),
|
|
200
200
|
};
|
|
201
|
-
const message =
|
|
201
|
+
const message = 'Callback \'submitFile\' on event \'input_required\' called twice. Second call was ignored';
|
|
202
202
|
const provideFile = mkProvideFile(deps);
|
|
203
|
-
eventHub.emit(
|
|
203
|
+
eventHub.emit('input_required', info, status, runOnce(provideFile, message));
|
|
204
204
|
};
|
|
205
205
|
export const mkProvideFile = (deps) => (file) => {
|
|
206
206
|
const { files$, document$, client } = deps;
|
|
207
207
|
if (!file.type)
|
|
208
|
-
throw new Error(
|
|
208
|
+
throw new Error('File is missing mime type. Provide a \'type\' option in the File constructor');
|
|
209
209
|
if (!file.type.match(/^image/))
|
|
210
|
-
throw new Error(
|
|
210
|
+
throw new Error('Invalid mime type. Provided files must be of type \'image\'');
|
|
211
211
|
const files = files$.getValue();
|
|
212
212
|
files.push(file);
|
|
213
213
|
files$.setValue(files);
|
|
@@ -219,11 +219,11 @@ export const mkProvideFile = (deps) => (file) => {
|
|
|
219
219
|
submit()
|
|
220
220
|
.then(evaluateResults)
|
|
221
221
|
.catch((e) => {
|
|
222
|
-
deps.interruptOCR({ message:
|
|
222
|
+
deps.interruptOCR({ message: 'Error submitting file', payload: e });
|
|
223
223
|
});
|
|
224
224
|
};
|
|
225
225
|
export const mkEvaluateResults = (deps) => (results, recursionFlag) => {
|
|
226
|
-
const { _expectedSide$, document$, eventHub, status$, client, failedStatus$, interruptOCR } = deps;
|
|
226
|
+
const { _expectedSide$, document$, eventHub, status$, client, failedStatus$, interruptOCR, } = deps;
|
|
227
227
|
const { documentStatus, ocrDocument } = results;
|
|
228
228
|
// Update local document object first
|
|
229
229
|
const document = ocrDocument.clone();
|
|
@@ -231,10 +231,10 @@ export const mkEvaluateResults = (deps) => (results, recursionFlag) => {
|
|
|
231
231
|
// if not a failure and not a WAITING_OCR_RUN, emit logs to confirm file upload
|
|
232
232
|
if (!isFailedStatus(documentStatus) && documentStatus !== OCRStatus.WAITING_OCR_RUN) {
|
|
233
233
|
const expectedSide = _expectedSide$.getValue();
|
|
234
|
-
const expectedScanSide = expectedSide ===
|
|
234
|
+
const expectedScanSide = expectedSide === 'front' ? 'F' : 'B';
|
|
235
235
|
const foundScan = ocrDocument.scans.find((s) => expectedScanSide === s.side);
|
|
236
236
|
if (foundScan) {
|
|
237
|
-
eventHub.emit(
|
|
237
|
+
eventHub.emit('file_uploaded', {
|
|
238
238
|
fileName: foundScan.scanName,
|
|
239
239
|
mimeType: foundScan.mimeType,
|
|
240
240
|
scanId: foundScan.scanId,
|
|
@@ -243,7 +243,7 @@ export const mkEvaluateResults = (deps) => (results, recursionFlag) => {
|
|
|
243
243
|
});
|
|
244
244
|
}
|
|
245
245
|
else {
|
|
246
|
-
eventHub.emit(
|
|
246
|
+
eventHub.emit('warning', {
|
|
247
247
|
message: `File was uploaded successfully, but there was an issue identifying it within the document payload: document.scans[].side didn't match expected side ${expectedSide} (${expectedScanSide}) `,
|
|
248
248
|
});
|
|
249
249
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../modules/ocr/actions/start.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../modules/ocr/actions/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ReactiveStore } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
import { ReactiveStore } from '@module/common';
|
|
2
|
+
import type { Document } from '@module/common/shared/models/Document';
|
|
3
|
+
import type { FailedStatus, InputRequiredStatus } from '@module/frankie-client/clients/OCRClient';
|
|
4
|
+
import { OCRStatus } from '@module/frankie-client/clients/OCRClient';
|
|
5
|
+
import type { Events } from '@module/ocr/events';
|
|
6
|
+
import type { OCRModule } from './definition';
|
|
7
|
+
export * from './definition';
|
|
7
8
|
export type { Events };
|
|
8
9
|
export { OCRStatus as Status };
|
|
9
10
|
declare const _default: import("../common/types").BrandedInitialiseFunction<OCRModule>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/ocr/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/ocr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAGL,SAAS,EACV,MAAM,0CAA0C,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAMjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;AACvB,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC;;AAE/B,wBAmFG;AAEH,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC,QAAQ,CAAC;IACjD,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,KAAK;;;;;;;;EA4BzD"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ReactiveStore } from
|
|
2
|
-
import { defineModule } from
|
|
3
|
-
import { OCRClient, OCRStatus,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
1
|
+
import { mkVendorLoader, ReactiveStore } from '../common';
|
|
2
|
+
import { defineModule } from '../common/modules/defineModule';
|
|
3
|
+
import { isInputRequiredStatus, OCRClient, OCRStatus, } from '../frankie-client/clients/OCRClient';
|
|
4
|
+
import { mkMountMethod } from '../ocr/actions/mount';
|
|
5
|
+
import { SdkModes } from '../sdk/types';
|
|
6
|
+
import { mkStartMethod } from './actions/start';
|
|
7
|
+
export * from './definition';
|
|
7
8
|
export { OCRStatus as Status };
|
|
8
|
-
export default defineModule(
|
|
9
|
-
const { frankieClient, oneSdkInstance, globalEventHub, localEventHub } = globalState;
|
|
9
|
+
export default defineModule('ocr', (globalState) => {
|
|
10
|
+
const { frankieClient, oneSdkInstance, globalEventHub, localEventHub, } = globalState;
|
|
10
11
|
const client = new OCRClient(frankieClient);
|
|
11
|
-
const { status$, failedStatus$, document$, files$, isPreloaded$, _expectedSide
|
|
12
|
+
const { status$, failedStatus$, document$, files$, isPreloaded$, _expectedSide$, } = createOCRInternalState({
|
|
12
13
|
document: null,
|
|
13
14
|
status: null,
|
|
14
15
|
failedStatus: null,
|
|
@@ -20,7 +21,18 @@ export default defineModule("ocr", (globalState) => {
|
|
|
20
21
|
failedStatus: failedStatus$.toReadonly(),
|
|
21
22
|
isPreloaded: isPreloaded$.toReadonly(),
|
|
22
23
|
};
|
|
23
|
-
const
|
|
24
|
+
const loadVendorWrapper = mkVendorLoader({
|
|
25
|
+
// If initialising in dummy mode, force the use of the dummy-ocr wrapper
|
|
26
|
+
// otherwise load the wrapper based on the provider's name
|
|
27
|
+
vendorName: globalState.mode.modeName === SdkModes.DUMMY ? 'dummy-ocr' : globalState.recipe.ocr.provider.name,
|
|
28
|
+
sharedConfiguration: globalState,
|
|
29
|
+
vendorLoader: {
|
|
30
|
+
'dummy-ocr': () => import(/* webpackChunkName: 'ocr-dummy' */ './vendors/dummy-ocr/index'),
|
|
31
|
+
onfido: () => import(/* webpackChunkName: 'ocr-onfido' */ './vendors/Onfido/index'),
|
|
32
|
+
ocrlabs: null,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const deps = {
|
|
24
36
|
_expectedSide$,
|
|
25
37
|
client,
|
|
26
38
|
document$,
|
|
@@ -31,18 +43,19 @@ export default defineModule("ocr", (globalState) => {
|
|
|
31
43
|
isPreloaded$,
|
|
32
44
|
failedStatus$,
|
|
33
45
|
globalEventHub,
|
|
34
|
-
}
|
|
35
|
-
const
|
|
46
|
+
};
|
|
47
|
+
const start = mkStartMethod(deps);
|
|
48
|
+
const mount = mkMountMethod(Object.assign(Object.assign({}, deps), { loadVendorWrapper }));
|
|
36
49
|
// Event mappings for telemetry
|
|
37
|
-
localEventHub.on(
|
|
38
|
-
eventName:
|
|
50
|
+
localEventHub.on('input_required', ({ documentType, side }, status) => globalEventHub.emit('telemetry', {
|
|
51
|
+
eventName: 'OCR:INPUT_REQUIRED',
|
|
39
52
|
data: {
|
|
40
53
|
documentType,
|
|
41
54
|
side,
|
|
42
55
|
status,
|
|
43
56
|
},
|
|
44
57
|
}));
|
|
45
|
-
localEventHub.on(
|
|
58
|
+
localEventHub.on('results', () => globalEventHub.emit('telemetry', 'OCR:RESULTS'));
|
|
46
59
|
return {
|
|
47
60
|
mount,
|
|
48
61
|
start,
|
|
@@ -54,22 +67,30 @@ export default defineModule("ocr", (globalState) => {
|
|
|
54
67
|
export function createOCRInternalState(initialState) {
|
|
55
68
|
// Set reactive internal state
|
|
56
69
|
const state$ = new ReactiveStore(initialState);
|
|
57
|
-
const status$ = state$.getRootAccessors(
|
|
58
|
-
const failedStatus$ = state$.getRootAccessors(
|
|
59
|
-
const document$ = state$.getRootAccessors(
|
|
60
|
-
const files$ = state$.getRootAccessors(
|
|
61
|
-
const isPreloaded$ = state$.getRootAccessors(
|
|
70
|
+
const status$ = state$.getRootAccessors('status');
|
|
71
|
+
const failedStatus$ = state$.getRootAccessors('failedStatus');
|
|
72
|
+
const document$ = state$.getRootAccessors('document');
|
|
73
|
+
const files$ = state$.getRootAccessors('files');
|
|
74
|
+
const isPreloaded$ = state$.getRootAccessors('isPreloaded');
|
|
62
75
|
const _expectedSide$ = ReactiveStore.mkComputedAccessors(status$, {
|
|
63
76
|
transformer: (status) => {
|
|
64
77
|
if (isInputRequiredStatus(status)) {
|
|
65
|
-
return status === OCRStatus.WAITING_FRONT ?
|
|
78
|
+
return status === OCRStatus.WAITING_FRONT ? 'front' : 'back';
|
|
66
79
|
}
|
|
67
80
|
else {
|
|
68
81
|
return null;
|
|
69
82
|
}
|
|
70
83
|
},
|
|
71
|
-
propertyName:
|
|
84
|
+
propertyName: 'expectedSide',
|
|
72
85
|
});
|
|
73
|
-
return {
|
|
86
|
+
return {
|
|
87
|
+
state$,
|
|
88
|
+
status$,
|
|
89
|
+
failedStatus$,
|
|
90
|
+
document$,
|
|
91
|
+
files$,
|
|
92
|
+
isPreloaded$,
|
|
93
|
+
_expectedSide$,
|
|
94
|
+
};
|
|
74
95
|
}
|
|
75
96
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/ocr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/ocr/index.ts"],"names":[],"mappings":"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"}
|
package/dist/release.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
v0.8.
|
|
2
|
-
v0.8.
|
|
1
|
+
v0.8.4-alpha
|
|
2
|
+
v0.8.4-alpha
|