@shapeshiftoss/hdwallet-keepkey 1.55.2-alpha.0 → 1.55.3

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/dist/transport.js CHANGED
@@ -1,62 +1,26 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.Transport = void 0;
36
- const Messages = __importStar(require("@keepkey/device-protocol/lib/messages_pb"));
37
- const Types = __importStar(require("@keepkey/device-protocol/lib/types_pb"));
38
- const core = __importStar(require("@shapeshiftoss/hdwallet-core"));
39
- const crypto = __importStar(require("crypto"));
40
- const jspb = __importStar(require("google-protobuf"));
41
- const typeRegistry_1 = require("./typeRegistry");
42
- const utils_1 = require("./utils");
43
- class Transport extends core.Transport {
1
+ import * as Messages from "@keepkey/device-protocol/lib/messages_pb";
2
+ import * as Types from "@keepkey/device-protocol/lib/types_pb";
3
+ import * as core from "@shapeshiftoss/hdwallet-core";
4
+ import * as crypto from "crypto";
5
+ import * as jspb from "google-protobuf";
6
+ import { messageNameRegistry, messageTypeRegistry } from "./typeRegistry";
7
+ import { SEGMENT_SIZE } from "./utils";
8
+ export class Transport extends core.Transport {
9
+ debugLink = false;
10
+ userActionRequired = false;
11
+ delegate;
12
+ /// One per transport, unlike on Trezor, since the contention is
13
+ /// only per-device, not global.
14
+ callInProgress = {
15
+ main: undefined,
16
+ debug: undefined,
17
+ };
44
18
  constructor(keyring, delegate) {
45
19
  super(keyring);
46
- this.debugLink = false;
47
- this.userActionRequired = false;
48
- /// One per transport, unlike on Trezor, since the contention is
49
- /// only per-device, not global.
50
- this.callInProgress = {
51
- main: undefined,
52
- debug: undefined,
53
- };
54
20
  this.delegate = delegate;
55
21
  }
56
- static create(keyring, delegate) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- return new Transport(keyring, delegate);
59
- });
22
+ static async create(keyring, delegate) {
23
+ return new Transport(keyring, delegate);
60
24
  }
61
25
  isOpened() {
62
26
  return this.delegate.isOpened();
@@ -67,261 +31,240 @@ class Transport extends core.Transport {
67
31
  connect() {
68
32
  return this.delegate.connect();
69
33
  }
70
- tryConnectDebugLink() {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- let out = false;
73
- if (this.delegate.tryConnectDebugLink && (yield this.delegate.tryConnectDebugLink()))
74
- out = true;
75
- this.debugLink = out;
76
- return out;
77
- });
34
+ async tryConnectDebugLink() {
35
+ let out = false;
36
+ if (this.delegate.tryConnectDebugLink && (await this.delegate.tryConnectDebugLink()))
37
+ out = true;
38
+ this.debugLink = out;
39
+ return out;
78
40
  }
79
41
  disconnect() {
80
42
  return this.delegate.disconnect();
81
43
  }
82
- write(buf, debugLink) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- // break frame into segments
85
- for (let i = 0; i < buf.length; i += utils_1.SEGMENT_SIZE) {
86
- const segment = buf.slice(i, i + utils_1.SEGMENT_SIZE);
87
- const padding = new Uint8Array(utils_1.SEGMENT_SIZE - segment.length);
88
- const fragments = [];
89
- fragments.push(new Uint8Array([utils_1.SEGMENT_SIZE]));
90
- fragments.push(segment);
91
- fragments.push(padding);
92
- const fragmentBuffer = new Uint8Array(fragments.map((x) => x.length).reduce((a, x) => a + x, 0));
93
- fragments.reduce((a, x) => (fragmentBuffer.set(x, a), a + x.length), 0);
94
- yield this.delegate.writeChunk(fragmentBuffer, debugLink);
95
- }
96
- });
44
+ async write(buf, debugLink) {
45
+ // break frame into segments
46
+ for (let i = 0; i < buf.length; i += SEGMENT_SIZE) {
47
+ const segment = buf.slice(i, i + SEGMENT_SIZE);
48
+ const padding = new Uint8Array(SEGMENT_SIZE - segment.length);
49
+ const fragments = [];
50
+ fragments.push(new Uint8Array([SEGMENT_SIZE]));
51
+ fragments.push(segment);
52
+ fragments.push(padding);
53
+ const fragmentBuffer = new Uint8Array(fragments.map((x) => x.length).reduce((a, x) => a + x, 0));
54
+ fragments.reduce((a, x) => (fragmentBuffer.set(x, a), a + x.length), 0);
55
+ await this.delegate.writeChunk(fragmentBuffer, debugLink);
56
+ }
97
57
  }
