@ekyc_qoobiss/qbs-ect-cmp 3.6.64 → 3.6.66

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 (28) hide show
  1. package/dist/cjs/{TranslationUtils-fbb2c39c.js → TranslationUtils-eeb71e60.js} +15 -10
  2. package/dist/cjs/agreement-check_17.cjs.entry.js +136 -90
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/qbs-ect-cmp.cjs.js +1 -1
  5. package/dist/cjs/random-actions.cjs.entry.js +1 -1
  6. package/dist/collection/components/common/how-to-info/how-to-info.js +25 -25
  7. package/dist/collection/components/common/id-capture/id-capture.js +0 -6
  8. package/dist/collection/components/flow/process-id/process-id.js +50 -42
  9. package/dist/collection/components/flow/user-liveness/user-liveness.js +47 -38
  10. package/dist/collection/components/identification-component/identification-component.js +25 -0
  11. package/dist/collection/models/FlowStatus.js +15 -11
  12. package/dist/esm/{TranslationUtils-32c06882.js → TranslationUtils-21a568f6.js} +15 -10
  13. package/dist/esm/agreement-check_17.entry.js +136 -90
  14. package/dist/esm/loader.js +1 -1
  15. package/dist/esm/qbs-ect-cmp.js +1 -1
  16. package/dist/esm/random-actions.entry.js +1 -1
  17. package/dist/qbs-ect-cmp/p-2735b5f4.js +1 -0
  18. package/dist/qbs-ect-cmp/{p-fc771dd3.entry.js → p-4fef4884.entry.js} +1 -1
  19. package/dist/qbs-ect-cmp/{p-98a9c331.entry.js → p-87851dcb.entry.js} +2 -2
  20. package/dist/qbs-ect-cmp/qbs-ect-cmp.esm.js +1 -1
  21. package/dist/types/components/common/how-to-info/how-to-info.d.ts +3 -2
  22. package/dist/types/components/flow/process-id/process-id.d.ts +3 -1
  23. package/dist/types/components/flow/user-liveness/user-liveness.d.ts +3 -2
  24. package/dist/types/components.d.ts +0 -1
  25. package/dist/types/models/CaptureFlow.d.ts +0 -1
  26. package/dist/types/models/FlowStatus.d.ts +15 -10
  27. package/package.json +1 -1
  28. package/dist/qbs-ect-cmp/p-601c9197.js +0 -1
@@ -3,7 +3,7 @@ import store from '../../../helpers/store';
3
3
  import { Stream } from '../../../helpers/Stream';
4
4
  import { FlowStatus } from '../../../models/FlowStatus';
5
5
  import { FlowSteps } from '../../../models/FlowSteps';
6
- import { getLogMessage } from '../../../utils/utils';
6
+ import { delay, getLogMessage } from '../../../utils/utils';
7
7
  import { BaseComponent } from '../../base-component';
8
8
  import { CaptureUploadTypes } from '../../../models/CaptureFlow';
9
9
  import { ApiCall } from '../../../helpers/ApiCall';
@@ -25,45 +25,33 @@ export class ProcessId {
25
25
  if (this.mode == 'front') {
26
26
  this.currentStep = FlowSteps.CiFront;
27
27
  this.flow = {
28
- capture: {
29
- fileName: 'idImage.png',
30
- recName: 'idVideo.',
31
- photoType: CaptureUploadTypes.IdFront,
32
- recType: CaptureUploadTypes.IdFrontVideo,
33
- },
34
- howToDone: false,
28
+ fileName: 'idImage.png',
29
+ recName: 'idVideo.',
30
+ photoType: CaptureUploadTypes.IdFront,
31
+ recType: CaptureUploadTypes.IdFrontVideo,
35
32
  };
36
33
  }
37
34
  else if (this.mode == 'back') {
38
35
  this.currentStep = FlowSteps.CiBack;
39
36
  this.flow = {
40
- capture: {
41
- fileName: 'idBackImage.png',
42
- recName: 'idBackVideo.',
43
- photoType: CaptureUploadTypes.IdBack,
44
- recType: CaptureUploadTypes.IdBackVideo,
45
- },
46
- howToDone: false,
37
+ fileName: 'idBackImage.png',
38
+ recName: 'idBackVideo.',
39
+ photoType: CaptureUploadTypes.IdBack,
40
+ recType: CaptureUploadTypes.IdBackVideo,
47
41
  };
48
42
  }
49
43
  else if (this.mode == 'tilt') {
50
44
  this.currentStep = FlowSteps.CiTilt;
51
45
  this.flow = {
52
- capture: {
53
- fileName: 'idTiltImage.png',
54
- recName: 'idTiltVideo.',
55
- photoType: CaptureUploadTypes.None,
56
- recType: CaptureUploadTypes.TiltVideo,
57
- },
58
- howToDone: false,
46
+ fileName: 'idTiltImage.png',
47
+ recName: 'idTiltVideo.',
48
+ photoType: CaptureUploadTypes.None,
49
+ recType: CaptureUploadTypes.TiltVideo,
59
50
  };
60
51
  }
61
52
  if (store.debug)
62
53
  console.log('process-id | initFlow');
63
54
  }
