@authme/id-recognition 2.4.7 → 2.7.0

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/index.cjs CHANGED
@@ -6,7 +6,6 @@ require('core-js/modules/es.object.assign.js');
6
6
  var engine = require('@authme/engine');
7
7
  require('core-js/modules/es.array.iterator.js');
8
8
  require('core-js/modules/es.object.from-entries.js');
9
- require('core-js/modules/es.regexp.to-string.js');
10
9
  require('core-js/modules/web.dom-collections.iterator.js');
11
10
  var core = require('@authme/core');
12
11
  var util = require('@authme/util');
@@ -17,6 +16,7 @@ exports.ResourceImageType = void 0;
17
16
  ResourceImageType["Recognition"] = "Recognition";
18
17
  ResourceImageType["Fraud"] = "Fraud";
19
18
  ResourceImageType["Manual"] = "Manual";
19
+ ResourceImageType["Attach"] = "AttachImage";
20
20
  })(exports.ResourceImageType || (exports.ResourceImageType = {}));
21
21
  exports.CountryCode = void 0;
22
22
  (function (CountryCode) {
@@ -28,6 +28,24 @@ exports.CountryCode = void 0;
28
28
  CountryCode["PHL"] = "PHL";
29
29
  CountryCode["GBR"] = "GBR";
30
30
  CountryCode["KOR"] = "KOR";
31
+ CountryCode["HKG"] = "HKG";
32
+ CountryCode["FRA"] = "FRA";
33
+ CountryCode["ESP"] = "ESP";
34
+ CountryCode["MEX"] = "MEX";
35
+ CountryCode["ITA"] = "ITA";
36
+ CountryCode["IND"] = "IND";
37
+ CountryCode["COL"] = "COL";
38
+ CountryCode["RUS"] = "RUS";
39
+ CountryCode["DEU"] = "DEU";
40
+ CountryCode["TUR"] = "TUR";
41
+ CountryCode["CAN"] = "CAN";
42
+ CountryCode["AUS"] = "AUS";
43
+ CountryCode["IDN"] = "IDN";
44
+ CountryCode["MYS"] = "MYS";
45
+ CountryCode["EGY"] = "EGY";
46
+ CountryCode["SAU"] = "SAU";
47
+ CountryCode["NLD"] = "NLD";
48
+ CountryCode["SGP"] = "SGP";
31
49
  })(exports.CountryCode || (exports.CountryCode = {}));
32
50
  exports.IdRecognitionCardType = void 0;
33
51
  (function (IdRecognitionCardType) {
@@ -37,6 +55,14 @@ exports.IdRecognitionCardType = void 0;
37
55
  IdRecognitionCardType["ResidentCard"] = "ResidentCard";
38
56
  IdRecognitionCardType["Passport"] = "Passport";
39
57
  })(exports.IdRecognitionCardType || (exports.IdRecognitionCardType = {}));
58
+ exports.IdRecognitionCardName = void 0;
59
+ (function (IdRecognitionCardName) {
60
+ IdRecognitionCardName["IDCard"] = "sdk.home.selectDocument.idCard";
61
+ IdRecognitionCardName["DriverLicense"] = "sdk.home.selectDocument.driverLicense";
62
+ IdRecognitionCardName["HealthCard"] = "sdk.home.selectDocument.healthCard";
63
+ IdRecognitionCardName["ResidentCard"] = "sdk.home.selectDocument.residentCard";
64
+ IdRecognitionCardName["Passport"] = "sdk.home.selectDocument.passport";
65
+ })(exports.IdRecognitionCardName || (exports.IdRecognitionCardName = {}));
40
66
  exports.ServerSideEAuthMeCardClass = void 0;
