@ledgerhq/hw-transport-web-ble 6.29.4 → 6.29.5-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
2
  > @ledgerhq/hw-transport-web-ble@6.29.4 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-transport-web-ble
3
- > tsc && tsc -m ES6 --outDir lib-es
3
+ > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @ledgerhq/hw-transport-web-ble
2
2
 
3
+ ## 6.29.5-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`107f35a`](https://github.com/LedgerHQ/ledger-live/commit/107f35a0650412716b088a3503b86435e6d9cf47), [`9081c26`](https://github.com/LedgerHQ/ledger-live/commit/9081c2648490f977469a33762a3c67bb2c2a0be5)]:
8
+ - @ledgerhq/errors@6.21.0-next.0
9
+ - @ledgerhq/devices@8.4.5-next.0
10
+ - @ledgerhq/hw-transport@6.31.5-next.0
11
+
3
12
  ## 6.29.4
4
13
 
5
14
  ### Patch Changes
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import Transport from "@ledgerhq/hw-transport";
3
4
  import type { DeviceModel } from "@ledgerhq/devices";
4
5
  import { Observable, Subscription } from "rxjs";
@@ -1 +1 @@
1
- {"version":3,"file":"TransportWebBLE.d.ts","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,MAAM,CAAC;AAEpF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqItD;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAMnC;IAEN;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,aAAc,GAAG,KAAG,YAAY,CAAuC;IACjG,MAAM,CAAC,IAAI,QAAO,GAAG,CAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;;;IA4B3B;;OAEG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAOhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,UAAQ;IAC1B,WAAW,EAAE,WAAW,CAAC;gBAGvB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAWpB,QAAQ;IA8Bd;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7C,cAAc;IAEd,KAAK,WAAkB,MAAM,mBAG3B;IAEI,KAAK;CAKZ"}
1
+ {"version":3,"file":"TransportWebBLE.d.ts","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":";;AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,MAAM,CAAC;AAEpF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqItD;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAMnC;IAEN;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,aAAc,GAAG,KAAG,YAAY,CAAuC;IACjG,MAAM,CAAC,IAAI,QAAO,GAAG,CAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;;;IA4B3B;;OAEG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAOhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,UAAQ;IAC1B,WAAW,EAAE,WAAW,CAAC;gBAGvB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAWpB,QAAQ;IA8Bd;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7C,cAAc;IAEd,KAAK,WAAkB,MAAM,mBAG3B;IAEI,KAAK;CAKZ"}
@@ -1,17 +1,7 @@
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
  };
14
- var _a;
15
5
  Object.defineProperty(exports, "__esModule", { value: true });
16
6
  /* eslint-disable prefer-template */
17
7
  const hw_transport_1 = __importDefault(require("@ledgerhq/hw-transport"));
@@ -54,85 +44,83 @@ const requestDeviceParam = () => ({
54
44
  services: [uuid],
55
45
  })),
56
46
  });