98
- read(debugLink) {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const first = yield this.delegate.readChunk(debugLink);
101
- // Check that buffer starts with: "?##" [ 0x3f, 0x23, 0x23 ]
102
- // "?" = USB reportId, "##" = KeepKey magic bytes
103
- // Message ID is bytes 4-5. Message length starts at byte 6.
104
- const firstView = new DataView(first.buffer.slice(first.byteOffset, first.byteOffset + first.byteLength));
105
- const valid = (firstView.getUint32(0) & 0xffffff00) === 0x3f232300;
106
- const msgLength = firstView.getUint32(5);
107
- if (!valid)
108
- throw new Error("message not valid");
109
- const buffer = new Uint8Array(9 + msgLength);
110
- buffer.set(first.slice(0, Math.min(first.length, buffer.length)));
111
- for (let offset = first.length; offset < buffer.length;) {
112
- // Drop USB "?" reportId in the first byte
113
- const next = (yield this.delegate.readChunk(debugLink)).slice(1);
114
- buffer.set(next.slice(0, Math.min(next.length, buffer.length - offset)), offset);
115
- offset += next.length;
116
- }
117
- return buffer;
118
- });
58
+ async read(debugLink) {
59
+ const first = await this.delegate.readChunk(debugLink);
60
+ // Check that buffer starts with: "?##" [ 0x3f, 0x23, 0x23 ]
61
+ // "?" = USB reportId, "##" = KeepKey magic bytes
62
+ // Message ID is bytes 4-5. Message length starts at byte 6.
63
+ const firstView = new DataView(first.buffer.slice(first.byteOffset, first.byteOffset + first.byteLength));
64
+ const valid = (firstView.getUint32(0) & 0xffffff00) === 0x3f232300;
65
+ const msgLength = firstView.getUint32(5);
66
+ if (!valid)
67
+ throw new Error("message not valid");
68
+ const buffer = new Uint8Array(9 + msgLength);
69
+ buffer.set(first.slice(0, Math.min(first.length, buffer.length)));
70
+ for (let offset = first.length; offset < buffer.length;) {
71
+ // Drop USB "?" reportId in the first byte
72
+ const next = (await this.delegate.readChunk(debugLink)).slice(1);
73
+ buffer.set(next.slice(0, Math.min(next.length, buffer.length - offset)), offset);
74
+ offset += next.length;
75
+ }
76
+ return buffer;
119
77
  }
120
78
  getVendor() {
121
79
  return "KeepKey";
122
80
  }
