@ukeyfe/hardware-transport-web-device 1.1.13

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.
package/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # `@ukeyfe/hardware-transport-webusb`
2
+
3
+ `@ukeyfe/hardware-transport-webusb` is a library that implements transport communication by WebUSB.
4
+
5
+ ## What is the purpose
6
+
7
+ - translate JSON payloads to binary messages using protobuf definitions comprehensible to UKey devices
8
+ - chunking and reading chunked messages according to the [UKey protocol](./protocol.md)
9
+ - exposing single API for various transport methods:
10
+ - Http Transport
11
+ - React Native Transport
12
+ - WebUSB
13
+ - Create and expose typescript definitions based on protobuf definitions.
14
+
15
+ ### The short version
16
+
17
+ In order to be able to use new features of ukey-firmware you need to update protobuf definitions.
18
+
19
+ 1. `git submodule update --init --recursive` to initialize git submodules.
20
+ 1. `yarn update-submodules` to update firmware submodule
21
+ 1. `yarn update:protobuf` to generate new `./messages.json` and `./src/types/messages.ts`
22
+
23
+ git submodule update --init --recursive to initialize firmware submodule
24
+ yarn update-submodules to update firmware submodule
25
+ yar update:protobuf to generate new ./messages.json and ./src/types/messages.ts
26
+
27
+ ## Docs
28
+
29
+ Documentation is available [hardware-js-sdk](https://developer.ukey.so/connect-to-hardware/hardware-sdk/start)
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ import transport from '@ukeyfe/hardware-transport';
3
+ import { Deferred } from '@ukeyfe/hardware-shared';
4
+ import type EventEmitter from 'events';
5
+ import type { DesktopAPI } from '@ukeyfe/hardware-transport-electron';
6
+ declare global {
7
+ interface Window {
8
+ desktopApi?: DesktopAPI;
9
+ }
10
+ }
11
+ export type BleAcquireInput = {
12
+ uuid: string;
13
+ forceCleanRunPromise?: boolean;
14
+ };
15
+ export default class ElectronBleTransport {
16
+ _messages: ReturnType<typeof transport.parseConfigure> | undefined;
17
+ name: string;
18
+ configured: boolean;
19
+ runPromise: Deferred<any> | null;
20
+ Log?: any;
21
+ emitter?: EventEmitter;
22
+ private connectedDevices;
23
+ private dataBuffers;
24
+ private notificationCleanups;
25
+ private disconnectCleanups;
26
+ private handleBluetoothError;
27
+ private cleanupDeviceState;
28
+ init(logger: any, emitter?: EventEmitter): void;
29
+ configure(signedData: any): void;
30
+ listen(): void;
31
+ enumerate(): Promise<{
32
+ id: string;
33
+ name: string;
34
+ }[]>;
35
+ acquire(input: BleAcquireInput): Promise<{
36
+ uuid: string;
37
+ path: string;
38
+ }>;
39
+ release(id: string): Promise<void>;
40
+ private handleNotificationData;
41
+ call(uuid: string, name: string, data: Record<string, unknown>): Promise<import("@ukeyfe/hardware-transport").MessageFromUKey>;
42
+ private processNotificationPacket;
43
+ }
44
+ //# sourceMappingURL=electron-ble-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"electron-ble-transport.d.ts","sourceRoot":"","sources":["../src/electron-ble-transport.ts"],"names":[],"mappings":";AAAA,OAAO,SAAkD,MAAM,4BAA4B,CAAC;AAC5F,OAAO,EAIL,QAAQ,EAGT,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAKtE,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;CAChC,CAAC;AASF,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACvC,SAAS,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAEnE,IAAI,SAA0B;IAE9B,UAAU,UAAS;IAEnB,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAExC,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,OAAO,CAAC,EAAE,YAAY,CAAC;IAGvB,OAAO,CAAC,gBAAgB,CAA0B;IAGlD,OAAO,CAAC,WAAW,CAAsE;IAGzF,OAAO,CAAC,oBAAoB,CAAsC;IAGlE,OAAO,CAAC,kBAAkB,CAAsC;IAGhE,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,kBAAkB;IAmB1B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IAexC,SAAS,CAAC,UAAU,EAAE,GAAG;IAMzB,MAAM;IAEA,SAAS,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAcpD,OAAO,CAAC,KAAK,EAAE,eAAe;;;;IA8E9B,OAAO,CAAC,EAAE,EAAE,MAAM;IAwBxB,OAAO,CAAC,sBAAsB;IA2BxB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA2EpE,OAAO,CAAC,yBAAyB;CAyDlC"}
@@ -0,0 +1,76 @@
1
+ import * as transport from '@ukeyfe/hardware-transport';
2
+ import transport__default, { AcquireInput } from '@ukeyfe/hardware-transport';
3
+ import { Deferred } from '@ukeyfe/hardware-shared';
4
+ import EventEmitter from 'events';
5
+ import { DesktopAPI } from '@ukeyfe/hardware-transport-electron';
6
+
7
+ interface DeviceInfo {
8
+ path: string;
9
+ device: USBDevice;
10
+ }
11
+ declare class WebUsbTransport {
12
+ messages: ReturnType<typeof transport__default.parseConfigure> | undefined;
13
+ name: string;
14
+ stopped: boolean;
15
+ configured: boolean;
16
+ Log?: any;
17
+ usb?: USB;
18
+ deviceList: Array<DeviceInfo>;
19
+ configurationId: number;
20
+ endpointId: number;
21
+ interfaceId: number;
22
+ init(logger: any): void;
23
+ configure(signedData: any): void;
24
+ promptDeviceAccess(): Promise<USBDevice | null>;
25
+ enumerate(): Promise<DeviceInfo[]>;
26
+ getConnectedDevices(): Promise<DeviceInfo[]>;
27
+ acquire(input: AcquireInput): Promise<string | undefined>;
28
+ findDevice(path: string): Promise<USBDevice>;
29
+ connect(path: string, first: boolean): Promise<void>;
30
+ connectToDevice(path: string, first: boolean): Promise<void>;
31
+ post(session: string, name: string, data: Record<string, unknown>): Promise<void>;
32
+ call(path: string, name: string, data: Record<string, unknown>): Promise<transport.MessageFromUKey>;
33
+ receiveData(path: string): Promise<string>;
34
+ release(path: string): Promise<void>;
35
+ }
36
+
37
+ declare global {
38
+ interface Window {
39
+ desktopApi?: DesktopAPI;
40
+ }
41
+ }
42
+ type BleAcquireInput = {
43
+ uuid: string;
44
+ forceCleanRunPromise?: boolean;
45
+ };
46
+ declare class ElectronBleTransport {
47
+ _messages: ReturnType<typeof transport__default.parseConfigure> | undefined;
48
+ name: string;
49
+ configured: boolean;
50
+ runPromise: Deferred<any> | null;
51
+ Log?: any;
52
+ emitter?: EventEmitter;
53
+ private connectedDevices;
54
+ private dataBuffers;
55
+ private notificationCleanups;
56
+ private disconnectCleanups;
57
+ private handleBluetoothError;
58
+ private cleanupDeviceState;
59
+ init(logger: any, emitter?: EventEmitter): void;
60
+ configure(signedData: any): void;
61
+ listen(): void;
62
+ enumerate(): Promise<{
63
+ id: string;
64
+ name: string;
65
+ }[]>;
66
+ acquire(input: BleAcquireInput): Promise<{
67
+ uuid: string;
68
+ path: string;
69
+ }>;
70
+ release(id: string): Promise<void>;
71
+ private handleNotificationData;
72
+ call(uuid: string, name: string, data: Record<string, unknown>): Promise<transport.MessageFromUKey>;
73
+ private processNotificationPacket;
74
+ }
75
+
76
+ export { ElectronBleTransport, WebUsbTransport };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,oBAAoB,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC"}