57
- const retrieveService = (device) => __awaiter(void 0, void 0, void 0, function* () {
47
+ const retrieveService = async (device) => {
58
48
  if (!device.gatt)
59
49
  throw new Error("bluetooth gatt not found");
60
- const [service] = yield device.gatt.getPrimaryServices();
50
+ const [service] = await device.gatt.getPrimaryServices();
61
51
  if (!service)
62
52
  throw new Error("bluetooth service not found");
63
53
  const infos = (0, devices_1.getInfosForServiceUuid)(service.uuid);
64
54
  if (!infos)
65
55
  throw new Error("bluetooth service infos not found");
66
56
  return [service, infos];
67
- });
68
- function open(deviceOrId, needsReconnect) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- let device;
71
- if (typeof deviceOrId === "string") {
72
- if (transportsCache[deviceOrId]) {
73
- (0, logs_1.log)("ble-verbose", "Transport in cache, using that.");
74
- return transportsCache[deviceOrId];
75
- }
76
- const bluetooth = requiresBluetooth();
77
- // TODO instead we should "query" the device by its ID
78
- device = yield bluetooth.requestDevice(requestDeviceParam());
79
- }
80
- else {
81
- device = deviceOrId;
82
- }
83
- if (!device.gatt.connected) {
84
- (0, logs_1.log)("ble-verbose", "not connected. connecting...");
85
- yield device.gatt.connect();
86
- }
87
- const [service, infos] = yield retrieveService(device);
88
- const { deviceModel, writeUuid, notifyUuid } = infos;
89
- const [writeC, notifyC] = yield Promise.all([
90
- service.getCharacteristic(writeUuid),
91
- service.getCharacteristic(notifyUuid),
92
- ]);
93
- const notifyObservable = (0, monitorCharacteristic_1.monitorCharacteristic)(notifyC).pipe((0, operators_1.tap)(value => {
94
- (0, logs_1.log)("ble-frame", "<= " + value.toString("hex"));
95
- }), (0, operators_1.share)());
96
- const notif = notifyObservable.subscribe();
97
- const transport = new BluetoothTransport(device, writeC, notifyObservable, deviceModel);
98
- if (!device.gatt.connected) {
99
- throw new errors_1.DisconnectedDevice();
100
- }
101
- // eslint-disable-next-line require-atomic-updates
102
- transportsCache[transport.id] = transport;
103
- const onDisconnect = e => {
104
- console.log("onDisconnect!", e);
105
- delete transportsCache[transport.id];
106
- transport.notYetDisconnected = false;
107
- notif.unsubscribe();
108
- device.removeEventListener("gattserverdisconnected", onDisconnect);
109
- (0, logs_1.log)("ble-verbose", `BleTransport(${transport.id}) disconnected`);
110
- transport.emit("disconnect", e);
111
- };
112
- device.addEventListener("gattserverdisconnected", onDisconnect);
113
- const beforeMTUTime = Date.now();
114
- try {
115
- yield transport.inferMTU();
57
+ };
58
+ async function open(deviceOrId, needsReconnect) {
59
+ let device;
60
+ if (typeof deviceOrId === "string") {
61
+ if (transportsCache[deviceOrId]) {
62
+ (0, logs_1.log)("ble-verbose", "Transport in cache, using that.");
63
+ return transportsCache[deviceOrId];
116
64
  }
117
- finally {
118
- const afterMTUTime = Date.now();
119
- // workaround for #279: we need to open() again if we come the first time here,
120
- // to make sure we do a disconnect() after the first pairing time
121
- // because of a firmware bug
122
- if (afterMTUTime - beforeMTUTime < 1000) {
123
- needsReconnect = false; // (optim) there is likely no new pairing done because mtu answer was fast.
124
- }
125
- if (needsReconnect) {
126
- yield device.gatt.disconnect();
127
- // necessary time for the bonding workaround
128
- yield new Promise(s => setTimeout(s, 4000));
129
- }
65
+ const bluetooth = requiresBluetooth();
66
+ // TODO instead we should "query" the device by its ID
67
+ device = await bluetooth.requestDevice(requestDeviceParam());
68
+ }
69
+ else {
70
+ device = deviceOrId;
71
+ }
72
+ if (!device.gatt.connected) {
73
+ (0, logs_1.log)("ble-verbose", "not connected. connecting...");
74
+ await device.gatt.connect();
75
+ }
76
+ const [service, infos] = await retrieveService(device);
77
+ const { deviceModel, writeUuid, notifyUuid } = infos;
78
+ const [writeC, notifyC] = await Promise.all([
79
+ service.getCharacteristic(writeUuid),
80
+ service.getCharacteristic(notifyUuid),
81
+ ]);
82
+ const notifyObservable = (0, monitorCharacteristic_1.monitorCharacteristic)(notifyC).pipe((0, operators_1.tap)(value => {
83
+ (0, logs_1.log)("ble-frame", "<= " + value.toString("hex"));
84
+ }), (0, operators_1.share)());
85
+ const notif = notifyObservable.subscribe();
86
+ const transport = new BluetoothTransport(device, writeC, notifyObservable, deviceModel);
87
+ if (!device.gatt.connected) {
88
+ throw new errors_1.DisconnectedDevice();
89
+ }
90
+ // eslint-disable-next-line require-atomic-updates
91
+ transportsCache[transport.id] = transport;
92
+ const onDisconnect = e => {
93
+ console.log("onDisconnect!", e);
94
+ delete transportsCache[transport.id];
95
+ transport.notYetDisconnected = false;
96
+ notif.unsubscribe();
97
+ device.removeEventListener("gattserverdisconnected", onDisconnect);
98
+ (0, logs_1.log)("ble-verbose", `BleTransport(${transport.id}) disconnected`);
99
+ transport.emit("disconnect", e);
100
+ };
101
+ device.addEventListener("gattserverdisconnected", onDisconnect);
102
+ const beforeMTUTime = Date.now();
103
+ try {
104
+ await transport.inferMTU();
105
+ }
106
+ finally {
107
+ const afterMTUTime = Date.now();
108
+ // workaround for #279: we need to open() again if we come the first time here,
109
+ // to make sure we do a disconnect() after the first pairing time
110
+ // because of a firmware bug
111
+ if (afterMTUTime - beforeMTUTime < 1000) {
112
+ needsReconnect = false; // (optim) there is likely no new pairing done because mtu answer was fast.
130
113
  }
131
114
  if (needsReconnect) {
132
- return open(device, false);
115
+ await device.gatt.disconnect();
116
+ // necessary time for the bonding workaround
117
+ await new Promise(s => setTimeout(s, 4000));
133
118
  }
134
- return transport;
135
- });
119
+ }
120
+ if (needsReconnect) {
121
+ return open(device, false);
122
+ }
123
+ return transport;
136
124
  }
