zklib-ts 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1328,17 +1328,26 @@ class ZTCP {
1328
1328
  }
1329
1329
  async getSerialNumber() {
1330
1330
  const keyword = '~SerialNumber';
1331
+ let serialNumber = '';
1332
+ let count = 10;
1331
1333
  try {
1332
1334
  // Execute the command to get serial number
1333
- const data = await this.executeCmd(COMMANDS.CMD_OPTIONS_RRQ, keyword);
1334
- // Extract and format the serial number from the response data
1335
- const serialNumber = data.slice(8) // Skip the first 8 bytes (header)
1336
- .toString('utf-8') // Convert buffer to string
1337
- .replace(`${keyword}=`, '') // Remove the keyword prefix
1338
- .replace('=', '') // Remove sometines last number is a character equal to = or unknow character
1339
- .replace(/\u0000/g, ''); // Remove null characters
1340
- if (serialNumber.length !== 13 && this.verbose) {
1341
- console.warn('Serial number length not equal to 13, check');
1335
+ /**
1336
+ * @dev implemented a counter and a while loop because sometimes serial number parses wrong for some reason
1337
+ * */
1338
+ while (serialNumber.length !== 13 && count > 0) {
1339
+ const data = await this.executeCmd(COMMANDS.CMD_OPTIONS_RRQ, keyword);
1340
+ // Extract and format the serial number from the response data
1341
+ const SN = data.slice(8) // Skip the first 8 bytes (header)
1342
+ .toString('utf-8') // Convert buffer to string
1343
+ .replace(`${keyword}=`, '') // Remove the keyword prefix
1344
+ .replace('=', '') // Remove sometines last number is a character equal to = or unknow character
1345
+ .replace(/\u0000/g, ''); // Remove null characters
1346
+ if (serialNumber.length !== 13 && this.verbose) {
1347
+ console.warn('Serial number length not equal to 13, check');
1348
+ }
1349
+ count--;
1350
+ serialNumber = SN;
1342
1351
  }
1343
1352
  return serialNumber;
1344
1353
  }
package/dist/index.es.js CHANGED
@@ -1307,17 +1307,26 @@ class ZTCP {
1307
1307
  }
1308
1308
  async getSerialNumber() {
1309
1309
  const keyword = '~SerialNumber';
1310
+ let serialNumber = '';
1311
+ let count = 10;
1310
1312
  try {
1311
1313
  // Execute the command to get serial number
1312
- const data = await this.executeCmd(COMMANDS.CMD_OPTIONS_RRQ, keyword);
1313
- // Extract and format the serial number from the response data
1314
- const serialNumber = data.slice(8) // Skip the first 8 bytes (header)
1315
- .toString('utf-8') // Convert buffer to string
1316
- .replace(`${keyword}=`, '') // Remove the keyword prefix
1317
- .replace('=', '') // Remove sometines last number is a character equal to = or unknow character
1318
- .replace(/\u0000/g, ''); // Remove null characters
1319
- if (serialNumber.length !== 13 && this.verbose) {
1320
- console.warn('Serial number length not equal to 13, check');
1314
+ /**
1315
+ * @dev implemented a counter and a while loop because sometimes serial number parses wrong for some reason
1316
+ * */
1317
+ while (serialNumber.length !== 13 && count > 0) {
1318
+ const data = await this.executeCmd(COMMANDS.CMD_OPTIONS_RRQ, keyword);
1319
+ // Extract and format the serial number from the response data
1320
+ const SN = data.slice(8) // Skip the first 8 bytes (header)
1321
+ .toString('utf-8') // Convert buffer to string
1322
+ .replace(`${keyword}=`, '') // Remove the keyword prefix
1323
+ .replace('=', '') // Remove sometines last number is a character equal to = or unknow character
1324
+ .replace(/\u0000/g, ''); // Remove null characters
1325
+ if (serialNumber.length !== 13 && this.verbose) {
1326
+ console.warn('Serial number length not equal to 13, check');
1327
+ }
1328
+ count--;
1329
+ serialNumber = SN;
1321
1330
  }
1322
1331
  return serialNumber;
1323
1332
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zklib-ts",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Unofficial zkteco library allows Node.js developers to easily interface with ZK BioMetric Fingerprint Attendance Devices",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",