123
81
  getEntropy(length) {
124
- if (typeof window !== "undefined" && (window === null || window === void 0 ? void 0 : window.crypto)) {
82
+ if (typeof window !== "undefined" && window?.crypto) {
125
83
  return window.crypto.getRandomValues(new Uint8Array(length));
126
84
  }
127
85
  return crypto.randomBytes(length);
128
86
  }
129
- getFirmwareHash(firmware) {
130
- return __awaiter(this, void 0, void 0, function* () {
131
- if (typeof window !== "undefined" && (window === null || window === void 0 ? void 0 : window.crypto)) {
132
- return new Uint8Array(yield window.crypto.subtle.digest({ name: "SHA-256" }, firmware));
133
- }
134
- const hash = crypto.createHash("sha256");
135
- hash.update(firmware);
136
- return hash.digest();
137
- });
87
+ async getFirmwareHash(firmware) {
88
+ if (typeof window !== "undefined" && window?.crypto) {
89
+ return new Uint8Array(await window.crypto.subtle.digest({ name: "SHA-256" }, firmware));
90
+ }
91
+ const hash = crypto.createHash("sha256");
92
+ hash.update(firmware);
93
+ return hash.digest();
138
94
  }
139
95
  /**
140
96
  * Utility function to cancel all pending calls whenver one of them is cancelled.
141
97
  */
142
- cancellable(inProgress) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- try {
145
- yield inProgress;
146
- }
147
- catch (e) {
148
- // Throw away the error, as the other context will handle it,
149
- // unless it was a cancel, in which case we cancel everything.
150
- if (core.isIndexable(e) && e.type === core.HDWalletErrorType.ActionCancelled) {
151
- this.callInProgress = { main: undefined, debug: undefined };
152
- throw e;
153
- }
98
+ async cancellable(inProgress) {
99
+ try {
100
+ await inProgress;
101
+ }
102
+ catch (e) {
103
+ // Throw away the error, as the other context will handle it,
104
+ // unless it was a cancel, in which case we cancel everything.
105
+ if (core.isIndexable(e) && e.type === core.HDWalletErrorType.ActionCancelled) {
106
+ this.callInProgress = { main: undefined, debug: undefined };
107
+ throw e;
154
108
  }
155
- });
109
+ }
156
110
  }
157
- lockDuring(action) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- this.callInProgress.main = (() => __awaiter(this, void 0, void 0, function* () {
160
- yield this.cancellable(this.callInProgress.main);
161
- return action();
162
- }))();
163
- return this.callInProgress.main;
164
- });
111
+ async lockDuring(action) {
112
+ this.callInProgress.main = (async () => {
113
+ await this.cancellable(this.callInProgress.main);
114
+ return action();
115
+ })();
116
+ return this.callInProgress.main;
165
117
  }
