zklib-ts 1.0.4-development → 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.
@@ -21,6 +21,36 @@ interface UDPHeader {
21
21
  interface TCPHeader extends UDPHeader {
22
22
  payloadSize: number;
23
23
  }
24
+ export type FreeSizes = {
25
+ /** Number of users */
26
+ userCounts: number;
27
+ /** Number of logs */
28
+ logCounts: number;
29
+ /** Number of fingerprints */
30
+ fingerCount: number;
31
+ /** Number of admins */
32
+ adminCount: number;
33
+ /** Number or opLogs, maybe access control events? */
34
+ opLogCount: number;
35
+ /** Capacity of logs in bytes */
36
+ logCapacity: number;
37
+ /** Capacity of fingerprints */
38
+ fingerCapacity: number;
39
+ /** Capacity of users */
40
+ userCapacity: number;
41
+ /** Capacity of oplog */
42
+ attLogCapacity: number;
43
+ /** Number of available finger templates */
44
+ fingerAvailable: number;
45
+ /** Number of available Users */
46
+ userAvailable: number;
47
+ /** Number of attendanceLog available */
48
+ attLogAvailable: number;
49
+ /** Number of faces */
50
+ faceCount: number;
51
+ /** Capacity of faces */
52
+ faceCapacity: number;
53
+ };
24
54
  export declare const createUDPHeader: (command: number, sessionId: number, replyId: number, data: any) => Buffer;
25
55
  export declare const createTCPHeader: (command: number, sessionId: number, replyId: number, data: any) => Buffer;
26
56
  export declare const removeTcpHeader: (buf: Buffer) => Buffer;
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
  }
@@ -2755,7 +2764,7 @@ class Zklib {
2755
2764
  return this.functionWrapper(() => this.ztcp.restartDevice(), async () => { throw new Error('UDP restart device not supported'); }, 'RESTART_DEVICE');
2756
2765
  }
2757
2766
  async getSizes() {
2758
- return this.functionWrapper(() => this.ztcp.getSizes(), () => this.zudp.getInfo(), 'GET_SIZES');
2767
+ return this.functionWrapper(() => this.ztcp.getSizes(), () => { throw new Error('not implemented ofr UDP'); }, 'GET_SIZES');
2759
2768
  }
2760
2769
  async disconnect() {
2761
2770
  return this.functionWrapper(() => this.ztcp.disconnect(), () => this.zudp.disconnect(), 'DISCONNECT');
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { ZUDP } from './zudp';
3
3
  import { User } from './models/User';
4
4
  import { Finger } from './models/Finger';
5
5
  import { Attendance } from "./models/Attendance";
6
- import { RecordData16, UserData28, DeviceInfo } from "./helper/utils";
6
+ import { RecordData16, UserData28, DeviceInfo, FreeSizes } from "./helper/utils";
7
7
  export default class Zklib {
8
8
  set connectionType(value: "tcp" | "udp" | null);
9
9
  private _connectionType;
@@ -60,7 +60,7 @@ export default class Zklib {
60
60
  enrollUser(uid: number, temp_id: number, user_id: string): Promise<boolean>;
61
61
  verifyUser(uid: number): Promise<boolean>;
62
62
  restartDevice(): Promise<void>;
63
- getSizes(): Promise<DeviceInfo>;
63
+ getSizes(): Promise<FreeSizes>;
64
64
  disconnect(): Promise<void>;
65
65
  freeData(): Promise<boolean>;
66
66
  disableDevice(): Promise<boolean>;
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
  }
@@ -2734,7 +2743,7 @@ class Zklib {
2734
2743
  return this.functionWrapper(() => this.ztcp.restartDevice(), async () => { throw new Error('UDP restart device not supported'); }, 'RESTART_DEVICE');
2735
2744
  }
2736
2745
  async getSizes() {
2737
- return this.functionWrapper(() => this.ztcp.getSizes(), () => this.zudp.getInfo(), 'GET_SIZES');
2746
+ return this.functionWrapper(() => this.ztcp.getSizes(), () => { throw new Error('not implemented ofr UDP'); }, 'GET_SIZES');
2738
2747
  }
2739
2748
  async disconnect() {
2740
2749
  return this.functionWrapper(() => this.ztcp.disconnect(), () => this.zudp.disconnect(), 'DISCONNECT');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zklib-ts",
3
- "version": "1.0.4-development",
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",
@@ -15,8 +15,7 @@
15
15
  "test": "jest",
16
16
  "build": "rollup -c",
17
17
  "watch": "rollup -c --watch",
18
- "prepare": "npm run build",
19
- "publish": "npm run publish --tag latest"
18
+ "prepare": "npm run build"
20
19
  },
21
20
  "repositoryUrl": "https://github.com/guspaz0/zklib-ts.git",
22
21
  "repository": {