UNPKG

sunmi-device-sdk

Version:

JavaScript SDK for Sunmi card readers and printers

79 lines (78 loc) 2.82 kB
"use strict"; /** * Sunmi Card Reader API * Provides methods to interact with Sunmi device card readers */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SunmiCardReader = void 0; const bridge_1 = require("./bridge"); class SunmiCardReader { /** * Start reading a card * @param cardTypes Array of card types to detect (e.g., ['mifare', 'ic']) * @returns Promise resolving to card information */ static async startReadCard(cardTypes) { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'startReadCard', cardTypes); } /** * Authenticate a Mifare card block * @param blockKey The authentication key (hex string) * @param keyType Key type (A or B) * @param blockToRead Block number to authenticate * @returns Promise resolving when authentication succeeds */ static async authMifare(blockKey, keyType, blockToRead) { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'authMifare', [ blockKey, keyType, blockToRead ]); } /** * Read a block from an authenticated Mifare card * @param blockToRead Block number to read * @returns Promise resolving to the block data (hex string) */ static async readBlockMifare(blockToRead) { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'readBlockMifare', [blockToRead]); } /** * Write data to a Mifare card block * @param blockToWrite Block number to write to * @param stringToWrite Data to write (hex string, must be 16 bytes) * @returns Promise resolving when write completes */ static async writeBlockMifare(blockToWrite, stringToWrite) { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'writeBlockMifare', [ blockToWrite, stringToWrite ]); } /** * Set PIN status * @param pinToEdit PIN identifier * @param statusResolved New status * @returns Promise resolving when PIN status is updated */ static async setPinStatus(pinToEdit, statusResolved) { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'setPinStatus', [ pinToEdit, statusResolved ]); } /** * Cancel an ongoing card reading operation * @returns Promise resolving when operation is cancelled */ static async cancelCheckCard() { const bridge = (0, bridge_1.getNativeBridge)(); return bridge.execute('SunmiCardReader', 'cancelCheckCard', []); } } exports.SunmiCardReader = SunmiCardReader;