166
- handleCancellableResponse() {
167
- return __awaiter(this, void 0, void 0, function* () {
168
- return this.readResponse(false);
169
- });
118
+ async handleCancellableResponse() {
119
+ return this.readResponse(false);
170
120
  }
171
- readResponse(debugLink) {
172
- return __awaiter(this, void 0, void 0, function* () {
173
- let buf;
174
- do {
175
- buf = yield this.read(debugLink);
176
- } while (!buf);
177
- const [msgTypeEnum, msg] = this.fromMessageBuffer(buf);
178
- const event = core.makeEvent({
179
- message_type: typeRegistry_1.messageNameRegistry[msgTypeEnum],
121
+ async readResponse(debugLink) {
122
+ let buf;
123
+ do {
124
+ buf = await this.read(debugLink);
125
+ } while (!buf);
126
+ const [msgTypeEnum, msg] = this.fromMessageBuffer(buf);
127
+ const event = core.makeEvent({
128
+ message_type: messageNameRegistry[msgTypeEnum],
129
+ message_enum: msgTypeEnum,
130
+ message: msg.toObject(),
131
+ proto: msg,
132
+ from_wallet: true,
133
+ });
134
+ this.emit(String(msgTypeEnum), event);
135
+ if (debugLink)
136
+ return event;
137
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_FAILURE) {
138
+ const failureEvent = core.makeEvent({
139
+ message_type: core.Events.FAILURE,
180
140
  message_enum: msgTypeEnum,
181
141
  message: msg.toObject(),
182
- proto: msg,
183
142
  from_wallet: true,
184
143
  });
185
- this.emit(String(msgTypeEnum), event);
186
- if (debugLink)
187
- return event;
188
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_FAILURE) {
189
- const failureEvent = core.makeEvent({
190
- message_type: core.Events.FAILURE,
191
- message_enum: msgTypeEnum,
192
- message: msg.toObject(),
193
- from_wallet: true,
194
- });
195
- this.emit(core.Events.FAILURE, failureEvent);
196
- return failureEvent;
197
- }
198
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_BUTTONREQUEST) {
199
- this.emit(core.Events.BUTTON_REQUEST, core.makeEvent({
200
- message_type: core.Events.BUTTON_REQUEST,
201
- from_wallet: true,
202
- }));
203
- this.userActionRequired = true;
204
- return this.call(Messages.MessageType.MESSAGETYPE_BUTTONACK, new Messages.ButtonAck(), {
205
- msgTimeout: core.LONG_TIMEOUT,
206
- omitLock: true,
207
- });
208
- }
209
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_ENTROPYREQUEST) {
210
- const ack = new Messages.EntropyAck();
211
- ack.setEntropy(this.getEntropy(32));
212
- return this.call(Messages.MessageType.MESSAGETYPE_ENTROPYACK, ack, {
213
- msgTimeout: core.LONG_TIMEOUT,
214
- omitLock: true,
215
- });
216
- }
217
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_PINMATRIXREQUEST) {
218
- this.emit(core.Events.PIN_REQUEST, core.makeEvent({
219
- message_type: core.Events.PIN_REQUEST,
220
- from_wallet: true,
221
- }));
222
- this.userActionRequired = true;
223
- return this.handleCancellableResponse();
224
- }
225
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_PASSPHRASEREQUEST) {
226
- this.emit(core.Events.PASSPHRASE_REQUEST, core.makeEvent({
227
- message_type: core.Events.PASSPHRASE_REQUEST,
228
- from_wallet: true,
229
- }));
230
- this.userActionRequired = true;
231
- return this.handleCancellableResponse();
232
- }
233
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_CHARACTERREQUEST) {
234
- this.emit(core.Events.CHARACTER_REQUEST, core.makeEvent({
235
- message_type: core.Events.CHARACTER_REQUEST,
236
- from_wallet: true,
237
- }));
238
- this.userActionRequired = true;
239
- return this.handleCancellableResponse();
240
- }
241
- if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_WORDREQUEST) {
242
- this.emit(core.Events.WORD_REQUEST, core.makeEvent({
243
- message_type: core.Events.WORD_REQUEST,
244
- from_wallet: true,
245
- }));
246
- this.userActionRequired = true;
247
- return this.handleCancellableResponse();
248
- }
249
- return event;
250
- });
251
- }
252
- call(msgTypeEnum, msg, options) {
253
- var _a;
254
- return __awaiter(this, void 0, void 0, function* () {
255
- options !== null && options !== void 0 ? options : (options = {});
256
- (_a = options.msgTimeout) !== null && _a !== void 0 ? _a : (options.msgTimeout = core.DEFAULT_TIMEOUT);
257
- this.emit(String(msgTypeEnum), core.makeEvent({
258
- message_type: typeRegistry_1.messageNameRegistry[msgTypeEnum],
259
- message_enum: msgTypeEnum,
260
- message: msg.toObject(),
261
- proto: msg,
262
- from_wallet: false,
144
+ this.emit(core.Events.FAILURE, failureEvent);
145
+ return failureEvent;
146
+ }
147
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_BUTTONREQUEST) {
148
+ this.emit(core.Events.BUTTON_REQUEST, core.makeEvent({
149
+ message_type: core.Events.BUTTON_REQUEST,
150
+ from_wallet: true,
263
151
  }));
264
- const makePromise = () => __awaiter(this, void 0, void 0, function* () {
265
- if ([
266
- Messages.MessageType.MESSAGETYPE_BUTTONACK,
267
- Messages.MessageType.MESSAGETYPE_PASSPHRASEACK,
268
- Messages.MessageType.MESSAGETYPE_CHARACTERACK,
269
- Messages.MessageType.MESSAGETYPE_PINMATRIXACK,
270
- Messages.MessageType.MESSAGETYPE_WORDACK,
271
- ].includes(msgTypeEnum)) {
272
- this.userActionRequired = true;
273
- }
274
- yield this.write(this.toMessageBuffer(msgTypeEnum, msg), !!(options === null || options === void 0 ? void 0 : options.debugLink));
275
- if (options === null || options === void 0 ? void 0 : options.noWait)
276
- return undefined;
277
- const response = yield this.readResponse(!!(options === null || options === void 0 ? void 0 : options.debugLink));
278
- this.userActionRequired = false;
279
- if (response.message_enum === Messages.MessageType.MESSAGETYPE_FAILURE &&
280
- response.message.code === Types.FailureType.FAILURE_ACTIONCANCELLED) {
281
- this.callInProgress = { main: undefined, debug: undefined };
282
- throw new core.ActionCancelled();
283
- }
284
- if (response.message_type === core.Events.FAILURE)
285
- throw response;
286
- return response;
152
+ this.userActionRequired = true;
153
+ return this.call(Messages.MessageType.MESSAGETYPE_BUTTONACK, new Messages.ButtonAck(), {
154
+ msgTimeout: core.LONG_TIMEOUT,
155
+ omitLock: true,
287
156
  });
288
- if (options === null || options === void 0 ? void 0 : options.omitLock)
289
- return makePromise();
290
- // See the comments in hdwallet-trezor-connect's call for why this weird
291
- // sequence. We've got a very similar issue here that needs pretty much
292
- // the same solution.
293
- const lockKey = (options === null || options === void 0 ? void 0 : options.debugLink) ? "debug" : "main";
294
- this.callInProgress[lockKey] = (() => __awaiter(this, void 0, void 0, function* () {
295
- yield this.cancellable(this.callInProgress[lockKey]);
296
- try {
297
- return makePromise();
298
- }
299
- finally {
300
- this.userActionRequired = false;
301
- }
302
- }))();
303
- return yield this.callInProgress[lockKey];
304
- });
157
+ }
158
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_ENTROPYREQUEST) {
159
+ const ack = new Messages.EntropyAck();
160
+ ack.setEntropy(this.getEntropy(32));
161
+ return this.call(Messages.MessageType.MESSAGETYPE_ENTROPYACK, ack, {
162
+ msgTimeout: core.LONG_TIMEOUT,
163
+ omitLock: true,
164
+ });
165
+ }
166
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_PINMATRIXREQUEST) {
167
+ this.emit(core.Events.PIN_REQUEST, core.makeEvent({
168
+ message_type: core.Events.PIN_REQUEST,
169
+ from_wallet: true,
170
+ }));
171
+ this.userActionRequired = true;
172
+ return this.handleCancellableResponse();
173
+ }
174
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_PASSPHRASEREQUEST) {
175
+ this.emit(core.Events.PASSPHRASE_REQUEST, core.makeEvent({
176
+ message_type: core.Events.PASSPHRASE_REQUEST,
177
+ from_wallet: true,
178
+ }));
179
+ this.userActionRequired = true;
180
+ return this.handleCancellableResponse();
181
+ }
182
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_CHARACTERREQUEST) {
183
+ this.emit(core.Events.CHARACTER_REQUEST, core.makeEvent({
184
+ message_type: core.Events.CHARACTER_REQUEST,
185
+ from_wallet: true,
186
+ }));
187
+ this.userActionRequired = true;
188
+ return this.handleCancellableResponse();
189
+ }
190
+ if (msgTypeEnum === Messages.MessageType.MESSAGETYPE_WORDREQUEST) {
191
+ this.emit(core.Events.WORD_REQUEST, core.makeEvent({
192
+ message_type: core.Events.WORD_REQUEST,
193
+ from_wallet: true,
194
+ }));
195
+ this.userActionRequired = true;
196
+ return this.handleCancellableResponse();
197
+ }
198
+ return event;
305
199
  }
306
- cancel() {
307
- return __awaiter(this, void 0, void 0, function* () {
308
- if (!this.userActionRequired)
309
- return;
310
- try {
200
+ async call(msgTypeEnum, msg, options) {
201
+ options ??= {};
202
+ options.msgTimeout ??= core.DEFAULT_TIMEOUT;
203
+ this.emit(String(msgTypeEnum), core.makeEvent({
204
+ message_type: messageNameRegistry[msgTypeEnum],
205
+ message_enum: msgTypeEnum,
206
+ message: msg.toObject(),
207
+ proto: msg,
208
+ from_wallet: false,
209
+ }));
210
+ const makePromise = async () => {
211
+ if ([
212
+ Messages.MessageType.MESSAGETYPE_BUTTONACK,
213
+ Messages.MessageType.MESSAGETYPE_PASSPHRASEACK,
214
+ Messages.MessageType.MESSAGETYPE_CHARACTERACK,
215
+ Messages.MessageType.MESSAGETYPE_PINMATRIXACK,
216
+ Messages.MessageType.MESSAGETYPE_WORDACK,
217
+ ].includes(msgTypeEnum)) {
218
+ this.userActionRequired = true;
219
+ }
220
+ await this.write(this.toMessageBuffer(msgTypeEnum, msg), !!options?.debugLink);
221
+ if (options?.noWait)
222
+ return undefined;
223
+ const response = await this.readResponse(!!options?.debugLink);
224
+ this.userActionRequired = false;
225
+ if (response.message_enum === Messages.MessageType.MESSAGETYPE_FAILURE &&
226
+ response.message.code === Types.FailureType.FAILURE_ACTIONCANCELLED) {
311
227
  this.callInProgress = { main: undefined, debug: undefined };
312
- const cancelMsg = new Messages.Cancel();
313
- yield this.call(Messages.MessageType.MESSAGETYPE_CANCEL, cancelMsg, {
314
- omitLock: this.userActionRequired,
315
- noWait: this.userActionRequired,
316
- });
228
+ throw new core.ActionCancelled();
317
229
  }
318
- catch (e) {
319
- console.error("Cancel Pending Error", e);
230
+ if (response.message_type === core.Events.FAILURE)
231
+ throw response;
232
+ return response;
233
+ };
234
+ if (options?.omitLock)
235
+ return makePromise();
236
+ // See the comments in hdwallet-trezor-connect's call for why this weird
237
+ // sequence. We've got a very similar issue here that needs pretty much
238
+ // the same solution.
239
+ const lockKey = options?.debugLink ? "debug" : "main";
240
+ this.callInProgress[lockKey] = (async () => {
241
+ await this.cancellable(this.callInProgress[lockKey]);
242
+ try {
243
+ return makePromise();
320
244
  }
321
245
  finally {
322
- this.callInProgress = { main: undefined, debug: undefined };
246
+ this.userActionRequired = false;
323
247
  }
324
- });
248
+ })();
249
+ return await this.callInProgress[lockKey];
250
+ }
251
+ async cancel() {
252
+ if (!this.userActionRequired)
253
+ return;
254
+ try {
255
+ this.callInProgress = { main: undefined, debug: undefined };
256
+ const cancelMsg = new Messages.Cancel();
257
+ await this.call(Messages.MessageType.MESSAGETYPE_CANCEL, cancelMsg, {
258
+ omitLock: this.userActionRequired,
259
+ noWait: this.userActionRequired,
260
+ });
261
+ }
262
+ catch (e) {
263
+ console.error("Cancel Pending Error", e);
264
+ }
265
+ finally {
266
+ this.callInProgress = { main: undefined, debug: undefined };
267
+ }
325
268
  }
326
269
  toMessageBuffer(msgTypeEnum, msg) {
327
270
  const messageBuffer = msg.serializeBinary();
@@ -338,7 +281,7 @@ class Transport extends core.Transport {
338
281
  }
339
282
  fromMessageBuffer(buf) {
340
283
  const typeID = new DataView(buf.buffer).getUint16(3);
341
- const MType = typeRegistry_1.messageTypeRegistry[typeID];
284
+ const MType = messageTypeRegistry[typeID];
342
285
  if (!MType) {
343
286
  const msg = new Messages.Failure();
344
287
  msg.setCode(Types.FailureType.FAILURE_UNEXPECTEDMESSAGE);
@@ -361,5 +304,4 @@ class Transport extends core.Transport {
361
304
  return msg.serializeBinary();
362
305
  }
363
306
  }
364
- exports.Transport = Transport;
365
307
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}