diff --git a/types/ledgerhq__hw-transport-node-hid/index.d.ts b/types/ledgerhq__hw-transport-node-hid/index.d.ts new file mode 100644 index 0000000000..91fa7263dc --- /dev/null +++ b/types/ledgerhq__hw-transport-node-hid/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for @ledgerhq/hw-transport-node-hid 4.22 +// Project: https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-node-hid +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// +import HID = require("node-hid"); +import Transport from "@ledgerhq/hw-transport"; + +declare class TransportNodeHid extends Transport { + constructor( + device: HID.HID, + ledgerTransport?: boolean, + timeout?: number + ); + static open(path: string): Promise; + setScrambleKey(): void; + + device: HID.HID; + ledgerTransport: boolean; + timeout: number; + exchangeStack: any[]; +} + +export default TransportNodeHid; diff --git a/types/ledgerhq__hw-transport-node-hid/ledgerhq__hw-transport-node-hid-tests.ts b/types/ledgerhq__hw-transport-node-hid/ledgerhq__hw-transport-node-hid-tests.ts new file mode 100644 index 0000000000..90da827dfa --- /dev/null +++ b/types/ledgerhq__hw-transport-node-hid/ledgerhq__hw-transport-node-hid-tests.ts @@ -0,0 +1,19 @@ +import Transport from "@ledgerhq/hw-transport-node-hid"; + +// $ExpectType Promise +Transport.isSupported(); +// $ExpectType Promise> +Transport.list(); +// $ExpectType Promise +Transport.open("test"); + +const test = Transport.open("test").then(transport => { + // $ExpectType void + transport.setScrambleKey(); + + // $ExpectType Promise + transport.exchange(Buffer.from("test", "hex")); + + // $ExpectType Promise + transport.close(); +}); diff --git a/types/ledgerhq__hw-transport-node-hid/tsconfig.json b/types/ledgerhq__hw-transport-node-hid/tsconfig.json new file mode 100644 index 0000000000..73fde70c50 --- /dev/null +++ b/types/ledgerhq__hw-transport-node-hid/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@ledgerhq/hw-transport": ["ledgerhq__hw-transport"], + "@ledgerhq/hw-transport-node-hid": [ + "ledgerhq__hw-transport-node-hid" + ] + } + }, + "files": ["index.d.ts", "ledgerhq__hw-transport-node-hid-tests.ts"] +} diff --git a/types/ledgerhq__hw-transport-node-hid/tslint.json b/types/ledgerhq__hw-transport-node-hid/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/ledgerhq__hw-transport-node-hid/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/ledgerhq__hw-transport-u2f/index.d.ts b/types/ledgerhq__hw-transport-u2f/index.d.ts new file mode 100644 index 0000000000..b08b6c27ff --- /dev/null +++ b/types/ledgerhq__hw-transport-u2f/index.d.ts @@ -0,0 +1,15 @@ +// Type definitions for @ledgerhq/hw-transport-u2f 4.21 +// Project: https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport-u2f +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// +import Transport from "@ledgerhq/hw-transport"; + +declare class TransportU2F extends Transport { + constructor(); + static open(_: any, _openTimeout?: number): Promise; +} + +export default TransportU2F; diff --git a/types/ledgerhq__hw-transport-u2f/ledgerhq__hw-transport-u2f-tests.ts b/types/ledgerhq__hw-transport-u2f/ledgerhq__hw-transport-u2f-tests.ts new file mode 100644 index 0000000000..2261f49fa4 --- /dev/null +++ b/types/ledgerhq__hw-transport-u2f/ledgerhq__hw-transport-u2f-tests.ts @@ -0,0 +1,19 @@ +import Transport from "@ledgerhq/hw-transport-u2f"; + +// $ExpectType Promise +Transport.isSupported(); +// $ExpectType Promise> +Transport.list(); +// $ExpectType Promise +Transport.open("test"); + +const test = Transport.open('test').then(transport => { + // $ExpectType void + transport.setScrambleKey('BTC'); + + // $ExpectType Promise + transport.exchange(Buffer.from("test", "hex")); + + // $ExpectType Promise + transport.close(); +}); diff --git a/types/ledgerhq__hw-transport-u2f/tsconfig.json b/types/ledgerhq__hw-transport-u2f/tsconfig.json new file mode 100644 index 0000000000..213de26f56 --- /dev/null +++ b/types/ledgerhq__hw-transport-u2f/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@ledgerhq/hw-transport": ["ledgerhq__hw-transport"], + "@ledgerhq/hw-transport-u2f": ["ledgerhq__hw-transport-u2f"] + } + }, + "files": ["index.d.ts", "ledgerhq__hw-transport-u2f-tests.ts"] +} diff --git a/types/ledgerhq__hw-transport-u2f/tslint.json b/types/ledgerhq__hw-transport-u2f/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/ledgerhq__hw-transport-u2f/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/ledgerhq__hw-transport/index.d.ts b/types/ledgerhq__hw-transport/index.d.ts new file mode 100644 index 0000000000..6b3854a343 --- /dev/null +++ b/types/ledgerhq__hw-transport/index.d.ts @@ -0,0 +1,52 @@ +// Type definitions for @ledgerhq/hw-transport 4.21 +// Project: https://github.com/LedgerHQ/ledgerjs/tree/master/packages/hw-transport +// Definitions by: Daniel Byrne +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +declare class Transport { + constructor(); + static isSupported(): Promise; + static list(): Promise>; + static listen( + observer: Observer> + ): Subscription; + static open( + descriptor: Descriptor, + timeout?: number + ): Promise>; + static create( + openTimeout?: number, + listenTimeout?: number + ): Promise>; + exchange(apdu: Buffer): Promise; + setScrambleKey(key: string): void; + close(): Promise; + on(eventName: string, cb: any): void; + off(eventName: string, cb: any): void; + setDebugMode(debug: boolean | ((log: string) => void)): void; + setExchangeTimeout(exchangeTimeout: number): void; + send(cla: number, ins: number, p1: number, p2: number, data: Buffer, statusList: ReadonlyArray): Promise; +} + +export type Device = any; +export type Descriptor = string; // ? +export interface DescriptorEvent { + type: "add" | "remove"; + descriptor: Descriptor; + device?: Device; +} +export interface Observer { + readonly next: (event: Ev) => any; + readonly error: (e: any) => any; + readonly complete: () => any; +} +export interface Subscription { + readonly unsubscribe: () => void; +} +export function getAltStatusMessage(code: number): string; +export const StatusCodes: {[k in string]: number}; + +export default Transport; diff --git a/types/ledgerhq__hw-transport/ledgerhq__hw-transport-tests.ts b/types/ledgerhq__hw-transport/ledgerhq__hw-transport-tests.ts new file mode 100644 index 0000000000..0f1b289976 --- /dev/null +++ b/types/ledgerhq__hw-transport/ledgerhq__hw-transport-tests.ts @@ -0,0 +1,19 @@ +import Transport from "@ledgerhq/hw-transport"; + +// $ExpectType Promise +Transport.isSupported(); +// $ExpectType Promise> +Transport.list(); +// $ExpectType Promise> +Transport.open("test"); + +const test = Transport.open("test").then(transport => { + // $ExpectType void + transport.setScrambleKey('test'); + + // $ExpectType Promise + transport.exchange(Buffer.from("test", "hex")); + + // $ExpectType Promise + transport.close(); +}); diff --git a/types/ledgerhq__hw-transport/tsconfig.json b/types/ledgerhq__hw-transport/tsconfig.json new file mode 100644 index 0000000000..47ca4863cf --- /dev/null +++ b/types/ledgerhq__hw-transport/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@ledgerhq/hw-transport": ["ledgerhq__hw-transport"] + } + }, + "files": ["index.d.ts", "ledgerhq__hw-transport-tests.ts"] +} diff --git a/types/ledgerhq__hw-transport/tslint.json b/types/ledgerhq__hw-transport/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/ledgerhq__hw-transport/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}