@ledgerhq/devices 8.6.1 → 8.7.0-nightly.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.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +13 -0
  3. package/lib/index.js +1 -1
  4. package/lib/index.js.map +1 -1
  5. package/lib-es/index.js +1 -1
  6. package/lib-es/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/index.ts +1 -1
  9. package/lib/ble/receiveAPDU.test.d.ts +0 -2
  10. package/lib/ble/receiveAPDU.test.d.ts.map +0 -1
  11. package/lib/ble/receiveAPDU.test.js +0 -115
  12. package/lib/ble/receiveAPDU.test.js.map +0 -1
  13. package/lib/ble/sendAPDU.test.d.ts +0 -2
  14. package/lib/ble/sendAPDU.test.d.ts.map +0 -1
  15. package/lib/ble/sendAPDU.test.js +0 -73
  16. package/lib/ble/sendAPDU.test.js.map +0 -1
  17. package/lib/helpers.test.d.ts +0 -2
  18. package/lib/helpers.test.d.ts.map +0 -1
  19. package/lib/helpers.test.js +0 -39
  20. package/lib/helpers.test.js.map +0 -1
  21. package/lib/hid-framing.test.d.ts +0 -2
  22. package/lib/hid-framing.test.d.ts.map +0 -1
  23. package/lib/hid-framing.test.js +0 -139
  24. package/lib/hid-framing.test.js.map +0 -1
  25. package/lib-es/ble/receiveAPDU.test.d.ts +0 -2
  26. package/lib-es/ble/receiveAPDU.test.d.ts.map +0 -1
  27. package/lib-es/ble/receiveAPDU.test.js +0 -113
  28. package/lib-es/ble/receiveAPDU.test.js.map +0 -1
  29. package/lib-es/ble/sendAPDU.test.d.ts +0 -2
  30. package/lib-es/ble/sendAPDU.test.d.ts.map +0 -1
  31. package/lib-es/ble/sendAPDU.test.js +0 -71
  32. package/lib-es/ble/sendAPDU.test.js.map +0 -1
  33. package/lib-es/helpers.test.d.ts +0 -2
  34. package/lib-es/helpers.test.d.ts.map +0 -1
  35. package/lib-es/helpers.test.js +0 -37
  36. package/lib-es/helpers.test.js.map +0 -1
  37. package/lib-es/hid-framing.test.d.ts +0 -2
  38. package/lib-es/hid-framing.test.d.ts.map +0 -1
  39. package/lib-es/hid-framing.test.js +0 -134
  40. package/lib-es/hid-framing.test.js.map +0 -1
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/devices@8.6.1 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/devices
2
+ > @ledgerhq/devices@8.6.2-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/devices
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @ledgerhq/devices
2
2
 