137
125
  /**
138
126
  * react-native bluetooth BLE implementation
@@ -140,6 +128,16 @@ function open(deviceOrId, needsReconnect) {
140
128
  * import BluetoothTransport from "@ledgerhq/hw-transport-web-ble";
141
129
  */
142
130
  class BluetoothTransport extends hw_transport_1.default {
131
+ static isSupported = () => Promise.resolve()
132
+ .then(requiresBluetooth)
133
+ .then(() => true, () => false);
134
+ /**
135
+ * observe event with { available: bool, type: string }
136
+ * (available is generic, type is specific)
137
+ * an event is emit once and then each time it changes
138
+ */
139
+ static observeAvailability = (observer) => availability().subscribe(observer);
140
+ static list = () => Promise.resolve([]);
143
141
  /**
144
142
  * Scan for Ledger Bluetooth devices.
145
143
  * On this web implementation, it only emits ONE device, the one that was selected in the UI (if any).
@@ -169,19 +167,28 @@ class BluetoothTransport extends hw_transport_1.default {
169
167
  /**
170
168
  * open a bluetooth device.
171
169
  */
172
- static open(deviceOrId) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- return open(deviceOrId, true);
175
- });
170
+ static async open(deviceOrId) {
171
+ return open(deviceOrId, true);
176
172
  }
