Socket
Socket
Sign inDemoInstall

@ledgerhq/hw-transport-webhid

Package Overview
Dependencies
Maintainers
13
Versions
242
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ledgerhq/hw-transport-webhid - npm Package Compare versions

Comparing version 4.68.4 to 4.69.0

LICENSE

40

flow/webhid.js
//@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;
}

39

lib/TransportWebHID.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc