UNPKG

zklib-ts

Version:

Unofficial zkteco library allows Node.js developers to easily interface with ZK BioMetric Fingerprint Attendance Devices

120 lines (119 loc) 4.75 kB
import { ZTCP } from './ztcp'; import { ZUDP } from './zudp'; import { User } from './models/User'; import { Finger } from './models/Finger'; import { Attendance } from "./models/Attendance"; import { RecordData16, UserData28, DeviceInfo, FreeSizes } from "./helper/utils"; export default class Zklib { set connectionType(value: "tcp" | "udp" | null); private _connectionType; ztcp: ZTCP; zudp: ZUDP; private interval; private timer; private isBusy; private ip; private comm_key; get connectionType(): "tcp" | "udp" | null; /** * Creates a new Zkteco device connection instance * @param ip IP address of device * @param port Port number of device * @param timeout Connection timeout in milliseconds * @param inport Required only for UDP connection (default: 10000) * @param comm_key Communication key of device (default: 0) * @param verbose Console log some data */ constructor(ip: string, port?: number, timeout?: number, inport?: number, comm_key?: number, verbose?: boolean); private functionWrapper; createSocket(cbErr?: (err: Error) => void, cbClose?: (type: string) => void): Promise<boolean>; getUsers(): Promise<{ data: User[] | UserData28[]; }>; getTime(): Promise<Date>; setTime(t: Date | string): Promise<boolean>; voiceTest(): Promise<void>; getProductTime(): Promise<Date>; getVendor(): Promise<string>; getMacAddress(): Promise<string>; getSerialNumber(): Promise<string>; getDeviceVersion(): Promise<string>; getDeviceName(): Promise<string>; getPlatform(): Promise<string>; getOS(): Promise<string>; getWorkCode(): Promise<string>; getPIN(): Promise<string>; getFaceOn(): Promise<string>; getSSR(): Promise<string>; getFirmware(): Promise<string>; /** Update or create a user if user id/pin not exists * @param user_id {string} user id/pin for customer * @param name {string} user name * @param password {string} user password * @param role {number} role/privilege id number * @param cardno {number} card number/id */ setUser(user_id: string, name: string, password: string, role?: number, cardno?: number): Promise<boolean>; /** * Delete user by a given user id/pin * @param user_id {string} */ deleteUser(user_id: string): Promise<boolean>; getAttendanceSize(): Promise<number>; getAttendances(cb?: (progress: number, total: number) => void): Promise<{ data: Attendance[] | RecordData16[]; err?: Error | null; }>; getRealTimeLogs(cb: (log: any) => void): Promise<void>; getTemplates(): Promise<Record<string, Finger[]>>; /** * Get a user template for a given user id/pin and finger id * @param user_id {string} user id/pin * @param fid {number} finger index */ getUserTemplate(user_id: string, fid: number): Promise<Buffer<ArrayBufferLike>>; /** * Upload a single fingerprint for a given user id * @param user_id {string} user id/pin for customer * @param fingerTemplate {string} finger template in base64 string * @param fid {number} finger id is a number between 0 and 9 * @param fp_valid {number} finger flag. e.g., valid=1, duress=3 */ uploadFingerTemplate(user_id: string, fingerTemplate: string, fid: number, fp_valid: number): Promise<boolean>; /** * save user and template * * @param {string} user_id - user id for customer * @param {Finger[]} fingers - Array of finger class */ saveUserTemplate(user_id: string, fingers?: Finger[]): Promise<void>; /** * Delete a single finger template by user id and finger index * @param user_id {string} user id/pin for customer * @param fid {number} finger index */ deleteFinger(user_id?: string, fid?: number): Promise<boolean>; /** * Start to enroll a finger template * @param user_id {string} user id/pin for customer * @param temp_id {number} finger index */ enrollUser(user_id: string, temp_id: number): Promise<boolean>; verifyUser(user_id: string): Promise<boolean>; restartDevice(): Promise<void>; getSizes(): Promise<FreeSizes>; disconnect(): Promise<void>; freeData(): Promise<boolean>; disableDevice(): Promise<boolean>; enableDevice(): Promise<boolean>; getInfo(): Promise<DeviceInfo>; clearAttendanceLog(): Promise<any>; clearData(): Promise<any>; executeCmd(command: number, data?: string | Buffer): Promise<Buffer>; getNetworkParams(): Promise<{ IPAddress: string; NetMask: string; GATEIPAddress: string; }>; } export type { Attendance, User, Finger, DeviceInfo, Zklib };