41
67
  (function (ServerSideEAuthMeCardClass) {
42
68
  ServerSideEAuthMeCardClass["Invalid"] = "Invalid";
@@ -137,6 +163,41 @@ const IdTypeConfig = {
137
163
  }
138
164
  };
139
165
 
166
+ const thicknessDefaultConfig = {
167
+ mode: 'manual',
168
+ thicknessWelcomeSetting: {
169
+ welcome: true,
170
+ title: {
171
+ enable: true,
172
+ // text: translateService.translate(
173
+ // 'verify.ocr.welcome.title'
174
+ // ),
175
+ // text: '即將進行厚度檢測',
176
+ text: 'sdk.thickness.detection.guide.subtitle'
177
+ },
178
+ subtitle: {
179
+ enable: true,
180
+ // text: translateService.translate(
181
+ // 'verify.ocr.welcome.subtitle'
182
+ // ),
183
+ // text: '請將卡面傾斜45度角放入畫面框線進行拍攝',
184
+ text: 'sdk.thickness.detection.guide.subtitle.content'
185
+ },
186
+ imageShow: {
187
+ enable: true,
188
+ src: 'data:image/png;base64,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'
189
+ },
190
+ content: {
191
+ enable: true,
192
+ // text: translateService.translate(
193
+ // 'verify.ocr.welcome.content'
194
+ // ),
195
+ // text: '請在光線充足的環境進行拍攝\n請確保卡面資訊上沒有任何遮蔽物\n避免在白色背景進行拍攝,以確保卡片輪廓清晰',
196
+ text: 'sdk.thickness.detection.guide.content'
197
+ }
198
+ }
199
+ };
200
+
140
201
  const CardTypeMapping = {
141
202
  [exports.IdRecognitionCardType.IDCard]: [engine.EAuthMeCardClass.TWN_IDCard_Front, engine.EAuthMeCardClass.TWN_IDCard_Back],
142
203
  [exports.IdRecognitionCardType.HealthCard]: [engine.EAuthMeCardClass.TWN_HealthCard_Front],
@@ -144,36 +205,57 @@ const CardTypeMapping = {
144
205
  [exports.IdRecognitionCardType.ResidentCard]: [engine.EAuthMeCardClass.TWN_ResidentCard_Front, engine.EAuthMeCardClass.TWN_ResidentCard_Back],
145
206
  [exports.IdRecognitionCardType.DriverLicense]: [engine.EAuthMeCardClass.TWN_DriverLicense_Front, engine.EAuthMeCardClass.TWN_DriverLicense_Back]
146
207
  };
208
+ const CardTypeMap = {
209
+ [exports.IdRecognitionCardType.IDCard]: [exports.ServerSideEAuthMeCardClass.TWN_IDCard_Front, exports.ServerSideEAuthMeCardClass.TWN_IDCard_Back],
210
+ [exports.IdRecognitionCardType.HealthCard]: [exports.ServerSideEAuthMeCardClass.TWN_HealthCard_Front],
211
+ [exports.IdRecognitionCardType.Passport]: ['ALL_PASSPORT_CONTENT'],
212
+ [exports.IdRecognitionCardType.ResidentCard]: [exports.ServerSideEAuthMeCardClass.TWN_ResidentCard_Front, exports.ServerSideEAuthMeCardClass.TWN_ResidentCard_Back],
213
+ [exports.IdRecognitionCardType.DriverLicense]: [exports.ServerSideEAuthMeCardClass.TWN_DriverLicense_Front, exports.ServerSideEAuthMeCardClass.TWN_DriverLicense_Back]
214
+ };
147
215
  const RECOGNITION_COLUMNS_ORDER = Object.fromEntries(['surname', 'givenName', 'name', 'gender', 'dateOfBirth', 'idNumber', 'dateOfIssue', 'issueCity', 'issueReason', 'father', 'mother', 'spouse', 'militaryService', 'placeOfBirth', 'serialNumber', 'expiry', 'controlNo', 'type', 'condition', 'address', 'country', 'documentNumber', 'documentType', 'nationality', 'expiryDate'].map((value, index) => [value, index]));
148
216
  function getCardSubTypes(type, country) {
149
217
  return CardTypeMapping[type];
150
218
  }
219
+ function getCardTypes(type, country) {
220
+ return CardTypeMap[type];
221
+ }
151
222
  function cardTypeTitle(cardType) {
223
+ var _a, _b;
152
224
  if (cardType == null) {
153
225
  return '';
154
226
  }
155
227
  const cardTypeLower = cardType.toLowerCase();
156
- let titleKey = null;
157
- if (cardTypeLower.indexOf('idcard') != -1) {
158
- if (cardTypeLower.indexOf('front')) {
159
- titleKey = 'verify.idCardFrontSide';
160
- } else {
161
- titleKey = 'verify.idCardBackSide';
162
- }
163
- } else if (cardTypeLower.indexOf('driverlicense') != -1) {
164
- if (cardTypeLower.indexOf('front')) {
165
- titleKey = 'verify.licenseFrontSide';
166
- } else {
167
- titleKey = 'verify.licenseBackSide';
168
- }
169
- } else if (cardTypeLower.indexOf('resident') != -1) {
170
- if (cardTypeLower.indexOf('front')) {
171
- titleKey = 'verify.residentCardFrontSide';
172
- } else {
173
- titleKey = 'verify.residentCardBackSide';
228
+ const cardTypeMap = {
229
+ idcard: {
230
+ front: 'sdk.ocr.verify.idCardFrontSide',
231
+ back: 'sdk.ocr.verify.idCardBackSide',
232
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
233
+ default: 'sdk.ocr.verify.idCardFrontSide'
234
+ },
235
+ driverlicense: {
236
+ front: 'sdk.ocr.verify.driverFrontSide',
237
+ back: 'sdk.ocr.verify.driverBackSide',
238
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
239
+ default: 'sdk.ocr.verify.driverFrontSide'
240
+ },
241
+ resident: {
242
+ front: 'sdk.ocr.verify.residentCardFrontSide',
243
+ back: 'sdk.ocr.verify.residentCardBackSide',
244
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
245
+ default: 'sdk.ocr.verify.residentCardFrontSide'
246
+ },
247
+ residentcard: {
248
+ front: 'sdk.ocr.verify.residentCardFrontSide',
249
+ back: 'sdk.ocr.verify.residentCardBackSide',
250
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
251
+ default: 'sdk.ocr.verify.residentCardFrontSide'
174
252
  }
175
- }
176
- return titleKey;
253
+ };
254
+ const typeSections = cardTypeLower.split('_');
255
+ const cardTypeName = typeSections[1];
256
+ const cardTypeSection = typeSections[2];
257
+ const titleKey = ((_a = cardTypeMap[cardTypeName]) === null || _a === void 0 ? void 0 : _a[cardTypeSection]) || ((_b = cardTypeMap[cardTypeName]) === null || _b === void 0 ? void 0 : _b.default);
258
+ return titleKey || '';
177
259
  }
178
260
  function cardTypeConfirmTitle(cardType) {
179
261
  if (cardType == null) {
@@ -182,32 +264,52 @@ function cardTypeConfirmTitle(cardType) {
182
264
  const cardTypeLower = cardType.toLowerCase();
183
265
  let titleKey = null;
184
266
  if (cardTypeLower.indexOf('idcard') != -1) {
185
- if (cardTypeLower.indexOf('front')) {
186
- titleKey = 'verify.confirmIdCardFront';
267
+ if (cardTypeLower.indexOf('front') !== -1) {
268
+ titleKey = 'sdk.ocr.verify.confirmIdCardFront';
269
+ } else if (cardTypeLower.indexOf('back') !== -1) {
270
+ titleKey = 'sdk.ocr.verify.confirmIdCardBack';
187
271
  } else {
188
- titleKey = 'verify.confirmIdCardBack';
272
+ titleKey = 'sdk.ocr.verify.confirmIdCardFront';
189
273
  }
190
- } else if (cardTypeLower.indexOf('driverlicense') != -1) {
191
- if (cardTypeLower.indexOf('front')) {
192
- titleKey = 'verify.confirmLicenseFront';
274
+ return titleKey;
275
+ }
276
+ if (cardTypeLower.indexOf('driverlicense') != -1) {
277
+ if (cardTypeLower.indexOf('front') !== -1) {
278
+ titleKey = 'sdk.ocr.verify.confirmDriverFront';
279
+ } else if (cardTypeLower.indexOf('back') !== -1) {
280
+ titleKey = 'sdk.ocr.verify.confirmDriverBack';
193
281
  } else {
194
- titleKey = 'verify.confirmLicenseBack';
282
+ titleKey = 'sdk.ocr.verify.confirmDriverFront';
195
283
  }
196
- } else if (cardTypeLower.indexOf('resident') != -1) {
197
- if (cardTypeLower.indexOf('front')) {
198
- titleKey = 'verify.confirmResidentCardFrontSide';
284
+ return titleKey;
285
+ }
286
+ if (cardTypeLower.indexOf('resident') != -1) {
287
+ if (cardTypeLower.indexOf('front') !== -1) {
288
+ titleKey = 'sdk.ocr.verify.confirmResidentCardFront';
289
+ } else if (cardTypeLower.indexOf('back') !== -1) {
290
+ titleKey = 'sdk.ocr.verify.confirmResidentCardBack';
199
291
  } else {
200
- titleKey = 'verify.confirmResidentCardBackSide';
292
+ titleKey = 'sdk.ocr.verify.confirmResidentCardFront';
201
293
  }
294
+ return titleKey;
202
295
  }
203
296
  return titleKey;
204
297
  }
205
298
  function mapCardtypeToAuthmeClass(type) {
206
- const known_type = Object.keys(engine.EAuthMeCardClass).filter(key => engine.EAuthMeCardClass[key].toString().toLowerCase() == ('EAuthMeCardClass_' + type).toLowerCase())[0];
207
- if (known_type == null) {
299
+ // const known_type = Object.keys(EAuthMeCardClass).filter(
300
+ // (key) =>
301
+ // (EAuthMeCardClass as any)[key].toString().toLowerCase() ==
302
+ // ('EAuthMeCardClass_' + type).toLowerCase()
303
+ // )[0];
304
+ // if (known_type == null) {
305
+ // return EAuthMeCardClass.Unknown;
306
+ // }
307
+ // return (EAuthMeCardClass as any)[known_type];
308
+ if (type in engine.EAuthMeCardClass) {
309
+ return engine.EAuthMeCardClass[type];
310
+ } else {
208
311
  return engine.EAuthMeCardClass.Unknown;
209
312
  }
210
- return engine.EAuthMeCardClass[known_type];
211
313
  }
212
314
  function getRecognitionColumnOrder(column) {
213
315
  var _a;
@@ -227,8 +329,8 @@ const twoWayAuthmeCardClassMap = (() => {
227
329
  })();
228
330
 
229
331
  var name = "authme/sdk";
230
- var version$1 = "2.4.7";
231
- var date = "2023-12-14T08:29:41+0000";
332
+ var version$1 = "2.7.0";
333
+ var date = "2024-05-30T14:54:23+0000";
232
334
  var packageInfo = {
233
335
  name: name,
234
336
  version: version$1,
@@ -236,12 +338,15 @@ var packageInfo = {
236
338
  };
237
339
 
238
340
  function init(type, country, needConfirm, cardTypes, encrypt = true) {
239
- let useCardTypes = getCardSubTypes(type).map(c => twoWayAuthmeCardClassMap.toServer(c));
341
+ // let useCardTypes: any = getCardSubTypes(type, country).map((c) =>
342
+ // twoWayAuthmeCardClassMap.toServer(c)
343
+ // );
344
+ let useCardTypes = getCardTypes(type);
240
345
  if (cardTypes.length) {
241
346
  useCardTypes = cardTypes;
242
347
  }
243
348
  const body = {
244
- scanType: type === exports.IdRecognitionCardType.Passport ? type : `${country}_${type}`,
349
+ scanType: type === exports.IdRecognitionCardType.Passport ? `ALL_Passport` : `${country}_${type}`,
245
350
  cardTypes: useCardTypes,
246
351
  needConfirm,
247
352
  encrypt,
@@ -264,6 +369,15 @@ function initScanDocument(scanId, cardType) {
264
369
  body: JSON.stringify(body)
265
370
  });
266
371
  }
372
+ function initScanDocumentResourceBase64(scanId, ResourceId) {
373
+ const body = {
374
+ scanId,
375
+ ResourceId
376
+ };
377
+ return core.sendRequest('/api/identity-verification/id-recognition/v3/init-scan-doc/resource/base64', 'POST', {
378
+ body: JSON.stringify(body)
379
+ });
380
+ }
267
381
  function recognition(documentId, file) {
268
382
  const formData = new FormData();
269
383
  formData.append('scanDocumentId', documentId);
@@ -413,14 +527,17 @@ exports.cardTypeTitle = cardTypeTitle;
413
527
  exports.confirmScan = confirmScan;
414
528
  exports.finishScanDocument = finishScanDocument;
415
529
  exports.getCardSubTypes = getCardSubTypes;
530
+ exports.getCardTypes = getCardTypes;
416
531
  exports.getRecognitionColumnOrder = getRecognitionColumnOrder;
417
532
  exports.init = init;
418
533
  exports.initScanDocument = initScanDocument;
534
+ exports.initScanDocumentResourceBase64 = initScanDocumentResourceBase64;
419
535
  exports.mapCardtypeToAuthmeClass = mapCardtypeToAuthmeClass;
420
536
  exports.recognition = recognition;
421
537
  exports.recognitionEncrypt = recognitionEncrypt;
422
538
  exports.saveExtraDoc = saveExtraDoc;
423
539
  exports.saveResourceImage = saveResourceImage;
540
+ exports.thicknessDefaultConfig = thicknessDefaultConfig;
424
541
  exports.twoWayAuthmeCardClassMap = twoWayAuthmeCardClassMap;
425
542
  exports.uploadFrameBase64 = uploadFrameBase64;
426
543
  exports.version = version;
package/index.js CHANGED
@@ -3,7 +3,6 @@ import { AuthmeEngineModuleBase, EAuthMeCardClass, EngineModule } from '@authme/
3
3
  export { EAuthMeCardClass, EAuthMeCardMatchStatus, EAuthMeCardOCRStatus, EAuthMeIDCardAntiFraudStage, EAuthMeIDCardAntiFraudStatus, EAuthMeMRZRecogStatus, EAuthMeMRZServiceStatus } from '@authme/engine';
4
4
  import 'core-js/modules/es.array.iterator.js';
5
5
  import 'core-js/modules/es.object.from-entries.js';
6
- import 'core-js/modules/es.regexp.to-string.js';
7
6
  import 'core-js/modules/web.dom-collections.iterator.js';
8
7
  import { sendRequest, AuthmeError } from '@authme/core';
9
8
  import { osVersion } from '@authme/util';
@@ -14,6 +13,7 @@ var ResourceImageType;
14
13
  ResourceImageType["Recognition"] = "Recognition";
15
14
  ResourceImageType["Fraud"] = "Fraud";
16
15
  ResourceImageType["Manual"] = "Manual";
16
+ ResourceImageType["Attach"] = "AttachImage";
17
17
  })(ResourceImageType || (ResourceImageType = {}));
18
18
  var CountryCode;
19
19
  (function (CountryCode) {
@@ -25,6 +25,24 @@ var CountryCode;
25
25
  CountryCode["PHL"] = "PHL";
26
26
  CountryCode["GBR"] = "GBR";
27
27
  CountryCode["KOR"] = "KOR";
28
+ CountryCode["HKG"] = "HKG";
29
+ CountryCode["FRA"] = "FRA";
30
+ CountryCode["ESP"] = "ESP";
31
+ CountryCode["MEX"] = "MEX";
32
+ CountryCode["ITA"] = "ITA";
33
+ CountryCode["IND"] = "IND";
34
+ CountryCode["COL"] = "COL";
35
+ CountryCode["RUS"] = "RUS";
36
+ CountryCode["DEU"] = "DEU";
37
+ CountryCode["TUR"] = "TUR";
38
+ CountryCode["CAN"] = "CAN";
39
+ CountryCode["AUS"] = "AUS";
40
+ CountryCode["IDN"] = "IDN";
41
+ CountryCode["MYS"] = "MYS";
42
+ CountryCode["EGY"] = "EGY";
43
+ CountryCode["SAU"] = "SAU";
44
+ CountryCode["NLD"] = "NLD";
45
+ CountryCode["SGP"] = "SGP";
28
46
  })(CountryCode || (CountryCode = {}));
29
47
  var IdRecognitionCardType;
30
48
  (function (IdRecognitionCardType) {
@@ -34,6 +52,14 @@ var IdRecognitionCardType;
34
52
  IdRecognitionCardType["ResidentCard"] = "ResidentCard";
35
53
  IdRecognitionCardType["Passport"] = "Passport";
36
54
  })(IdRecognitionCardType || (IdRecognitionCardType = {}));
55
+ var IdRecognitionCardName;
56
+ (function (IdRecognitionCardName) {
57
+ IdRecognitionCardName["IDCard"] = "sdk.home.selectDocument.idCard";
58
+ IdRecognitionCardName["DriverLicense"] = "sdk.home.selectDocument.driverLicense";
59
+ IdRecognitionCardName["HealthCard"] = "sdk.home.selectDocument.healthCard";
60
+ IdRecognitionCardName["ResidentCard"] = "sdk.home.selectDocument.residentCard";
61
+ IdRecognitionCardName["Passport"] = "sdk.home.selectDocument.passport";
62
+ })(IdRecognitionCardName || (IdRecognitionCardName = {}));
37
63
  var ServerSideEAuthMeCardClass;
38
64
  (function (ServerSideEAuthMeCardClass) {
39
65
  ServerSideEAuthMeCardClass["Invalid"] = "Invalid";
@@ -134,6 +160,41 @@ const IdTypeConfig = {
134
160
  }
135
161
  };
136
162
 
163
+ const thicknessDefaultConfig = {
164
+ mode: 'manual',
165
+ thicknessWelcomeSetting: {
166
+ welcome: true,
167
+ title: {
168
+ enable: true,
169
+ // text: translateService.translate(
170
+ // 'verify.ocr.welcome.title'
171
+ // ),
172
+ // text: '即將進行厚度檢測',
173
+ text: 'sdk.thickness.detection.guide.subtitle'
174
+ },
175
+ subtitle: {
176
+ enable: true,
177
+ // text: translateService.translate(
178
+ // 'verify.ocr.welcome.subtitle'
179
+ // ),
180
+ // text: '請將卡面傾斜45度角放入畫面框線進行拍攝',
181
+ text: 'sdk.thickness.detection.guide.subtitle.content'
182
+ },
183
+ imageShow: {
184
+ enable: true,
185
+ src: 'data:image/png;base64,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'
186
+ },
187
+ content: {
188
+ enable: true,
189
+ // text: translateService.translate(
190
+ // 'verify.ocr.welcome.content'
191
+ // ),
192
+ // text: '請在光線充足的環境進行拍攝\n請確保卡面資訊上沒有任何遮蔽物\n避免在白色背景進行拍攝,以確保卡片輪廓清晰',
193
+ text: 'sdk.thickness.detection.guide.content'
194
+ }
195
+ }
196
+ };
197
+
137
198
  const CardTypeMapping = {
138
199
  [IdRecognitionCardType.IDCard]: [EAuthMeCardClass.TWN_IDCard_Front, EAuthMeCardClass.TWN_IDCard_Back],
139
200
  [IdRecognitionCardType.HealthCard]: [EAuthMeCardClass.TWN_HealthCard_Front],
@@ -141,36 +202,57 @@ const CardTypeMapping = {
141
202
  [IdRecognitionCardType.ResidentCard]: [EAuthMeCardClass.TWN_ResidentCard_Front, EAuthMeCardClass.TWN_ResidentCard_Back],
142
203
  [IdRecognitionCardType.DriverLicense]: [EAuthMeCardClass.TWN_DriverLicense_Front, EAuthMeCardClass.TWN_DriverLicense_Back]
143
204
  };
205
+ const CardTypeMap = {
206
+ [IdRecognitionCardType.IDCard]: [ServerSideEAuthMeCardClass.TWN_IDCard_Front, ServerSideEAuthMeCardClass.TWN_IDCard_Back],
207
+ [IdRecognitionCardType.HealthCard]: [ServerSideEAuthMeCardClass.TWN_HealthCard_Front],
208
+ [IdRecognitionCardType.Passport]: ['ALL_PASSPORT_CONTENT'],
209
+ [IdRecognitionCardType.ResidentCard]: [ServerSideEAuthMeCardClass.TWN_ResidentCard_Front, ServerSideEAuthMeCardClass.TWN_ResidentCard_Back],
210
+ [IdRecognitionCardType.DriverLicense]: [ServerSideEAuthMeCardClass.TWN_DriverLicense_Front, ServerSideEAuthMeCardClass.TWN_DriverLicense_Back]
211
+ };
144
212
  const RECOGNITION_COLUMNS_ORDER = Object.fromEntries(['surname', 'givenName', 'name', 'gender', 'dateOfBirth', 'idNumber', 'dateOfIssue', 'issueCity', 'issueReason', 'father', 'mother', 'spouse', 'militaryService', 'placeOfBirth', 'serialNumber', 'expiry', 'controlNo', 'type', 'condition', 'address', 'country', 'documentNumber', 'documentType', 'nationality', 'expiryDate'].map((value, index) => [value, index]));
145
213
  function getCardSubTypes(type, country) {
146
214
  return CardTypeMapping[type];
147
215
  }
216
+ function getCardTypes(type, country) {
217
+ return CardTypeMap[type];
218
+ }
148
219
  function cardTypeTitle(cardType) {
220
+ var _a, _b;
149
221
  if (cardType == null) {
150
222
  return '';
151
223
  }
152
224
  const cardTypeLower = cardType.toLowerCase();
153
- let titleKey = null;
154
- if (cardTypeLower.indexOf('idcard') != -1) {
155
- if (cardTypeLower.indexOf('front')) {
156
- titleKey = 'verify.idCardFrontSide';
157
- } else {
158
- titleKey = 'verify.idCardBackSide';
159
- }
160
- } else if (cardTypeLower.indexOf('driverlicense') != -1) {
161
- if (cardTypeLower.indexOf('front')) {
162
- titleKey = 'verify.licenseFrontSide';
163
- } else {
164
- titleKey = 'verify.licenseBackSide';
165
- }
166
- } else if (cardTypeLower.indexOf('resident') != -1) {
167
- if (cardTypeLower.indexOf('front')) {
168
- titleKey = 'verify.residentCardFrontSide';
169
- } else {
170
- titleKey = 'verify.residentCardBackSide';
225
+ const cardTypeMap = {
226
+ idcard: {
227
+ front: 'sdk.ocr.verify.idCardFrontSide',
228
+ back: 'sdk.ocr.verify.idCardBackSide',
229
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
230
+ default: 'sdk.ocr.verify.idCardFrontSide'
231
+ },
232
+ driverlicense: {
233
+ front: 'sdk.ocr.verify.driverFrontSide',
234
+ back: 'sdk.ocr.verify.driverBackSide',
235
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
236
+ default: 'sdk.ocr.verify.driverFrontSide'
237
+ },
238
+ resident: {
239
+ front: 'sdk.ocr.verify.residentCardFrontSide',
240
+ back: 'sdk.ocr.verify.residentCardBackSide',
241
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
242
+ default: 'sdk.ocr.verify.residentCardFrontSide'
243
+ },
244
+ residentcard: {
245
+ front: 'sdk.ocr.verify.residentCardFrontSide',
246
+ back: 'sdk.ocr.verify.residentCardBackSide',
247
+ thickness: 'sdk.thickness.detection.guide.subtitle.content',
248
+ default: 'sdk.ocr.verify.residentCardFrontSide'
171
249
  }
172
- }
173
- return titleKey;
250
+ };
251
+ const typeSections = cardTypeLower.split('_');
252
+ const cardTypeName = typeSections[1];
253
+ const cardTypeSection = typeSections[2];
254
+ const titleKey = ((_a = cardTypeMap[cardTypeName]) === null || _a === void 0 ? void 0 : _a[cardTypeSection]) || ((_b = cardTypeMap[cardTypeName]) === null || _b === void 0 ? void 0 : _b.default);
255
+ return titleKey || '';
174
256
  }
175
257
  function cardTypeConfirmTitle(cardType) {
176
258
  if (cardType == null) {
@@ -179,32 +261,52 @@ function cardTypeConfirmTitle(cardType) {
179
261
  const cardTypeLower = cardType.toLowerCase();
180
262
  let titleKey = null;
181
263
  if (cardTypeLower.indexOf('idcard') != -1) {
182
- if (cardTypeLower.indexOf('front')) {
183
- titleKey = 'verify.confirmIdCardFront';
264
+ if (cardTypeLower.indexOf('front') !== -1) {
265
+ titleKey = 'sdk.ocr.verify.confirmIdCardFront';
266
+ } else if (cardTypeLower.indexOf('back') !== -1) {
267
+ titleKey = 'sdk.ocr.verify.confirmIdCardBack';
184
268
  } else {
185
- titleKey = 'verify.confirmIdCardBack';
269
+ titleKey = 'sdk.ocr.verify.confirmIdCardFront';
186
270
  }
187
- } else if (cardTypeLower.indexOf('driverlicense') != -1) {
188
- if (cardTypeLower.indexOf('front')) {
189
- titleKey = 'verify.confirmLicenseFront';
271
+ return titleKey;
272
+ }
273
+ if (cardTypeLower.indexOf('driverlicense') != -1) {
274
+ if (cardTypeLower.indexOf('front') !== -1) {
275
+ titleKey = 'sdk.ocr.verify.confirmDriverFront';
276
+ } else if (cardTypeLower.indexOf('back') !== -1) {
277
+ titleKey = 'sdk.ocr.verify.confirmDriverBack';
190
278
  } else {
191
- titleKey = 'verify.confirmLicenseBack';
279
+ titleKey = 'sdk.ocr.verify.confirmDriverFront';
192
280
  }
193
- } else if (cardTypeLower.indexOf('resident') != -1) {
194
- if (cardTypeLower.indexOf('front')) {
195
- titleKey = 'verify.confirmResidentCardFrontSide';
281
+ return titleKey;
282
+ }
283
+ if (cardTypeLower.indexOf('resident') != -1) {
284
+ if (cardTypeLower.indexOf('front') !== -1) {
285
+ titleKey = 'sdk.ocr.verify.confirmResidentCardFront';
286
+ } else if (cardTypeLower.indexOf('back') !== -1) {
287
+ titleKey = 'sdk.ocr.verify.confirmResidentCardBack';
196
288
  } else {
197
- titleKey = 'verify.confirmResidentCardBackSide';
289
+ titleKey = 'sdk.ocr.verify.confirmResidentCardFront';
198
290
  }
291
+ return titleKey;
199
292
  }
200
293
  return titleKey;
201
294
  }
202
295
  function mapCardtypeToAuthmeClass(type) {
203
- const known_type = Object.keys(EAuthMeCardClass).filter(key => EAuthMeCardClass[key].toString().toLowerCase() == ('EAuthMeCardClass_' + type).toLowerCase())[0];
204
- if (known_type == null) {
296
+ // const known_type = Object.keys(EAuthMeCardClass).filter(
297
+ // (key) =>
298
+ // (EAuthMeCardClass as any)[key].toString().toLowerCase() ==
299
+ // ('EAuthMeCardClass_' + type).toLowerCase()
300
+ // )[0];
301
+ // if (known_type == null) {
302
+ // return EAuthMeCardClass.Unknown;
303
+ // }
304
+ // return (EAuthMeCardClass as any)[known_type];
305
+ if (type in EAuthMeCardClass) {
306
+ return EAuthMeCardClass[type];
307
+ } else {
205
308
  return EAuthMeCardClass.Unknown;
206
309
  }
207
- return EAuthMeCardClass[known_type];
208
310
  }
209
311
  function getRecognitionColumnOrder(column) {
210
312
  var _a;
@@ -224,8 +326,8 @@ const twoWayAuthmeCardClassMap = (() => {
224
326
  })();
225
327
 
226
328
  var name = "authme/sdk";
227
- var version$1 = "2.4.7";
228
- var date = "2023-12-14T08:29:41+0000";
329
+ var version$1 = "2.7.0";
330
+ var date = "2024-05-30T14:54:23+0000";
229
331
  var packageInfo = {
230
332
  name: name,
231
333
  version: version$1,
@@ -233,12 +335,15 @@ var packageInfo = {
233
335
  };
234
336
 
235
337
  function init(type, country, needConfirm, cardTypes, encrypt = true) {
236
- let useCardTypes = getCardSubTypes(type).map(c => twoWayAuthmeCardClassMap.toServer(c));
338
+ // let useCardTypes: any = getCardSubTypes(type, country).map((c) =>
339
+ // twoWayAuthmeCardClassMap.toServer(c)
340
+ // );
341
+ let useCardTypes = getCardTypes(type);
237
342
  if (cardTypes.length) {
238
343
  useCardTypes = cardTypes;
239
344
  }
240
345
  const body = {
241
- scanType: type === IdRecognitionCardType.Passport ? type : `${country}_${type}`,
346
+ scanType: type === IdRecognitionCardType.Passport ? `ALL_Passport` : `${country}_${type}`,
242
347
  cardTypes: useCardTypes,
243
348
  needConfirm,
244
349
  encrypt,
@@ -261,6 +366,15 @@ function initScanDocument(scanId, cardType) {
261
366
  body: JSON.stringify(body)
262
367
  });
263
368
  }
369
+ function initScanDocumentResourceBase64(scanId, ResourceId) {
370
+ const body = {
371
+ scanId,
372
+ ResourceId
373
+ };
374
+ return sendRequest('/api/identity-verification/id-recognition/v3/init-scan-doc/resource/base64', 'POST', {
375
+ body: JSON.stringify(body)
376
+ });
377
+ }
264
378
  function recognition(documentId, file) {
265
379
  const formData = new FormData();
266
380
  formData.append('scanDocumentId', documentId);
@@ -373,4 +487,4 @@ const version = packageInfo.version;
373
487
  (_a = (_b = window)[_c = Symbol.for('authme-sdk')]) !== null && _a !== void 0 ? _a : _b[_c] = {};
374
488
  window[Symbol.for('authme-sdk')][packageInfo.name] = version;
375
489
 
376
- export { CardOCR, CountryCode, IdCardAntiFraudService, IdRecognitionCardType, IdType, IdTypeConfig, MRZService, RecognitionFileType, ResourceImageType, ServerSideEAuthMeCardClass, cardTypeConfirmTitle, cardTypeTitle, confirmScan, finishScanDocument, getCardSubTypes, getRecognitionColumnOrder, init, initScanDocument, mapCardtypeToAuthmeClass, recognition, recognitionEncrypt, saveExtraDoc, saveResourceImage, twoWayAuthmeCardClassMap, uploadFrameBase64, version };
490
+ export { CardOCR, CountryCode, IdCardAntiFraudService, IdRecognitionCardName, IdRecognitionCardType, IdType, IdTypeConfig, MRZService, RecognitionFileType, ResourceImageType, ServerSideEAuthMeCardClass, cardTypeConfirmTitle, cardTypeTitle, confirmScan, finishScanDocument, getCardSubTypes, getCardTypes, getRecognitionColumnOrder, init, initScanDocument, initScanDocumentResourceBase64, mapCardtypeToAuthmeClass, recognition, recognitionEncrypt, saveExtraDoc, saveResourceImage, thicknessDefaultConfig, twoWayAuthmeCardClassMap, uploadFrameBase64, version };
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@authme/id-recognition",
3
- "version": "2.4.7",
3
+ "version": "2.7.0",
4
4
  "peerDependencies": {
5
5
  "core-js": "^3.6.0",
6
- "@authme/core": "2.4.7",
7
- "@authme/util": "2.4.7",
8
- "@authme/engine": "2.4.7"
6
+ "@authme/core": "2.7.0",
7
+ "@authme/util": "2.7.0",
8
+ "@authme/engine": "2.7.0"
9
9
  },
10
10
  "module": "./index.js",
11
11
  "main": "./index.cjs",
@@ -1,9 +1,19 @@
1
1
  import { CountryCode, IdRecognitionCardType, RecognitionFileType, ResourceImageType } from '../enum';
2
2
  import { InitScanResponse } from '../model';
3
- export declare function init(type: IdRecognitionCardType, country: CountryCode, needConfirm: boolean, cardTypes: string[], encrypt?: boolean): Promise<InitScanResponse>;
4
- export declare function initScanDocument(scanId: string, cardType: string): Promise<{
3
+ import { ScanViewItem, WelcomePageConfig, ThicknessMode } from '../interface';
4
+ interface InitScanDocumentParams {
5
5
  scanDocumentId: string;
6
- }>;
6
+ scanView: ScanViewItem;
7
+ mode: ThicknessMode['mode'];
8
+ welcome: WelcomePageConfig;
9
+ }
10
+ interface InitScanDocumentResourceBase64Params {
11
+ fileId: string;
12
+ data: string;
13
+ }
14
+ export declare function init(type: IdRecognitionCardType, country: CountryCode, needConfirm: boolean, cardTypes: string[], encrypt?: boolean): Promise<InitScanResponse>;
15
+ export declare function initScanDocument(scanId: string, cardType: string): Promise<InitScanDocumentParams>;
16
+ export declare function initScanDocumentResourceBase64(scanId: string, ResourceId: string): Promise<InitScanDocumentResourceBase64Params>;
7
17
  export declare function recognition(documentId: string, file: Blob): Promise<{
8
18
  retry?: boolean;
9
19
  details: {
@@ -35,3 +45,4 @@ export declare function saveExtraDoc(params: {
35
45
  [key: string]: string | null;
36
46
  };
37
47
  }): Promise<any>;
48
+ export {};
@@ -2,7 +2,8 @@ export { EAuthMeCardClass, EAuthMeCardMatchStatus, EAuthMeCardOCRStatus, EAuthMe
2
2
  export declare enum ResourceImageType {
3
3
  Recognition = "Recognition",
4
4
  Fraud = "Fraud",
5
- Manual = "Manual"
5
+ Manual = "Manual",
6
+ Attach = "AttachImage"
6
7
  }
7
8
  export declare enum CountryCode {
8
9
  TWN = "TWN",
@@ -12,7 +13,25 @@ export declare enum CountryCode {
12
13
  CHN = "CHN",
13
14
  PHL = "PHL",
14
15
  GBR = "GBR",
15
- KOR = "KOR"
16
+ KOR = "KOR",
17
+ HKG = "HKG",
18
+ FRA = "FRA",
19
+ ESP = "ESP",
20
+ MEX = "MEX",
21
+ ITA = "ITA",
22
+ IND = "IND",
23
+ COL = "COL",
24
+ RUS = "RUS",
25
+ DEU = "DEU",
26
+ TUR = "TUR",
27
+ CAN = "CAN",
28
+ AUS = "AUS",
29
+ IDN = "IDN",
30
+ MYS = "MYS",
31
+ EGY = "EGY",
32
+ SAU = "SAU",
33
+ NLD = "NLD",
34
+ SGP = "SGP"
16
35
  }
17
36
  export declare enum IdRecognitionCardType {
18
37
  IDCard = "IDCard",
@@ -21,6 +40,13 @@ export declare enum IdRecognitionCardType {
21
40
  ResidentCard = "ResidentCard",
22
41
  Passport = "Passport"
23
42
  }
43
+ export declare enum IdRecognitionCardName {
44
+ IDCard = "sdk.home.selectDocument.idCard",
45
+ DriverLicense = "sdk.home.selectDocument.driverLicense",
46
+ HealthCard = "sdk.home.selectDocument.healthCard",
47
+ ResidentCard = "sdk.home.selectDocument.residentCard",
48
+ Passport = "sdk.home.selectDocument.passport"
49
+ }
24
50
  export declare enum ServerSideEAuthMeCardClass {
25
51
  Invalid = "Invalid",
26
52
  Unknown = "UnknownCard",
@@ -0,0 +1,65 @@
1
+ export interface ScanViewItem {
2
+ document_type: string;
3
+ content: ContentItem[];
4
+ success: ScanViewSuccess;
5
+ line: ScanViewLine;
6
+ border: ScanViewBorder;
7
+ }
8
+ interface ContentItem {
9
+ type: 'text' | 'svg';
10
+ content: string;
11
+ color: string | null;
12
+ opacity: number;
13
+ }
14
+ interface ScanViewSuccess {
15
+ enable: boolean;
16
+ color: string;
17
+ opacity: number;
18
+ }
19
+ interface ScanViewLine {
20
+ enable: boolean;
21
+ color: string;
22
+ gradient: ScanViewGradient;
23
+ }
24
+ interface ScanViewGradient {
25
+ enable: true;
26
+ color: string;
27
+ opacity: number;
28
+ }
29
+ interface ScanViewBorder {
30
+ enable: boolean;
31
+ type: 'cornered' | 'bordered';
32
+ color: string;
33
+ opacity: number;
34
+ }
35
+ export interface ThicknessMode {
36
+ mode: 'auto' | 'manual';
37
+ }
38
+ export interface WelcomePageConfig {
39
+ welcome: boolean;
40
+ title: WelcomePagTitle;
41
+ subtitle: WelcomePageSubtitle;
42
+ imageShow: WelcomePageImage;
43
+ content: WelcomePageContent;
44
+ }
45
+ interface WelcomePagTitle {
46
+ enable: boolean;
47
+ text: string;
48
+ }
49
+ interface WelcomePageSubtitle {
50
+ enable: boolean;
51
+ text: string;
52
+ }
53
+ interface WelcomePageImage {
54
+ enable: boolean;
55
+ src: string;
56
+ }
57
+ interface WelcomePageContent {
58
+ enable: boolean;
59
+ text: string;
60
+ }
61
+ export declare const thicknessDefaultConfig: {
62
+ mode: ThicknessMode['mode'];
63
+ thicknessWelcomeSetting: WelcomePageConfig;
64
+ };
65
+ export {};
@@ -1 +1,2 @@
1
1
  export * from './id-recognition-type.interface';
2
+ export * from './api-response.interface';
package/src/lib/util.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { CountryCode, EAuthMeCardClass, IdRecognitionCardType, ServerSideEAuthMeCardClass } from './enum';
2
2
  export declare function getCardSubTypes(type: IdRecognitionCardType, country: CountryCode): EAuthMeCardClass[];
3
+ export declare function getCardTypes(type: IdRecognitionCardType, country: CountryCode): string[];
3
4
  export declare function cardTypeTitle(cardType: string): any;
4
5
  export declare function cardTypeConfirmTitle(cardType: string): any;
5
6
  export declare function mapCardtypeToAuthmeClass(type: string): any;