sunmi-device-sdk
Version:
JavaScript SDK for Sunmi card readers and printers
79 lines (78 loc) • 2.82 kB
JavaScript
;
/**
* 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;