@ledgerhq/hw-transport-webhid
Advanced tools
Comparing version 4.68.4 to 4.69.0
//@flow | ||
declare type HIDDeviceFilter = { | ||
vendorId?: number, | ||
productId?: number, | ||
usagePage?: number, | ||
usage?: number | ||
}; | ||
declare type HIDDeviceRequestOptions = { | ||
filters: HIDDeviceFilter[] | ||
}; | ||
declare class HIDConnectionEvent extends Event { | ||
device: HIDDevice; | ||
} | ||
declare type HIDConnectionEventHandler = (event: HIDConnectionEvent) => mixed; | ||
declare class HID extends EventTarget { | ||
getDevices(): Promise<HIDDevice[]>; | ||
requestDevice(options: HIDDeviceRequestOptions): Promise<HIDDevice>; | ||
addEventListener("connect", HIDConnectionEventHandler): void; | ||
removeEventListener("connect", HIDConnectionEventHandler): void; | ||
addEventListener("disconnect", HIDConnectionEventHandler): void; | ||
removeEventListener("disconnect", HIDConnectionEventHandler): void; | ||
} | ||
declare class InputReportEvent extends Event { | ||
data: DataView; | ||
device: HIDDevice; | ||
reportId: number; | ||
} | ||
declare type InputReportEventHandler = (event: InputReportEvent) => mixed; | ||
declare class HIDDevice { | ||
oninputreport: EventHandler; | ||
oninputreport: InputReportEventHandler; | ||
opened: boolean; | ||
@@ -14,4 +48,4 @@ vendorId: number; | ||
receiveFeatureReport(reportId: number): Promise<DataView>; | ||
addEventListener(string, EventHandler): void; | ||
removeEventListener(string, EventHandler): void; | ||
addEventListener("inputreport", InputReportEventHandler): void; | ||
removeEventListener("inputreport", InputReportEventHandler): void; | ||
} |
@@ -17,3 +17,3 @@ "use strict"; | ||
_context.next = 2; | ||
return navigator.hid.requestDevice({ filters: ledgerDevices }); | ||
return getHID().requestDevice({ filters: ledgerDevices }); | ||
@@ -45,3 +45,3 @@ case 2: | ||
_context2.next = 2; | ||
return navigator.hid.getDevices(); | ||
return getHID().getDevices(); | ||
@@ -103,2 +103,11 @@ case 2: | ||
/** | ||
* WebHID Transport implementation | ||
* @example | ||
* import TransportWebHID from "@ledgerhq/hw-transport-webhid"; | ||
* ... | ||
* TransportWebHID.create().then(transport => ...) | ||
*/ | ||
var _hwTransport = require("@ledgerhq/hw-transport"); | ||
@@ -134,9 +143,11 @@ | ||
/** | ||
* WebHID Transport implementation | ||
* @example | ||
* import TransportWebHID from "@ledgerhq/hw-transport-webhid"; | ||
* ... | ||
* TransportWebHID.create().then(transport => ...) | ||
*/ | ||
var getHID = function getHID() { | ||
// $FlowFixMe | ||
var _navigator = navigator, | ||
hid = _navigator.hid; | ||
if (!hid) throw new _errors.TransportError("navigator.hid is not supported", "HIDNotSupported"); | ||
return hid; | ||
}; | ||
var TransportWebHID = function (_Transport) { | ||
@@ -321,14 +332,9 @@ _inherits(TransportWebHID, _Transport); | ||
onDisconnect = function onDisconnect(e) { | ||
console.log(e); | ||
console.log(e.device); | ||
if (device === e.device) { | ||
// $FlowFixMe | ||
navigator.hid.removeEventListener("disconnect", onDisconnect); | ||
getHID().removeEventListener("disconnect", onDisconnect); | ||
transport._emitDisconnect(new _errors.DisconnectedDevice()); | ||
} | ||
}; | ||
// $FlowFixMe | ||
navigator.hid.addEventListener("disconnect", onDisconnect); | ||
getHID().addEventListener("disconnect", onDisconnect); | ||
return _context7.abrupt("return", transport); | ||
@@ -392,3 +398,2 @@ | ||
this.onInputReport = function (e) { | ||
// $FlowFixMe | ||
var buffer = new Buffer(e.data.buffer); | ||
@@ -395,0 +400,0 @@ if (_this2.inputCallback) { |
{ | ||
"name": "@ledgerhq/hw-transport-webhid", | ||
"version": "4.68.4", | ||
"version": "4.69.0", | ||
"description": "Ledger Hardware Wallet WebHID implementation of the communication layer", | ||
@@ -41,3 +41,4 @@ "keywords": [ | ||
"doc": "bash ../../script/doc.sh" | ||
} | ||
}, | ||
"gitHead": "e785c5be9cc27c1d595ee00f47db6c1386f5843f" | ||
} |
@@ -15,3 +15,4 @@ //@flow | ||
DisconnectedDeviceDuringOperation, | ||
DisconnectedDevice | ||
DisconnectedDevice, | ||
TransportError | ||
} from "@ledgerhq/errors"; | ||
@@ -24,5 +25,15 @@ | ||
const getHID = (): HID => { | ||
// $FlowFixMe | ||
const { hid } = navigator; | ||
if (!hid) | ||
throw new TransportError( | ||
"navigator.hid is not supported", | ||
"HIDNotSupported" | ||
); | ||
return hid; | ||
}; | ||
async function requestLedgerDevice(): Promise<HIDDevice> { | ||
// $FlowFixMe | ||
const device = await navigator.hid.requestDevice({ filters: ledgerDevices }); | ||
const device = await getHID().requestDevice({ filters: ledgerDevices }); | ||
return device; | ||
@@ -32,4 +43,3 @@ } | ||
async function getLedgerDevices(): Promise<HIDDevice[]> { | ||
// $FlowFixMe | ||
const devices = await navigator.hid.getDevices(); | ||
const devices = await getHID().getDevices(); | ||
return devices.filter(d => d.vendorId === ledgerUSBVendorId); | ||
@@ -44,16 +54,2 @@ } | ||
export interface HIDDevice { | ||
oninputreport: EventHandler; | ||
opened: boolean; | ||
vendorId: number; | ||
productId: number; | ||
productName: string; | ||
open(): Promise<void>; | ||
close(): Promise<void>; | ||
sendReport(reportId: number, data: BufferSource): Promise<void>; | ||
sendFeatureReport(reportId: number, data: BufferSource): Promise<void>; | ||
receiveFeatureReport(reportId: number): Promise<DataView>; | ||
addEventListener(string, EventHandler): void; | ||
removeEventListener(string, EventHandler): void; | ||
} | ||
/** | ||
@@ -91,4 +87,3 @@ * WebHID Transport implementation | ||
onInputReport = (e: Event) => { | ||
// $FlowFixMe | ||
onInputReport = (e: InputReportEvent) => { | ||
const buffer = new Buffer(e.data.buffer); | ||
@@ -165,12 +160,8 @@ if (this.inputCallback) { | ||
const onDisconnect = e => { | ||
console.log(e); | ||
console.log(e.device); | ||
if (device === e.device) { | ||
// $FlowFixMe | ||
navigator.hid.removeEventListener("disconnect", onDisconnect); | ||
getHID().removeEventListener("disconnect", onDisconnect); | ||
transport._emitDisconnect(new DisconnectedDevice()); | ||
} | ||
}; | ||
// $FlowFixMe | ||
navigator.hid.addEventListener("disconnect", onDisconnect); | ||
getHID().addEventListener("disconnect", onDisconnect); | ||
return transport; | ||
@@ -177,0 +168,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
56265
621