64
- howToDone() {
65
- this.flow.howToDone = true;
66
- }
67
55
  timeElapsed() {
68
56
  this.errorReason = 'Timeout';
69
57
  this.showTimeout = true;
@@ -90,8 +78,8 @@ export class ProcessId {
90
78
  return;
91
79
  }
92
80
  try {
93
- let frontCapture = new File([idPhoto], this.flow.capture.fileName, { type: 'image/png' });
94
- var uploadResult = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.capture.photoType, frontCapture);
81
+ let frontCapture = new File([idPhoto], this.flow.fileName, { type: 'image/png' });
82
+ var uploadResult = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.photoType, frontCapture);
95
83
  if (store.debug)
96
84
  console.log('process-id | captureIdImage | uploadResult: ' + uploadResult);
97
85
  if (uploadResult.isValid) {
@@ -122,8 +110,8 @@ export class ProcessId {
122
110
  return;
123
111
  }
124
112
  let mimeType = idRecording.type == Stream.mp4MimeType.type ? Stream.mp4MimeType : Stream.webmMimeType;
125
- let captureRec = new File([idRecording], this.flow.capture.recName + mimeType.extension, { type: mimeType.type });
126
- var uploadResult = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.capture.recType, captureRec);
113
+ let captureRec = new File([idRecording], this.flow.recName + mimeType.extension, { type: mimeType.type });
114
+ var uploadResult = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.recType, captureRec);
127
115
  if (store.debug)
128
116
  console.log('process-id | capturedIdRecording | uploadResult: ' + uploadResult);
129
117
  if (uploadResult.saved) {
@@ -134,6 +122,32 @@ export class ProcessId {
134
122
  }
135
123
  this.recordingResultCount = 0;
136
124
  }
