@ledgerhq/hw-transport-http 6.27.13 → 6.27.14-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/CHANGELOG.md +8 -0
- package/lib/HttpTransport.js +63 -137
- package/lib/HttpTransport.js.map +1 -1
- package/lib/WebSocketTransport.js +108 -178
- package/lib/WebSocketTransport.js.map +1 -1
- package/lib/withStaticURLs.d.ts +3 -3
- package/lib/withStaticURLs.d.ts.map +1 -1
- package/lib/withStaticURLs.js +59 -135
- package/lib/withStaticURLs.js.map +1 -1
- package/lib-es/HttpTransport.js +57 -132
- package/lib-es/HttpTransport.js.map +1 -1
- package/lib-es/WebSocketTransport.js +103 -174
- package/lib-es/WebSocketTransport.js.map +1 -1
- package/lib-es/withStaticURLs.d.ts +3 -3
- package/lib-es/withStaticURLs.d.ts.map +1 -1
- package/lib-es/withStaticURLs.js +55 -131
- package/lib-es/withStaticURLs.js.map +1 -1
- package/package.json +5 -6
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
var __extends = (this && this.__extends) || (function () {
|
|
2
|
-
var extendStatics = function (d, b) {
|
|
3
|
-
extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
-
return extendStatics(d, b);
|
|
7
|
-
};
|
|
8
|
-
return function (d, b) {
|
|
9
|
-
if (typeof b !== "function" && b !== null)
|
|
10
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
-
extendStatics(d, b);
|
|
12
|
-
function __() { this.constructor = d; }
|
|
13
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
-
};
|
|
15
|
-
})();
|
|
16
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -22,177 +7,121 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
22
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
8
|
});
|
|
24
9
|
};
|
|
25
|
-
var
|
|
26
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
27
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
28
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
|
-
function step(op) {
|
|
30
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
-
while (_) try {
|
|
32
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
|
-
switch (op[0]) {
|
|
35
|
-
case 0: case 1: t = op; break;
|
|
36
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
37
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
38
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
39
|
-
default:
|
|
40
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
41
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
42
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
43
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
44
|
-
if (t[2]) _.ops.pop();
|
|
45
|
-
_.trys.pop(); continue;
|
|
46
|
-
}
|
|
47
|
-
op = body.call(thisArg, _);
|
|
48
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
49
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
50
|
-
}
|
|
51
|
-
};
|
|
10
|
+
var _a;
|
|
52
11
|
import Transport from "@ledgerhq/hw-transport";
|
|
53
12
|
import { TransportError } from "@ledgerhq/errors";
|
|
54
13
|
import { log } from "@ledgerhq/logs";
|
|
55
|
-
|
|
14
|
+
const WebSocket = global.WebSocket || require("ws");
|
|
56
15
|
/**
|
|
57
16
|
* WebSocket transport implementation
|
|
58
17
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if (typeof e.data !== "string")
|
|
98
|
-
return;
|
|
99
|
-
var data = JSON.parse(e.data);
|
|
100
|
-
switch (data.type) {
|
|
101
|
-
case "opened":
|
|
102
|
-
return resolve(exchangeMethods_1);
|
|
103
|
-
case "error":
|
|
104
|
-
reject(new Error(data.error));
|
|
105
|
-
return exchangeMethods_1.rejectExchange(new TransportError(data.error, "WSError"));
|
|
106
|
-
case "response":
|
|
107
|
-
return exchangeMethods_1.resolveExchange(Buffer.from(data.data, "hex"));
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
catch (e) {
|
|
112
|
-
reject(e);
|
|
113
|
-
}
|
|
114
|
-
})];
|
|
115
|
-
case 1:
|
|
116
|
-
exchangeMethods = _c.sent();
|
|
117
|
-
return [2 /*return*/, new WebSocketTransport(exchangeMethods)];
|
|
18
|
+
export default class WebSocketTransport extends Transport {
|
|
19
|
+
static open(url) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const exchangeMethods = yield new Promise((resolve, reject) => {
|
|
22
|
+
try {
|
|
23
|
+
const socket = new WebSocket(url);
|
|
24
|
+
const exchangeMethods = {
|
|
25
|
+
resolveExchange: (_b) => { },
|
|
26
|
+
rejectExchange: (_e) => { },
|
|
27
|
+
onDisconnect: () => { },
|
|
28
|
+
close: () => socket.close(),
|
|
29
|
+
send: (msg) => socket.send(msg),
|
|
30
|
+
};
|
|
31
|
+
socket.onopen = () => {
|
|
32
|
+
socket.send("open");
|
|
33
|
+
};
|
|
34
|
+
socket.onerror = (e) => {
|
|
35
|
+
exchangeMethods.onDisconnect();
|
|
36
|
+
reject(e);
|
|
37
|
+
};
|
|
38
|
+
socket.onclose = () => {
|
|
39
|
+
exchangeMethods.onDisconnect();
|
|
40
|
+
reject(new TransportError("OpenFailed", "OpenFailed"));
|
|
41
|
+
};
|
|
42
|
+
socket.onmessage = (e) => {
|
|
43
|
+
if (typeof e.data !== "string")
|
|
44
|
+
return;
|
|
45
|
+
const data = JSON.parse(e.data);
|
|
46
|
+
switch (data.type) {
|
|
47
|
+
case "opened":
|
|
48
|
+
return resolve(exchangeMethods);
|
|
49
|
+
case "error":
|
|
50
|
+
reject(new Error(data.error));
|
|
51
|
+
return exchangeMethods.rejectExchange(new TransportError(data.error, "WSError"));
|
|
52
|
+
case "response":
|
|
53
|
+
return exchangeMethods.resolveExchange(Buffer.from(data.data, "hex"));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
118
56
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
};
|
|
122
|
-
WebSocketTransport.prototype.exchange = function (apdu) {
|
|
123
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
124
|
-
var hex, res;
|
|
125
|
-
var _this = this;
|
|
126
|
-
return __generator(this, function (_c) {
|
|
127
|
-
switch (_c.label) {
|
|
128
|
-
case 0:
|
|
129
|
-
hex = apdu.toString("hex");
|
|
130
|
-
log("apdu", "=> " + hex);
|
|
131
|
-
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
132
|
-
_this.hook.rejectExchange = function (e) { return reject(e); };
|
|
133
|
-
_this.hook.resolveExchange = function (b) { return resolve(b); };
|
|
134
|
-
_this.hook.send(hex);
|
|
135
|
-
})];
|
|
136
|
-
case 1:
|
|
137
|
-
res = _c.sent();
|
|
138
|
-
log("apdu", "<= " + res.toString("hex"));
|
|
139
|
-
return [2 /*return*/, res];
|
|
57
|
+
catch (e) {
|
|
58
|
+
reject(e);
|
|
140
59
|
}
|
|
141
60
|
});
|
|
61
|
+
return new WebSocketTransport(exchangeMethods);
|
|
142
62
|
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
63
|
+
}
|
|
64
|
+
constructor(hook) {
|
|
65
|
+
super();
|
|
66
|
+
this.hook = hook;
|
|
67
|
+
hook.onDisconnect = () => {
|
|
68
|
+
this.emit("disconnect");
|
|
69
|
+
this.hook.rejectExchange(new TransportError("WebSocket disconnected", "WSDisconnect"));
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
exchange(apdu) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const hex = apdu.toString("hex");
|
|
75
|
+
log("apdu", "=> " + hex);
|
|
76
|
+
const res = yield new Promise((resolve, reject) => {
|
|
77
|
+
this.hook.rejectExchange = (e) => reject(e);
|
|
78
|
+
this.hook.resolveExchange = (b) => resolve(b);
|
|
79
|
+
this.hook.send(hex);
|
|
154
80
|
});
|
|
81
|
+
log("apdu", "<= " + res.toString("hex"));
|
|
82
|
+
return res;
|
|
155
83
|
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
unsubscribe: function () { }
|
|
166
|
-
}); };
|
|
167
|
-
WebSocketTransport.check = function (url, timeout) {
|
|
168
|
-
if (timeout === void 0) { timeout = 5000; }
|
|
169
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
170
|
-
return __generator(_a, function (_c) {
|
|
171
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
172
|
-
var socket = new WebSocket(url);
|
|
173
|
-
var success = false;
|
|
174
|
-
setTimeout(function () {
|
|
175
|
-
socket.close();
|
|
176
|
-
}, timeout);
|
|
177
|
-
socket.onopen = function () {
|
|
178
|
-
success = true;
|
|
179
|
-
socket.close();
|
|
180
|
-
};
|
|
181
|
-
socket.onclose = function () {
|
|
182
|
-
if (success)
|
|
183
|
-
resolve(undefined);
|
|
184
|
-
else {
|
|
185
|
-
reject(new TransportError("failed to access WebSocketTransport(" + url + ")", "WebSocketTransportNotAccessible"));
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
socket.onerror = function () {
|
|
189
|
-
reject(new TransportError("failed to access WebSocketTransport(" + url + "): error", "WebSocketTransportNotAccessible"));
|
|
190
|
-
};
|
|
191
|
-
})];
|
|
84
|
+
}
|
|
85
|
+
setScrambleKey() { }
|
|
86
|
+
close() {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
this.hook.close();
|
|
89
|
+
return new Promise((success) => {
|
|
90
|
+
setTimeout(() => {
|
|
91
|
+
success(undefined);
|
|
92
|
+
}, 200);
|
|
192
93
|
});
|
|
193
94
|
});
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
_a = WebSocketTransport;
|
|
98
|
+
WebSocketTransport.isSupported = () => Promise.resolve(typeof WebSocket === "function");
|
|
99
|
+
// this transport is not discoverable
|
|
100
|
+
WebSocketTransport.list = () => Promise.resolve([]);
|
|
101
|
+
WebSocketTransport.listen = (_observer) => ({
|
|
102
|
+
unsubscribe: () => { },
|
|
103
|
+
});
|
|
104
|
+
WebSocketTransport.check = (url, timeout = 5000) => __awaiter(void 0, void 0, void 0, function* () {
|
|
105
|
+
return new Promise((resolve, reject) => {
|
|
106
|
+
const socket = new WebSocket(url);
|
|
107
|
+
let success = false;
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
socket.close();
|
|
110
|
+
}, timeout);
|
|
111
|
+
socket.onopen = () => {
|
|
112
|
+
success = true;
|
|
113
|
+
socket.close();
|
|
114
|
+
};
|
|
115
|
+
socket.onclose = () => {
|
|
116
|
+
if (success)
|
|
117
|
+
resolve(undefined);
|
|
118
|
+
else {
|
|
119
|
+
reject(new TransportError("failed to access WebSocketTransport(" + url + ")", "WebSocketTransportNotAccessible"));
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
socket.onerror = () => {
|
|
123
|
+
reject(new TransportError("failed to access WebSocketTransport(" + url + "): error", "WebSocketTransportNotAccessible"));
|
|
124
|
+
};
|
|
125
|
+
});
|
|
126
|
+
});
|
|
198
127
|
//# sourceMappingURL=WebSocketTransport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketTransport.js","sourceRoot":"","sources":["../src/WebSocketTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebSocketTransport.js","sourceRoot":"","sources":["../src/WebSocketTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Transport from "@ledgerhq/hw-transport";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
type InS = string | string[];
|
|
3
|
+
type InP = Promise<InS> | InS;
|
|
4
|
+
type In = InP | (() => InP);
|
|
5
5
|
declare const _default: (urls: In) => typeof Transport;
|
|
6
6
|
export default _default;
|
|
7
7
|
//# sourceMappingURL=withStaticURLs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withStaticURLs.d.ts","sourceRoot":"","sources":["../src/withStaticURLs.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAU/C,
|
|
1
|
+
{"version":3,"file":"withStaticURLs.d.ts","sourceRoot":"","sources":["../src/withStaticURLs.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAU/C,KAAK,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAC7B,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC9B,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;+BAON,EAAE,KAAG,gBAAgB;AAA3C,wBAqEE"}
|
package/lib-es/withStaticURLs.js
CHANGED
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
var __extends = (this && this.__extends) || (function () {
|
|
2
|
-
var extendStatics = function (d, b) {
|
|
3
|
-
extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
-
return extendStatics(d, b);
|
|
7
|
-
};
|
|
8
|
-
return function (d, b) {
|
|
9
|
-
if (typeof b !== "function" && b !== null)
|
|
10
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
-
extendStatics(d, b);
|
|
12
|
-
function __() { this.constructor = d; }
|
|
13
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
-
};
|
|
15
|
-
})();
|
|
16
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -22,129 +7,68 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
22
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
8
|
});
|
|
24
9
|
};
|
|
25
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
26
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
27
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
28
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
29
|
-
function step(op) {
|
|
30
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
31
|
-
while (_) try {
|
|
32
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
33
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
34
|
-
switch (op[0]) {
|
|
35
|
-
case 0: case 1: t = op; break;
|
|
36
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
37
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
38
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
39
|
-
default:
|
|
40
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
41
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
42
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
43
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
44
|
-
if (t[2]) _.ops.pop();
|
|
45
|
-
_.trys.pop(); continue;
|
|
46
|
-
}
|
|
47
|
-
op = body.call(thisArg, _);
|
|
48
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
49
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
10
|
import HttpTransport from "./HttpTransport";
|
|
53
11
|
import WebSocketTransport from "./WebSocketTransport";
|
|
54
12
|
import Transport from "@ledgerhq/hw-transport";
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
.then(function (urls) {
|
|
79
|
-
return Promise.all(urls.map(function (url) {
|
|
80
|
-
return getTransport(url)
|
|
81
|
-
.check(url)
|
|
82
|
-
.then(function () { return [url]; })["catch"](function () { return []; });
|
|
83
|
-
}));
|
|
84
|
-
})
|
|
85
|
-
.then(function (arrs) { return arrs.reduce(function (acc, a) { return acc.concat(a); }, []); });
|
|
86
|
-
};
|
|
87
|
-
StaticTransport.listen = function (observer) {
|
|
88
|
-
var unsubscribed = false;
|
|
89
|
-
var seen = {};
|
|
90
|
-
function checkLoop() {
|
|
91
|
-
var _this = this;
|
|
13
|
+
const getTransport = (url) => !url.startsWith("ws") ? HttpTransport : WebSocketTransport;
|
|
14
|
+
const inferURLs = (urls) => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
|
+
const r = yield (typeof urls === "function" ? urls() : urls);
|
|
16
|
+
return typeof r === "string" ? [r] : r;
|
|
17
|
+
});
|
|
18
|
+
export default (urls) => {
|
|
19
|
+
class StaticTransport extends Transport {
|
|
20
|
+
}
|
|
21
|
+
StaticTransport.isSupported = HttpTransport.isSupported;
|
|
22
|
+
StaticTransport.list = () => inferURLs(urls)
|
|
23
|
+
.then((urls) => Promise.all(urls.map((url) => getTransport(url)
|
|
24
|
+
.check(url)
|
|
25
|
+
.then(() => [url])
|
|
26
|
+
.catch(() => []))))
|
|
27
|
+
.then((arrs) => arrs.reduce((acc, a) => acc.concat(a), []));
|
|
28
|
+
StaticTransport.listen = (observer) => {
|
|
29
|
+
let unsubscribed = false;
|
|
30
|
+
const seen = {};
|
|
31
|
+
function checkLoop() {
|
|
32
|
+
if (unsubscribed)
|
|
33
|
+
return;
|
|
34
|
+
inferURLs(urls)
|
|
35
|
+
.then((urls) => Promise.all(urls.map((url) => __awaiter(this, void 0, void 0, function* () {
|
|
92
36
|
if (unsubscribed)
|
|
93
37
|
return;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
observer.next({
|
|
114
|
-
type: "add",
|
|
115
|
-
descriptor: url
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return [3 /*break*/, 4];
|
|
119
|
-
case 3:
|
|
120
|
-
e_1 = _a.sent();
|
|
121
|
-
// nothing
|
|
122
|
-
if (seen[url]) {
|
|
123
|
-
delete seen[url];
|
|
124
|
-
observer.next({
|
|
125
|
-
type: "remove",
|
|
126
|
-
descriptor: url
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
return [3 /*break*/, 4];
|
|
130
|
-
case 4: return [2 /*return*/];
|
|
131
|
-
}
|
|
38
|
+
try {
|
|
39
|
+
yield getTransport(url).check(url);
|
|
40
|
+
if (unsubscribed)
|
|
41
|
+
return;
|
|
42
|
+
if (!seen[url]) {
|
|
43
|
+
seen[url] = 1;
|
|
44
|
+
observer.next({
|
|
45
|
+
type: "add",
|
|
46
|
+
descriptor: url,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
// nothing
|
|
52
|
+
if (seen[url]) {
|
|
53
|
+
delete seen[url];
|
|
54
|
+
observer.next({
|
|
55
|
+
type: "remove",
|
|
56
|
+
descriptor: url,
|
|
132
57
|
});
|
|
133
|
-
}
|
|
134
|
-
})
|
|
135
|
-
.then(function () { return new Promise(function (success) { return setTimeout(success, 5000); }); })
|
|
136
|
-
.then(checkLoop);
|
|
137
|
-
}
|
|
138
|
-
checkLoop();
|
|
139
|
-
return {
|
|
140
|
-
unsubscribe: function () {
|
|
141
|
-
unsubscribed = true;
|
|
58
|
+
}
|
|
142
59
|
}
|
|
143
|
-
}
|
|
60
|
+
}))))
|
|
61
|
+
.then(() => new Promise((success) => setTimeout(success, 5000)))
|
|
62
|
+
.then(checkLoop);
|
|
63
|
+
}
|
|
64
|
+
checkLoop();
|
|
65
|
+
return {
|
|
66
|
+
unsubscribe: () => {
|
|
67
|
+
unsubscribed = true;
|
|
68
|
+
},
|
|
144
69
|
};
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}(Transport));
|
|
70
|
+
};
|
|
71
|
+
StaticTransport.open = (url) => getTransport(url).open(url);
|
|
148
72
|
return StaticTransport;
|
|
149
|
-
}
|
|
73
|
+
};
|
|
150
74
|
//# sourceMappingURL=withStaticURLs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withStaticURLs.js","sourceRoot":"","sources":["../src/withStaticURLs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"withStaticURLs.js","sourceRoot":"","sources":["../src/withStaticURLs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAO/C,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,EAAE,CAC3B,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAM7D,MAAM,SAAS,GAAG,CAAO,IAAQ,EAAqB,EAAE;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC,CAAA,CAAC;AAEF,eAAe,CAAC,IAAQ,EAAoB,EAAE;IAC5C,MAAM,eAAgB,SAAQ,SAAS;;IAC9B,2BAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACxC,oBAAI,GAAG,GAAsB,EAAE,CACpC,SAAS,CAAC,IAAI,CAAC;SACZ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACf,YAAY,CAAC,GAAG,CAAC;SACd,KAAK,CAAC,GAAG,CAAC;SACV,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACjB,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CACnB,CACF,CACF;SACA,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,sBAAM,GAAG,CACd,QAA4C,EAC9B,EAAE;QAChB,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,SAAS,SAAS;YAChB,IAAI,YAAY;gBAAE,OAAO;YACzB,SAAS,CAAC,IAAI,CAAC;iBACZ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACb,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,GAAG,CAAC,CAAO,GAAG,EAAE,EAAE;gBACrB,IAAI,YAAY;oBAAE,OAAO;gBAEzB,IAAI;oBACF,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,YAAY;wBAAE,OAAO;oBAEzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACd,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,KAAK;4BACX,UAAU,EAAE,GAAG;yBAChB,CAAC,CAAC;qBACJ;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,UAAU;oBACV,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;wBACb,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE,GAAG;yBAChB,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,CAAA,CAAC,CACH,CACF;iBACA,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC/D,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,SAAS,EAAE,CAAC;QACZ,OAAO;YACL,WAAW,EAAE,GAAG,EAAE;gBAChB,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;IACK,oBAAI,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAGrD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/hw-transport-http",
|
|
3
|
-
"version": "6.27.
|
|
3
|
+
"version": "6.27.14-next.0",
|
|
4
4
|
"description": "Ledger Hardware Wallet communication layer over http",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"axios": "^0.26.1",
|
|
31
31
|
"ws": "^7.5.2",
|
|
32
|
-
"@ledgerhq/errors": "^6.12.
|
|
33
|
-
"@ledgerhq/hw-transport": "^6.28.
|
|
32
|
+
"@ledgerhq/errors": "^6.12.5-next.0",
|
|
33
|
+
"@ledgerhq/hw-transport": "^6.28.3-next.0",
|
|
34
34
|
"@ledgerhq/logs": "^6.10.1"
|
|
35
35
|
},
|
|
36
36
|
"gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
|
|
@@ -39,11 +39,10 @@
|
|
|
39
39
|
"@types/node": "^18.15.3",
|
|
40
40
|
"documentation": "13.2.4",
|
|
41
41
|
"jest": "^28.1.1",
|
|
42
|
-
"rimraf": "^4.1
|
|
42
|
+
"rimraf": "^4.4.1",
|
|
43
43
|
"source-map-support": "^0.5.21",
|
|
44
44
|
"ts-jest": "^28.0.5",
|
|
45
|
-
"ts-node": "^10.4.0"
|
|
46
|
-
"typescript": "^4"
|
|
45
|
+
"ts-node": "^10.4.0"
|
|
47
46
|
},
|
|
48
47
|
"scripts": {
|
|
49
48
|
"clean": "rimraf lib lib-es",
|