173
+ /**
174
+ * globally disconnect a bluetooth device by its id.
175
+ */
176
+ static disconnect = async (id) => {
177
+ (0, logs_1.log)("ble-verbose", `user disconnect(${id})`);
178
+ const transport = transportsCache[id];
179
+ if (transport) {
180
+ transport.device.gatt.disconnect();
181
+ }
182
+ };
183
+ id;
184
+ device;
185
+ mtuSize = 20;
186
+ writeCharacteristic;
187
+ notifyObservable;
188
+ notYetDisconnected = true;
189
+ deviceModel;
177
190
  constructor(device, writeCharacteristic, notifyObservable, deviceModel) {
178
191
  super();
179
- this.mtuSize = 20;
180
- this.notYetDisconnected = true;
181
- this.write = (buffer) => __awaiter(this, void 0, void 0, function* () {
182
- (0, logs_1.log)("ble-frame", "=> " + buffer.toString("hex"));
183
- yield this.writeCharacteristic.writeValue(buffer);
184
- });
185
192
  this.id = device.id;
186
193
  this.device = device;
187
194
  this.writeCharacteristic = writeCharacteristic;
@@ -189,85 +196,62 @@ class BluetoothTransport extends hw_transport_1.default {
189
196
  this.deviceModel = deviceModel;
190
197
  (0, logs_1.log)("ble-verbose", `BleTransport(${String(this.id)}) new instance`);
191
198
  }
192
- inferMTU() {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- let mtu = 23;
195
- yield this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
196
- try {
197
- mtu =
198
- (yield (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe((0, operators_1.first)(buffer => buffer.readUInt8(0) === 0x08), (0, operators_1.map)(buffer => buffer.readUInt8(5))), (0, rxjs_1.defer)(() => (0, rxjs_1.from)(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe((0, operators_1.ignoreElements)())))) + 3;
199
- }
200
- catch (e) {
201
- (0, logs_1.log)("ble-error", "inferMTU got " + String(e));
202
- this.device.gatt.disconnect();
203
- throw e;
204
- }
205
- }));
206
- if (mtu > 23) {
207
- const mtuSize = mtu - 3;
208
- (0, logs_1.log)("ble-verbose", `BleTransport(${String(this.id)}) mtu set to ${String(mtuSize)}`);
209
- this.mtuSize = mtuSize;
199
+ async inferMTU() {
200
+ let mtu = 23;
201
+ await this.exchangeAtomicImpl(async () => {
202
+ try {
203
+ mtu =
204
+ (await (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe((0, operators_1.first)(buffer => buffer.readUInt8(0) === 0x08), (0, operators_1.map)(buffer => buffer.readUInt8(5))), (0, rxjs_1.defer)(() => (0, rxjs_1.from)(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe((0, operators_1.ignoreElements)())))) + 3;
205
+ }
206
+ catch (e) {
207
+ (0, logs_1.log)("ble-error", "inferMTU got " + String(e));
208
+ this.device.gatt.disconnect();
209
+ throw e;
210
210
  }
211
- return this.mtuSize;
212
211
  });
212
+ if (mtu > 23) {
213
+ const mtuSize = mtu - 3;
214
+ (0, logs_1.log)("ble-verbose", `BleTransport(${String(this.id)}) mtu set to ${String(mtuSize)}`);
215
+ this.mtuSize = mtuSize;
216
+ }
217
+ return this.mtuSize;
213
218
  }
214
219
  /**
215
220
  * Exchange with the device using APDU protocol.
216
221
  * @param apdu
217
222
  * @returns a promise of apdu response
218
223
  */
219
- exchange(apdu) {
220
- return __awaiter(this, void 0, void 0, function* () {
221
- const b = yield this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
222
- try {
223
- const msgIn = apdu.toString("hex");
224
- (0, logs_1.log)("apdu", `=> ${msgIn}`);
225
- const data = yield (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe(receiveAPDU_1.receiveAPDU), (0, sendAPDU_1.sendAPDU)(this.write, apdu, this.mtuSize)));
226
- const msgOut = data.toString("hex");
227
- (0, logs_1.log)("apdu", `<= ${msgOut}`);
228
- return data;
229
- }
230
- catch (e) {
231
- (0, logs_1.log)("ble-error", "exchange got " + String(e));
232
- if (this.notYetDisconnected) {
233
- // in such case we will always disconnect because something is bad.
234
- this.device.gatt.disconnect();
235
- }
236
- throw e;
224
+ async exchange(apdu) {
225
+ const b = await this.exchangeAtomicImpl(async () => {
226
+ try {
227
+ const msgIn = apdu.toString("hex");
228
+ (0, logs_1.log)("apdu", `=> ${msgIn}`);
229
+ const data = await (0, rxjs_1.firstValueFrom)((0, rxjs_1.merge)(this.notifyObservable.pipe(receiveAPDU_1.receiveAPDU), (0, sendAPDU_1.sendAPDU)(this.write, apdu, this.mtuSize)));
230
+ const msgOut = data.toString("hex");
231
+ (0, logs_1.log)("apdu", `<= ${msgOut}`);
232
+ return data;
233
+ }
234
+ catch (e) {
235
+ (0, logs_1.log)("ble-error", "exchange got " + String(e));
236
+ if (this.notYetDisconnected) {
237
+ // in such case we will always disconnect because something is bad.
238
+ this.device.gatt.disconnect();
237
239
  }
238
- }));
239
- return b;
240
+ throw e;
241
+ }
240
242
  });
243
+ return b;
241
244
  }
242
245
  setScrambleKey() { }
243
- close() {
244
- return __awaiter(this, void 0, void 0, function* () {
245
- if (this.exchangeBusyPromise) {
246
- yield this.exchangeBusyPromise;
247
- }
248
- });
246
+ write = async (buffer) => {
247
+ (0, logs_1.log)("ble-frame", "=> " + buffer.toString("hex"));
248
+ await this.writeCharacteristic.writeValue(buffer);
249
+ };
250
+ async close() {
251
+ if (this.exchangeBusyPromise) {
252
+ await this.exchangeBusyPromise;
253
+ }
249
254
  }
250
255
  }
251
- _a = BluetoothTransport;
252
- BluetoothTransport.isSupported = () => Promise.resolve()
253
- .then(requiresBluetooth)
254
- .then(() => true, () => false);
255
- /**
256
- * observe event with { available: bool, type: string }
257
- * (available is generic, type is specific)
258
- * an event is emit once and then each time it changes
259
- */
260
- BluetoothTransport.observeAvailability = (observer) => availability().subscribe(observer);
261
- BluetoothTransport.list = () => Promise.resolve([]);
262
- /**
263
- * globally disconnect a bluetooth device by its id.
264
- */
265
- BluetoothTransport.disconnect = (id) => __awaiter(void 0, void 0, void 0, function* () {
266
- (0, logs_1.log)("ble-verbose", `user disconnect(${id})`);
267
- const transport = transportsCache[id];
268
- if (transport) {
269
- transport.device.gatt.disconnect();
270
- }
271
- });
272
256
  exports.default = BluetoothTransport;
273
257
  //# sourceMappingURL=TransportWebBLE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransportWebBLE.js","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransportWebBLE.js","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { Observable } from "rxjs";
3
4
  import type { Characteristic } from "./types";
4
5
  export declare const monitorCharacteristic: (characteristic: Characteristic) => Observable<Buffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"monitorCharacteristic.d.ts","sourceRoot":"","sources":["../src/monitorCharacteristic.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,qBAAqB,mBAAoB,cAAc,KAAG,WAAW,MAAM,CAmBpF,CAAC"}
1
+ {"version":3,"file":"monitorCharacteristic.d.ts","sourceRoot":"","sources":["../src/monitorCharacteristic.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,qBAAqB,mBAAoB,cAAc,KAAG,WAAW,MAAM,CAmBpF,CAAC"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import Transport from "@ledgerhq/hw-transport";
3
4
  import type { DeviceModel } from "@ledgerhq/devices";
4
5
  import { Observable, Subscription } from "rxjs";
@@ -1 +1 @@
1
- {"version":3,"file":"TransportWebBLE.d.ts","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,MAAM,CAAC;AAEpF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqItD;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAMnC;IAEN;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,aAAc,GAAG,KAAG,YAAY,CAAuC;IACjG,MAAM,CAAC,IAAI,QAAO,GAAG,CAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;;;IA4B3B;;OAEG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAOhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,UAAQ;IAC1B,WAAW,EAAE,WAAW,CAAC;gBAGvB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAWpB,QAAQ;IA8Bd;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7C,cAAc;IAEd,KAAK,WAAkB,MAAM,mBAG3B;IAEI,KAAK;CAKZ"}
1
+ {"version":3,"file":"TransportWebBLE.d.ts","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":";;AACA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAG/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,MAAM,CAAC;AAEpF,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAqItD;;;;GAIG;AAEH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,SAAS;IACvD,MAAM,CAAC,WAAW,QAAO,QAAQ,OAAO,CAAC,CAMnC;IAEN;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,aAAc,GAAG,KAAG,YAAY,CAAuC;IACjG,MAAM,CAAC,IAAI,QAAO,GAAG,CAAwB;IAE7C;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG;;;IA4B3B;;OAEG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,UAAU,OAAc,GAAG,mBAOhC;IACF,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,SAAM;IACb,mBAAmB,EAAE,cAAc,CAAC;IACpC,gBAAgB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,UAAQ;IAC1B,WAAW,EAAE,WAAW,CAAC;gBAGvB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,cAAc,EACnC,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,EACjC,WAAW,EAAE,WAAW;IAWpB,QAAQ;IA8Bd;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B7C,cAAc;IAEd,KAAK,WAAkB,MAAM,mBAG3B;IAEI,KAAK;CAKZ"}
@@ -1,13 +1,3 @@
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
- var _a;
11
1
  /* eslint-disable prefer-template */
12
2
  import Transport from "@ledgerhq/hw-transport";
13
3
  import { DisconnectedDevice, TransportOpenUserCancelled } from "@ledgerhq/errors";
@@ -49,92 +39,100 @@ const requestDeviceParam = () => ({
49
39
  services: [uuid],
50
40
  })),
51
41
  });
52
- const retrieveService = (device) => __awaiter(void 0, void 0, void 0, function* () {
42
+ const retrieveService = async (device) => {
53
43
  if (!device.gatt)
54
44
  throw new Error("bluetooth gatt not found");
55
- const [service] = yield device.gatt.getPrimaryServices();
45
+ const [service] = await device.gatt.getPrimaryServices();
56
46
  if (!service)
57
47
  throw new Error("bluetooth service not found");
58
48
  const infos = getInfosForServiceUuid(service.uuid);
59
49
  if (!infos)
60
50
  throw new Error("bluetooth service infos not found");
61
51
  return [service, infos];
62
- });
63
- function open(deviceOrId, needsReconnect) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- let device;
66
- if (typeof deviceOrId === "string") {
67
- if (transportsCache[deviceOrId]) {
68
- log("ble-verbose", "Transport in cache, using that.");
69
- return transportsCache[deviceOrId];
70
- }
71
- const bluetooth = requiresBluetooth();
72
- // TODO instead we should "query" the device by its ID
73
- device = yield bluetooth.requestDevice(requestDeviceParam());
74
- }
75
- else {
76
- device = deviceOrId;
77
- }
78
- if (!device.gatt.connected) {
79
- log("ble-verbose", "not connected. connecting...");
80
- yield device.gatt.connect();
81
- }
82
- const [service, infos] = yield retrieveService(device);
83
- const { deviceModel, writeUuid, notifyUuid } = infos;
84
- const [writeC, notifyC] = yield Promise.all([
85
- service.getCharacteristic(writeUuid),
86
- service.getCharacteristic(notifyUuid),
87
- ]);
88
- const notifyObservable = monitorCharacteristic(notifyC).pipe(tap(value => {
89
- log("ble-frame", "<= " + value.toString("hex"));
90
- }), share());
91
- const notif = notifyObservable.subscribe();
92
- const transport = new BluetoothTransport(device, writeC, notifyObservable, deviceModel);
93
- if (!device.gatt.connected) {
94
- throw new DisconnectedDevice();
95
- }
96
- // eslint-disable-next-line require-atomic-updates
97
- transportsCache[transport.id] = transport;
98
- const onDisconnect = e => {
99
- console.log("onDisconnect!", e);
100
- delete transportsCache[transport.id];
101
- transport.notYetDisconnected = false;
102
- notif.unsubscribe();
103
- device.removeEventListener("gattserverdisconnected", onDisconnect);
104
- log("ble-verbose", `BleTransport(${transport.id}) disconnected`);
105
- transport.emit("disconnect", e);
106
- };
107
- device.addEventListener("gattserverdisconnected", onDisconnect);
108
- const beforeMTUTime = Date.now();
109
- try {
110
- yield transport.inferMTU();
52
+ };
53
+ async function open(deviceOrId, needsReconnect) {
54
+ let device;
55
+ if (typeof deviceOrId === "string") {
56
+ if (transportsCache[deviceOrId]) {
57
+ log("ble-verbose", "Transport in cache, using that.");
58
+ return transportsCache[deviceOrId];
111
59
  }
112
- finally {
113
- const afterMTUTime = Date.now();
114
- // workaround for #279: we need to open() again if we come the first time here,
115
- // to make sure we do a disconnect() after the first pairing time
116
- // because of a firmware bug
117
- if (afterMTUTime - beforeMTUTime < 1000) {
118
- needsReconnect = false; // (optim) there is likely no new pairing done because mtu answer was fast.
119
- }
120
- if (needsReconnect) {
121
- yield device.gatt.disconnect();
122
- // necessary time for the bonding workaround
123
- yield new Promise(s => setTimeout(s, 4000));
124
- }
60
+ const bluetooth = requiresBluetooth();
61
+ // TODO instead we should "query" the device by its ID
62
+ device = await bluetooth.requestDevice(requestDeviceParam());
63
+ }
64
+ else {
65
+ device = deviceOrId;
66
+ }
67
+ if (!device.gatt.connected) {
68
+ log("ble-verbose", "not connected. connecting...");
69
+ await device.gatt.connect();
70
+ }
71
+ const [service, infos] = await retrieveService(device);
72
+ const { deviceModel, writeUuid, notifyUuid } = infos;
73
+ const [writeC, notifyC] = await Promise.all([
74
+ service.getCharacteristic(writeUuid),
75
+ service.getCharacteristic(notifyUuid),
76
+ ]);
77
+ const notifyObservable = monitorCharacteristic(notifyC).pipe(tap(value => {
78
+ log("ble-frame", "<= " + value.toString("hex"));
79
+ }), share());
80
+ const notif = notifyObservable.subscribe();
81
+ const transport = new BluetoothTransport(device, writeC, notifyObservable, deviceModel);
82
+ if (!device.gatt.connected) {
83
+ throw new DisconnectedDevice();
84
+ }
85
+ // eslint-disable-next-line require-atomic-updates
86
+ transportsCache[transport.id] = transport;
87
+ const onDisconnect = e => {
88
+ console.log("onDisconnect!", e);
89
+ delete transportsCache[transport.id];
90
+ transport.notYetDisconnected = false;
91
+ notif.unsubscribe();
92
+ device.removeEventListener("gattserverdisconnected", onDisconnect);
93
+ log("ble-verbose", `BleTransport(${transport.id}) disconnected`);
94
+ transport.emit("disconnect", e);
95
+ };
96
+ device.addEventListener("gattserverdisconnected", onDisconnect);
97
+ const beforeMTUTime = Date.now();
98
+ try {
99
+ await transport.inferMTU();
100
+ }
101
+ finally {
102
+ const afterMTUTime = Date.now();
103
+ // workaround for #279: we need to open() again if we come the first time here,
104
+ // to make sure we do a disconnect() after the first pairing time
105
+ // because of a firmware bug
106
+ if (afterMTUTime - beforeMTUTime < 1000) {
107
+ needsReconnect = false; // (optim) there is likely no new pairing done because mtu answer was fast.
125
108
  }
126
109
  if (needsReconnect) {
127
- return open(device, false);
110
+ await device.gatt.disconnect();
111
+ // necessary time for the bonding workaround
112
+ await new Promise(s => setTimeout(s, 4000));
128
113
  }
129
- return transport;
130
- });
114
+ }
115
+ if (needsReconnect) {
116
+ return open(device, false);
117
+ }
118
+ return transport;
131
119
  }
132
120
  /**
133
121
  * react-native bluetooth BLE implementation
134
122
  * @example
135
123
  * import BluetoothTransport from "@ledgerhq/hw-transport-web-ble";
136
124
  */
137
- class BluetoothTransport extends Transport {
125
+ export default class BluetoothTransport extends Transport {
126
+ static isSupported = () => Promise.resolve()
127
+ .then(requiresBluetooth)
128
+ .then(() => true, () => false);
129
+ /**
130
+ * observe event with { available: bool, type: string }
131
+ * (available is generic, type is specific)
132
+ * an event is emit once and then each time it changes
133
+ */
134
+ static observeAvailability = (observer) => availability().subscribe(observer);
135
+ static list = () => Promise.resolve([]);
138
136
  /**
139
137
  * Scan for Ledger Bluetooth devices.
140
138
  * On this web implementation, it only emits ONE device, the one that was selected in the UI (if any).
@@ -164,19 +162,28 @@ class BluetoothTransport extends Transport {
164
162
  /**
165
163
  * open a bluetooth device.
166
164
  */
167
- static open(deviceOrId) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- return open(deviceOrId, true);
170
- });
165
+ static async open(deviceOrId) {
166
+ return open(deviceOrId, true);
171
167
  }
168
+ /**
169
+ * globally disconnect a bluetooth device by its id.
170
+ */
171
+ static disconnect = async (id) => {
172
+ log("ble-verbose", `user disconnect(${id})`);
173
+ const transport = transportsCache[id];
174
+ if (transport) {
175
+ transport.device.gatt.disconnect();
176
+ }
177
+ };
178
+ id;
179
+ device;
180
+ mtuSize = 20;
181
+ writeCharacteristic;
182
+ notifyObservable;
183
+ notYetDisconnected = true;
184
+ deviceModel;
172
185
  constructor(device, writeCharacteristic, notifyObservable, deviceModel) {
173
186
  super();
174
- this.mtuSize = 20;
175
- this.notYetDisconnected = true;
176
- this.write = (buffer) => __awaiter(this, void 0, void 0, function* () {
177
- log("ble-frame", "=> " + buffer.toString("hex"));
178
- yield this.writeCharacteristic.writeValue(buffer);
179
- });
180
187
  this.id = device.id;
181
188
  this.device = device;
182
189
  this.writeCharacteristic = writeCharacteristic;
@@ -184,85 +191,61 @@ class BluetoothTransport extends Transport {
184
191
  this.deviceModel = deviceModel;
185
192
  log("ble-verbose", `BleTransport(${String(this.id)}) new instance`);
186
193
  }
187
- inferMTU() {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- let mtu = 23;
190
- yield this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
191
- try {
192
- mtu =
193
- (yield firstValueFrom(merge(this.notifyObservable.pipe(first(buffer => buffer.readUInt8(0) === 0x08), map(buffer => buffer.readUInt8(5))), defer(() => from(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe(ignoreElements())))) + 3;
194
- }
195
- catch (e) {
196
- log("ble-error", "inferMTU got " + String(e));
197
- this.device.gatt.disconnect();
198
- throw e;
199
- }
200
- }));
201
- if (mtu > 23) {
202
- const mtuSize = mtu - 3;
203
- log("ble-verbose", `BleTransport(${String(this.id)}) mtu set to ${String(mtuSize)}`);
204
- this.mtuSize = mtuSize;
194
+ async inferMTU() {
195
+ let mtu = 23;
196
+ await this.exchangeAtomicImpl(async () => {
197
+ try {
198
+ mtu =
199
+ (await firstValueFrom(merge(this.notifyObservable.pipe(first(buffer => buffer.readUInt8(0) === 0x08), map(buffer => buffer.readUInt8(5))), defer(() => from(this.write(Buffer.from([0x08, 0, 0, 0, 0])))).pipe(ignoreElements())))) + 3;
200
+ }
201
+ catch (e) {
202
+ log("ble-error", "inferMTU got " + String(e));
203
+ this.device.gatt.disconnect();
204
+ throw e;
205
205
  }
206
- return this.mtuSize;
207
206
  });
207
+ if (mtu > 23) {
208
+ const mtuSize = mtu - 3;
209
+ log("ble-verbose", `BleTransport(${String(this.id)}) mtu set to ${String(mtuSize)}`);
210
+ this.mtuSize = mtuSize;
211
+ }
212
+ return this.mtuSize;
208
213
  }
209
214
  /**
210
215
  * Exchange with the device using APDU protocol.
211
216
  * @param apdu
212
217
  * @returns a promise of apdu response
213
218
  */
214
- exchange(apdu) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- const b = yield this.exchangeAtomicImpl(() => __awaiter(this, void 0, void 0, function* () {
217
- try {
218
- const msgIn = apdu.toString("hex");
219
- log("apdu", `=> ${msgIn}`);
220
- const data = yield firstValueFrom(merge(this.notifyObservable.pipe(receiveAPDU), sendAPDU(this.write, apdu, this.mtuSize)));
221
- const msgOut = data.toString("hex");
222
- log("apdu", `<= ${msgOut}`);
223
- return data;
224
- }
225
- catch (e) {
226
- log("ble-error", "exchange got " + String(e));
227
- if (this.notYetDisconnected) {
228
- // in such case we will always disconnect because something is bad.
229
- this.device.gatt.disconnect();
230
- }
231
- throw e;
219
+ async exchange(apdu) {
220
+ const b = await this.exchangeAtomicImpl(async () => {
221
+ try {
222
+ const msgIn = apdu.toString("hex");
223
+ log("apdu", `=> ${msgIn}`);
224
+ const data = await firstValueFrom(merge(this.notifyObservable.pipe(receiveAPDU), sendAPDU(this.write, apdu, this.mtuSize)));
225
+ const msgOut = data.toString("hex");
226
+ log("apdu", `<= ${msgOut}`);
227
+ return data;
228
+ }
229
+ catch (e) {
230
+ log("ble-error", "exchange got " + String(e));
231
+ if (this.notYetDisconnected) {
232
+ // in such case we will always disconnect because something is bad.
233
+ this.device.gatt.disconnect();
232
234
  }
233
- }));
234
- return b;
235
+ throw e;
236
+ }
235
237
  });
238
+ return b;
236
239
  }
237
240
  setScrambleKey() { }
238
- close() {
239
- return __awaiter(this, void 0, void 0, function* () {
240
- if (this.exchangeBusyPromise) {
241
- yield this.exchangeBusyPromise;
242
- }
243
- });
241
+ write = async (buffer) => {
242
+ log("ble-frame", "=> " + buffer.toString("hex"));
243
+ await this.writeCharacteristic.writeValue(buffer);
244
+ };
245
+ async close() {
246
+ if (this.exchangeBusyPromise) {
247
+ await this.exchangeBusyPromise;
248
+ }
244
249
  }
245
250
  }
246
- _a = BluetoothTransport;
247
- BluetoothTransport.isSupported = () => Promise.resolve()
248
- .then(requiresBluetooth)
249
- .then(() => true, () => false);
250
- /**
251
- * observe event with { available: bool, type: string }
252
- * (available is generic, type is specific)
253
- * an event is emit once and then each time it changes
254
- */
255
- BluetoothTransport.observeAvailability = (observer) => availability().subscribe(observer);
256
- BluetoothTransport.list = () => Promise.resolve([]);
257
- /**
258
- * globally disconnect a bluetooth device by its id.
259
- */
260
- BluetoothTransport.disconnect = (id) => __awaiter(void 0, void 0, void 0, function* () {
261
- log("ble-verbose", `user disconnect(${id})`);
262
- const transport = transportsCache[id];
263
- if (transport) {
264
- transport.device.gatt.disconnect();
265
- }
266
- });
267
- export default BluetoothTransport;
268
251
  //# sourceMappingURL=TransportWebBLE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransportWebBLE.js","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransportWebBLE.js","sourceRoot":"","sources":["../src/TransportWebBLE.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import { Observable } from "rxjs";
3
4
  import type { Characteristic } from "./types";
4
5
  export declare const monitorCharacteristic: (characteristic: Characteristic) => Observable<Buffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"monitorCharacteristic.d.ts","sourceRoot":"","sources":["../src/monitorCharacteristic.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,qBAAqB,mBAAoB,cAAc,KAAG,WAAW,MAAM,CAmBpF,CAAC"}
1
+ {"version":3,"file":"monitorCharacteristic.d.ts","sourceRoot":"","sources":["../src/monitorCharacteristic.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,qBAAqB,mBAAoB,cAAc,KAAG,WAAW,MAAM,CAmBpF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-transport-web-ble",
3
- "version": "6.29.4",
3
+ "version": "6.29.5-next.0",
4
4
  "description": "Ledger Hardware Wallet Web Bluetooth implementation of the communication layer",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -28,14 +28,14 @@
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
30
  "rxjs": "^7.8.1",
31
- "@ledgerhq/devices": "^8.4.4",
32
- "@ledgerhq/errors": "^6.19.1",
33
- "@ledgerhq/hw-transport": "^6.31.4",
31
+ "@ledgerhq/devices": "8.4.5-next.0",
32
+ "@ledgerhq/errors": "^6.21.0-next.0",
33
+ "@ledgerhq/hw-transport": "^6.31.5-next.0",
34
34
  "@ledgerhq/logs": "^6.12.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/jest": "^29.5.10",
38
- "@types/node": "^20.8.10",
38
+ "@types/node": "^22.10.10",
39
39
  "@types/web-bluetooth": "^0.0.20",
40
40
  "documentation": "14.0.2",
41
41
  "jest": "^29.7.0",
@@ -47,9 +47,10 @@
47
47
  "gitHead": "dd0dea64b58e5a9125c8a422dcffd29e5ef6abec",
48
48
  "scripts": {
49
49
  "clean": "rimraf lib lib-es",
50
- "build": "tsc && tsc -m ES6 --outDir lib-es",
50
+ "build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
51
51
  "prewatch": "pnpm build",
52
52
  "watch": "tsc --watch",
53
+ "watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
53
54
  "lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
54
55
  "lint:fix": "pnpm lint --fix",
55
56
  "test": "jest",