@ledgerhq/hw-transport-mocker 6.29.4 → 6.29.5-next.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +7 -0
- package/lib/MockTransport.d.ts +2 -0
- package/lib/MockTransport.d.ts.map +1 -1
- package/lib/MockTransport.js +2 -0
- package/lib/MockTransport.js.map +1 -1
- package/lib/RecordStore.d.ts +5 -0
- package/lib/RecordStore.d.ts.map +1 -1
- package/lib/RecordStore.js +12 -6
- package/lib/RecordStore.js.map +1 -1
- package/lib/createTransportRecorder.js +8 -7
- package/lib/createTransportRecorder.js.map +1 -1
- package/lib/createTransportReplayer.js +20 -20
- package/lib/createTransportReplayer.js.map +1 -1
- package/lib/fixtures/aTransport.js +27 -1
- package/lib/fixtures/aTransport.js.map +1 -1
- package/lib/openTransportReplayer.d.ts +1 -0
- package/lib/openTransportReplayer.d.ts.map +1 -1
- package/lib/openTransportReplayer.js +23 -21
- package/lib/openTransportReplayer.js.map +1 -1
- package/lib-es/MockTransport.d.ts +2 -0
- package/lib-es/MockTransport.d.ts.map +1 -1
- package/lib-es/MockTransport.js +2 -0
- package/lib-es/MockTransport.js.map +1 -1
- package/lib-es/RecordStore.d.ts +5 -0
- package/lib-es/RecordStore.d.ts.map +1 -1
- package/lib-es/RecordStore.js +12 -6
- package/lib-es/RecordStore.js.map +1 -1
- package/lib-es/createTransportRecorder.js +8 -7
- package/lib-es/createTransportRecorder.js.map +1 -1
- package/lib-es/createTransportReplayer.js +20 -20
- package/lib-es/createTransportReplayer.js.map +1 -1
- package/lib-es/fixtures/aTransport.js +27 -1
- package/lib-es/fixtures/aTransport.js.map +1 -1
- package/lib-es/openTransportReplayer.d.ts +1 -0
- package/lib-es/openTransportReplayer.d.ts.map +1 -1
- package/lib-es/openTransportReplayer.js +23 -21
- package/lib-es/openTransportReplayer.js.map +1 -1
- package/package.json +5 -4
- package/src/MockTransport.ts +2 -0
- package/src/RecordStore.ts +5 -0
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
package/lib/MockTransport.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import Transport from "@ledgerhq/hw-transport";
|
|
3
4
|
export default class MockTransport extends Transport {
|
|
4
5
|
private preRecordResponse;
|
|
5
6
|
constructor(preRecordResponse: Buffer);
|
|
6
7
|
exchange(_apdu: Buffer): Promise<Buffer>;
|
|
8
|
+
setNewResponse: (buffer: Buffer) => Buffer;
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=MockTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTransport.d.ts","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockTransport.d.ts","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":";;AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,iBAAiB,EAAE,MAAM;IAKrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxC,cAAc,WAAY,MAAM,YAAuC;CACxE"}
|
package/lib/MockTransport.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
|
|
7
7
|
class MockTransport extends hw_transport_1.default {
|
|
8
|
+
preRecordResponse;
|
|
8
9
|
constructor(preRecordResponse) {
|
|
9
10
|
super();
|
|
10
11
|
this.preRecordResponse = preRecordResponse;
|
|
@@ -12,6 +13,7 @@ class MockTransport extends hw_transport_1.default {
|
|
|
12
13
|
exchange(_apdu) {
|
|
13
14
|
return Promise.resolve(this.preRecordResponse);
|
|
14
15
|
}
|
|
16
|
+
setNewResponse = (buffer) => (this.preRecordResponse = buffer);
|
|
15
17
|
}
|
|
16
18
|
exports.default = MockTransport;
|
|
17
19
|
//# sourceMappingURL=MockTransport.js.map
|
package/lib/MockTransport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTransport.js","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAE/C,MAAqB,aAAc,SAAQ,sBAAS;
|
|
1
|
+
{"version":3,"file":"MockTransport.js","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAE/C,MAAqB,aAAc,SAAQ,sBAAS;IAC1C,iBAAiB,CAAS;IAElC,YAAY,iBAAyB;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CACxE;AAbD,gCAaC"}
|
package/lib/RecordStore.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
/**
|
|
3
4
|
* thrown by the RecordStore.fromString parser.
|
|
4
5
|
*/
|
|
@@ -53,6 +54,10 @@ export declare class RecordStore {
|
|
|
53
54
|
* check if there is no more APDUs to replay
|
|
54
55
|
*/
|
|
55
56
|
isEmpty: () => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Clear store history
|
|
59
|
+
*/
|
|
60
|
+
clearStore: () => never[];
|
|
56
61
|
/**
|
|
57
62
|
* Record an APDU (used by createTransportRecorder)
|
|
58
63
|
* @param {Buffer} apdu input
|
package/lib/RecordStore.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordStore.d.ts","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecordStore.d.ts","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,QAIxD;yBAJe,yBAAyB;;;AAQzC;;GAEG;AACH,wBAAgB,qBAAqB,SAIpC;yBAJe,qBAAqB;;;AAQrC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAM/E;yBANe,oBAAoB;;;AAUpC;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI/D;yBAJe,wBAAwB;;;AAOxC,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAMF;;;GAGG;AACH,qBAAa,WAAW;IACtB,MAAM,SAAK;IACX,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,kBAAkB,CAAC;gBAEb,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAKhF;;OAEG;IACH,OAAO,QAAO,OAAO,CAA4B;IAEjD;;OAEG;IACH,UAAU,gBAA2B;IAErC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/C;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA0BpC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,WAAW;CAmChF"}
|
package/lib/RecordStore.js
CHANGED
|
@@ -52,15 +52,21 @@ const defaultOpts = {
|
|
|
52
52
|
* It is both used by replayer and recorder transports and is the basic for writing Ledger tests with a mock device.
|
|
53
53
|
*/
|
|
54
54
|
class RecordStore {
|
|
55
|
+
passed = 0;
|
|
56
|
+
queue;
|
|
57
|
+
opts;
|
|
55
58
|
constructor(queue, opts) {
|
|
56
|
-
this.passed = 0;
|
|
57
|
-
/**
|
|
58
|
-
* check if there is no more APDUs to replay
|
|
59
|
-
*/
|
|
60
|
-
this.isEmpty = () => this.queue.length === 0;
|
|
61
59
|
this.queue = queue || [];
|
|
62
|
-
this.opts =
|
|
60
|
+
this.opts = { ...defaultOpts, ...opts };
|
|
63
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* check if there is no more APDUs to replay
|
|
64
|
+
*/
|
|
65
|
+
isEmpty = () => this.queue.length === 0;
|
|
66
|
+
/**
|
|
67
|
+
* Clear store history
|
|
68
|
+
*/
|
|
69
|
+
clearStore = () => (this.queue = []);
|
|
64
70
|
/**
|
|
65
71
|
* Record an APDU (used by createTransportRecorder)
|
|
66
72
|
* @param {Buffer} apdu input
|
package/lib/RecordStore.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordStore.js","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,yBAAyB,CAAC,OAAe;IACvD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,8DAIC;AAED,yBAAyB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAElD;;GAEG;AACH,SAAgB,qBAAqB;IACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACpC,IAAI,CAAC,OAAO,GAAG,6BAA6B,CAAC;IAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,sDAIC;AAED,qBAAqB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE9C;;GAEG;AACH,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,GAAW,EAAE,IAAY;IAC9E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACnC,IAAI,CAAC,OAAO,GAAG,6BAA6B,IAAI,cAAc,QAAQ,SAAS,GAAG,EAAE,CAAC;IACrF,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAND,oDAMC;AAED,oBAAoB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE7C;;GAEG;AACH,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACvC,IAAI,CAAC,OAAO,GAAG,wCAAwC,QAAQ,EAAE,CAAC;IAClE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,4DAIC;AAED,wBAAwB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAejD,MAAM,WAAW,GAAuB;IACtC,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"RecordStore.js","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,yBAAyB,CAAC,OAAe;IACvD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,8DAIC;AAED,yBAAyB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAElD;;GAEG;AACH,SAAgB,qBAAqB;IACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACpC,IAAI,CAAC,OAAO,GAAG,6BAA6B,CAAC;IAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,sDAIC;AAED,qBAAqB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE9C;;GAEG;AACH,SAAgB,oBAAoB,CAAC,QAAgB,EAAE,GAAW,EAAE,IAAY;IAC9E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACnC,IAAI,CAAC,OAAO,GAAG,6BAA6B,IAAI,cAAc,QAAQ,SAAS,GAAG,EAAE,CAAC;IACrF,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAND,oDAMC;AAED,oBAAoB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE7C;;GAEG;AACH,SAAgB,wBAAwB,CAAC,QAAgB;IACvD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACvC,IAAI,CAAC,OAAO,GAAG,wCAAwC,QAAQ,EAAE,CAAC;IAClE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAJD,4DAIC;AAED,wBAAwB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAejD,MAAM,WAAW,GAAuB;IACtC,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAa,WAAW;IACtB,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,CAAQ;IACb,IAAI,CAAqB;IAEzB,YAAY,KAAgC,EAAE,IAAkC;QAC9E,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,OAAO,GAAG,GAAY,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAEjD;;OAEG;IACH,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAErC;;;;OAIG;IACH,cAAc,CAAC,IAAY,EAAE,GAAW;QACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,IAAY;QACzB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEnC,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,EAAE,IAAI,CAAC,MAAM,CAAC;gBACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,+BAA+B,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;oBACtF,EAAE,IAAI,CAAC,MAAM,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,MAAM,IAAI,qBAAqB,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,QAAQ,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,IAAkC;QAC/D,MAAM,KAAK,GAAU,EAAE,CAAC;QACxB,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,GAAG;aACA,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACd,OAAO,CAAC,IAAI,CAAC,EAAE;YACd,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAE3C,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;gBAChE,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAE3C,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,IAAI,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;gBACjE,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAnHD,kCAmHC"}
|
|
@@ -11,10 +11,18 @@ const hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
|
|
|
11
11
|
*/
|
|
12
12
|
const createTransportRecorder = (DecoratedTransport, recordStore) => {
|
|
13
13
|
class TransportRecorder extends hw_transport_1.default {
|
|
14
|
+
static recordStore = recordStore;
|
|
15
|
+
static isSupported = DecoratedTransport.constructor.isSupported;
|
|
16
|
+
static list = DecoratedTransport.constructor.list;
|
|
17
|
+
static listen = DecoratedTransport.constructor.listen;
|
|
18
|
+
static open = (descriptor, ...args) => DecoratedTransport.constructor
|
|
19
|
+
.open(descriptor, ...args)
|
|
20
|
+
.then(t => new TransportRecorder(t));
|
|
14
21
|
setScrambleKey() { }
|
|
15
22
|
close() {
|
|
16
23
|
return this.transport.close();
|
|
17
24
|
}
|
|
25
|
+
transport;
|
|
18
26
|
constructor(t) {
|
|
19
27
|
super();
|
|
20
28
|
this.transport = t;
|
|
@@ -27,13 +35,6 @@ const createTransportRecorder = (DecoratedTransport, recordStore) => {
|
|
|
27
35
|
return output;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
|
-
TransportRecorder.recordStore = recordStore;
|
|
31
|
-
TransportRecorder.isSupported = DecoratedTransport.constructor.isSupported;
|
|
32
|
-
TransportRecorder.list = DecoratedTransport.constructor.list;
|
|
33
|
-
TransportRecorder.listen = DecoratedTransport.constructor.listen;
|
|
34
|
-
TransportRecorder.open = (descriptor, ...args) => DecoratedTransport.constructor
|
|
35
|
-
.open(descriptor, ...args)
|
|
36
|
-
.then(t => new TransportRecorder(t));
|
|
37
38
|
return TransportRecorder;
|
|
38
39
|
};
|
|
39
40
|
exports.default = createTransportRecorder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTransportRecorder.js","sourceRoot":"","sources":["../src/createTransportRecorder.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAG/C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,kBAA6B,EAC7B,WAAwB,EACF,EAAE;IACxB,MAAM,iBAAkB,SAAQ,sBAAS;
|
|
1
|
+
{"version":3,"file":"createTransportRecorder.js","sourceRoot":"","sources":["../src/createTransportRecorder.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAG/C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,kBAA6B,EAC7B,WAAwB,EACF,EAAE;IACxB,MAAM,iBAAkB,SAAQ,sBAAS;QACvC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,MAAM,CAAC,WAAW,GAAI,kBAAkB,CAAC,WAAgC,CAAC,WAAW,CAAC;QACtF,MAAM,CAAC,IAAI,GAAI,kBAAkB,CAAC,WAAgC,CAAC,IAAI,CAAC;QACxE,MAAM,CAAC,MAAM,GAAI,kBAAkB,CAAC,WAAgC,CAAC,MAAM,CAAC;QAC5E,MAAM,CAAC,IAAI,GAAG,CAAC,UAAe,EAAE,GAAG,IAAI,EAAE,EAAE,CACxC,kBAAkB,CAAC,WAAgC;aACjD,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,cAAc,KAAI,CAAC;QAEnB,KAAK;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,SAAS,CAAY;QAErB,YAAY,CAAY;YACtB,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChB,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;;IAGH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
|
|
@@ -12,6 +12,26 @@ const logs_1 = require("@ledgerhq/logs");
|
|
|
12
12
|
const createTransportReplayer = (recordStore) => {
|
|
13
13
|
console.warn("TO BE DEPRECATED: use openTransportReplayer instead");
|
|
14
14
|
class TransportReplayer extends hw_transport_1.default {
|
|
15
|
+
static isSupported = () => Promise.resolve(true);
|
|
16
|
+
static list = () => Promise.resolve([null]);
|
|
17
|
+
static listen = o => {
|
|
18
|
+
let unsubscribed;
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
if (unsubscribed)
|
|
21
|
+
return;
|
|
22
|
+
o.next({
|
|
23
|
+
type: "add",
|
|
24
|
+
descriptor: null,
|
|
25
|
+
});
|
|
26
|
+
o.complete();
|
|
27
|
+
}, 0);
|
|
28
|
+
return {
|
|
29
|
+
unsubscribe: () => {
|
|
30
|
+
unsubscribed = true;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
static open = () => Promise.resolve(new TransportReplayer());
|
|
15
35
|
setScrambleKey() { }
|
|
16
36
|
close() {
|
|
17
37
|
return Promise.resolve();
|
|
@@ -29,26 +49,6 @@ const createTransportReplayer = (recordStore) => {
|
|
|
29
49
|
}
|
|
30
50
|
}
|
|
31
51
|
}
|
|
32
|
-
TransportReplayer.isSupported = () => Promise.resolve(true);
|
|
33
|
-
TransportReplayer.list = () => Promise.resolve([null]);
|
|
34
|
-
TransportReplayer.listen = o => {
|
|
35
|
-
let unsubscribed;
|
|
36
|
-
setTimeout(() => {
|
|
37
|
-
if (unsubscribed)
|
|
38
|
-
return;
|
|
39
|
-
o.next({
|
|
40
|
-
type: "add",
|
|
41
|
-
descriptor: null,
|
|
42
|
-
});
|
|
43
|
-
o.complete();
|
|
44
|
-
}, 0);
|
|
45
|
-
return {
|
|
46
|
-
unsubscribe: () => {
|
|
47
|
-
unsubscribed = true;
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
TransportReplayer.open = () => Promise.resolve(new TransportReplayer());
|
|
52
52
|
return TransportReplayer;
|
|
53
53
|
};
|
|
54
54
|
exports.default = createTransportReplayer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTransportReplayer.js","sourceRoot":"","sources":["../src/createTransportReplayer.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAC/C,yCAAqC;AAGrC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAuB,EAAE;IAChF,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACpE,MAAM,iBAAkB,SAAQ,sBAAS;
|
|
1
|
+
{"version":3,"file":"createTransportReplayer.js","sourceRoot":"","sources":["../src/createTransportReplayer.ts"],"names":[],"mappings":";;;;;AAAA,0EAA+C;AAC/C,yCAAqC;AAGrC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAuB,EAAE;IAChF,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACpE,MAAM,iBAAkB,SAAQ,sBAAS;QACvC,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YAClB,IAAI,YAAY,CAAC;YACjB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,YAAY;oBAAE,OAAO;gBACzB,CAAC,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO;gBACL,WAAW,EAAE,GAAG,EAAE;oBAChB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAE7D,cAAc,KAAI,CAAC;QAEnB,KAAK;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,IAAA,UAAG,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAA,UAAG,EAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAA,UAAG,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;;IAGH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
|
|
@@ -26,7 +26,33 @@ const events_1 = __importDefault(require("events"));
|
|
|
26
26
|
* @return A duck-typed Transport
|
|
27
27
|
*/
|
|
28
28
|
const aTransportBuilder = (props) => {
|
|
29
|
-
return
|
|
29
|
+
return {
|
|
30
|
+
exchangeTimeout: 30000,
|
|
31
|
+
unresponsiveTimeout: 15000,
|
|
32
|
+
deviceModel: null,
|
|
33
|
+
tracer: new logs_1.LocalTracer("mockedTransport", {}),
|
|
34
|
+
_events: new events_1.default(),
|
|
35
|
+
exchangeBusyPromise: null,
|
|
36
|
+
_appAPIlock: null,
|
|
37
|
+
exchange: jest.fn(),
|
|
38
|
+
exchangeBulk: jest.fn(),
|
|
39
|
+
setScrambleKey: jest.fn(),
|
|
40
|
+
close: jest.fn(),
|
|
41
|
+
on: jest.fn(),
|
|
42
|
+
off: jest.fn(),
|
|
43
|
+
emit: jest.fn(),
|
|
44
|
+
setDebugMode: jest.fn(),
|
|
45
|
+
setExchangeTimeout: jest.fn(),
|
|
46
|
+
setExchangeUnresponsiveTimeout: jest.fn(),
|
|
47
|
+
send: jest.fn(),
|
|
48
|
+
exchangeAtomicImpl: jest.fn(),
|
|
49
|
+
decorateAppAPIMethods: jest.fn(),
|
|
50
|
+
decorateAppAPIMethod: jest.fn(),
|
|
51
|
+
setTraceContext: jest.fn(),
|
|
52
|
+
updateTraceContext: jest.fn(),
|
|
53
|
+
getTraceContext: jest.fn(),
|
|
54
|
+
...props,
|
|
55
|
+
};
|
|
30
56
|
};
|
|
31
57
|
exports.aTransportBuilder = aTransportBuilder;
|
|
32
58
|
//# sourceMappingURL=aTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aTransport.js","sourceRoot":"","sources":["../../src/fixtures/aTransport.ts"],"names":[],"mappings":";;;;;;AACA,yCAA6C;AAC7C,oDAAkC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAa,EAAE;IACzE,
|
|
1
|
+
{"version":3,"file":"aTransport.js","sourceRoot":"","sources":["../../src/fixtures/aTransport.ts"],"names":[],"mappings":";;;;;;AACA,yCAA6C;AAC7C,oDAAkC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAa,EAAE;IACzE,OAAO;QACL,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI,kBAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,gBAAY,EAAE;QAC3B,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QACvB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACb,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QACvB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,8BAA8B,EAAE,IAAI,CAAC,EAAE,EAAE;QACzC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;QAChC,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC/B,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,GAAG,KAAK;KACT,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,iBAAiB,qBA4B5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openTransportReplayer.d.ts","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openTransportReplayer.d.ts","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,MAAM,CAAC;AACpD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB,SAAK;IAC5B,eAAe,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE5B,WAAW,EAAE,WAAW;IAMpC,MAAM,CAAC,WAAW,yBAA+B;IACjD,MAAM,CAAC,IAAI,wBAAiC;IAC5C,MAAM,CAAC,MAAM;;MAeX;IACF,MAAM,CAAC,IAAI,gBAAiB,WAAW,gCAAyD;IAEhG,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc;IAEd,KAAK;IAIL;;OAEG;IACH,qBAAqB;IAIrB;;OAEG;IACH,eAAe;IAOf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BxC;AAED;;;GAGG;AACH,QAAA,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,QAAQ,iBAAiB,CAElF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -8,12 +8,34 @@ const rxjs_1 = require("rxjs");
|
|
|
8
8
|
const hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
|
|
9
9
|
const logs_1 = require("@ledgerhq/logs");
|
|
10
10
|
class TransportReplayer extends hw_transport_1.default {
|
|
11
|
+
recordStore;
|
|
12
|
+
artificialExchangeDelay = 0;
|
|
13
|
+
exchangeBlocker;
|
|
11
14
|
constructor(recordStore) {
|
|
12
15
|
super();
|
|
13
|
-
this.artificialExchangeDelay = 0;
|
|
14
16
|
this.recordStore = recordStore;
|
|
15
17
|
this.exchangeBlocker = null;
|
|
16
18
|
}
|
|
19
|
+
static isSupported = () => Promise.resolve(true);
|
|
20
|
+
static list = () => Promise.resolve([null]);
|
|
21
|
+
static listen = o => {
|
|
22
|
+
let unsubscribed;
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
if (unsubscribed)
|
|
25
|
+
return;
|
|
26
|
+
o.next({
|
|
27
|
+
type: "add",
|
|
28
|
+
descriptor: null,
|
|
29
|
+
});
|
|
30
|
+
o.complete();
|
|
31
|
+
}, 0);
|
|
32
|
+
return {
|
|
33
|
+
unsubscribe: () => {
|
|
34
|
+
unsubscribed = true;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
static open = (recordStore) => Promise.resolve(new TransportReplayer(recordStore));
|
|
17
39
|
setArtificialExchangeDelay(delay) {
|
|
18
40
|
this.artificialExchangeDelay = delay;
|
|
19
41
|
}
|
|
@@ -67,26 +89,6 @@ class TransportReplayer extends hw_transport_1.default {
|
|
|
67
89
|
}
|
|
68
90
|
}
|
|
69
91
|
exports.TransportReplayer = TransportReplayer;
|
|
70
|
-
TransportReplayer.isSupported = () => Promise.resolve(true);
|
|
71
|
-
TransportReplayer.list = () => Promise.resolve([null]);
|
|
72
|
-
TransportReplayer.listen = o => {
|
|
73
|
-
let unsubscribed;
|
|
74
|
-
setTimeout(() => {
|
|
75
|
-
if (unsubscribed)
|
|
76
|
-
return;
|
|
77
|
-
o.next({
|
|
78
|
-
type: "add",
|
|
79
|
-
descriptor: null,
|
|
80
|
-
});
|
|
81
|
-
o.complete();
|
|
82
|
-
}, 0);
|
|
83
|
-
return {
|
|
84
|
-
unsubscribe: () => {
|
|
85
|
-
unsubscribed = true;
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
TransportReplayer.open = (recordStore) => Promise.resolve(new TransportReplayer(recordStore));
|
|
90
92
|
/**
|
|
91
93
|
* create a transport replayer with a record store.
|
|
92
94
|
* @param recordStore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openTransportReplayer.js","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoD;AACpD,0EAA+C;AAC/C,yCAAqC;AAGrC,MAAa,iBAAkB,SAAQ,sBAAS;
|
|
1
|
+
{"version":3,"file":"openTransportReplayer.js","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import Transport from "@ledgerhq/hw-transport";
|
|
3
4
|
export default class MockTransport extends Transport {
|
|
4
5
|
private preRecordResponse;
|
|
5
6
|
constructor(preRecordResponse: Buffer);
|
|
6
7
|
exchange(_apdu: Buffer): Promise<Buffer>;
|
|
8
|
+
setNewResponse: (buffer: Buffer) => Buffer;
|
|
7
9
|
}
|
|
8
10
|
//# sourceMappingURL=MockTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTransport.d.ts","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockTransport.d.ts","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":";;AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAClD,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,iBAAiB,EAAE,MAAM;IAKrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxC,cAAc,WAAY,MAAM,YAAuC;CACxE"}
|
package/lib-es/MockTransport.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Transport from "@ledgerhq/hw-transport";
|
|
2
2
|
export default class MockTransport extends Transport {
|
|
3
|
+
preRecordResponse;
|
|
3
4
|
constructor(preRecordResponse) {
|
|
4
5
|
super();
|
|
5
6
|
this.preRecordResponse = preRecordResponse;
|
|
@@ -7,5 +8,6 @@ export default class MockTransport extends Transport {
|
|
|
7
8
|
exchange(_apdu) {
|
|
8
9
|
return Promise.resolve(this.preRecordResponse);
|
|
9
10
|
}
|
|
11
|
+
setNewResponse = (buffer) => (this.preRecordResponse = buffer);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=MockTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTransport.js","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"MockTransport.js","sourceRoot":"","sources":["../src/MockTransport.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAAS;IAC1C,iBAAiB,CAAS;IAElC,YAAY,iBAAyB;QACnC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;IAED,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC;CACxE"}
|
package/lib-es/RecordStore.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
/**
|
|
3
4
|
* thrown by the RecordStore.fromString parser.
|
|
4
5
|
*/
|
|
@@ -53,6 +54,10 @@ export declare class RecordStore {
|
|
|
53
54
|
* check if there is no more APDUs to replay
|
|
54
55
|
*/
|
|
55
56
|
isEmpty: () => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Clear store history
|
|
59
|
+
*/
|
|
60
|
+
clearStore: () => never[];
|
|
56
61
|
/**
|
|
57
62
|
* Record an APDU (used by createTransportRecorder)
|
|
58
63
|
* @param {Buffer} apdu input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordStore.d.ts","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecordStore.d.ts","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,QAIxD;yBAJe,yBAAyB;;;AAQzC;;GAEG;AACH,wBAAgB,qBAAqB,SAIpC;yBAJe,qBAAqB;;;AAQrC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAM/E;yBANe,oBAAoB;;;AAUpC;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI/D;yBAJe,wBAAwB;;;AAOxC,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAMF;;;GAGG;AACH,qBAAa,WAAW;IACtB,MAAM,SAAK;IACX,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,kBAAkB,CAAC;gBAEb,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAKhF;;OAEG;IACH,OAAO,QAAO,OAAO,CAA4B;IAEjD;;OAEG;IACH,UAAU,gBAA2B;IAErC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/C;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA0BpC;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,WAAW;CAmChF"}
|
package/lib-es/RecordStore.js
CHANGED
|
@@ -45,15 +45,21 @@ const defaultOpts = {
|
|
|
45
45
|
* It is both used by replayer and recorder transports and is the basic for writing Ledger tests with a mock device.
|
|
46
46
|
*/
|
|
47
47
|
export class RecordStore {
|
|
48
|
+
passed = 0;
|
|
49
|
+
queue;
|
|
50
|
+
opts;
|
|
48
51
|
constructor(queue, opts) {
|
|
49
|
-
this.passed = 0;
|
|
50
|
-
/**
|
|
51
|
-
* check if there is no more APDUs to replay
|
|
52
|
-
*/
|
|
53
|
-
this.isEmpty = () => this.queue.length === 0;
|
|
54
52
|
this.queue = queue || [];
|
|
55
|
-
this.opts =
|
|
53
|
+
this.opts = { ...defaultOpts, ...opts };
|
|
56
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* check if there is no more APDUs to replay
|
|
57
|
+
*/
|
|
58
|
+
isEmpty = () => this.queue.length === 0;
|
|
59
|
+
/**
|
|
60
|
+
* Clear store history
|
|
61
|
+
*/
|
|
62
|
+
clearStore = () => (this.queue = []);
|
|
57
63
|
/**
|
|
58
64
|
* Record an APDU (used by createTransportRecorder)
|
|
59
65
|
* @param {Buffer} apdu input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordStore.js","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,yBAAyB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACpC,IAAI,CAAC,OAAO,GAAG,6BAA6B,CAAC;IAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,qBAAqB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,GAAW,EAAE,IAAY;IAC9E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACnC,IAAI,CAAC,OAAO,GAAG,6BAA6B,IAAI,cAAc,QAAQ,SAAS,GAAG,EAAE,CAAC;IACrF,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,oBAAoB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACvC,IAAI,CAAC,OAAO,GAAG,wCAAwC,QAAQ,EAAE,CAAC;IAClE,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;AACjC,CAAC;AAED,wBAAwB,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC;AAejD,MAAM,WAAW,GAAuB;IACtC,mBAAmB,EAAE,KAAK;IAC1B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"RecordStore.js","sourceRoot":"","sources":["../src/RecordStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,18 @@ import Transport from "@ledgerhq/hw-transport";
|
|
|
6
6
|
*/
|
|
7
7
|
const createTransportRecorder = (DecoratedTransport, recordStore) => {
|
|
8
8
|
class TransportRecorder extends Transport {
|
|
9
|
+
static recordStore = recordStore;
|
|
10
|
+
static isSupported = DecoratedTransport.constructor.isSupported;
|
|
11
|
+
static list = DecoratedTransport.constructor.list;
|
|
12
|
+
static listen = DecoratedTransport.constructor.listen;
|
|
13
|
+
static open = (descriptor, ...args) => DecoratedTransport.constructor
|
|
14
|
+
.open(descriptor, ...args)
|
|
15
|
+
.then(t => new TransportRecorder(t));
|
|
9
16
|
setScrambleKey() { }
|
|
10
17
|
close() {
|
|
11
18
|
return this.transport.close();
|
|
12
19
|
}
|
|
20
|
+
transport;
|
|
13
21
|
constructor(t) {
|
|
14
22
|
super();
|
|
15
23
|
this.transport = t;
|
|
@@ -22,13 +30,6 @@ const createTransportRecorder = (DecoratedTransport, recordStore) => {
|
|
|
22
30
|
return output;
|
|
23
31
|
}
|
|
24
32
|
}
|
|
25
|
-
TransportRecorder.recordStore = recordStore;
|
|
26
|
-
TransportRecorder.isSupported = DecoratedTransport.constructor.isSupported;
|
|
27
|
-
TransportRecorder.list = DecoratedTransport.constructor.list;
|
|
28
|
-
TransportRecorder.listen = DecoratedTransport.constructor.listen;
|
|
29
|
-
TransportRecorder.open = (descriptor, ...args) => DecoratedTransport.constructor
|
|
30
|
-
.open(descriptor, ...args)
|
|
31
|
-
.then(t => new TransportRecorder(t));
|
|
32
33
|
return TransportRecorder;
|
|
33
34
|
};
|
|
34
35
|
export default createTransportRecorder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTransportRecorder.js","sourceRoot":"","sources":["../src/createTransportRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,kBAA6B,EAC7B,WAAwB,EACF,EAAE;IACxB,MAAM,iBAAkB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"createTransportRecorder.js","sourceRoot":"","sources":["../src/createTransportRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C;;;;GAIG;AACH,MAAM,uBAAuB,GAAG,CAC9B,kBAA6B,EAC7B,WAAwB,EACF,EAAE;IACxB,MAAM,iBAAkB,SAAQ,SAAS;QACvC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACjC,MAAM,CAAC,WAAW,GAAI,kBAAkB,CAAC,WAAgC,CAAC,WAAW,CAAC;QACtF,MAAM,CAAC,IAAI,GAAI,kBAAkB,CAAC,WAAgC,CAAC,IAAI,CAAC;QACxE,MAAM,CAAC,MAAM,GAAI,kBAAkB,CAAC,WAAgC,CAAC,MAAM,CAAC;QAC5E,MAAM,CAAC,IAAI,GAAG,CAAC,UAAe,EAAE,GAAG,IAAI,EAAE,EAAE,CACxC,kBAAkB,CAAC,WAAgC;aACjD,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,cAAc,KAAI,CAAC;QAEnB,KAAK;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;QAED,SAAS,CAAY;QAErB,YAAY,CAAY;YACtB,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChB,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;;IAGH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -7,6 +7,26 @@ import { log } from "@ledgerhq/logs";
|
|
|
7
7
|
const createTransportReplayer = (recordStore) => {
|
|
8
8
|
console.warn("TO BE DEPRECATED: use openTransportReplayer instead");
|
|
9
9
|
class TransportReplayer extends Transport {
|
|
10
|
+
static isSupported = () => Promise.resolve(true);
|
|
11
|
+
static list = () => Promise.resolve([null]);
|
|
12
|
+
static listen = o => {
|
|
13
|
+
let unsubscribed;
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
if (unsubscribed)
|
|
16
|
+
return;
|
|
17
|
+
o.next({
|
|
18
|
+
type: "add",
|
|
19
|
+
descriptor: null,
|
|
20
|
+
});
|
|
21
|
+
o.complete();
|
|
22
|
+
}, 0);
|
|
23
|
+
return {
|
|
24
|
+
unsubscribe: () => {
|
|
25
|
+
unsubscribed = true;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
static open = () => Promise.resolve(new TransportReplayer());
|
|
10
30
|
setScrambleKey() { }
|
|
11
31
|
close() {
|
|
12
32
|
return Promise.resolve();
|
|
@@ -24,26 +44,6 @@ const createTransportReplayer = (recordStore) => {
|
|
|
24
44
|
}
|
|
25
45
|
}
|
|
26
46
|
}
|
|
27
|
-
TransportReplayer.isSupported = () => Promise.resolve(true);
|
|
28
|
-
TransportReplayer.list = () => Promise.resolve([null]);
|
|
29
|
-
TransportReplayer.listen = o => {
|
|
30
|
-
let unsubscribed;
|
|
31
|
-
setTimeout(() => {
|
|
32
|
-
if (unsubscribed)
|
|
33
|
-
return;
|
|
34
|
-
o.next({
|
|
35
|
-
type: "add",
|
|
36
|
-
descriptor: null,
|
|
37
|
-
});
|
|
38
|
-
o.complete();
|
|
39
|
-
}, 0);
|
|
40
|
-
return {
|
|
41
|
-
unsubscribe: () => {
|
|
42
|
-
unsubscribed = true;
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
TransportReplayer.open = () => Promise.resolve(new TransportReplayer());
|
|
47
47
|
return TransportReplayer;
|
|
48
48
|
};
|
|
49
49
|
export default createTransportReplayer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTransportReplayer.js","sourceRoot":"","sources":["../src/createTransportReplayer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAuB,EAAE;IAChF,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACpE,MAAM,iBAAkB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"createTransportReplayer.js","sourceRoot":"","sources":["../src/createTransportReplayer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAuB,EAAE;IAChF,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACpE,MAAM,iBAAkB,SAAQ,SAAS;QACvC,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YAClB,IAAI,YAAY,CAAC;YACjB,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,YAAY;oBAAE,OAAO;gBACzB,CAAC,CAAC,IAAI,CAAC;oBACL,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,IAAI;iBACjB,CAAC,CAAC;gBACH,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,OAAO;gBACL,WAAW,EAAE,GAAG,EAAE;oBAChB,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;QACF,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAE7D,cAAc,KAAI,CAAC;QAEnB,KAAK;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAElC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAChD,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;;IAGH,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -20,6 +20,32 @@ import EventEmitter from "events";
|
|
|
20
20
|
* @return A duck-typed Transport
|
|
21
21
|
*/
|
|
22
22
|
export const aTransportBuilder = (props) => {
|
|
23
|
-
return
|
|
23
|
+
return {
|
|
24
|
+
exchangeTimeout: 30000,
|
|
25
|
+
unresponsiveTimeout: 15000,
|
|
26
|
+
deviceModel: null,
|
|
27
|
+
tracer: new LocalTracer("mockedTransport", {}),
|
|
28
|
+
_events: new EventEmitter(),
|
|
29
|
+
exchangeBusyPromise: null,
|
|
30
|
+
_appAPIlock: null,
|
|
31
|
+
exchange: jest.fn(),
|
|
32
|
+
exchangeBulk: jest.fn(),
|
|
33
|
+
setScrambleKey: jest.fn(),
|
|
34
|
+
close: jest.fn(),
|
|
35
|
+
on: jest.fn(),
|
|
36
|
+
off: jest.fn(),
|
|
37
|
+
emit: jest.fn(),
|
|
38
|
+
setDebugMode: jest.fn(),
|
|
39
|
+
setExchangeTimeout: jest.fn(),
|
|
40
|
+
setExchangeUnresponsiveTimeout: jest.fn(),
|
|
41
|
+
send: jest.fn(),
|
|
42
|
+
exchangeAtomicImpl: jest.fn(),
|
|
43
|
+
decorateAppAPIMethods: jest.fn(),
|
|
44
|
+
decorateAppAPIMethod: jest.fn(),
|
|
45
|
+
setTraceContext: jest.fn(),
|
|
46
|
+
updateTraceContext: jest.fn(),
|
|
47
|
+
getTraceContext: jest.fn(),
|
|
48
|
+
...props,
|
|
49
|
+
};
|
|
24
50
|
};
|
|
25
51
|
//# sourceMappingURL=aTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aTransport.js","sourceRoot":"","sources":["../../src/fixtures/aTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAa,EAAE;IACzE,
|
|
1
|
+
{"version":3,"file":"aTransport.js","sourceRoot":"","sources":["../../src/fixtures/aTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAa,EAAE;IACzE,OAAO;QACL,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,YAAY,EAAE;QAC3B,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QACvB,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QAChB,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;QACb,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE;QACvB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,8BAA8B,EAAE,IAAI,CAAC,EAAE,EAAE;QACzC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QACf,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,qBAAqB,EAAE,IAAI,CAAC,EAAE,EAAE;QAChC,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC/B,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;QAC7B,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;QAC1B,GAAG,KAAK;KACT,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openTransportReplayer.d.ts","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"openTransportReplayer.d.ts","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,MAAM,CAAC;AACpD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,WAAW,EAAE,WAAW,CAAC;IACzB,uBAAuB,SAAK;IAC5B,eAAe,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAE5B,WAAW,EAAE,WAAW;IAMpC,MAAM,CAAC,WAAW,yBAA+B;IACjD,MAAM,CAAC,IAAI,wBAAiC;IAC5C,MAAM,CAAC,MAAM;;MAeX;IACF,MAAM,CAAC,IAAI,gBAAiB,WAAW,gCAAyD;IAEhG,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C,cAAc;IAEd,KAAK;IAIL;;OAEG;IACH,qBAAqB;IAIrB;;OAEG;IACH,eAAe;IAOf,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BxC;AAED;;;GAGG;AACH,QAAA,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,QAAQ,iBAAiB,CAElF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -2,12 +2,34 @@ import { Subject, firstValueFrom, map } from "rxjs";
|
|
|
2
2
|
import Transport from "@ledgerhq/hw-transport";
|
|
3
3
|
import { log } from "@ledgerhq/logs";
|
|
4
4
|
export class TransportReplayer extends Transport {
|
|
5
|
+
recordStore;
|
|
6
|
+
artificialExchangeDelay = 0;
|
|
7
|
+
exchangeBlocker;
|
|
5
8
|
constructor(recordStore) {
|
|
6
9
|
super();
|
|
7
|
-
this.artificialExchangeDelay = 0;
|
|
8
10
|
this.recordStore = recordStore;
|
|
9
11
|
this.exchangeBlocker = null;
|
|
10
12
|
}
|
|
13
|
+
static isSupported = () => Promise.resolve(true);
|
|
14
|
+
static list = () => Promise.resolve([null]);
|
|
15
|
+
static listen = o => {
|
|
16
|
+
let unsubscribed;
|
|
17
|
+
setTimeout(() => {
|
|
18
|
+
if (unsubscribed)
|
|
19
|
+
return;
|
|
20
|
+
o.next({
|
|
21
|
+
type: "add",
|
|
22
|
+
descriptor: null,
|
|
23
|
+
});
|
|
24
|
+
o.complete();
|
|
25
|
+
}, 0);
|
|
26
|
+
return {
|
|
27
|
+
unsubscribe: () => {
|
|
28
|
+
unsubscribed = true;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
static open = (recordStore) => Promise.resolve(new TransportReplayer(recordStore));
|
|
11
33
|
setArtificialExchangeDelay(delay) {
|
|
12
34
|
this.artificialExchangeDelay = delay;
|
|
13
35
|
}
|
|
@@ -60,26 +82,6 @@ export class TransportReplayer extends Transport {
|
|
|
60
82
|
}
|
|
61
83
|
}
|
|
62
84
|
}
|
|
63
|
-
TransportReplayer.isSupported = () => Promise.resolve(true);
|
|
64
|
-
TransportReplayer.list = () => Promise.resolve([null]);
|
|
65
|
-
TransportReplayer.listen = o => {
|
|
66
|
-
let unsubscribed;
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
if (unsubscribed)
|
|
69
|
-
return;
|
|
70
|
-
o.next({
|
|
71
|
-
type: "add",
|
|
72
|
-
descriptor: null,
|
|
73
|
-
});
|
|
74
|
-
o.complete();
|
|
75
|
-
}, 0);
|
|
76
|
-
return {
|
|
77
|
-
unsubscribe: () => {
|
|
78
|
-
unsubscribed = true;
|
|
79
|
-
},
|
|
80
|
-
};
|
|
81
|
-
};
|
|
82
|
-
TransportReplayer.open = (recordStore) => Promise.resolve(new TransportReplayer(recordStore));
|
|
83
85
|
/**
|
|
84
86
|
* create a transport replayer with a record store.
|
|
85
87
|
* @param recordStore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openTransportReplayer.js","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAGrC,MAAM,OAAO,iBAAkB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"openTransportReplayer.js","sourceRoot":"","sources":["../src/openTransportReplayer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-transport-mocker",
|
|
3
|
-
"version": "6.29.
|
|
3
|
+
"version": "6.29.5-next.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet mocker utilities used for tests",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
"license": "Apache-2.0",
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"rxjs": "^7.8.1",
|
|
29
|
-
"@ledgerhq/hw-transport": "^6.31.
|
|
29
|
+
"@ledgerhq/hw-transport": "^6.31.5-next.0",
|
|
30
30
|
"@ledgerhq/logs": "^6.12.0"
|
|
31
31
|
},
|
|
32
32
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/jest": "^29.5.10",
|
|
35
|
-
"@types/node": "^
|
|
35
|
+
"@types/node": "^22.10.10",
|
|
36
36
|
"documentation": "14.0.2",
|
|
37
37
|
"jest": "^29.7.0",
|
|
38
38
|
"rimraf": "^4.4.1",
|
|
@@ -42,9 +42,10 @@
|
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"clean": "rimraf lib lib-es",
|
|
45
|
-
"build": "tsc && tsc -m
|
|
45
|
+
"build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
|
|
46
46
|
"prewatch": "pnpm build",
|
|
47
47
|
"watch": "tsc --watch",
|
|
48
|
+
"watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
|
|
48
49
|
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
|
|
49
50
|
"lint:fix": "pnpm lint --fix",
|
|
50
51
|
"test": "jest",
|
package/src/MockTransport.ts
CHANGED
package/src/RecordStore.ts
CHANGED
|
@@ -81,6 +81,11 @@ export class RecordStore {
|
|
|
81
81
|
*/
|
|
82
82
|
isEmpty = (): boolean => this.queue.length === 0;
|
|
83
83
|
|
|
84
|
+
/**
|
|
85
|
+
* Clear store history
|
|
86
|
+
*/
|
|
87
|
+
clearStore = () => (this.queue = []);
|
|
88
|
+
|
|
84
89
|
/**
|
|
85
90
|
* Record an APDU (used by createTransportRecorder)
|
|
86
91
|
* @param {Buffer} apdu input
|