verant_id_cloud_scan 1.4.5-beta.5 → 1.4.5-beta.7

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/Api.js CHANGED
@@ -83,6 +83,17 @@ function getDmvServerAddress() {
83
83
  : "https://dmv.verantid.com/api/v1/dmv_check";
84
84
  }
85
85
 
86
+ /**
87
+ * Get Face Comparison server address based on current environment
88
+ * @returns {string}
89
+ */
90
+ export function getFaceComparisonServerAddress() {
91
+ const env = getEnvironment();
92
+ return env === 'staging'
93
+ ? "https://staging.face.verantid.bluerocket.us/compare_id_and_face"
94
+ : "https://faceid.verantid.com/compare_id_and_face";
95
+ }
96
+
86
97
  export const dmvCheck = async (clientId, scannerType, licenseData) => {
87
98
  const url = getDmvServerAddress();
88
99
 
package/CHANGELOG.md ADDED
@@ -0,0 +1,67 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.4.5-beta.6] - 2026-04-15
9
+
10
+ ### Added
11
+ - UV/IR image support for IDXpressPlus scanner profile
12
+ - Added `licenseFrontUvBase64`, `licenseBackUvBase64`, `licenseFrontIrBase64`, and `licenseBackIrBase64` fields to scan results
13
+ - Scanner now captures and returns ultraviolet (UV) and infrared (IR) images alongside standard color images
14
+ - Image types supported: fclr (front color), rclr (rear color), fclruv (front UV), rclruv (rear UV), fgsir (front IR), rgsir (rear IR)
15
+
16
+ ### Fixed
17
+ - Image extraction logic now captures all image types from scanner response instead of only front/back color images
18
+
19
+ ### Changed
20
+ - Updated IDXpressPlus scanner profile to include UV/IR parameters in default settings and restore configuration
21
+ - Added `clrUvIrResolution`, `fclrUvEnabled`, `rclrUvEnabled`, `fgsIrEnabled`, and `rgsIrEnabled` to `restoreParamKeys`
22
+ - Updated `ScannerApi.js` to extract UV/IR images from GetDocument response
23
+ - Updated `CloudScan.js` `scanId` function to return UV/IR image data (`licenseFrontUvBase64`, `licenseBackUvBase64`, `licenseFrontIrBase64`, `licenseBackIrBase64`)
24
+ - Local scanner functions (`localScanId`, `localContinueScanId`) do not include UV/IR fields as local scanners (VerantId6S) do not support UV/IR imaging
25
+
26
+ ## [1.4.5-beta.5] - 2026-04-14
27
+
28
+ ### Changed
29
+ - Applied dynamic environment URLs to face comparison feature
30
+
31
+ ## [1.4.5-beta.4] - 2026-04-14
32
+
33
+ ### Added
34
+ - Error validation for invalid environment type
35
+
36
+ ### Changed
37
+ - Updated default server URLs to production endpoints
38
+
39
+ ## [1.4.5-beta.3] - 2026-04-13
40
+
41
+ ### Fixed
42
+ - Various bug fixes and code quality improvements
43
+
44
+ ## [1.4.5-beta.2] - 2026-04-12
45
+
46
+ ### Added
47
+ - Dynamic environment detection for server URLs
48
+ - Support for multiple deployment environments
49
+
50
+ ### Changed
51
+ - Server address handling now supports trailing slashes
52
+ - Code improvements based on Copilot suggestions
53
+
54
+ ## [1.4.5-beta.1] - 2026-04-11
55
+
56
+ ### Added
57
+ - IDXpress scanner profiles support
58
+ - New scanner profile configuration options
59
+
60
+ ---
61
+
62
+ ## Version Number Guide
63
+
64
+ - **Major** (1.x.x): Breaking changes
65
+ - **Minor** (x.4.x): New features, backwards compatible
66
+ - **Patch** (x.x.5): Bug fixes, backwards compatible
67
+ - **Beta** (x.x.x-beta.x): Pre-release versions for testing
package/CloudScan.js CHANGED
@@ -119,6 +119,10 @@ export const scanId = async (
119
119
  barcodeResultsObject,
120
120
  licenseFrontBase64: "",
121
121
  licenseBackBase64: "",
122
+ licenseFrontUvBase64: "",
123
+ licenseBackUvBase64: "",
124
+ licenseFrontIrBase64: "",
125
+ licenseBackIrBase64: "",
122
126
  errorMessages: "",
123
127
  };
124
128
  let barcodelicenseKey = await getBarcodeLicenseKey();
@@ -148,6 +152,10 @@ export const scanId = async (
148
152
 
149
153
  returnObj.licenseFrontBase64 = scannerResponseObj.licenseFrontBase64;
150
154
  returnObj.licenseBackBase64 = scannerResponseObj.licenseBackBase64;
155
+ returnObj.licenseFrontUvBase64 = scannerResponseObj.licenseFrontUvBase64;
156
+ returnObj.licenseBackUvBase64 = scannerResponseObj.licenseBackUvBase64;
157
+ returnObj.licenseFrontIrBase64 = scannerResponseObj.licenseFrontIrBase64;
158
+ returnObj.licenseBackIrBase64 = scannerResponseObj.licenseBackIrBase64;
151
159
 
152
160
  if (includeData && scannerResponseObj.licenseBackBase64) {
153
161
  var img = document.createElement("img");
package/FaceComparison.js CHANGED
@@ -1,7 +1,4 @@
1
- //prod
2
- const faceComparisonAddress = "https://faceid.verantid.com/compare_id_and_face";
3
- //staging
4
- // const faceComparisonAddress = "https://staging.face.verantid.bluerocket.us/compare_id_and_face";
1
+ import { getFaceComparisonServerAddress } from "./Api.js";
5
2
 
6
3
 
7
4
  export async function compressImage(source, maxSize = 2 * 1024 * 1024) {
@@ -42,6 +39,7 @@ export async function compressImage(source, maxSize = 2 * 1024 * 1024) {
42
39
  }
43
40
 
44
41
  const startComparison = async (commandObj) => {
42
+ const faceComparisonAddress = getFaceComparisonServerAddress();
45
43
  return fetch(faceComparisonAddress, {
46
44
  method: "POST",
47
45
  headers: { "Content-Type": "application/json" },
package/ScannerApi.js CHANGED
@@ -63,6 +63,10 @@ export async function scannerChain(
63
63
  let scanDataResults = {};
64
64
  let licenseFrontBase64 = "";
65
65
  let licenseBackBase64 = "";
66
+ let licenseFrontUvBase64 = "";
67
+ let licenseBackUvBase64 = "";
68
+ let licenseFrontIrBase64 = "";
69
+ let licenseBackIrBase64 = "";
66
70
 
67
71
  // Get scanner profile
68
72
  const profileName = optionalConnectionParams?.scannerProfile;
@@ -178,11 +182,19 @@ export async function scannerChain(
178
182
  scanDataResults: resultData,
179
183
  licenseFrontBase64: frontBase64,
180
184
  licenseBackBase64: backBase64,
185
+ licenseFrontUvBase64: frontUvBase64,
186
+ licenseBackUvBase64: backUvBase64,
187
+ licenseFrontIrBase64: frontIrBase64,
188
+ licenseBackIrBase64: backIrBase64,
181
189
  } = await startScanDocument(currentSessionId, profile, optGetDocumentParams);
182
190
 
183
191
  scanDataResults = resultData;
184
192
  licenseFrontBase64 = frontBase64;
185
193
  licenseBackBase64 = backBase64;
194
+ licenseFrontUvBase64 = frontUvBase64;
195
+ licenseBackUvBase64 = backUvBase64;
196
+ licenseFrontIrBase64 = frontIrBase64;
197
+ licenseBackIrBase64 = backIrBase64;
186
198
 
187
199
  if (!scanSuccess) {
188
200
  await closeScannerConnection(currentSessionId);
@@ -221,6 +233,10 @@ export async function scannerChain(
221
233
  scanDataResults,
222
234
  licenseFrontBase64: licenseFrontBase64,
223
235
  licenseBackBase64: licenseBackBase64,
236
+ licenseFrontUvBase64: licenseFrontUvBase64,
237
+ licenseBackUvBase64: licenseBackUvBase64,
238
+ licenseFrontIrBase64: licenseFrontIrBase64,
239
+ licenseBackIrBase64: licenseBackIrBase64,
224
240
  scannerProfile: profileName,
225
241
  errorMessages,
226
242
  };
@@ -390,16 +406,30 @@ async function startScanDocument(
390
406
  let scanDataResults = responseData;
391
407
  let licenseFrontBase64 = "";
392
408
  let licenseBackBase64 = "";
409
+ let licenseFrontUvBase64 = "";
410
+ let licenseBackUvBase64 = "";
411
+ let licenseFrontIrBase64 = "";
412
+ let licenseBackIrBase64 = "";
393
413
 
394
414
  const images = responseData.Images || [];
395
415
 
396
416
  // Check and set image data using profile-defined image types
397
417
  images.forEach((element) => {
398
- if (element["ImageType"] === profile.frontImageType) {
399
- licenseFrontBase64 = element["data"];
400
- }
401
- if (element["ImageType"] === profile.backImageType) {
402
- licenseBackBase64 = element["data"];
418
+ const imageType = element["ImageType"];
419
+ const imageData = element["data"];
420
+
421
+ if (imageType === profile.frontImageType) {
422
+ licenseFrontBase64 = imageData;
423
+ } else if (imageType === profile.backImageType) {
424
+ licenseBackBase64 = imageData;
425
+ } else if (profile.frontUvImageType && imageType === profile.frontUvImageType) {
426
+ licenseFrontUvBase64 = imageData;
427
+ } else if (profile.backUvImageType && imageType === profile.backUvImageType) {
428
+ licenseBackUvBase64 = imageData;
429
+ } else if (profile.frontIrImageType && imageType === profile.frontIrImageType) {
430
+ licenseFrontIrBase64 = imageData;
431
+ } else if (profile.backIrImageType && imageType === profile.backIrImageType) {
432
+ licenseBackIrBase64 = imageData;
403
433
  }
404
434
  });
405
435
 
@@ -408,6 +438,10 @@ async function startScanDocument(
408
438
  scanDataResults,
409
439
  licenseFrontBase64,
410
440
  licenseBackBase64,
441
+ licenseFrontUvBase64,
442
+ licenseBackUvBase64,
443
+ licenseFrontIrBase64,
444
+ licenseBackIrBase64,
411
445
  };
412
446
  }
413
447
 
@@ -416,6 +450,10 @@ async function startScanDocument(
416
450
  scanDataResults: null,
417
451
  licenseFrontBase64: "",
418
452
  licenseBackBase64: "",
453
+ licenseFrontUvBase64: "",
454
+ licenseBackUvBase64: "",
455
+ licenseFrontIrBase64: "",
456
+ licenseBackIrBase64: "",
419
457
  };
420
458
  }
421
459
 
@@ -80,6 +80,11 @@ const PROFILES = {
80
80
  fclrEnabled: "true",
81
81
  rgsEnabled: "false",
82
82
  rclrEnabled: "true",
83
+ clrUvIrResolution: "600dpi",
84
+ fclrUvEnabled: "true",
85
+ rclrUvEnabled: "true",
86
+ fgsIrEnabled: "true",
87
+ rgsIrEnabled: "true",
83
88
  },
84
89
  restoreParamKeys: [
85
90
  "FeedType",
@@ -93,9 +98,18 @@ const PROFILES = {
93
98
  "rgsEnabled",
94
99
  "rgsResolution",
95
100
  "rclrCompressionQuality",
101
+ "clrUvIrResolution",
102
+ "fclrUvEnabled",
103
+ "rclrUvEnabled",
104
+ "fgsIrEnabled",
105
+ "rgsIrEnabled",
96
106
  ],
97
107
  frontImageType: "fclr",
98
108
  backImageType: "rclr",
109
+ frontUvImageType: "fclruv",
110
+ backUvImageType: "rclruv",
111
+ frontIrImageType: "fgsir",
112
+ backIrImageType: "rgsir",
99
113
  licenseIdentifierField: "ScannerMAC",
100
114
  licenseIdentifierFallback: "ScannerSerial",
101
115
  },
package/index.d.ts CHANGED
@@ -45,6 +45,10 @@ declare module "verant_id_cloud_scan" {
45
45
  barcodeResultsObject: any;
46
46
  licenseFrontBase64: string;
47
47
  licenseBackBase64: string;
48
+ licenseFrontUvBase64: string;
49
+ licenseBackUvBase64: string;
50
+ licenseFrontIrBase64: string;
51
+ licenseBackIrBase64: string;
48
52
  errorMessages: string;
49
53
  dmvVerificationResult?: any;
50
54
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verant_id_cloud_scan",
3
- "version": "1.4.5-beta.5",
3
+ "version": "1.4.5-beta.7",
4
4
  "description": "Verant ID Cloud Scan NPM Library",
5
5
  "main": "CloudScan.js",
6
6
  "types": "index.d.ts",