@ledgerhq/hw-transport-vault 1.3.4 → 1.3.5-nightly.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 +8 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +69 -82
- package/lib/index.js.map +1 -1
- package/lib-es/index.d.ts +1 -0
- package/lib-es/index.d.ts.map +1 -1
- package/lib-es/index.js +69 -82
- package/lib-es/index.js.map +1 -1
- package/package.json +6 -5
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @ledgerhq/hw-transport-vault
|
|
2
2
|
|
|
3
|
+
## 1.3.5-nightly.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`c6cb1bd`](https://github.com/LedgerHQ/ledger-live/commit/c6cb1bd2a0768ccbeeee96342dc8b872a620f3ac)]:
|
|
8
|
+
- @ledgerhq/errors@6.20.0-nightly.0
|
|
9
|
+
- @ledgerhq/hw-transport-http@6.30.5-nightly.0
|
|
10
|
+
|
|
3
11
|
## 1.3.4
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AAEvF,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;gBAErB,IAAI,EAAE,GAAG;IAKrB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;WAIjB,IAAI,CAAC,GAAG,EAAE,MAAM;IAiDvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgC9C"}
|
package/lib/index.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -17,6 +8,7 @@ const errors_1 = require("@ledgerhq/errors");
|
|
|
17
8
|
const WebSocketTransport_1 = __importDefault(require("@ledgerhq/hw-transport-http/lib-es/WebSocketTransport"));
|
|
18
9
|
let sessionId = null;
|
|
19
10
|
class VaultTransport extends WebSocketTransport_1.default {
|
|
11
|
+
data;
|
|
20
12
|
constructor(hook) {
|
|
21
13
|
super(hook);
|
|
22
14
|
this.data = null;
|
|
@@ -24,83 +16,78 @@ class VaultTransport extends WebSocketTransport_1.default {
|
|
|
24
16
|
setData(data) {
|
|
25
17
|
this.data = data;
|
|
26
18
|
}
|
|
27
|
-
static open(url) {
|
|
28
|
-
|
|
29
|
-
const exchangeMethods = yield new Promise((resolve, reject) => {
|
|
30
|
-
try {
|
|
31
|
-
const socket = new WebSocket(url);
|
|
32
|
-
const exchangeMethods = {
|
|
33
|
-
resolveExchange: (_b, _sessionId) => { },
|
|
34
|
-
rejectExchange: (_e) => { },
|
|
35
|
-
onDisconnect: () => { },
|
|
36
|
-
close: () => socket.close(),
|
|
37
|
-
send: msg => socket.send(msg),
|
|
38
|
-
};
|
|
39
|
-
socket.onopen = () => {
|
|
40
|
-
socket.send("open");
|
|
41
|
-
};
|
|
42
|
-
socket.onerror = e => {
|
|
43
|
-
exchangeMethods.onDisconnect();
|
|
44
|
-
reject(e);
|
|
45
|
-
};
|
|
46
|
-
socket.onclose = () => {
|
|
47
|
-
exchangeMethods.onDisconnect();
|
|
48
|
-
reject(new errors_1.TransportError("OpenFailed", "OpenFailed"));
|
|
49
|
-
};
|
|
50
|
-
socket.onmessage = e => {
|
|
51
|
-
if (typeof e.data !== "string")
|
|
52
|
-
return;
|
|
53
|
-
const data = JSON.parse(e.data);
|
|
54
|
-
switch (data.type) {
|
|
55
|
-
case "opened":
|
|
56
|
-
return resolve(exchangeMethods);
|
|
57
|
-
case "error":
|
|
58
|
-
reject(new Error(data.error));
|
|
59
|
-
return exchangeMethods.rejectExchange(new errors_1.TransportError(data.error, "WSError"));
|
|
60
|
-
case "response":
|
|
61
|
-
return exchangeMethods.resolveExchange(Buffer.from(data.data, "hex"), data.sessionId);
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
reject(e);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
return new VaultTransport(exchangeMethods);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
exchange(apdu) {
|
|
73
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
const hex = apdu.toString("hex");
|
|
75
|
-
(0, logs_1.log)("apdu", "=> " + hex);
|
|
76
|
-
const iv = setInterval(() => {
|
|
77
|
-
this.hook.send("ping");
|
|
78
|
-
}, 30e3);
|
|
19
|
+
static async open(url) {
|
|
20
|
+
const exchangeMethods = await new Promise((resolve, reject) => {
|
|
79
21
|
try {
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
22
|
+
const socket = new WebSocket(url);
|
|
23
|
+
const exchangeMethods = {
|
|
24
|
+
resolveExchange: (_b, _sessionId) => { },
|
|
25
|
+
rejectExchange: (_e) => { },
|
|
26
|
+
onDisconnect: () => { },
|
|
27
|
+
close: () => socket.close(),
|
|
28
|
+
send: msg => socket.send(msg),
|
|
29
|
+
};
|
|
30
|
+
socket.onopen = () => {
|
|
31
|
+
socket.send("open");
|
|
32
|
+
};
|
|
33
|
+
socket.onerror = e => {
|
|
34
|
+
exchangeMethods.onDisconnect();
|
|
35
|
+
reject(e);
|
|
36
|
+
};
|
|
37
|
+
socket.onclose = () => {
|
|
38
|
+
exchangeMethods.onDisconnect();
|
|
39
|
+
reject(new errors_1.TransportError("OpenFailed", "OpenFailed"));
|
|
40
|
+
};
|
|
41
|
+
socket.onmessage = e => {
|
|
42
|
+
if (typeof e.data !== "string")
|
|
43
|
+
return;
|
|
44
|
+
const data = JSON.parse(e.data);
|
|
45
|
+
switch (data.type) {
|
|
46
|
+
case "opened":
|
|
47
|
+
return resolve(exchangeMethods);
|
|
48
|
+
case "error":
|
|
49
|
+
reject(new Error(data.error));
|
|
50
|
+
return exchangeMethods.rejectExchange(new errors_1.TransportError(data.error, "WSError"));
|
|
51
|
+
case "response":
|
|
52
|
+
return exchangeMethods.resolveExchange(Buffer.from(data.data, "hex"), data.sessionId);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
99
55
|
}
|
|
100
|
-
|
|
101
|
-
|
|
56
|
+
catch (e) {
|
|
57
|
+
reject(e);
|
|
102
58
|
}
|
|
103
59
|
});
|
|
60
|
+
return new VaultTransport(exchangeMethods);
|
|
61
|
+
}
|
|
62
|
+
async exchange(apdu) {
|
|
63
|
+
const hex = apdu.toString("hex");
|
|
64
|
+
(0, logs_1.log)("apdu", "=> " + hex);
|
|
65
|
+
const iv = setInterval(() => {
|
|
66
|
+
this.hook.send("ping");
|
|
67
|
+
}, 30e3);
|
|
68
|
+
try {
|
|
69
|
+
const res = await new Promise((resolve, reject) => {
|
|
70
|
+
this.hook.rejectExchange = (e) => reject(e);
|
|
71
|
+
this.hook.resolveExchange = (b, _sessionId) => {
|
|
72
|
+
if (_sessionId) {
|
|
73
|
+
sessionId = _sessionId;
|
|
74
|
+
}
|
|
75
|
+
return resolve(b);
|
|
76
|
+
};
|
|
77
|
+
const data = {
|
|
78
|
+
sessionId,
|
|
79
|
+
workspace: this.data?.workspace,
|
|
80
|
+
token: this.data?.token,
|
|
81
|
+
apdu: hex,
|
|
82
|
+
};
|
|
83
|
+
this.hook.send(JSON.stringify(data));
|
|
84
|
+
});
|
|
85
|
+
(0, logs_1.log)("apdu", "<= " + res.toString("hex"));
|
|
86
|
+
return res;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
clearInterval(iv);
|
|
90
|
+
}
|
|
104
91
|
}
|
|
105
92
|
}
|
|
106
93
|
exports.default = VaultTransport;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib-es/index.d.ts
CHANGED
package/lib-es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,OAAO,kBAAkB,MAAM,uDAAuD,CAAC;AAEvF,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;gBAErB,IAAI,EAAE,GAAG;IAKrB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;WAIjB,IAAI,CAAC,GAAG,EAAE,MAAM;IAiDvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgC9C"}
|
package/lib-es/index.js
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { log } from "@ledgerhq/logs";
|
|
11
2
|
import { TransportError } from "@ledgerhq/errors";
|
|
12
3
|
import WebSocketTransport from "@ledgerhq/hw-transport-http/lib-es/WebSocketTransport";
|
|
13
4
|
let sessionId = null;
|
|
14
5
|
export default class VaultTransport extends WebSocketTransport {
|
|
6
|
+
data;
|
|
15
7
|
constructor(hook) {
|
|
16
8
|
super(hook);
|
|
17
9
|
this.data = null;
|
|
@@ -19,83 +11,78 @@ export default class VaultTransport extends WebSocketTransport {
|
|
|
19
11
|
setData(data) {
|
|
20
12
|
this.data = data;
|
|
21
13
|
}
|
|
22
|
-
static open(url) {
|
|
23
|
-
|
|
24
|
-
const exchangeMethods = yield new Promise((resolve, reject) => {
|
|
25
|
-
try {
|
|
26
|
-
const socket = new WebSocket(url);
|
|
27
|
-
const exchangeMethods = {
|
|
28
|
-
resolveExchange: (_b, _sessionId) => { },
|
|
29
|
-
rejectExchange: (_e) => { },
|
|
30
|
-
onDisconnect: () => { },
|
|
31
|
-
close: () => socket.close(),
|
|
32
|
-
send: msg => socket.send(msg),
|
|
33
|
-
};
|
|
34
|
-
socket.onopen = () => {
|
|
35
|
-
socket.send("open");
|
|
36
|
-
};
|
|
37
|
-
socket.onerror = e => {
|
|
38
|
-
exchangeMethods.onDisconnect();
|
|
39
|
-
reject(e);
|
|
40
|
-
};
|
|
41
|
-
socket.onclose = () => {
|
|
42
|
-
exchangeMethods.onDisconnect();
|
|
43
|
-
reject(new TransportError("OpenFailed", "OpenFailed"));
|
|
44
|
-
};
|
|
45
|
-
socket.onmessage = e => {
|
|
46
|
-
if (typeof e.data !== "string")
|
|
47
|
-
return;
|
|
48
|
-
const data = JSON.parse(e.data);
|
|
49
|
-
switch (data.type) {
|
|
50
|
-
case "opened":
|
|
51
|
-
return resolve(exchangeMethods);
|
|
52
|
-
case "error":
|
|
53
|
-
reject(new Error(data.error));
|
|
54
|
-
return exchangeMethods.rejectExchange(new TransportError(data.error, "WSError"));
|
|
55
|
-
case "response":
|
|
56
|
-
return exchangeMethods.resolveExchange(Buffer.from(data.data, "hex"), data.sessionId);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
catch (e) {
|
|
61
|
-
reject(e);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
return new VaultTransport(exchangeMethods);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
exchange(apdu) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const hex = apdu.toString("hex");
|
|
70
|
-
log("apdu", "=> " + hex);
|
|
71
|
-
const iv = setInterval(() => {
|
|
72
|
-
this.hook.send("ping");
|
|
73
|
-
}, 30e3);
|
|
14
|
+
static async open(url) {
|
|
15
|
+
const exchangeMethods = await new Promise((resolve, reject) => {
|
|
74
16
|
try {
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
17
|
+
const socket = new WebSocket(url);
|
|
18
|
+
const exchangeMethods = {
|
|
19
|
+
resolveExchange: (_b, _sessionId) => { },
|
|
20
|
+
rejectExchange: (_e) => { },
|
|
21
|
+
onDisconnect: () => { },
|
|
22
|
+
close: () => socket.close(),
|
|
23
|
+
send: msg => socket.send(msg),
|
|
24
|
+
};
|
|
25
|
+
socket.onopen = () => {
|
|
26
|
+
socket.send("open");
|
|
27
|
+
};
|
|
28
|
+
socket.onerror = e => {
|
|
29
|
+
exchangeMethods.onDisconnect();
|
|
30
|
+
reject(e);
|
|
31
|
+
};
|
|
32
|
+
socket.onclose = () => {
|
|
33
|
+
exchangeMethods.onDisconnect();
|
|
34
|
+
reject(new TransportError("OpenFailed", "OpenFailed"));
|
|
35
|
+
};
|
|
36
|
+
socket.onmessage = e => {
|
|
37
|
+
if (typeof e.data !== "string")
|
|
38
|
+
return;
|
|
39
|
+
const data = JSON.parse(e.data);
|
|
40
|
+
switch (data.type) {
|
|
41
|
+
case "opened":
|
|
42
|
+
return resolve(exchangeMethods);
|
|
43
|
+
case "error":
|
|
44
|
+
reject(new Error(data.error));
|
|
45
|
+
return exchangeMethods.rejectExchange(new TransportError(data.error, "WSError"));
|
|
46
|
+
case "response":
|
|
47
|
+
return exchangeMethods.resolveExchange(Buffer.from(data.data, "hex"), data.sessionId);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
94
50
|
}
|
|
95
|
-
|
|
96
|
-
|
|
51
|
+
catch (e) {
|
|
52
|
+
reject(e);
|
|
97
53
|
}
|
|
98
54
|
});
|
|
55
|
+
return new VaultTransport(exchangeMethods);
|
|
56
|
+
}
|
|
57
|
+
async exchange(apdu) {
|
|
58
|
+
const hex = apdu.toString("hex");
|
|
59
|
+
log("apdu", "=> " + hex);
|
|
60
|
+
const iv = setInterval(() => {
|
|
61
|
+
this.hook.send("ping");
|
|
62
|
+
}, 30e3);
|
|
63
|
+
try {
|
|
64
|
+
const res = await new Promise((resolve, reject) => {
|
|
65
|
+
this.hook.rejectExchange = (e) => reject(e);
|
|
66
|
+
this.hook.resolveExchange = (b, _sessionId) => {
|
|
67
|
+
if (_sessionId) {
|
|
68
|
+
sessionId = _sessionId;
|
|
69
|
+
}
|
|
70
|
+
return resolve(b);
|
|
71
|
+
};
|
|
72
|
+
const data = {
|
|
73
|
+
sessionId,
|
|
74
|
+
workspace: this.data?.workspace,
|
|
75
|
+
token: this.data?.token,
|
|
76
|
+
apdu: hex,
|
|
77
|
+
};
|
|
78
|
+
this.hook.send(JSON.stringify(data));
|
|
79
|
+
});
|
|
80
|
+
log("apdu", "<= " + res.toString("hex"));
|
|
81
|
+
return res;
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
clearInterval(iv);
|
|
85
|
+
}
|
|
99
86
|
}
|
|
100
87
|
}
|
|
101
88
|
//# sourceMappingURL=index.js.map
|
package/lib-es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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/hw-transport-vault",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5-nightly.0",
|
|
4
4
|
"description": "Ledger Vault transport",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"types": "lib/index.d.ts",
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@ledgerhq/errors": "^6.
|
|
31
|
-
"@ledgerhq/hw-transport-http": "^6.30.
|
|
30
|
+
"@ledgerhq/errors": "^6.20.0-nightly.0",
|
|
31
|
+
"@ledgerhq/hw-transport-http": "^6.30.5-nightly.0",
|
|
32
32
|
"@ledgerhq/logs": "^6.12.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/jest": "^29.5.10",
|
|
36
|
-
"@types/node": "^
|
|
36
|
+
"@types/node": "^22.10.10",
|
|
37
37
|
"documentation": "14.0.2",
|
|
38
38
|
"jest": "^29.7.0",
|
|
39
39
|
"rimraf": "^4.4.1",
|
|
@@ -43,9 +43,10 @@
|
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"clean": "rimraf lib lib-es",
|
|
46
|
-
"build": "tsc && tsc -m
|
|
46
|
+
"build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
|
|
47
47
|
"prewatch": "pnpm build",
|
|
48
48
|
"watch": "tsc --watch",
|
|
49
|
+
"watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
|
|
49
50
|
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx",
|
|
50
51
|
"lint:fix": "pnpm lint --fix",
|
|
51
52
|
"test": "jest",
|