smartcard 3.3.0 → 3.4.1
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 +3 -3
- package/dist/lib/devices.d.ts +12 -2
- package/dist/lib/devices.d.ts.map +1 -1
- package/dist/lib/devices.js +27 -12
- package/dist/lib/devices.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +0 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types.d.ts +17 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +16 -4
- package/src/async_workers.cpp +6 -0
- package/src/async_workers.h +2 -0
- package/src/pcsc_card.cpp +1 -1
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
Stable PC/SC smart card bindings for Node.js.
|
|
18
18
|
|
|
19
|
-
Works with Node.js
|
|
19
|
+
Works with Node.js 18+ without recompilation. Built on N-API for long-term stability.
|
|
20
20
|
|
|
21
21
|
## Getting Started
|
|
22
22
|
|
|
@@ -437,8 +437,8 @@ devices.on('card-inserted', ({ reader, card }) => {
|
|
|
437
437
|
devices.start();
|
|
438
438
|
```
|
|
439
439
|
|
|
440
|
-
### Key Improvements in v2.x
|
|
441
|
-
- Works on Node.js
|
|
440
|
+
### Key Improvements in v2.x/v3.x
|
|
441
|
+
- Works on Node.js 18+ without recompilation (v3.x requires Node.js 18+)
|
|
442
442
|
- Native N-API bindings (no more NAN compatibility issues)
|
|
443
443
|
- Simpler flat event model
|
|
444
444
|
- Full TypeScript definitions
|
package/dist/lib/devices.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import type { DeviceEvents, Reader } from './types';
|
|
2
|
+
import type { DeviceEvents, DevicesOptions, Reader } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* High-level event-driven API for PC/SC devices
|
|
5
5
|
*
|
|
@@ -19,7 +19,17 @@ export declare class Devices extends EventEmitter {
|
|
|
19
19
|
private _running;
|
|
20
20
|
private _readers;
|
|
21
21
|
private _eventQueue;
|
|
22
|
-
|
|
22
|
+
private _Context;
|
|
23
|
+
private _ReaderMonitor;
|
|
24
|
+
private _SCARD_STATE_PRESENT;
|
|
25
|
+
private _SCARD_SHARE_SHARED;
|
|
26
|
+
private _SCARD_PROTOCOL_T0;
|
|
27
|
+
private _SCARD_PROTOCOL_T1;
|
|
28
|
+
/**
|
|
29
|
+
* Create a new Devices instance
|
|
30
|
+
* @param options Optional dependencies for testing
|
|
31
|
+
*/
|
|
32
|
+
constructor(options?: DevicesOptions);
|
|
23
33
|
/**
|
|
24
34
|
* Start monitoring for device changes
|
|
25
35
|
*/
|
|
@@ -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,EAIR,YAAY,
|
|
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,EAIR,YAAY,EACZ,cAAc,EAEd,MAAM,EAGT,MAAM,SAAS,CAAC;AAgBjB;;;;;;;;;;;;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,OAAO,CAAC,YAAY;IAOpB;;OAEG;YACW,aAAa;IA+B3B;;OAEG;YACW,qBAAqB;IA0BnC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;YACW,mBAAmB;IAyDjC;;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,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
|
@@ -2,13 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Devices = void 0;
|
|
4
4
|
const events_1 = require("events");
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
6
5
|
const addon = require('../../build/Release/smartcard_napi.node');
|
|
7
|
-
const { Context, ReaderMonitor } = addon;
|
|
8
|
-
const SCARD_STATE_PRESENT = addon.SCARD_STATE_PRESENT;
|
|
9
|
-
const SCARD_SHARE_SHARED = addon.SCARD_SHARE_SHARED;
|
|
10
|
-
const SCARD_PROTOCOL_T0 = addon.SCARD_PROTOCOL_T0;
|
|
11
|
-
const SCARD_PROTOCOL_T1 = addon.SCARD_PROTOCOL_T1;
|
|
12
6
|
/**
|
|
13
7
|
* High-level event-driven API for PC/SC devices
|
|
14
8
|
*
|
|
@@ -28,8 +22,29 @@ class Devices extends events_1.EventEmitter {
|
|
|
28
22
|
_running = false;
|
|
29
23
|
_readers = new Map();
|
|
30
24
|
_eventQueue = Promise.resolve();
|
|
31
|
-
|
|
25
|
+
// Dependencies (can be injected for testing)
|
|
26
|
+
_Context;
|
|
27
|
+
_ReaderMonitor;
|
|
28
|
+
_SCARD_STATE_PRESENT;
|
|
29
|
+
_SCARD_SHARE_SHARED;
|
|
30
|
+
_SCARD_PROTOCOL_T0;
|
|
31
|
+
_SCARD_PROTOCOL_T1;
|
|
32
|
+
/**
|
|
33
|
+
* Create a new Devices instance
|
|
34
|
+
* @param options Optional dependencies for testing
|
|
35
|
+
*/
|
|
36
|
+
constructor(options) {
|
|
32
37
|
super();
|
|
38
|
+
this._Context = options?.Context ?? addon.Context;
|
|
39
|
+
this._ReaderMonitor = options?.ReaderMonitor ?? addon.ReaderMonitor;
|
|
40
|
+
this._SCARD_STATE_PRESENT =
|
|
41
|
+
options?.SCARD_STATE_PRESENT ?? addon.SCARD_STATE_PRESENT;
|
|
42
|
+
this._SCARD_SHARE_SHARED =
|
|
43
|
+
options?.SCARD_SHARE_SHARED ?? addon.SCARD_SHARE_SHARED;
|
|
44
|
+
this._SCARD_PROTOCOL_T0 =
|
|
45
|
+
options?.SCARD_PROTOCOL_T0 ?? addon.SCARD_PROTOCOL_T0;
|
|
46
|
+
this._SCARD_PROTOCOL_T1 =
|
|
47
|
+
options?.SCARD_PROTOCOL_T1 ?? addon.SCARD_PROTOCOL_T1;
|
|
33
48
|
}
|
|
34
49
|
/**
|
|
35
50
|
* Start monitoring for device changes
|
|
@@ -40,9 +55,9 @@ class Devices extends events_1.EventEmitter {
|
|
|
40
55
|
}
|
|
41
56
|
try {
|
|
42
57
|
// Create context for card connections
|
|
43
|
-
this._context = new
|
|
58
|
+
this._context = new this._Context();
|
|
44
59
|
// Create native monitor
|
|
45
|
-
this._monitor = new
|
|
60
|
+
this._monitor = new this._ReaderMonitor();
|
|
46
61
|
this._running = true;
|
|
47
62
|
// Start native monitoring with callback
|
|
48
63
|
this._monitor.start((event) => {
|
|
@@ -155,7 +170,7 @@ class Devices extends events_1.EventEmitter {
|
|
|
155
170
|
};
|
|
156
171
|
this.emit('reader-attached', reader);
|
|
157
172
|
// Check if card is already present
|
|
158
|
-
if ((state &
|
|
173
|
+
if ((state & this._SCARD_STATE_PRESENT) !== 0) {
|
|
159
174
|
await this._handleCardInserted(readerName, state, atr);
|
|
160
175
|
}
|
|
161
176
|
}
|
|
@@ -190,7 +205,7 @@ class Devices extends events_1.EventEmitter {
|
|
|
190
205
|
let card;
|
|
191
206
|
try {
|
|
192
207
|
// First try with both T=0 and T=1 protocols
|
|
193
|
-
card = await reader.connect(
|
|
208
|
+
card = await reader.connect(this._SCARD_SHARE_SHARED, this._SCARD_PROTOCOL_T0 | this._SCARD_PROTOCOL_T1);
|
|
194
209
|
}
|
|
195
210
|
catch (dualProtocolErr) {
|
|
196
211
|
// If dual protocol fails (e.g., SCARD_W_UNRESPONSIVE_CARD),
|
|
@@ -198,7 +213,7 @@ class Devices extends events_1.EventEmitter {
|
|
|
198
213
|
const err = dualProtocolErr;
|
|
199
214
|
if (err.message &&
|
|
200
215
|
err.message.toLowerCase().includes('unresponsive')) {
|
|
201
|
-
card = await reader.connect(
|
|
216
|
+
card = await reader.connect(this._SCARD_SHARE_SHARED, this._SCARD_PROTOCOL_T0);
|
|
202
217
|
}
|
|
203
218
|
else {
|
|
204
219
|
// Re-throw if it's a different error
|
package/dist/lib/devices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devices.js","sourceRoot":"","sources":["../../lib/devices.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;
|
|
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,5 +27,5 @@ export declare const SCARD_STATE_MUTE: number;
|
|
|
27
27
|
export { Devices } from './devices';
|
|
28
28
|
export { PCSCError, CardRemovedError, TimeoutError, NoReadersError, ServiceNotRunningError, SharingViolationError, createPCSCError, } from './errors';
|
|
29
29
|
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';
|
|
30
|
-
export type { ReaderState, CardStatus, TransmitOptions, Card as CardInterface, Reader as ReaderInterface, Context as ContextInterface, MonitorEvent, ReaderMonitor as ReaderMonitorInterface, DeviceEvents, } from './types';
|
|
30
|
+
export type { ReaderState, CardStatus, TransmitOptions, Card as CardInterface, Reader as ReaderInterface, Context as ContextInterface, MonitorEvent, ReaderMonitor as ReaderMonitorInterface, DeviceEvents, DevicesOptions, } from './types';
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO,EACC,OAAO,SAAS,EAAE,kBAAkB,CAAC;AAC1D,eAAO,MAAM,MAAM,SAAe,CAAC;AACnC,eAAO,MAAM,IAAI,SAAa,CAAC;AAC/B,eAAO,MAAM,aAAa,EACC,OAAO,SAAS,EAAE,wBAAwB,CAAC;AAGtE,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,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
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
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 = 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.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
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 = void 0;
|
|
5
5
|
// Load native addon
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
7
6
|
const addon = require('../../build/Release/smartcard_napi.node');
|
|
8
7
|
// Re-export native classes
|
|
9
8
|
exports.Context = addon.Context;
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":";;;;AAAA,oBAAoB;AACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -156,6 +156,23 @@ export interface ContextConstructor {
|
|
|
156
156
|
export interface ReaderMonitorConstructor {
|
|
157
157
|
new (): ReaderMonitor;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Options for Devices class constructor (for dependency injection)
|
|
161
|
+
*/
|
|
162
|
+
export interface DevicesOptions {
|
|
163
|
+
/** Custom Context constructor (for testing) */
|
|
164
|
+
Context?: ContextConstructor;
|
|
165
|
+
/** Custom ReaderMonitor constructor (for testing) */
|
|
166
|
+
ReaderMonitor?: ReaderMonitorConstructor;
|
|
167
|
+
/** SCARD_STATE_PRESENT constant */
|
|
168
|
+
SCARD_STATE_PRESENT?: number;
|
|
169
|
+
/** SCARD_SHARE_SHARED constant */
|
|
170
|
+
SCARD_SHARE_SHARED?: number;
|
|
171
|
+
/** SCARD_PROTOCOL_T0 constant */
|
|
172
|
+
SCARD_PROTOCOL_T0?: number;
|
|
173
|
+
/** SCARD_PROTOCOL_T1 constant */
|
|
174
|
+
SCARD_PROTOCOL_T1?: number;
|
|
175
|
+
}
|
|
159
176
|
/**
|
|
160
177
|
* Native addon interface
|
|
161
178
|
*/
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "smartcard",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.1",
|
|
4
4
|
"description": "PC/SC bindings for Node.js using N-API - ABI stable across Node.js versions",
|
|
5
|
-
"author": "
|
|
5
|
+
"author": "tomkp <tom@tomkp.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -14,6 +14,13 @@
|
|
|
14
14
|
"homepage": "https://github.com/tomkp/smartcard#readme",
|
|
15
15
|
"main": "dist/lib/index.js",
|
|
16
16
|
"types": "dist/lib/index.d.ts",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/lib/index.d.ts",
|
|
20
|
+
"import": "./dist/lib/index.js",
|
|
21
|
+
"require": "./dist/lib/index.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
17
24
|
"gypfile": true,
|
|
18
25
|
"scripts": {
|
|
19
26
|
"install": "node-gyp rebuild",
|
|
@@ -27,7 +34,9 @@
|
|
|
27
34
|
"test:integration": "npm run build:ts && node --test dist/test/integration/index.js",
|
|
28
35
|
"test:coverage": "npm run build:ts && c8 --include=dist/lib/**/*.js node --test dist/test/unit/index.js",
|
|
29
36
|
"typecheck": "tsc --noEmit",
|
|
30
|
-
"coverage:report": "c8 report --reporter=text --reporter=html"
|
|
37
|
+
"coverage:report": "c8 report --reporter=text --reporter=html",
|
|
38
|
+
"lint": "eslint lib test examples",
|
|
39
|
+
"lint:fix": "eslint lib test examples --fix"
|
|
31
40
|
},
|
|
32
41
|
"files": [
|
|
33
42
|
"dist/lib/",
|
|
@@ -40,10 +49,13 @@
|
|
|
40
49
|
"node-addon-api": "^7.0.0"
|
|
41
50
|
},
|
|
42
51
|
"devDependencies": {
|
|
52
|
+
"@eslint/js": "^9.39.2",
|
|
43
53
|
"@types/node": "^25.0.3",
|
|
44
54
|
"c8": "^10.1.3",
|
|
55
|
+
"eslint": "^9.39.2",
|
|
45
56
|
"node-gyp": "^10.0.0",
|
|
46
|
-
"typescript": "^5.7.2"
|
|
57
|
+
"typescript": "^5.7.2",
|
|
58
|
+
"typescript-eslint": "^8.50.1"
|
|
47
59
|
},
|
|
48
60
|
"engines": {
|
|
49
61
|
"node": ">=18.0.0"
|
package/src/async_workers.cpp
CHANGED
|
@@ -252,6 +252,7 @@ ReconnectWorker::ReconnectWorker(
|
|
|
252
252
|
DWORD shareMode,
|
|
253
253
|
DWORD preferredProtocols,
|
|
254
254
|
DWORD initialization,
|
|
255
|
+
DWORD* protocolOut,
|
|
255
256
|
Napi::Promise::Deferred deferred)
|
|
256
257
|
: Napi::AsyncWorker(env),
|
|
257
258
|
card_(card),
|
|
@@ -259,6 +260,7 @@ ReconnectWorker::ReconnectWorker(
|
|
|
259
260
|
preferredProtocols_(preferredProtocols),
|
|
260
261
|
initialization_(initialization),
|
|
261
262
|
activeProtocol_(0),
|
|
263
|
+
protocolOut_(protocolOut),
|
|
262
264
|
result_(SCARD_S_SUCCESS),
|
|
263
265
|
deferred_(deferred) {
|
|
264
266
|
}
|
|
@@ -277,6 +279,10 @@ void ReconnectWorker::OnOK() {
|
|
|
277
279
|
Napi::Env env = Env();
|
|
278
280
|
|
|
279
281
|
if (result_ == SCARD_S_SUCCESS) {
|
|
282
|
+
// Update the card object's protocol
|
|
283
|
+
if (protocolOut_) {
|
|
284
|
+
*protocolOut_ = activeProtocol_;
|
|
285
|
+
}
|
|
280
286
|
deferred_.Resolve(Napi::Number::New(env, activeProtocol_));
|
|
281
287
|
} else {
|
|
282
288
|
deferred_.Reject(Napi::Error::New(env, GetPCSCErrorString(result_)).Value());
|
package/src/async_workers.h
CHANGED
|
@@ -108,6 +108,7 @@ public:
|
|
|
108
108
|
DWORD shareMode,
|
|
109
109
|
DWORD preferredProtocols,
|
|
110
110
|
DWORD initialization,
|
|
111
|
+
DWORD* protocolOut,
|
|
111
112
|
Napi::Promise::Deferred deferred);
|
|
112
113
|
|
|
113
114
|
void Execute() override;
|
|
@@ -122,6 +123,7 @@ private:
|
|
|
122
123
|
DWORD preferredProtocols_;
|
|
123
124
|
DWORD initialization_;
|
|
124
125
|
DWORD activeProtocol_;
|
|
126
|
+
DWORD* protocolOut_;
|
|
125
127
|
LONG result_;
|
|
126
128
|
Napi::Promise::Deferred deferred_;
|
|
127
129
|
};
|
package/src/pcsc_card.cpp
CHANGED
|
@@ -248,7 +248,7 @@ Napi::Value PCSCCard::Reconnect(const Napi::CallbackInfo& info) {
|
|
|
248
248
|
Napi::Promise::Deferred deferred = Napi::Promise::Deferred::New(env);
|
|
249
249
|
|
|
250
250
|
ReconnectWorker* worker = new ReconnectWorker(
|
|
251
|
-
env, card_, shareMode, preferredProtocols, initialization, deferred);
|
|
251
|
+
env, card_, shareMode, preferredProtocols, initialization, &protocol_, deferred);
|
|
252
252
|
worker->Queue();
|
|
253
253
|
|
|
254
254
|
return deferred.Promise();
|