smartcard 3.6.0 → 3.7.0
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/README.md +15 -7
- package/dist/lib/card-wrapper.d.ts +27 -0
- package/dist/lib/card-wrapper.d.ts.map +1 -0
- package/dist/lib/card-wrapper.js +57 -0
- package/dist/lib/card-wrapper.js.map +1 -0
- package/dist/lib/devices.d.ts.map +1 -1
- package/dist/lib/devices.js +6 -3
- package/dist/lib/devices.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +6 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types.d.ts +2 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -289,7 +289,7 @@ interface Card {
|
|
|
289
289
|
readonly protocol: number;
|
|
290
290
|
readonly connected: boolean;
|
|
291
291
|
readonly atr: Buffer | null;
|
|
292
|
-
transmit(command: Buffer | number[], options?: { maxRecvLength?: number }): Promise<Buffer>;
|
|
292
|
+
transmit(command: Buffer | number[], options?: { maxRecvLength?: number; autoGetResponse?: boolean }): Promise<Buffer>;
|
|
293
293
|
control(code: number, data?: Buffer): Promise<Buffer>;
|
|
294
294
|
getStatus(): { state: number; protocol: number; atr: Buffer };
|
|
295
295
|
disconnect(disposition?: number): void;
|
|
@@ -317,26 +317,34 @@ class Devices extends EventEmitter {
|
|
|
317
317
|
}
|
|
318
318
|
```
|
|
319
319
|
|
|
320
|
-
###
|
|
320
|
+
### Auto GET RESPONSE (T=0 Protocol)
|
|
321
321
|
|
|
322
|
-
|
|
322
|
+
For T=0 protocol cards, you can automatically handle status words by passing the `autoGetResponse` option:
|
|
323
323
|
- `SW1=61`: Sends GET RESPONSE to retrieve remaining data
|
|
324
324
|
- `SW1=6C`: Retries with corrected Le value
|
|
325
325
|
|
|
326
326
|
```javascript
|
|
327
|
-
const { transmitWithAutoResponse } = require('smartcard');
|
|
328
|
-
|
|
329
327
|
// Without auto-response (raw)
|
|
330
328
|
const raw = await card.transmit([0x00, 0xA4, 0x04, 0x00, 0x0E, ...aid]);
|
|
331
329
|
// Returns: 61 1C (meaning 28 more bytes available)
|
|
332
330
|
|
|
333
|
-
// With auto-response
|
|
334
|
-
const response = await
|
|
331
|
+
// With auto-response - handles 61 XX automatically
|
|
332
|
+
const response = await card.transmit([0x00, 0xA4, 0x04, 0x00, 0x0E, ...aid], {
|
|
335
333
|
autoGetResponse: true
|
|
336
334
|
});
|
|
337
335
|
// Returns: full response data + 90 00
|
|
338
336
|
```
|
|
339
337
|
|
|
338
|
+
The `transmitWithAutoResponse()` helper function is also available for low-level API usage:
|
|
339
|
+
|
|
340
|
+
```javascript
|
|
341
|
+
const { transmitWithAutoResponse } = require('smartcard');
|
|
342
|
+
|
|
343
|
+
const response = await transmitWithAutoResponse(card, [0x00, 0xA4, 0x04, 0x00, 0x0E, ...aid], {
|
|
344
|
+
autoGetResponse: true
|
|
345
|
+
});
|
|
346
|
+
```
|
|
347
|
+
|
|
340
348
|
### Control Codes
|
|
341
349
|
|
|
342
350
|
Utilities for reader control commands (e.g., PIN verification on pinpad readers).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Card wrapper that adds autoGetResponse support to card.transmit()
|
|
3
|
+
*
|
|
4
|
+
* Wraps the native Card object to intercept transmit() calls and
|
|
5
|
+
* automatically handle T=0 protocol status words when autoGetResponse is set.
|
|
6
|
+
*/
|
|
7
|
+
import type { Card, CardStatus, TransmitOptions } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Wraps a native Card to add autoGetResponse support to transmit()
|
|
10
|
+
*/
|
|
11
|
+
export declare class CardWrapper implements Card {
|
|
12
|
+
private _nativeCard;
|
|
13
|
+
constructor(nativeCard: Card);
|
|
14
|
+
get protocol(): number;
|
|
15
|
+
get connected(): boolean;
|
|
16
|
+
get atr(): Buffer | null;
|
|
17
|
+
transmit(command: Buffer | number[], options?: TransmitOptions): Promise<Buffer>;
|
|
18
|
+
control(code: number, data?: Buffer | number[]): Promise<Buffer>;
|
|
19
|
+
getStatus(): CardStatus;
|
|
20
|
+
disconnect(disposition?: number): void;
|
|
21
|
+
reconnect(shareMode?: number, protocol?: number, initialization?: number): Promise<number>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Wrap a native card with autoGetResponse support
|
|
25
|
+
*/
|
|
26
|
+
export declare function wrapCard(nativeCard: Card): Card;
|
|
27
|
+
//# sourceMappingURL=card-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-wrapper.d.ts","sourceRoot":"","sources":["../../lib/card-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,WAAY,YAAW,IAAI;IACpC,OAAO,CAAC,WAAW,CAAO;gBAEd,UAAU,EAAE,IAAI;IAI5B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAEK,QAAQ,CACV,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,eAAe,GAC1B,OAAO,CAAC,MAAM,CAAC;IASlB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE,SAAS,IAAI,UAAU;IAIvB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,CACX,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC;CAGrB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAE/C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Card wrapper that adds autoGetResponse support to card.transmit()
|
|
4
|
+
*
|
|
5
|
+
* Wraps the native Card object to intercept transmit() calls and
|
|
6
|
+
* automatically handle T=0 protocol status words when autoGetResponse is set.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CardWrapper = void 0;
|
|
10
|
+
exports.wrapCard = wrapCard;
|
|
11
|
+
const t0_handler_1 = require("./t0-handler");
|
|
12
|
+
/**
|
|
13
|
+
* Wraps a native Card to add autoGetResponse support to transmit()
|
|
14
|
+
*/
|
|
15
|
+
class CardWrapper {
|
|
16
|
+
_nativeCard;
|
|
17
|
+
constructor(nativeCard) {
|
|
18
|
+
this._nativeCard = nativeCard;
|
|
19
|
+
}
|
|
20
|
+
get protocol() {
|
|
21
|
+
return this._nativeCard.protocol;
|
|
22
|
+
}
|
|
23
|
+
get connected() {
|
|
24
|
+
return this._nativeCard.connected;
|
|
25
|
+
}
|
|
26
|
+
get atr() {
|
|
27
|
+
return this._nativeCard.atr;
|
|
28
|
+
}
|
|
29
|
+
async transmit(command, options) {
|
|
30
|
+
if (options?.autoGetResponse) {
|
|
31
|
+
// Delegate to transmitWithAutoResponse for T=0 handling
|
|
32
|
+
return (0, t0_handler_1.transmitWithAutoResponse)(this._nativeCard, command, options);
|
|
33
|
+
}
|
|
34
|
+
// Pass through to native transmit
|
|
35
|
+
return this._nativeCard.transmit(command, options);
|
|
36
|
+
}
|
|
37
|
+
control(code, data) {
|
|
38
|
+
return this._nativeCard.control(code, data);
|
|
39
|
+
}
|
|
40
|
+
getStatus() {
|
|
41
|
+
return this._nativeCard.getStatus();
|
|
42
|
+
}
|
|
43
|
+
disconnect(disposition) {
|
|
44
|
+
return this._nativeCard.disconnect(disposition);
|
|
45
|
+
}
|
|
46
|
+
async reconnect(shareMode, protocol, initialization) {
|
|
47
|
+
return this._nativeCard.reconnect(shareMode, protocol, initialization);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.CardWrapper = CardWrapper;
|
|
51
|
+
/**
|
|
52
|
+
* Wrap a native card with autoGetResponse support
|
|
53
|
+
*/
|
|
54
|
+
function wrapCard(nativeCard) {
|
|
55
|
+
return new CardWrapper(nativeCard);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=card-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-wrapper.js","sourceRoot":"","sources":["../../lib/card-wrapper.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA+DH,4BAEC;AA9DD,6CAAwD;AAExD;;GAEG;AACH,MAAa,WAAW;IACZ,WAAW,CAAO;IAE1B,YAAY,UAAgB;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ,CACV,OAA0B,EAC1B,OAAyB;QAEzB,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC3B,wDAAwD;YACxD,OAAO,IAAA,qCAAwB,EAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,kCAAkC;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAwB;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,WAAoB;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CACX,SAAkB,EAClB,QAAiB,EACjB,cAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;CACJ;AAlDD,kCAkDC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,UAAgB;IACrC,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../lib/devices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACR,IAAI,EAGJ,YAAY,EACZ,cAAc,EAGd,MAAM,EAGT,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../lib/devices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACR,IAAI,EAGJ,YAAY,EACZ,cAAc,EAGd,MAAM,EAGT,MAAM,SAAS,CAAC;AAUjB;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAK3D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACrC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,WAAW,CAAoC;IAGvD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;OAGG;gBACS,OAAO,CAAC,EAAE,cAAc;IAcpC;;OAEG;IACH,KAAK,IAAI,IAAI;IAsBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAkCZ;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAWvB;;;OAGG;IACH,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;IAUrC;;;;OAIG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKxC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;YACW,aAAa;IA+B3B;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;YACW,mBAAmB;IAuDjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP,GAAG,CAAC,CAAC,SAAS,MAAM,YAAY,EAC5B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP,WAAW,CAAC,CAAC,SAAS,MAAM,YAAY,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACvC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIP,IAAI,CAAC,CAAC,SAAS,MAAM,YAAY,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACrC,OAAO;CAGb"}
|
package/dist/lib/devices.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Devices = void 0;
|
|
4
4
|
exports.isUnresponsiveCardError = isUnresponsiveCardError;
|
|
5
5
|
const events_1 = require("events");
|
|
6
|
+
const card_wrapper_1 = require("./card-wrapper");
|
|
6
7
|
const addon = require('../../build/Release/smartcard_napi.node');
|
|
7
8
|
/**
|
|
8
9
|
* Check if an error indicates an unresponsive card (SCARD_W_UNRESPONSIVE_CARD).
|
|
@@ -235,22 +236,24 @@ class Devices extends events_1.EventEmitter {
|
|
|
235
236
|
const readers = this._context.listReaders();
|
|
236
237
|
const reader = readers.find((r) => r.name === readerName);
|
|
237
238
|
if (reader) {
|
|
238
|
-
let
|
|
239
|
+
let nativeCard;
|
|
239
240
|
try {
|
|
240
241
|
// First try with both T=0 and T=1 protocols
|
|
241
|
-
|
|
242
|
+
nativeCard = await reader.connect(this._SCARD_SHARE_SHARED, this._SCARD_PROTOCOL_T0 | this._SCARD_PROTOCOL_T1);
|
|
242
243
|
}
|
|
243
244
|
catch (dualProtocolErr) {
|
|
244
245
|
// If dual protocol fails with unresponsive card error,
|
|
245
246
|
// fallback to T=0 only (issue #34)
|
|
246
247
|
if (isUnresponsiveCardError(dualProtocolErr)) {
|
|
247
|
-
|
|
248
|
+
nativeCard = await reader.connect(this._SCARD_SHARE_SHARED, this._SCARD_PROTOCOL_T0);
|
|
248
249
|
}
|
|
249
250
|
else {
|
|
250
251
|
// Re-throw if it's a different error
|
|
251
252
|
throw dualProtocolErr;
|
|
252
253
|
}
|
|
253
254
|
}
|
|
255
|
+
// Wrap the native card to add autoGetResponse support
|
|
256
|
+
const card = (0, card_wrapper_1.wrapCard)(nativeCard);
|
|
254
257
|
state.card = card;
|
|
255
258
|
this.emit('card-inserted', {
|
|
256
259
|
reader: { name: readerName, state: eventState, atr: atr },
|
package/dist/lib/devices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../lib/devices.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../lib/devices.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare const SCARD_STATE_INUSE: number;
|
|
|
27
27
|
export declare const SCARD_STATE_MUTE: number;
|
|
28
28
|
export { Devices } from './devices';
|
|
29
29
|
export { transmitWithAutoResponse, buildGetResponseCommand, correctLeInCommand, } from './t0-handler';
|
|
30
|
+
export { CardWrapper, wrapCard } from './card-wrapper';
|
|
30
31
|
export { PCSCError, CardRemovedError, TimeoutError, NoReadersError, ServiceNotRunningError, SharingViolationError, createPCSCError, } from './errors';
|
|
31
32
|
export { SCARD_CTL_CODE, CM_IOCTL_GET_FEATURE_REQUEST, FEATURE_VERIFY_PIN_START, FEATURE_VERIFY_PIN_FINISH, FEATURE_MODIFY_PIN_START, FEATURE_MODIFY_PIN_FINISH, FEATURE_GET_KEY_PRESSED, FEATURE_VERIFY_PIN_DIRECT, FEATURE_MODIFY_PIN_DIRECT, FEATURE_MCT_READER_DIRECT, FEATURE_MCT_UNIVERSAL, FEATURE_IFD_PIN_PROPERTIES, FEATURE_ABORT, FEATURE_SET_SPE_MESSAGE, FEATURE_VERIFY_PIN_DIRECT_APP_ID, FEATURE_MODIFY_PIN_DIRECT_APP_ID, FEATURE_WRITE_DISPLAY, FEATURE_GET_KEY, FEATURE_IFD_DISPLAY_PROPERTIES, FEATURE_GET_TLV_PROPERTIES, FEATURE_CCID_ESC_COMMAND, parseFeatures, } from './control-codes';
|
|
32
33
|
export type { ReaderState, CardStatus, TransmitOptions, Card as CardInterface, Reader as ReaderInterface, Context as ContextInterface, MonitorEvent, ReaderMonitor as ReaderMonitorInterface, DeviceEvents, DevicesOptions, } from './types';
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAElB,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,OAAO,EAAoB,kBAAkB,CAAC;AAC3D,eAAO,MAAM,MAAM,SAAe,CAAC;AACnC,eAAO,MAAM,IAAI,SAAa,CAAC;AAC/B,eAAO,MAAM,aAAa,EAA0B,wBAAwB,CAAC;AAG7E,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,wBAAwB,QAAiC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AACvD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,uBAAuB,QAAgC,CAAC;AACrE,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,cAAc,EACd,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,gCAAgC,EAChC,gCAAgC,EAChC,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,GAChB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,WAAW,EACX,UAAU,EACV,eAAe,EACf,IAAI,IAAI,aAAa,EACrB,MAAM,IAAI,eAAe,EACzB,OAAO,IAAI,gBAAgB,EAC3B,YAAY,EACZ,aAAa,IAAI,sBAAsB,EACvC,YAAY,EACZ,cAAc,GACjB,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAElB,wBAAwB,EAC3B,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,OAAO,EAAoB,kBAAkB,CAAC;AAC3D,eAAO,MAAM,MAAM,SAAe,CAAC;AACnC,eAAO,MAAM,IAAI,SAAa,CAAC;AAC/B,eAAO,MAAM,aAAa,EAA0B,wBAAwB,CAAC;AAG7E,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAE3D,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,wBAAwB,QAAiC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AACvD,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AACvD,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,kBAAkB,QAA2B,CAAC;AAC3D,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,uBAAuB,QAAgC,CAAC;AACrE,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,QAA6B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,iBAAiB,QAA0B,CAAC;AACzD,eAAO,MAAM,gBAAgB,QAAyB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACH,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,cAAc,EACd,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,gCAAgC,EAChC,gCAAgC,EAChC,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,aAAa,GAChB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACR,WAAW,EACX,UAAU,EACV,eAAe,EACf,IAAI,IAAI,aAAa,EACrB,MAAM,IAAI,eAAe,EACzB,OAAO,IAAI,gBAAgB,EAC3B,YAAY,EACZ,aAAa,IAAI,sBAAsB,EACvC,YAAY,EACZ,cAAc,GACjB,MAAM,SAAS,CAAC"}
|
package/dist/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.parseFeatures = exports.FEATURE_CCID_ESC_COMMAND = exports.FEATURE_GET_TLV_PROPERTIES = exports.FEATURE_IFD_DISPLAY_PROPERTIES = exports.FEATURE_GET_KEY = exports.FEATURE_WRITE_DISPLAY = exports.FEATURE_MODIFY_PIN_DIRECT_APP_ID = exports.FEATURE_VERIFY_PIN_DIRECT_APP_ID = exports.FEATURE_SET_SPE_MESSAGE = void 0;
|
|
3
|
+
exports.FEATURE_MCT_UNIVERSAL = exports.FEATURE_MCT_READER_DIRECT = exports.FEATURE_MODIFY_PIN_DIRECT = exports.FEATURE_VERIFY_PIN_DIRECT = exports.FEATURE_GET_KEY_PRESSED = exports.FEATURE_MODIFY_PIN_FINISH = exports.FEATURE_MODIFY_PIN_START = exports.FEATURE_VERIFY_PIN_FINISH = exports.FEATURE_VERIFY_PIN_START = exports.CM_IOCTL_GET_FEATURE_REQUEST = exports.SCARD_CTL_CODE = exports.createPCSCError = exports.SharingViolationError = exports.ServiceNotRunningError = exports.NoReadersError = exports.TimeoutError = exports.CardRemovedError = exports.PCSCError = exports.wrapCard = exports.CardWrapper = exports.correctLeInCommand = exports.buildGetResponseCommand = exports.transmitWithAutoResponse = exports.Devices = exports.SCARD_STATE_MUTE = exports.SCARD_STATE_INUSE = exports.SCARD_STATE_EXCLUSIVE = exports.SCARD_STATE_ATRMATCH = exports.SCARD_STATE_PRESENT = exports.SCARD_STATE_EMPTY = exports.SCARD_STATE_UNAVAILABLE = exports.SCARD_STATE_UNKNOWN = exports.SCARD_STATE_CHANGED = exports.SCARD_STATE_IGNORE = exports.SCARD_STATE_UNAWARE = exports.SCARD_EJECT_CARD = exports.SCARD_UNPOWER_CARD = exports.SCARD_RESET_CARD = exports.SCARD_LEAVE_CARD = exports.SCARD_PROTOCOL_UNDEFINED = exports.SCARD_PROTOCOL_RAW = exports.SCARD_PROTOCOL_T1 = exports.SCARD_PROTOCOL_T0 = exports.SCARD_SHARE_DIRECT = exports.SCARD_SHARE_SHARED = exports.SCARD_SHARE_EXCLUSIVE = exports.ReaderMonitor = exports.Card = exports.Reader = exports.Context = void 0;
|
|
4
|
+
exports.parseFeatures = exports.FEATURE_CCID_ESC_COMMAND = exports.FEATURE_GET_TLV_PROPERTIES = exports.FEATURE_IFD_DISPLAY_PROPERTIES = exports.FEATURE_GET_KEY = exports.FEATURE_WRITE_DISPLAY = exports.FEATURE_MODIFY_PIN_DIRECT_APP_ID = exports.FEATURE_VERIFY_PIN_DIRECT_APP_ID = exports.FEATURE_SET_SPE_MESSAGE = exports.FEATURE_ABORT = exports.FEATURE_IFD_PIN_PROPERTIES = void 0;
|
|
5
5
|
// Load native addon
|
|
6
6
|
const addon = require('../../build/Release/smartcard_napi.node');
|
|
7
7
|
// Re-export native classes
|
|
@@ -40,6 +40,10 @@ var t0_handler_1 = require("./t0-handler");
|
|
|
40
40
|
Object.defineProperty(exports, "transmitWithAutoResponse", { enumerable: true, get: function () { return t0_handler_1.transmitWithAutoResponse; } });
|
|
41
41
|
Object.defineProperty(exports, "buildGetResponseCommand", { enumerable: true, get: function () { return t0_handler_1.buildGetResponseCommand; } });
|
|
42
42
|
Object.defineProperty(exports, "correctLeInCommand", { enumerable: true, get: function () { return t0_handler_1.correctLeInCommand; } });
|
|
43
|
+
// Import and re-export card wrapper for low-level API users
|
|
44
|
+
var card_wrapper_1 = require("./card-wrapper");
|
|
45
|
+
Object.defineProperty(exports, "CardWrapper", { enumerable: true, get: function () { return card_wrapper_1.CardWrapper; } });
|
|
46
|
+
Object.defineProperty(exports, "wrapCard", { enumerable: true, get: function () { return card_wrapper_1.wrapCard; } });
|
|
43
47
|
// Import and re-export error classes
|
|
44
48
|
var errors_1 = require("./errors");
|
|
45
49
|
Object.defineProperty(exports, "PCSCError", { enumerable: true, get: function () { return errors_1.PCSCError; } });
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -33,7 +33,8 @@ export interface TransmitOptions {
|
|
|
33
33
|
* - SW1=61: Send GET RESPONSE to retrieve remaining data
|
|
34
34
|
* - SW1=6C: Retry with corrected Le value
|
|
35
35
|
*
|
|
36
|
-
*
|
|
36
|
+
* Works with both card.transmit() (when using Devices high-level API)
|
|
37
|
+
* and transmitWithAutoResponse() function.
|
|
37
38
|
* Default: false (raw responses returned)
|
|
38
39
|
*/
|
|
39
40
|
autoGetResponse?: boolean;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
|