3
+ ## 8.7.0-nightly.1
4
+
5
+ ### Minor Changes
6
+
7
+ - [#12449](https://github.com/LedgerHQ/ledger-live/pull/12449) [`c1a4bfd`](https://github.com/LedgerHQ/ledger-live/commit/c1a4bfd34b46c6b6587d247673cadb3c078deb1d) Thanks [@jiyuzhuang](https://github.com/jiyuzhuang)! - Update Apex assets
8
+
9
+ ## 8.6.2-nightly.0
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [[`759064d`](https://github.com/LedgerHQ/ledger-live/commit/759064d4815c636af2d73ba548a85b4f53e7b491)]:
14
+ - @ledgerhq/errors@6.27.0-nightly.0
15
+
3
16
  ## 8.6.1
4
17
 
5
18
  ### Patch Changes
package/lib/index.js CHANGED
@@ -93,7 +93,7 @@ const devices = {
93
93
  },
94
94
  [DeviceModelId.apex]: {
95
95
  id: DeviceModelId.apex,
96
- productName: "Ledger Apex",
96
+ productName: "Ledger Nano Gen5",
97
97
  productIdMM: 0x80,
98
98
  legacyUsbProductId: 0x0008,
99
99
  usbOnly: false,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib-es/index.js CHANGED
@@ -87,7 +87,7 @@ const devices = {
87
87
  },
88
88
  [DeviceModelId.apex]: {
89
89
  id: DeviceModelId.apex,
90
- productName: "Ledger Apex",
90
+ productName: "Ledger Nano Gen5",
91
91
  productIdMM: 0x80,
92
92
  legacyUsbProductId: 0x0008,
93
93
  usbOnly: false,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/devices",
3
- "version": "8.6.1",
3
+ "version": "8.7.0-nightly.1",
4
4
  "description": "Ledger devices",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "rxjs": "^7.8.1",
57
57
  "semver": "^7.3.5",
58
- "@ledgerhq/errors": "^6.26.0",
58
+ "@ledgerhq/errors": "^6.27.0-nightly.0",
59
59
  "@ledgerhq/logs": "^6.13.0"
60
60
  },
61
61
  "devDependencies": {
package/src/index.ts CHANGED
@@ -90,7 +90,7 @@ const devices: { [key in DeviceModelId]: DeviceModel } = {
90
90
  },
91
91
  [DeviceModelId.apex]: {
92
92
  id: DeviceModelId.apex,
93
- productName: "Ledger Apex",
93
+ productName: "Ledger Nano Gen5",
94
94
  productIdMM: 0x80,
95
95
  legacyUsbProductId: 0x0008,
96
96
  usbOnly: false,
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=receiveAPDU.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiveAPDU.test.d.ts","sourceRoot":"","sources":["../../src/ble/receiveAPDU.test.ts"],"names":[],"mappings":""}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const rxjs_1 = require("rxjs");
4
- const receiveAPDU_1 = require("./receiveAPDU");
5
- describe("receiveAPDU", () => {
6
- const tests = [
7
- // 1. Response from a get version
8
- {
9
- input: [
10
- Buffer.from([
11
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
12
- ...[
13
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
14
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
15
- 0x00, 0x90, 0x00,
16
- ],
17
- // No 0-padding
18
- ]),
19
- ],
20
- expectedOutput: Buffer.from([
21
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
22
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
23
- 0x00,
24
- ]),
25
- },
26
- // 2. Response from a get device (long) name
27
- {
28
- input: [
29
- // 1st frame
30
- Buffer.from([
31
- ...[0x05, 0, 0, 0, 0x42], // Tag, frame id and message length (2 bytes)
32
- ...[
33
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
34
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
35
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
36
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
37
- 0x76, 0x65, 0x72,
38
- ],
39
- ]),
40
- // 2nd frame
41
- Buffer.from([
42
- ...[0x05, 0, 0x01], // Tag and frame id
43
- ...[0x79, 0x42, 0x69, 0x74, 0x65, 0x90, 0x00],
44
- // No 0-padding
45
- ]),
46
- ],
47
- expectedOutput: Buffer.from([
48
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75,
49
- 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65,
50
- 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73,
51
- 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,
52
- 0x42, 0x69, 0x74, 0x65, 0x90, 0x00,
53
- ]),
54
- },
55
- // 3. A device that went rogue and is sending multiple time the same response, while only 1 frame is expected
56
- {
57
- input: [
58
- Buffer.from([
59
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
60
- ...[
61
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
62
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
63
- 0x00, 0x90, 0x00,
64
- ],
65
- // No 0-padding
66
- ]),
67
- Buffer.from([
68
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
69
- ...[
70
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
71
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
72
- 0x00, 0x90, 0x00,
73
- ],
74
- // No 0-padding
75
- ]),
76
- Buffer.from([
77
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
78
- ...[
79
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
80
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
81
- 0x00, 0x90, 0x00,
82
- ],
83
- // No 0-padding
84
- ]),
85
- ],
86
- // Only 1 response should be recorded, as only 1 frame was set in the 1st frame of the response
87
- expectedOutput: Buffer.from([
88
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
89
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
90
- 0x00,
91
- ]),
92
- },
93
- ];
94
- tests.forEach(({ input, expectedOutput }) => {
95
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, done => {
96
- const rawStream = (0, rxjs_1.from)(input);
97
- (0, receiveAPDU_1.receiveAPDU)(rawStream).subscribe({
98
- error: error => {
99
- done(`An error should not occur: ${error}`);
100
- },
101
- next: result => {
102
- try {
103
- expect(result).toEqual(expectedOutput);
104
- done();
105
- }
106
- catch (error) {
107
- done(error);
108
- return;
109
- }
110
- },
111
- });
112
- });
113
- });
114
- });
115
- //# sourceMappingURL=receiveAPDU.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiveAPDU.test.js","sourceRoot":"","sources":["../../src/ble/receiveAPDU.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sendAPDU.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendAPDU.test.d.ts","sourceRoot":"","sources":["../../src/ble/sendAPDU.test.ts"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const sendAPDU_1 = require("./sendAPDU");
4
- describe("sendAPDU", () => {
5
- const mtu = 64; // Arbitrary chosen MTU, in bytes, so we can compare those tests with the HID framing ones
6
- const tests = [
7
- {
8
- // A get version
9
- input: { apdu: Buffer.from([0xe0, 0x01, 0, 0, 0]) },
10
- expectedOutput: [
11
- // No 0-padding is needed
12
- Buffer.from([0x05, 0, 0, 0, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00]),
13
- ],
14
- },
15
- {
16
- // A (long) edit device name
17
- input: {
18
- apdu: Buffer.from([
19
- 0xe0, 0xd4, 0, 0, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69,
20
- 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a,
21
- 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
22
- 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
23
- 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65,
24
- ]),
25
- },
26
- expectedOutput: [
27
- // Frame 1
28
- Buffer.from([
29
- ...[0x05, 0, 0, 0, 0x45, 0xe0, 0xd4, 0x00, 0x00, 0x40], // Tag, frame id, total length, and APDU until the Data part
30
- ...[
31
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
32
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
33
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
34
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49,
35
- ], // First part of the new device name
36
- ]),
37
- // Frame 2
38
- Buffer.from([
39
- ...[0x05, 0, 0x01], // Tag and frame id
40
- ...[0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65], // Second part of the new device name
41
- // No 0-padding is needed
42
- ]),
43
- ],
44
- },
45
- ];
46
- tests.forEach(({ input, expectedOutput }) => {
47
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, done => {
48
- let i = 0;
49
- // Compares each frame given to the `write` function to the expected frame
50
- const write = (frame) => {
51
- expect(frame).toEqual(expectedOutput[i]);
52
- i++;
53
- return Promise.resolve();
54
- };
55
- (0, sendAPDU_1.sendAPDU)(write, input.apdu, mtu).subscribe({
56
- error: error => {
57
- done(`An error should not occur: ${error}`);
58
- },
59
- complete: () => {
60
- try {
61
- expect(i).toBe(expectedOutput.length);
62
- }
63
- catch (error) {
64
- done(error);
65
- return;
66
- }
67
- done();
68
- },
69
- });
70
- });
71
- });
72
- });
73
- //# sourceMappingURL=sendAPDU.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendAPDU.test.js","sourceRoot":"","sources":["../../src/ble/sendAPDU.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=helpers.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../src/helpers.test.ts"],"names":[],"mappings":""}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const _1 = require(".");
4
- const helpers_1 = require("./helpers");
5
- const validDeviceModelsIds = ["nanoS", "nanoX", "blue", "nanoSP", "stax", "europa"];
6
- const invalidDeviceModelsIds = ["does-not-exist", "", null, undefined];
7
- describe("isDeviceModelId", () => {
8
- validDeviceModelsIds.forEach(potentialModelId => {
9
- test(`Input: ${potentialModelId} -> Expected output: true`, () => {
10
- const result = (0, helpers_1.isDeviceModelId)(potentialModelId);
11
- expect(result).toEqual(true);
12
- });
13
- });
14
- invalidDeviceModelsIds.forEach(potentialModelId => {
15
- test(`Input: ${potentialModelId} -> Expected output: false`, () => {
16
- const result = (0, helpers_1.isDeviceModelId)(potentialModelId);
17
- expect(result).toEqual(false);
18
- });
19
- });
20
- });
21
- describe("stringToDeviceModelId", () => {
22
- const tests = [
23
- {
24
- input: ["stax", _1.DeviceModelId.nanoSP],
25
- expectedOutput: _1.DeviceModelId.stax,
26
- },
27
- {
28
- input: ["does-not-exist", _1.DeviceModelId.nanoSP],
29
- expectedOutput: _1.DeviceModelId.nanoSP,
30
- },
31
- ];
32
- tests.forEach(({ input, expectedOutput }) => {
33
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${expectedOutput}`, () => {
34
- const result = (0, helpers_1.stringToDeviceModelId)(...input);
35
- expect(result).toEqual(expectedOutput);
36
- });
37
- });
38
- });
39
- //# sourceMappingURL=helpers.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../src/helpers.test.ts"],"names":[],"mappings":";;AAAA,wBAAkC;AAClC,uCAAmE;AAEnE,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpF,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAEvE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC9C,IAAI,CAAC,UAAU,gBAAgB,2BAA2B,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAChD,IAAI,CAAC,UAAU,gBAAgB,4BAA4B,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,KAAK,GAAW;QACpB;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,gBAAa,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,gBAAa,CAAC,IAAI;SACnC;QACD;YACE,KAAK,EAAE,CAAC,gBAAgB,EAAE,gBAAa,CAAC,MAAM,CAAC;YAC/C,cAAc,EAAE,gBAAa,CAAC,MAAM;SACrC;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,cAAc,EAAE,EAAE,GAAG,EAAE;YACjF,MAAM,MAAM,GAAG,IAAA,+BAAqB,EAAC,GAAG,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hid-framing.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hid-framing.test.d.ts","sourceRoot":"","sources":["../src/hid-framing.test.ts"],"names":[],"mappings":""}
@@ -1,139 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const hid_framing_1 = __importDefault(require("./hid-framing"));
7
- describe("createHIDframing.makeBlocks", () => {
8
- const channel = Math.floor(Math.random() * 0xffff);
9
- const channelBytes = [channel >> 8, channel & 0x00ff];
10
- const packetSize = 64;
11
- const hidFramingHelper = (0, hid_framing_1.default)(channel, packetSize);
12
- const tests = [
13
- {
14
- // A get version
15
- input: { apdu: Buffer.from([0xe0, 0x01, 0, 0, 0]) },
16
- expectedOutput: [
17
- Buffer.from([
18
- ...channelBytes,
19
- ...[0x05, 0, 0, 0, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00],
20
- ...Buffer.alloc(52, 0), // 0-padding
21
- ]),
22
- ],
23
- },
24
- {
25
- // A (long) edit device name
26
- input: {
27
- apdu: Buffer.from([
28
- 0xe0, 0xd4, 0, 0, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69,
29
- 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a,
30
- 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
31
- 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
32
- 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65,
33
- ]),
34
- },
35
- expectedOutput: [
36
- // Frame 1
37
- Buffer.from([
38
- ...channelBytes,
39
- ...[0x05, 0, 0, 0, 0x45, 0xe0, 0xd4, 0x00, 0x00, 0x40], // Tag, frame id, total length, and APDU until the Data part
40
- ...[
41
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
42
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
43
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
44
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e,
45
- ], // First part of the new device name
46
- ]),
47
- // Frame 2
48
- Buffer.from([
49
- ...channelBytes,
50
- ...[0x05, 0, 0x01], // Tag and frame id
51
- ...[0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65], // Second part of the new device name
52
- ...Buffer.alloc(47, 0), // 0-padding
53
- ]),
54
- ],
55
- },
56
- ];
57
- tests.forEach(({ input, expectedOutput }) => {
58
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, () => {
59
- const result = hidFramingHelper.makeBlocks(input.apdu);
60
- expect(result).toEqual(expectedOutput);
61
- });
62
- });
63
- });
64
- describe("createHIDframing.reduceResponse and createHIDframing.getReducedResult", () => {
65
- const channel = Math.floor(Math.random() * 0xffff);
66
- const channelBytes = [channel >> 8, channel & 0x00ff];
67
- const packetSize = 64;
68
- const hidFramingHelper = (0, hid_framing_1.default)(channel, packetSize);
69
- const tests = [
70
- {
71
- // Response from a get version
72
- input: [
73
- {
74
- chunk: Buffer.from([
75
- ...channelBytes,
76
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
77
- ...[
78
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
79
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
80
- 0x00, 0x90, 0x00,
81
- ],
82
- ...Buffer.alloc(26, 0), // 0-padding
83
- ]),
84
- },
85
- ],
86
- expectedOutput: Buffer.from([
87
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
88
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
89
- 0x00,
90
- ]),
91
- },
92
- {
93
- // Response from a get device (long) name
94
- input: [
95
- // 1st frame
96
- {
97
- chunk: Buffer.from([
98
- ...channelBytes,
99
- ...[0x05, 0, 0, 0, 0x42], // Tag, frame id and message length (2 bytes)
100
- ...[
101
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
102
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
103
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
104
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
105
- 0x76,
106
- ],
107
- ]),
108
- },
109
- // 2nd frame
110
- {
111
- chunk: Buffer.from([
112
- ...channelBytes,
113
- ...[0x05, 0, 0x01], // Tag and frame id
114
- ...[0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65, 0x90, 0x00],
115
- ...Buffer.alloc(50, 0), // 0-padding
116
- ]),
117
- },
118
- ],
119
- expectedOutput: Buffer.from([
120
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75,
121
- 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65,
122
- 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73,
123
- 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,
124
- 0x42, 0x69, 0x74, 0x65, 0x90, 0x00,
125
- ]),
126
- },
127
- ];
128
- tests.forEach(({ input, expectedOutput }) => {
129
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, () => {
130
- let responseAccumulator = null;
131
- for (const currentFrame of input) {
132
- responseAccumulator = hidFramingHelper.reduceResponse(responseAccumulator, currentFrame.chunk);
133
- }
134
- const result = hidFramingHelper.getReducedResult(responseAccumulator);
135
- expect(result).toEqual(expectedOutput);
136
- });
137
- });
138
- });
139
- //# sourceMappingURL=hid-framing.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hid-framing.test.js","sourceRoot":"","sources":["../src/hid-framing.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=receiveAPDU.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiveAPDU.test.d.ts","sourceRoot":"","sources":["../../src/ble/receiveAPDU.test.ts"],"names":[],"mappings":""}
@@ -1,113 +0,0 @@
1
- import { from } from "rxjs";
2
- import { receiveAPDU } from "./receiveAPDU";
3
- describe("receiveAPDU", () => {
4
- const tests = [
5
- // 1. Response from a get version
6
- {
7
- input: [
8
- Buffer.from([
9
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
10
- ...[
11
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
12
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
13
- 0x00, 0x90, 0x00,
14
- ],
15
- // No 0-padding
16
- ]),
17
- ],
18
- expectedOutput: Buffer.from([
19
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
20
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
21
- 0x00,
22
- ]),
23
- },
24
- // 2. Response from a get device (long) name
25
- {
26
- input: [
27
- // 1st frame
28
- Buffer.from([
29
- ...[0x05, 0, 0, 0, 0x42], // Tag, frame id and message length (2 bytes)
30
- ...[
31
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
32
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
33
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
34
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
35
- 0x76, 0x65, 0x72,
36
- ],
37
- ]),
38
- // 2nd frame
39
- Buffer.from([
40
- ...[0x05, 0, 0x01], // Tag and frame id
41
- ...[0x79, 0x42, 0x69, 0x74, 0x65, 0x90, 0x00],
42
- // No 0-padding
43
- ]),
44
- ],
45
- expectedOutput: Buffer.from([
46
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75,
47
- 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65,
48
- 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73,
49
- 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,
50
- 0x42, 0x69, 0x74, 0x65, 0x90, 0x00,
51
- ]),
52
- },
53
- // 3. A device that went rogue and is sending multiple time the same response, while only 1 frame is expected
54
- {
55
- input: [
56
- Buffer.from([
57
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
58
- ...[
59
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
60
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
61
- 0x00, 0x90, 0x00,
62
- ],
63
- // No 0-padding
64
- ]),
65
- Buffer.from([
66
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
67
- ...[
68
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
69
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
70
- 0x00, 0x90, 0x00,
71
- ],
72
- // No 0-padding
73
- ]),
74
- Buffer.from([
75
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
76
- ...[
77
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
78
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
79
- 0x00, 0x90, 0x00,
80
- ],
81
- // No 0-padding
82
- ]),
83
- ],
84
- // Only 1 response should be recorded, as only 1 frame was set in the 1st frame of the response
85
- expectedOutput: Buffer.from([
86
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
87
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
88
- 0x00,
89
- ]),
90
- },
91
- ];
92
- tests.forEach(({ input, expectedOutput }) => {
93
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, done => {
94
- const rawStream = from(input);
95
- receiveAPDU(rawStream).subscribe({
96
- error: error => {
97
- done(`An error should not occur: ${error}`);
98
- },
99
- next: result => {
100
- try {
101
- expect(result).toEqual(expectedOutput);
102
- done();
103
- }
104
- catch (error) {
105
- done(error);
106
- return;
107
- }
108
- },
109
- });
110
- });
111
- });
112
- });
113
- //# sourceMappingURL=receiveAPDU.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"receiveAPDU.test.js","sourceRoot":"","sources":["../../src/ble/receiveAPDU.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=sendAPDU.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendAPDU.test.d.ts","sourceRoot":"","sources":["../../src/ble/sendAPDU.test.ts"],"names":[],"mappings":""}
@@ -1,71 +0,0 @@
1
- import { sendAPDU } from "./sendAPDU";
2
- describe("sendAPDU", () => {
3
- const mtu = 64; // Arbitrary chosen MTU, in bytes, so we can compare those tests with the HID framing ones
4
- const tests = [
5
- {
6
- // A get version
7
- input: { apdu: Buffer.from([0xe0, 0x01, 0, 0, 0]) },
8
- expectedOutput: [
9
- // No 0-padding is needed
10
- Buffer.from([0x05, 0, 0, 0, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00]),
11
- ],
12
- },
13
- {
14
- // A (long) edit device name
15
- input: {
16
- apdu: Buffer.from([
17
- 0xe0, 0xd4, 0, 0, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69,
18
- 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a,
19
- 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
20
- 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
21
- 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65,
22
- ]),
23
- },
24
- expectedOutput: [
25
- // Frame 1
26
- Buffer.from([
27
- ...[0x05, 0, 0, 0, 0x45, 0xe0, 0xd4, 0x00, 0x00, 0x40], // Tag, frame id, total length, and APDU until the Data part
28
- ...[
29
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
30
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
31
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
32
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49,
33
- ], // First part of the new device name
34
- ]),
35
- // Frame 2
36
- Buffer.from([
37
- ...[0x05, 0, 0x01], // Tag and frame id
38
- ...[0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65], // Second part of the new device name
39
- // No 0-padding is needed
40
- ]),
41
- ],
42
- },
43
- ];
44
- tests.forEach(({ input, expectedOutput }) => {
45
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, done => {
46
- let i = 0;
47
- // Compares each frame given to the `write` function to the expected frame
48
- const write = (frame) => {
49
- expect(frame).toEqual(expectedOutput[i]);
50
- i++;
51
- return Promise.resolve();
52
- };
53
- sendAPDU(write, input.apdu, mtu).subscribe({
54
- error: error => {
55
- done(`An error should not occur: ${error}`);
56
- },
57
- complete: () => {
58
- try {
59
- expect(i).toBe(expectedOutput.length);
60
- }
61
- catch (error) {
62
- done(error);
63
- return;
64
- }
65
- done();
66
- },
67
- });
68
- });
69
- });
70
- });
71
- //# sourceMappingURL=sendAPDU.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sendAPDU.test.js","sourceRoot":"","sources":["../../src/ble/sendAPDU.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,0FAA0F;IAE1G,MAAM,KAAK,GAAG;QACZ;YACE,gBAAgB;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnD,cAAc,EAAE;gBACd,yBAAyB;gBACzB,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACjE;SACF;QACD;YACE,4BAA4B;YAC5B,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;oBACxF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;oBACxF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;oBACxF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;oBACxF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;iBAC/C,CAAC;aACH;YACD,cAAc,EAAE;gBACd,UAAU;gBACV,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,4DAA4D;oBACpH,GAAG;wBACD,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;wBAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;wBAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;wBAClF,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;qBACvE,EAAE,oCAAoC;iBACxC,CAAC;gBACF,UAAU;gBACV,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,mBAAmB;oBACvC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,qCAAqC;oBACtG,yBAAyB;iBAC1B,CAAC;aACH;SACF;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CACxE,cAAc,CACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YAEV,0EAA0E;YAC1E,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC,EAAE,CAAC;gBAEJ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,CAAC,CAAC;YAEF,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;gBACzC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACb,IAAI,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC;wBACH,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,CAAC,CAAC;wBACZ,OAAO;oBACT,CAAC;oBACD,IAAI,EAAE,CAAC;gBACT,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=helpers.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../src/helpers.test.ts"],"names":[],"mappings":""}
@@ -1,37 +0,0 @@
1
- import { DeviceModelId } from ".";
2
- import { stringToDeviceModelId, isDeviceModelId } from "./helpers";
3
- const validDeviceModelsIds = ["nanoS", "nanoX", "blue", "nanoSP", "stax", "europa"];
4
- const invalidDeviceModelsIds = ["does-not-exist", "", null, undefined];
5
- describe("isDeviceModelId", () => {
6
- validDeviceModelsIds.forEach(potentialModelId => {
7
- test(`Input: ${potentialModelId} -> Expected output: true`, () => {
8
- const result = isDeviceModelId(potentialModelId);
9
- expect(result).toEqual(true);
10
- });
11
- });
12
- invalidDeviceModelsIds.forEach(potentialModelId => {
13
- test(`Input: ${potentialModelId} -> Expected output: false`, () => {
14
- const result = isDeviceModelId(potentialModelId);
15
- expect(result).toEqual(false);
16
- });
17
- });
18
- });
19
- describe("stringToDeviceModelId", () => {
20
- const tests = [
21
- {
22
- input: ["stax", DeviceModelId.nanoSP],
23
- expectedOutput: DeviceModelId.stax,
24
- },
25
- {
26
- input: ["does-not-exist", DeviceModelId.nanoSP],
27
- expectedOutput: DeviceModelId.nanoSP,
28
- },
29
- ];
30
- tests.forEach(({ input, expectedOutput }) => {
31
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${expectedOutput}`, () => {
32
- const result = stringToDeviceModelId(...input);
33
- expect(result).toEqual(expectedOutput);
34
- });
35
- });
36
- });
37
- //# sourceMappingURL=helpers.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.test.js","sourceRoot":"","sources":["../src/helpers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEnE,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACpF,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAEvE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAC9C,IAAI,CAAC,UAAU,gBAAgB,2BAA2B,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QAChD,IAAI,CAAC,UAAU,gBAAgB,4BAA4B,EAAE,GAAG,EAAE;YAChE,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAOH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,MAAM,KAAK,GAAW;QACpB;YACE,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,aAAa,CAAC,IAAI;SACnC;QACD;YACE,KAAK,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC;YAC/C,cAAc,EAAE,aAAa,CAAC,MAAM;SACrC;KACF,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE;QAC1C,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,wBAAwB,cAAc,EAAE,EAAE,GAAG,EAAE;YACjF,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=hid-framing.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hid-framing.test.d.ts","sourceRoot":"","sources":["../src/hid-framing.test.ts"],"names":[],"mappings":""}
@@ -1,134 +0,0 @@
1
- import createHIDframing from "./hid-framing";
2
- describe("createHIDframing.makeBlocks", () => {
3
- const channel = Math.floor(Math.random() * 0xffff);
4
- const channelBytes = [channel >> 8, channel & 0x00ff];
5
- const packetSize = 64;
6
- const hidFramingHelper = createHIDframing(channel, packetSize);
7
- const tests = [
8
- {
9
- // A get version
10
- input: { apdu: Buffer.from([0xe0, 0x01, 0, 0, 0]) },
11
- expectedOutput: [
12
- Buffer.from([
13
- ...channelBytes,
14
- ...[0x05, 0, 0, 0, 0x05, 0xe0, 0x01, 0x00, 0x00, 0x00],
15
- ...Buffer.alloc(52, 0), // 0-padding
16
- ]),
17
- ],
18
- },
19
- {
20
- // A (long) edit device name
21
- input: {
22
- apdu: Buffer.from([
23
- 0xe0, 0xd4, 0, 0, 0x40, 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69,
24
- 0x74, 0x69, 0x6f, 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a,
25
- 0x6f, 0x79, 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
26
- 0x69, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
27
- 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65,
28
- ]),
29
- },
30
- expectedOutput: [
31
- // Frame 1
32
- Buffer.from([
33
- ...channelBytes,
34
- ...[0x05, 0, 0, 0, 0x45, 0xe0, 0xd4, 0x00, 0x00, 0x40], // Tag, frame id, total length, and APDU until the Data part
35
- ...[
36
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
37
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
38
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
39
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e,
40
- ], // First part of the new device name
41
- ]),
42
- // Frame 2
43
- Buffer.from([
44
- ...channelBytes,
45
- ...[0x05, 0, 0x01], // Tag and frame id
46
- ...[0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65], // Second part of the new device name
47
- ...Buffer.alloc(47, 0), // 0-padding
48
- ]),
49
- ],
50
- },
51
- ];
52
- tests.forEach(({ input, expectedOutput }) => {
53
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, () => {
54
- const result = hidFramingHelper.makeBlocks(input.apdu);
55
- expect(result).toEqual(expectedOutput);
56
- });
57
- });
58
- });
59
- describe("createHIDframing.reduceResponse and createHIDframing.getReducedResult", () => {
60
- const channel = Math.floor(Math.random() * 0xffff);
61
- const channelBytes = [channel >> 8, channel & 0x00ff];
62
- const packetSize = 64;
63
- const hidFramingHelper = createHIDframing(channel, packetSize);
64
- const tests = [
65
- {
66
- // Response from a get version
67
- input: [
68
- {
69
- chunk: Buffer.from([
70
- ...channelBytes,
71
- ...[0x05, 0, 0, 0, 0x1f], // Tag, frame id and message length (2 bytes)
72
- ...[
73
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00,
74
- 0x00, 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01,
75
- 0x00, 0x90, 0x00,
76
- ],
77
- ...Buffer.alloc(26, 0), // 0-padding
78
- ]),
79
- },
80
- ],
81
- expectedOutput: Buffer.from([
82
- 0x33, 0x20, 0x00, 0x04, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x04, 0xe6, 0x02, 0x00, 0x00,
83
- 0x04, 0x35, 0x2e, 0x32, 0x34, 0x04, 0x30, 0x2e, 0x34, 0x38, 0x01, 0x00, 0x01, 0x00, 0x90,
84
- 0x00,
85
- ]),
86
- },
87
- {
88
- // Response from a get device (long) name
89
- input: [
90
- // 1st frame
91
- {
92
- chunk: Buffer.from([
93
- ...channelBytes,
94
- ...[0x05, 0, 0, 0, 0x42], // Tag, frame id and message length (2 bytes)
95
- ...[
96
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f,
97
- 0x75, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79,
98
- 0x44, 0x65, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69,
99
- 0x6e, 0x65, 0x73, 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45,
100
- 0x76,
101
- ],
102
- ]),
103
- },
104
- // 2nd frame
105
- {
106
- chunk: Buffer.from([
107
- ...channelBytes,
108
- ...[0x05, 0, 0x01], // Tag and frame id
109
- ...[0x65, 0x72, 0x79, 0x42, 0x69, 0x74, 0x65, 0x90, 0x00],
110
- ...Buffer.alloc(50, 0), // 0-padding
111
- ]),
112
- },
113
- ],
114
- expectedOutput: Buffer.from([
115
- 0x54, 0x6f, 0x66, 0x75, 0x49, 0x73, 0x4e, 0x75, 0x74, 0x72, 0x69, 0x74, 0x69, 0x6f, 0x75,
116
- 0x73, 0x41, 0x6e, 0x64, 0x42, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x4a, 0x6f, 0x79, 0x44, 0x65,
117
- 0x6c, 0x69, 0x67, 0x68, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x69, 0x6e, 0x65, 0x73,
118
- 0x73, 0x48, 0x61, 0x72, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, 0x45, 0x76, 0x65, 0x72, 0x79,
119
- 0x42, 0x69, 0x74, 0x65, 0x90, 0x00,
120
- ]),
121
- },
122
- ];
123
- tests.forEach(({ input, expectedOutput }) => {
124
- test(`Input: ${JSON.stringify(input)} -> Expected output: ${JSON.stringify(expectedOutput)}`, () => {
125
- let responseAccumulator = null;
126
- for (const currentFrame of input) {
127
- responseAccumulator = hidFramingHelper.reduceResponse(responseAccumulator, currentFrame.chunk);
128
- }
129
- const result = hidFramingHelper.getReducedResult(responseAccumulator);
130
- expect(result).toEqual(expectedOutput);
131
- });
132
- });
133
- });
134
- //# sourceMappingURL=hid-framing.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hid-framing.test.js","sourceRoot":"","sources":["../src/hid-framing.test.ts"],"names":[],"mappings":"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"}