@onekeyfe/hd-transport-web-device 1.2.0-alpha.66 → 1.2.0-alpha.67
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.
|
@@ -506,53 +506,6 @@ describe('ElectronBleTransport protocol detection', () => {
|
|
|
506
506
|
}
|
|
507
507
|
});
|
|
508
508
|
|
|
509
|
-
test('ignores a delayed disconnect event from the previous BLE connection', async () => {
|
|
510
|
-
const device = { id: 'delayed-disconnect-pro2-id', name: 'OneKey Pro 2' };
|
|
511
|
-
const nobleBle = createNobleBle(device);
|
|
512
|
-
let notificationHandler: ((deviceId: string, data: string) => void) | undefined;
|
|
513
|
-
const disconnectHandlers: Array<
|
|
514
|
-
(disconnectedDevice: { id: string; name: string | null }) => void
|
|
515
|
-
> = [];
|
|
516
|
-
nobleBle.onNotification.mockImplementation(handler => {
|
|
517
|
-
notificationHandler = handler;
|
|
518
|
-
return jest.fn();
|
|
519
|
-
});
|
|
520
|
-
nobleBle.onDeviceDisconnected.mockImplementation(handler => {
|
|
521
|
-
disconnectHandlers.push(handler);
|
|
522
|
-
return jest.fn();
|
|
523
|
-
});
|
|
524
|
-
let responseSeq = 0;
|
|
525
|
-
nobleBle.write.mockImplementation(() => {
|
|
526
|
-
responseSeq += 1;
|
|
527
|
-
const response = ProtocolV2.encodeFrame(
|
|
528
|
-
schemas,
|
|
529
|
-
'Success',
|
|
530
|
-
{ message: 'ok' },
|
|
531
|
-
{ router: PROTOCOL_V2_CHANNEL_BLE_UART, seq: responseSeq }
|
|
532
|
-
);
|
|
533
|
-
setTimeout(() => notificationHandler?.(device.id, bytesToHex(response)), 0);
|
|
534
|
-
return Promise.resolve();
|
|
535
|
-
});
|
|
536
|
-
const bleTransport = configureTransport(nobleBle);
|
|
537
|
-
|
|
538
|
-
try {
|
|
539
|
-
await bleTransport.acquire({ uuid: device.id, expectedProtocol: 'V2' });
|
|
540
|
-
await bleTransport.acquire({ uuid: device.id, expectedProtocol: 'V2' });
|
|
541
|
-
|
|
542
|
-
disconnectHandlers[0]?.(device);
|
|
543
|
-
|
|
544
|
-
expect(bleTransport.getProtocolType(device.id)).toBe('V2');
|
|
545
|
-
await expect(
|
|
546
|
-
bleTransport.call(device.id, 'Ping', { message: 'after-stale-disconnect' })
|
|
547
|
-
).resolves.toEqual({
|
|
548
|
-
type: 'Success',
|
|
549
|
-
message: { message: 'ok' },
|
|
550
|
-
});
|
|
551
|
-
} finally {
|
|
552
|
-
await bleTransport.release(device.id);
|
|
553
|
-
}
|
|
554
|
-
});
|
|
555
|
-
|
|
556
509
|
test('preserves the active Protocol V2 link when the same schema is configured again', async () => {
|
|
557
510
|
const device = { id: 'stable-schema-pro2-id', name: 'OneKey Pro 2' };
|
|
558
511
|
const nobleBle = createNobleBle(device);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-ble-transport.d.ts","sourceRoot":"","sources":["../src/electron-ble-transport.ts"],"names":[],"mappings":";AAsBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEZ,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAIvC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;CACF;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAoCF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,SAAS,CAA0D;IAE3E,OAAO,CAAC,WAAW,CAA0D;IAE7E,OAAO,CAAC,6BAA6B,CAAqB;IAE1D,IAAI,SAA0B;IAE9B,UAAU,UAAS;IAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,CAAQ;IAExD,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO,CAAC,cAAc,CAAwC;IAE9D,OAAO,CAAC,mBAAmB,CAAwC;IAEnE,OAAO,CAAC,SAAS,CAAsE;IAEvF,OAAO,CAAC,YAAY,CAAoD;IAExE,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,eAAe,CAAgD;IAEvE,OAAO,CAAC,eAAe,CAmBpB;IAEH,OAAO,CAAC,oBAAoB,CAAsC;IAElE,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,kBAAkB,CAAkC;IAE5D,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,kBAAkB;IA+B1B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IAcxC,SAAS,CAAC,UAAU,EAAE,GAAG;IAKzB,mBAAmB,CAAC,UAAU,EAAE,GAAG;IAgB7B,MAAM;IAIN,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqBxC,OAAO,CAAC,KAAK,EAAE,eAAe;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"electron-ble-transport.d.ts","sourceRoot":"","sources":["../src/electron-ble-transport.ts"],"names":[],"mappings":";AAsBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EAEZ,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAIvC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;CACF;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAoCF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,OAAO,CAAC,SAAS,CAA0D;IAE3E,OAAO,CAAC,WAAW,CAA0D;IAE7E,OAAO,CAAC,6BAA6B,CAAqB;IAE1D,IAAI,SAA0B;IAE9B,UAAU,UAAS;IAEnB,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,IAAI,CAAQ;IAExD,OAAO,CAAC,kBAAkB,CAAuB;IAEjD,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO,CAAC,cAAc,CAAwC;IAE9D,OAAO,CAAC,mBAAmB,CAAwC;IAEnE,OAAO,CAAC,SAAS,CAAsE;IAEvF,OAAO,CAAC,YAAY,CAAoD;IAExE,OAAO,CAAC,aAAa,CAAwC;IAE7D,OAAO,CAAC,eAAe,CAAgD;IAEvE,OAAO,CAAC,eAAe,CAmBpB;IAEH,OAAO,CAAC,oBAAoB,CAAsC;IAElE,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,OAAO,CAAC,kBAAkB,CAAkC;IAE5D,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,kBAAkB;IA+B1B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IAcxC,SAAS,CAAC,UAAU,EAAE,GAAG;IAKzB,mBAAmB,CAAC,UAAU,EAAE,GAAG;IAgB7B,MAAM;IAIN,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqBxC,OAAO,CAAC,KAAK,EAAE,eAAe;;;;;;;;;;;IAsF9B,OAAO,CAAC,EAAE,EAAE,MAAM;YAUV,aAAa;IAe3B,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,kBAAkB;YAMZ,cAAc;IA+C5B,OAAO,CAAC,8BAA8B;YAgBxB,iCAAiC;YA8CjC,eAAe;YAkBf,eAAe;YAuBf,SAAS;IASvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,sBAAsB;YAShB,mBAAmB;IAiBjC,OAAO,CAAC,4BAA4B;IAqB9B,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB;YA2BlB,cAAc;YAqFd,cAAc;IA0B5B,OAAO,CAAC,uBAAuB;IAyC/B,OAAO,CAAC,6BAA6B;IAsCrC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;CAGxD"}
|
package/dist/index.js
CHANGED
|
@@ -926,12 +926,10 @@ class ElectronBleTransport {
|
|
|
926
926
|
yield window.desktopApi.nobleBle.subscribe(uuid);
|
|
927
927
|
const cleanup = this.createNotificationSubscription(uuid);
|
|
928
928
|
this.notificationCleanups.set(uuid, cleanup);
|
|
929
|
-
const connectionToken = this.notificationTokens.get(uuid);
|
|
930
929
|
const protocolType = yield this.detectProtocol(uuid, expectedProtocol, protocolHint);
|
|
931
930
|
const disconnectCleanup = window.desktopApi.nobleBle.onDeviceDisconnected((disconnectedDevice) => {
|
|
932
931
|
var _a;
|
|
933
|
-
if (disconnectedDevice.id === uuid
|
|
934
|
-
this.notificationTokens.get(uuid) === connectionToken) {
|
|
932
|
+
if (disconnectedDevice.id === uuid) {
|
|
935
933
|
this.cleanupDeviceState(uuid);
|
|
936
934
|
(_a = this.emitter) === null || _a === void 0 ? void 0 : _a.emit(transport.TRANSPORT_EVENT.DEVICE_DISCONNECT, {
|
|
937
935
|
name: disconnectedDevice.name,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-transport-web-device",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.67",
|
|
4
4
|
"author": "OneKey",
|
|
5
5
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
"lint:fix": "eslint . --fix"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@onekeyfe/hd-shared": "1.2.0-alpha.
|
|
25
|
-
"@onekeyfe/hd-transport": "1.2.0-alpha.
|
|
24
|
+
"@onekeyfe/hd-shared": "1.2.0-alpha.67",
|
|
25
|
+
"@onekeyfe/hd-transport": "1.2.0-alpha.67"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@onekeyfe/hd-transport-electron": "1.2.0-alpha.
|
|
28
|
+
"@onekeyfe/hd-transport-electron": "1.2.0-alpha.67",
|
|
29
29
|
"@types/w3c-web-usb": "^1.0.6",
|
|
30
30
|
"@types/web-bluetooth": "^0.0.17"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "5fea66e8c65a1fab2ccc099b2811c8749b2487e0"
|
|
33
33
|
}
|
|
@@ -313,16 +313,12 @@ export default class ElectronBleTransport {
|
|
|
313
313
|
|
|
314
314
|
const cleanup = this.createNotificationSubscription(uuid);
|
|
315
315
|
this.notificationCleanups.set(uuid, cleanup);
|
|
316
|
-
const connectionToken = this.notificationTokens.get(uuid);
|
|
317
316
|
|
|
318
317
|
const protocolType = await this.detectProtocol(uuid, expectedProtocol, protocolHint);
|
|
319
318
|
|
|
320
319
|
const disconnectCleanup = window.desktopApi.nobleBle.onDeviceDisconnected(
|
|
321
320
|
(disconnectedDevice: any) => {
|
|
322
|
-
if (
|
|
323
|
-
disconnectedDevice.id === uuid &&
|
|
324
|
-
this.notificationTokens.get(uuid) === connectionToken
|
|
325
|
-
) {
|
|
321
|
+
if (disconnectedDevice.id === uuid) {
|
|
326
322
|
this.cleanupDeviceState(uuid);
|
|
327
323
|
this.emitter?.emit(TRANSPORT_EVENT.DEVICE_DISCONNECT, {
|
|
328
324
|
name: disconnectedDevice.name,
|