125
+ async verificationFinished() {
126
+ if (store.debug)
127
+ console.log('process-id | verificationFinished');
128
+ this.verificationReceived = Date.now();
129
+ let initialStatus = store.flowStatus;
130
+ let statusChanged = false;
131
+ while (Date.now() - this.verificationReceived < 25000 && !statusChanged) {
132
+ await delay(2000);
133
+ statusChanged = initialStatus != store.flowStatus;
134
+ }
135
+ if (!statusChanged) {
136
+ let currentStatus = await ApiCall.instance.GetFlowState();
137
+ if (currentStatus != store.flowStatus) {
138
+ store.flowStatus = currentStatus;
139
+ }
140
+ else {
141
+ this.triggerUploadFailedFlow();
142
+ }
143
+ }
144
+ if (store.debug)
145
+ console.log('process-id | verificationFinished | waitingFinished ');
146
+ }
147
+ triggerUploadFailedFlow() {
148
+ this.errorReason = 'Upload Failed';
149
+ this.showInvalid = true;
150
+ }
137
151
  async componentDidLoad() {
138
152
  if (store.debug)
139
153
  console.log('process-id | componentDidLoad');
@@ -162,16 +176,10 @@ export class ProcessId {
162
176
  render() {
163
177
  let error = h("capture-error", { type: "ID", reason: this.errorReason });
164
178
  let capture = h("id-capture", null);
165
- let howTo = h("how-to-info", null);
166
179
  if (this.showInvalid || this.showTimeout) {
167
180
  return error;
168
181
  }
169
- if (store.flowStatus != FlowStatus.IDTILT && this.flow.howToDone) {
170
- return howTo;
171
- }
172
- else {
173
- return capture;
174
- }
182
+ return capture;
175
183
  }
176
184
  static get is() { return "process-id"; }
177
185
  static get originalStyleUrls() {
@@ -232,12 +240,6 @@ export class ProcessId {
232
240
  }
233
241
  static get listeners() {
234
242
  return [{
235
- "name": "howToInfoDone",
236
- "method": "howToDone",
237
- "target": undefined,
238
- "capture": false,
239
- "passive": false
240
- }, {
241
243
  "name": "timeElapsed",
242
244
  "method": "timeElapsed",
243
245
  "target": undefined,
@@ -261,6 +263,12 @@ export class ProcessId {
261
263
  "target": undefined,
262
264
  "capture": false,
263
265
  "passive": false
266
+ }, {
267
+ "name": "verificationFinished",
268
+ "method": "verificationFinished",
269
+ "target": undefined,
270
+ "capture": false,
271
+ "passive": false
264
272
  }];
265
273
  }
266
274
  }
@@ -3,7 +3,7 @@ import store from '../../../helpers/store';
3
3
  import { Stream } from '../../../helpers/Stream';
4
4
  import { FlowStatus } from '../../../models/FlowStatus';
5
5
  import { FlowSteps } from '../../../models/FlowSteps';
6
- import { getLogMessage } from '../../../utils/utils';
6
+ import { delay, getLogMessage } from '../../../utils/utils';
7
7
  import { BaseComponent } from '../../base-component';
8
8
  import { CaptureUploadTypes } from '../../../models/CaptureFlow';
9
9
  import { ApiCall } from '../../../helpers/ApiCall';
@@ -15,38 +15,28 @@ export class UserLiveness {
15
15
  this.showError = undefined;
16
16
  this.showTimeout = undefined;
17
17
  this.flow = undefined;
18
- this.howToDone = false;
19
18
  }
20
19
  async componentDidLoad() { }
21
20
  componentWillLoad() {
22
21
  if (this.mode == 'selfie') {
23
22
  this.currentStep = FlowSteps.Selfie;
24
23
  this.flow = {
25
- capture: {
26
- fileName: 'selfie.png',
27
- recName: 'selfieVideo.',
28
- photoType: CaptureUploadTypes.Selfie,
29
- recType: CaptureUploadTypes.SelfieVideo,
30
- },
31
- howToDone: false,
24
+ fileName: 'selfie.png',
25
+ recName: 'selfieVideo.',
26
+ photoType: CaptureUploadTypes.Selfie,
27
+ recType: CaptureUploadTypes.SelfieVideo,
32
28
  };
33
29
  }
34
30
  else if (this.mode == 'selfieGesture') {
35
31
  this.currentStep = FlowSteps.SelfieTilt;
36
32
  this.flow = {
37
- capture: {
38
- fileName: '',
39
- recName: 'selfieTiltVideo.',
40
- photoType: CaptureUploadTypes.None,
41
- recType: CaptureUploadTypes.SelfieGestureVideo,
42
- },
43
- howToDone: false,
33
+ fileName: '',
34
+ recName: 'selfieTiltVideo.',
35
+ photoType: CaptureUploadTypes.None,
36
+ recType: CaptureUploadTypes.SelfieGestureVideo,
44
37
  };
45
38
  }
46
39
  }
47
- howToDoneEvent() {
48
- this.howToDone = true;
49
- }
50
40
  timeElapsed() {
51
41
  this.errorReason = 'Timeout';
52
42
  this.showTimeout = true;
@@ -69,8 +59,8 @@ export class UserLiveness {
69
59
  return;
70
60
  }
71
61
  try {
72
- var uploadPhoto = new File([selfiePhoto], this.flow.capture.fileName, { type: 'image/png' });
73
- let photoUploaded = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.capture.photoType, uploadPhoto);
62
+ var uploadPhoto = new File([selfiePhoto], this.flow.fileName, { type: 'image/png' });
63
+ let photoUploaded = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.photoType, uploadPhoto);
74
64
  if (photoUploaded.isValid) {
75
65
  store.flowStatus = FlowStatus[photoUploaded.state];
76
66
  }
@@ -96,8 +86,8 @@ export class UserLiveness {
96
86
  }
97
87
  let mimeType = selfieRecording.type == Stream.mp4MimeType.type ? Stream.mp4MimeType : Stream.webmMimeType;
98
88
  try {
99
- let uploadRec = new File([selfieRecording], this.flow.capture.recName + mimeType.extension, { type: mimeType.type });
100
- let uplodDone = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.capture.recType, uploadRec);
89
+ let uploadRec = new File([selfieRecording], this.flow.recName + mimeType.extension, { type: mimeType.type });
90
+ let uplodDone = await ApiCall.instance.UploadFileForRequestB64(store.requestId, this.flow.recType, uploadRec);
101
91
  if (uplodDone.saved) {
102
92
  store.flowStatus = FlowStatus[uplodDone.state];
103
93
  }
@@ -115,6 +105,32 @@ export class UserLiveness {
115
105
  }
116
106
  }
117
107
  }
108
+ async verificationFinished() {
109
+ if (store.debug)
110
+ console.log('user-liveness | verificationFinished');
111
+ this.verificationReceived = Date.now();
112
+ let initialStatus = store.flowStatus;
113
+ let statusChanged = false;
114
+ while (Date.now() - this.verificationReceived < 25000 && !statusChanged) {
115
+ await delay(2000);
116
+ statusChanged = initialStatus != store.flowStatus;
117
+ }
118
+ if (!statusChanged) {
119
+ let currentStatus = await ApiCall.instance.GetFlowState();
120
+ if (currentStatus != store.flowStatus) {
121
+ store.flowStatus = currentStatus;
122
+ }
123
+ else {
124
+ this.triggerUploadFailedFlow();
125
+ }
126
+ }
127
+ if (store.debug)
128
+ console.log('user-liveness | verificationFinished | waitingFinished ');
129
+ }
130
+ triggerUploadFailedFlow() {
131
+ this.errorReason = 'Upload Failed';
132
+ this.showError = true;
133
+ }
118
134
  async disconnectedCallback() {
119
135
  await BaseComponent.finalize(this.currentStep);
120
136
  }
@@ -123,18 +139,12 @@ export class UserLiveness {
123
139
  this.showError = true;
124
140
  }
125
141
  render() {
126
- let howTo = h("how-to-info", null);
127
142
  let capture = h("selfie-capture", null);
128
143
  let error = h("capture-error", { type: "LIVENESS", reason: this.errorReason });
129
144
  if (this.showError || this.showTimeout) {
130
145
  return error;
131
146
  }
132
- if (this.howToDone) {
133
- return capture;
134
- }
135
- else {
136
- return howTo;
137
- }
147
+ return capture;
138
148
  }
139
149
  static get is() { return "user-liveness"; }
140
150
  static get originalStyleUrls() {
@@ -172,8 +182,7 @@ export class UserLiveness {
172
182
  return {
173
183
  "showError": {},
174
184
  "showTimeout": {},
175
- "flow": {},
176
- "howToDone": {}
185
+ "flow": {}
177
186
  };
178
187
  }
179
188
  static get events() {
@@ -196,12 +205,6 @@ export class UserLiveness {
196
205
  }
197
206
  static get listeners() {
198
207
  return [{
199
- "name": "howToInfoDone",
200
- "method": "howToDoneEvent",
201
- "target": undefined,
202
- "capture": false,
203
- "passive": false
204
- }, {
205
208
  "name": "timeElapsed",
206
209
  "method": "timeElapsed",
207
210
  "target": undefined,
@@ -225,6 +228,12 @@ export class UserLiveness {
225
228
  "target": undefined,
226
229
  "capture": false,
227
230
  "passive": false
231
+ }, {
232
+ "name": "verificationFinished",
233
+ "method": "verificationFinished",
234
+ "target": undefined,
235
+ "capture": false,
236
+ "passive": false
228
237
  }];
229
238
  }
230
239
  }
@@ -189,26 +189,51 @@ export class IdentificationComponent {
189
189
  else if (store.flowStatus == FlowStatus.CODEERROR) {
190
190
  currentBlock = h("sms-code-validation", null);
191
191
  }
192
+ else if (store.flowStatus == FlowStatus.IDFRONTHOWTO) {
193
+ if (store.debug)
194
+ console.log('identification-component | render | IDFRONTHOWTO');
195
+ currentBlock = h("how-to-info", null);
196
+ }
192
197
  else if (store.flowStatus == FlowStatus.IDFRONT) {
193
198
  if (store.debug)
194
199
  console.log('identification-component | render | IDFRONT');
195
200
  currentBlock = h("process-id", { id: "processIdFront", mode: "front" });
196
201
  }
202
+ else if (store.flowStatus == FlowStatus.IDBACKHOWTO) {
203
+ if (store.debug)
204
+ console.log('identification-component | render | IDBACKHOWTO');
205
+ currentBlock = h("how-to-info", null);
206
+ }
197
207
  else if (store.flowStatus == FlowStatus.IDBACK) {
198
208
  if (store.debug)
199
209
  console.log('identification-component | render | IDBACK');
200
210
  currentBlock = h("process-id", { id: "processIdBack", mode: "back" });
201
211
  }
212
+ else if (store.flowStatus == FlowStatus.IDTILTHOWTO) {
213
+ if (store.debug)
214
+ console.log('identification-component | render | IDTILTHOWTO');
215
+ currentBlock = h("how-to-info", null);
216
+ }
202
217
  else if (store.flowStatus == FlowStatus.IDTILT) {
203
218
  if (store.debug)
204
219
  console.log('identification-component | render | TILT');
205
220
  currentBlock = h("process-id", { id: "processIdTilt", mode: "tilt" });
206
221
  }
222
+ else if (store.flowStatus == FlowStatus.LIVENESSHOWTO) {
223
+ if (store.debug)
224
+ console.log('identification-component | render | LIVENESSHOWTO');
225
+ currentBlock = h("how-to-info", null);
226
+ }
207
227
  else if (store.flowStatus == FlowStatus.LIVENESS) {
208
228
  if (store.debug)
209
229
  console.log('identification-component | render | LIVENESS');
210
230
  currentBlock = h("user-liveness", { id: "userLiveness", mode: "selfie" });
211
231
  }
232
+ else if (store.flowStatus == FlowStatus.LIVENESSGESTUREHOWTO) {
233
+ if (store.debug)
234
+ console.log('identification-component | render | LIVENESSGESTUREHOWTO');
235
+ currentBlock = h("how-to-info", null);
236
+ }
212
237
  else if (store.flowStatus == FlowStatus.LIVENESSGESTURE) {
213
238
  if (store.debug)
214
239
  console.log('identification-component | render | LIVENESSGESTURE');
@@ -6,15 +6,19 @@ export var FlowStatus;
6
6
  FlowStatus[FlowStatus["PHONE"] = 3] = "PHONE";
7
7
  FlowStatus[FlowStatus["CODE"] = 4] = "CODE";
8
8
  FlowStatus[FlowStatus["CODEERROR"] = 5] = "CODEERROR";
9
- FlowStatus[FlowStatus["IDFRONT"] = 6] = "IDFRONT";
10
- FlowStatus[FlowStatus["IDBACK"] = 7] = "IDBACK";
11
- FlowStatus[FlowStatus["IDTILT"] = 8] = "IDTILT";
12
- FlowStatus[FlowStatus["LIVENESS"] = 9] = "LIVENESS";
13
- FlowStatus[FlowStatus["LIVENESSGESTURE"] = 10] = "LIVENESSGESTURE";
14
- FlowStatus[FlowStatus["COMPLETE"] = 11] = "COMPLETE";
15
- FlowStatus[FlowStatus["ERROREND"] = 12] = "ERROREND";
16
- FlowStatus[FlowStatus["CAMERAERROR"] = 13] = "CAMERAERROR";
17
- FlowStatus[FlowStatus["ABORTED"] = 14] = "ABORTED";
18
- FlowStatus[FlowStatus["NONE"] = 15] = "NONE";
9
+ FlowStatus[FlowStatus["IDFRONTHOWTO"] = 6] = "IDFRONTHOWTO";
10
+ FlowStatus[FlowStatus["IDFRONT"] = 7] = "IDFRONT";
11
+ FlowStatus[FlowStatus["IDBACKHOWTO"] = 8] = "IDBACKHOWTO";
12
+ FlowStatus[FlowStatus["IDBACK"] = 9] = "IDBACK";
13
+ FlowStatus[FlowStatus["IDTILTHOWTO"] = 10] = "IDTILTHOWTO";
14
+ FlowStatus[FlowStatus["IDTILT"] = 11] = "IDTILT";
15
+ FlowStatus[FlowStatus["LIVENESSHOWTO"] = 12] = "LIVENESSHOWTO";
16
+ FlowStatus[FlowStatus["LIVENESS"] = 13] = "LIVENESS";
17
+ FlowStatus[FlowStatus["LIVENESSGESTUREHOWTO"] = 14] = "LIVENESSGESTUREHOWTO";
18
+ FlowStatus[FlowStatus["LIVENESSGESTURE"] = 15] = "LIVENESSGESTURE";
19
+ FlowStatus[FlowStatus["COMPLETE"] = 16] = "COMPLETE";
20
+ FlowStatus[FlowStatus["ERROREND"] = 17] = "ERROREND";
21
+ FlowStatus[FlowStatus["CAMERAERROR"] = 18] = "CAMERAERROR";
22
+ FlowStatus[FlowStatus["ABORTED"] = 19] = "ABORTED";
23
+ FlowStatus[FlowStatus["NONE"] = 20] = "NONE";
19
24
  })(FlowStatus || (FlowStatus = {}));
20
- ;
@@ -208,16 +208,21 @@ var FlowStatus;
208
208
  FlowStatus[FlowStatus["PHONE"] = 3] = "PHONE";
209
209
  FlowStatus[FlowStatus["CODE"] = 4] = "CODE";
210
210
  FlowStatus[FlowStatus["CODEERROR"] = 5] = "CODEERROR";
211
- FlowStatus[FlowStatus["IDFRONT"] = 6] = "IDFRONT";
212
- FlowStatus[FlowStatus["IDBACK"] = 7] = "IDBACK";
213
- FlowStatus[FlowStatus["IDTILT"] = 8] = "IDTILT";
214
- FlowStatus[FlowStatus["LIVENESS"] = 9] = "LIVENESS";
215
- FlowStatus[FlowStatus["LIVENESSGESTURE"] = 10] = "LIVENESSGESTURE";
216
- FlowStatus[FlowStatus["COMPLETE"] = 11] = "COMPLETE";
217
- FlowStatus[FlowStatus["ERROREND"] = 12] = "ERROREND";
218
- FlowStatus[FlowStatus["CAMERAERROR"] = 13] = "CAMERAERROR";
219
- FlowStatus[FlowStatus["ABORTED"] = 14] = "ABORTED";
220
- FlowStatus[FlowStatus["NONE"] = 15] = "NONE";
211
+ FlowStatus[FlowStatus["IDFRONTHOWTO"] = 6] = "IDFRONTHOWTO";
212
+ FlowStatus[FlowStatus["IDFRONT"] = 7] = "IDFRONT";
213
+ FlowStatus[FlowStatus["IDBACKHOWTO"] = 8] = "IDBACKHOWTO";
214
+ FlowStatus[FlowStatus["IDBACK"] = 9] = "IDBACK";
215
+ FlowStatus[FlowStatus["IDTILTHOWTO"] = 10] = "IDTILTHOWTO";
216
+ FlowStatus[FlowStatus["IDTILT"] = 11] = "IDTILT";
217
+ FlowStatus[FlowStatus["LIVENESSHOWTO"] = 12] = "LIVENESSHOWTO";
218
+ FlowStatus[FlowStatus["LIVENESS"] = 13] = "LIVENESS";
219
+ FlowStatus[FlowStatus["LIVENESSGESTUREHOWTO"] = 14] = "LIVENESSGESTUREHOWTO";
220
+ FlowStatus[FlowStatus["LIVENESSGESTURE"] = 15] = "LIVENESSGESTURE";
221
+ FlowStatus[FlowStatus["COMPLETE"] = 16] = "COMPLETE";
222
+ FlowStatus[FlowStatus["ERROREND"] = 17] = "ERROREND";
223
+ FlowStatus[FlowStatus["CAMERAERROR"] = 18] = "CAMERAERROR";
224
+ FlowStatus[FlowStatus["ABORTED"] = 19] = "ABORTED";
225
+ FlowStatus[FlowStatus["NONE"] = 20] = "NONE";
221
226
  })(FlowStatus || (FlowStatus = {}));
222
227
 
223
228
  class IdCaptureValues {