@onekeyfe/hwk-keystone-connector-usb 1.2.8-alpha.118 → 1.2.8-alpha.119

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/dist/webusb.js CHANGED
@@ -1,18 +1,32 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
  var _chunk4GVZ5TUQjs = require('./chunk-4GVZ5TUQ.js');
4
4
 
5
5
  // src/_subpath/webusb.ts
6
6
  var _hwtransportwebusb = require('@keystonehq/hw-transport-webusb');
7
+ var _hwtransportusb = require('@keystonehq/hw-transport-usb');
7
8
  function createKeystoneWebUsbConnector(options) {
8
9
  const disconnectListenerCleanupByTransport = /* @__PURE__ */ new WeakMap();
9
10
  const connectExactDevice = (device, config) => {
10
- const transport = new (0, _hwtransportwebusb.TransportWebUSB)(device, config);
11
+ const requestTransport = new (0, _hwtransportwebusb.TransportWebUSB)(device, config);
12
+ const infoTransport = new (0, _hwtransportwebusb.TransportWebUSB)(device, {
13
+ ...config,
14
+ timeout: Math.min(_nullishCoalesce(_optionalChain([config, 'optionalAccess', _ => _.timeout]), () => ( _hwtransportusb.USBTimeout)), _hwtransportusb.USBTimeout)
15
+ });
16
+ const transport = {
17
+ send: (action, data) => (action === _hwtransportusb.Actions.CMD_GET_DEVICE_VERSION ? infoTransport : requestTransport).send(
18
+ action,
19
+ data
20
+ ),
21
+ receive: (action, requestId) => requestTransport.receive(action, requestId),
22
+ open: () => requestTransport.open(),
23
+ close: () => requestTransport.close()
24
+ };
11
25
  let listenerAttached = true;
12
26
  function onDisconnect(event) {
13
27
  if (event.device !== device) return;
14
28
  cleanup();
15
- _optionalChain([config, 'optionalAccess', _ => _.disconnectListener, 'optionalCall', _2 => _2(device)]);
29
+ _optionalChain([config, 'optionalAccess', _2 => _2.disconnectListener, 'optionalCall', _3 => _3(device)]);
16
30
  transport.close().catch(() => void 0);
17
31
  }
18
32
  const cleanup = () => {
@@ -37,7 +51,7 @@ function createKeystoneWebUsbConnector(options) {
37
51
  },
38
52
  connectDevice: (device, config) => Promise.resolve(connectExactDevice(device, config)),
39
53
  disposeTransport: (transport) => {
40
- _optionalChain([disconnectListenerCleanupByTransport, 'access', _3 => _3.get, 'call', _4 => _4(transport), 'optionalCall', _5 => _5()]);
54
+ _optionalChain([disconnectListenerCleanupByTransport, 'access', _4 => _4.get, 'call', _5 => _5(transport), 'optionalCall', _6 => _6()]);
41
55
  },
42
56
  getKeystoneDevices: () => _hwtransportwebusb.TransportWebUSB.getKeystoneDevices(),
43
57
  requestPermission: () => _hwtransportwebusb.TransportWebUSB.requestPermission(),
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/hardware-js-sdk/hardware-js-sdk/packages/hwk-keystone-connector-usb/dist/webusb.js","../src/_subpath/webusb.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,oEAAgC;AAMzB,SAAS,6BAAA,CAA8B,OAAA,EAA8C;AAC1F,EAAA,MAAM,qCAAA,kBAAuC,IAAI,OAAA,CAA4B,CAAA;AAC7E,EAAA,MAAM,mBAAA,EAAqB,CACzB,MAAA,EACA,MAAA,EAAA,GACG;AACH,IAAA,MAAM,UAAA,EAAY,IAAI,uCAAA,CAAgB,MAAA,EAAQ,MAAM,CAAA;AACpD,IAAA,IAAI,iBAAA,EAAmB,IAAA;AACvB,IAAA,SAAS,YAAA,CAAa,KAAA,EAA2B;AAC/C,MAAA,GAAA,CAAI,KAAA,CAAM,OAAA,IAAW,MAAA,EAAQ,MAAA;AAC7B,MAAA,OAAA,CAAQ,CAAA;AACR,sBAAA,MAAA,2BAAQ,kBAAA,0BAAA,CAAqB,MAAM,GAAA;AACnC,MAAA,SAAA,CAAU,KAAA,CAAM,CAAA,CAAE,KAAA,CAAM,CAAA,EAAA,GAAM,KAAA,CAAS,CAAA;AAAA,IACzC;AACA,IAAA,MAAM,QAAA,EAAU,CAAA,EAAA,GAAM;AACpB,MAAA,GAAA,CAAI,CAAC,gBAAA,EAAkB,MAAA;AACvB,MAAA,iBAAA,EAAmB,KAAA;AACnB,MAAA,SAAA,CAAU,GAAA,CAAI,mBAAA,CAAoB,YAAA,EAAc,YAAY,CAAA;AAC5D,MAAA,oCAAA,CAAqC,MAAA,CAAO,SAAS,CAAA;AAAA,IACvD,CAAA;AACA,IAAA,SAAA,CAAU,GAAA,CAAI,gBAAA,CAAiB,YAAA,EAAc,YAAY,CAAA;AACzD,IAAA,oCAAA,CAAqC,GAAA,CAAI,SAAA,EAAW,OAAO,CAAA;AAC3D,IAAA,OAAO,SAAA;AAAA,EACT,CAAA;AACA,EAAA,OAAO,IAAI,8CAAA;AAAA,IACT;AAAA,MACE,OAAA,EAAS,MAAA,CAAM,MAAA,EAAA,GAAU;AACvB,QAAA,MAAM,kCAAA,CAAgB,WAAA,CAAY,CAAA;AAClC,QAAA,MAAM,QAAA,EAAU,MAAM,kCAAA,CAAgB,kBAAA,CAAmB,CAAA;AACzD,QAAA,GAAA,CAAI,OAAA,CAAQ,OAAA,IAAW,CAAA,EAAG;AACxB,UAAA,MAAM,IAAI,KAAA,CAAM,6DAA6D,CAAA;AAAA,QAC/E;AACA,QAAA,OAAO,kBAAA,CAAmB,OAAA,CAAQ,CAAC,CAAA,EAAG,MAAM,CAAA;AAAA,MAC9C,CAAA;AAAA,MACA,aAAA,EAAe,CAAC,MAAA,EAAQ,MAAA,EAAA,GACtB,OAAA,CAAQ,OAAA,CAAQ,kBAAA,CAAmB,MAAA,EAAqB,MAAM,CAAC,CAAA;AAAA,MACjE,gBAAA,EAAkB,CAAA,SAAA,EAAA,GAAa;AAC7B,wBAAA,oCAAA,qBAAqC,GAAA,mBAAI,SAAmB,CAAA,0BAAA,CAAI,GAAA;AAAA,MAClE,CAAA;AAAA,MACA,kBAAA,EAAoB,CAAA,EAAA,GAAM,kCAAA,CAAgB,kBAAA,CAAmB,CAAA;AAAA,MAC7D,iBAAA,EAAmB,CAAA,EAAA,GAAM,kCAAA,CAAgB,iBAAA,CAAkB,CAAA;AAAA,MAC3D,WAAA,EAAa,CAAA,EAAA,GAAM,kCAAA,CAAgB,WAAA,CAAY;AAAA,IACjD,CAAA;AAAA,IACA;AAAA,EACF,CAAA;AACF;AAGA,MAAA,SAAsB,4BAAA,CAAA,EAA8C;AAClE,EAAA,MAAM,kCAAA,CAAgB,iBAAA,CAAkB,CAAA;AAC1C;ADLA;AACE;AACA;AACF,2IAAC","file":"/home/runner/work/hardware-js-sdk/hardware-js-sdk/packages/hwk-keystone-connector-usb/dist/webusb.js","sourcesContent":[null,"import { TransportWebUSB } from '@keystonehq/hw-transport-webusb';\n\nimport { KeystoneUsbConnectorBase } from '../KeystoneUsbConnectorBase';\n\nimport type { IConnector } from '@onekeyfe/hwk-adapter-core';\n\nexport function createKeystoneWebUsbConnector(options?: { timeoutMs?: number }): IConnector {\n const disconnectListenerCleanupByTransport = new WeakMap<object, () => void>();\n const connectExactDevice = (\n device: USBDevice,\n config?: ConstructorParameters<typeof TransportWebUSB>[1]\n ) => {\n const transport = new TransportWebUSB(device, config);\n let listenerAttached = true;\n function onDisconnect(event: USBConnectionEvent) {\n if (event.device !== device) return;\n cleanup();\n config?.disconnectListener?.(device);\n transport.close().catch(() => undefined);\n }\n const cleanup = () => {\n if (!listenerAttached) return;\n listenerAttached = false;\n navigator.usb.removeEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.delete(transport);\n };\n navigator.usb.addEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.set(transport, cleanup);\n return transport;\n };\n return new KeystoneUsbConnectorBase(\n {\n connect: async config => {\n await TransportWebUSB.isSupported();\n const devices = await TransportWebUSB.getKeystoneDevices();\n if (devices.length !== 1) {\n throw new Error('Keystone WebUSB default connect requires exactly one device');\n }\n return connectExactDevice(devices[0], config);\n },\n connectDevice: (device, config) =>\n Promise.resolve(connectExactDevice(device as USBDevice, config)),\n disposeTransport: transport => {\n disconnectListenerCleanupByTransport.get(transport as object)?.();\n },\n getKeystoneDevices: () => TransportWebUSB.getKeystoneDevices(),\n requestPermission: () => TransportWebUSB.requestPermission(),\n isSupported: () => TransportWebUSB.isSupported(),\n },\n options\n );\n}\n\n/** Opens the WebUSB device picker; must be called from a user-gesture handler. */\nexport async function requestKeystoneUsbPermission(): Promise<void> {\n await TransportWebUSB.requestPermission();\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/hardware-js-sdk/hardware-js-sdk/packages/hwk-keystone-connector-usb/dist/webusb.js","../src/_subpath/webusb.ts"],"names":[],"mappings":"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","file":"/home/runner/work/hardware-js-sdk/hardware-js-sdk/packages/hwk-keystone-connector-usb/dist/webusb.js","sourcesContent":[null,"import { TransportWebUSB } from '@keystonehq/hw-transport-webusb';\nimport { Actions, USBTimeout } from '@keystonehq/hw-transport-usb';\n\nimport { KeystoneUsbConnectorBase } from '../KeystoneUsbConnectorBase';\n\nimport type { IConnector } from '@onekeyfe/hwk-adapter-core';\nimport type { TransportHID } from '@keystonehq/hw-transport-usb';\n\nexport function createKeystoneWebUsbConnector(options?: { timeoutMs?: number }): IConnector {\n const disconnectListenerCleanupByTransport = new WeakMap<object, () => void>();\n const connectExactDevice = (\n device: USBDevice,\n config?: ConstructorParameters<typeof TransportWebUSB>[1]\n ) => {\n const requestTransport = new TransportWebUSB(device, config);\n // Device information needs no confirmation; use the vendor's shorter transfer timeout.\n const infoTransport = new TransportWebUSB(device, {\n ...config,\n timeout: Math.min(config?.timeout ?? USBTimeout, USBTimeout),\n });\n const transport: TransportHID = {\n send: <T>(action: Actions, data: unknown) =>\n (action === Actions.CMD_GET_DEVICE_VERSION ? infoTransport : requestTransport).send<T>(\n action,\n data\n ),\n receive: (action, requestId) => requestTransport.receive(action, requestId),\n open: () => requestTransport.open(),\n close: () => requestTransport.close(),\n };\n let listenerAttached = true;\n function onDisconnect(event: USBConnectionEvent) {\n if (event.device !== device) return;\n cleanup();\n config?.disconnectListener?.(device);\n transport.close().catch(() => undefined);\n }\n const cleanup = () => {\n if (!listenerAttached) return;\n listenerAttached = false;\n navigator.usb.removeEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.delete(transport);\n };\n navigator.usb.addEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.set(transport, cleanup);\n return transport;\n };\n return new KeystoneUsbConnectorBase(\n {\n connect: async config => {\n await TransportWebUSB.isSupported();\n const devices = await TransportWebUSB.getKeystoneDevices();\n if (devices.length !== 1) {\n throw new Error('Keystone WebUSB default connect requires exactly one device');\n }\n return connectExactDevice(devices[0], config);\n },\n connectDevice: (device, config) =>\n Promise.resolve(connectExactDevice(device as USBDevice, config)),\n disposeTransport: transport => {\n disconnectListenerCleanupByTransport.get(transport as object)?.();\n },\n getKeystoneDevices: () => TransportWebUSB.getKeystoneDevices(),\n requestPermission: () => TransportWebUSB.requestPermission(),\n isSupported: () => TransportWebUSB.isSupported(),\n },\n options\n );\n}\n\n/** Opens the WebUSB device picker; must be called from a user-gesture handler. */\nexport async function requestKeystoneUsbPermission(): Promise<void> {\n await TransportWebUSB.requestPermission();\n}\n"]}
package/dist/webusb.mjs CHANGED
@@ -4,10 +4,24 @@ import {
4
4
 
5
5
  // src/_subpath/webusb.ts
6
6
  import { TransportWebUSB } from "@keystonehq/hw-transport-webusb";
7
+ import { Actions, USBTimeout } from "@keystonehq/hw-transport-usb";
7
8
  function createKeystoneWebUsbConnector(options) {
8
9
  const disconnectListenerCleanupByTransport = /* @__PURE__ */ new WeakMap();
9
10
  const connectExactDevice = (device, config) => {
10
- const transport = new TransportWebUSB(device, config);
11
+ const requestTransport = new TransportWebUSB(device, config);
12
+ const infoTransport = new TransportWebUSB(device, {
13
+ ...config,
14
+ timeout: Math.min(config?.timeout ?? USBTimeout, USBTimeout)
15
+ });
16
+ const transport = {
17
+ send: (action, data) => (action === Actions.CMD_GET_DEVICE_VERSION ? infoTransport : requestTransport).send(
18
+ action,
19
+ data
20
+ ),
21
+ receive: (action, requestId) => requestTransport.receive(action, requestId),
22
+ open: () => requestTransport.open(),
23
+ close: () => requestTransport.close()
24
+ };
11
25
  let listenerAttached = true;
12
26
  function onDisconnect(event) {
13
27
  if (event.device !== device) return;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/_subpath/webusb.ts"],"sourcesContent":["import { TransportWebUSB } from '@keystonehq/hw-transport-webusb';\n\nimport { KeystoneUsbConnectorBase } from '../KeystoneUsbConnectorBase';\n\nimport type { IConnector } from '@onekeyfe/hwk-adapter-core';\n\nexport function createKeystoneWebUsbConnector(options?: { timeoutMs?: number }): IConnector {\n const disconnectListenerCleanupByTransport = new WeakMap<object, () => void>();\n const connectExactDevice = (\n device: USBDevice,\n config?: ConstructorParameters<typeof TransportWebUSB>[1]\n ) => {\n const transport = new TransportWebUSB(device, config);\n let listenerAttached = true;\n function onDisconnect(event: USBConnectionEvent) {\n if (event.device !== device) return;\n cleanup();\n config?.disconnectListener?.(device);\n transport.close().catch(() => undefined);\n }\n const cleanup = () => {\n if (!listenerAttached) return;\n listenerAttached = false;\n navigator.usb.removeEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.delete(transport);\n };\n navigator.usb.addEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.set(transport, cleanup);\n return transport;\n };\n return new KeystoneUsbConnectorBase(\n {\n connect: async config => {\n await TransportWebUSB.isSupported();\n const devices = await TransportWebUSB.getKeystoneDevices();\n if (devices.length !== 1) {\n throw new Error('Keystone WebUSB default connect requires exactly one device');\n }\n return connectExactDevice(devices[0], config);\n },\n connectDevice: (device, config) =>\n Promise.resolve(connectExactDevice(device as USBDevice, config)),\n disposeTransport: transport => {\n disconnectListenerCleanupByTransport.get(transport as object)?.();\n },\n getKeystoneDevices: () => TransportWebUSB.getKeystoneDevices(),\n requestPermission: () => TransportWebUSB.requestPermission(),\n isSupported: () => TransportWebUSB.isSupported(),\n },\n options\n );\n}\n\n/** Opens the WebUSB device picker; must be called from a user-gesture handler. */\nexport async function requestKeystoneUsbPermission(): Promise<void> {\n await TransportWebUSB.requestPermission();\n}\n"],"mappings":";;;;;AAAA,SAAS,uBAAuB;AAMzB,SAAS,8BAA8B,SAA8C;AAC1F,QAAM,uCAAuC,oBAAI,QAA4B;AAC7E,QAAM,qBAAqB,CACzB,QACA,WACG;AACH,UAAM,YAAY,IAAI,gBAAgB,QAAQ,MAAM;AACpD,QAAI,mBAAmB;AACvB,aAAS,aAAa,OAA2B;AAC/C,UAAI,MAAM,WAAW,OAAQ;AAC7B,cAAQ;AACR,cAAQ,qBAAqB,MAAM;AACnC,gBAAU,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,IACzC;AACA,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,iBAAkB;AACvB,yBAAmB;AACnB,gBAAU,IAAI,oBAAoB,cAAc,YAAY;AAC5D,2CAAqC,OAAO,SAAS;AAAA,IACvD;AACA,cAAU,IAAI,iBAAiB,cAAc,YAAY;AACzD,yCAAqC,IAAI,WAAW,OAAO;AAC3D,WAAO;AAAA,EACT;AACA,SAAO,IAAI;AAAA,IACT;AAAA,MACE,SAAS,OAAM,WAAU;AACvB,cAAM,gBAAgB,YAAY;AAClC,cAAM,UAAU,MAAM,gBAAgB,mBAAmB;AACzD,YAAI,QAAQ,WAAW,GAAG;AACxB,gBAAM,IAAI,MAAM,6DAA6D;AAAA,QAC/E;AACA,eAAO,mBAAmB,QAAQ,CAAC,GAAG,MAAM;AAAA,MAC9C;AAAA,MACA,eAAe,CAAC,QAAQ,WACtB,QAAQ,QAAQ,mBAAmB,QAAqB,MAAM,CAAC;AAAA,MACjE,kBAAkB,eAAa;AAC7B,6CAAqC,IAAI,SAAmB,IAAI;AAAA,MAClE;AAAA,MACA,oBAAoB,MAAM,gBAAgB,mBAAmB;AAAA,MAC7D,mBAAmB,MAAM,gBAAgB,kBAAkB;AAAA,MAC3D,aAAa,MAAM,gBAAgB,YAAY;AAAA,IACjD;AAAA,IACA;AAAA,EACF;AACF;AAGA,eAAsB,+BAA8C;AAClE,QAAM,gBAAgB,kBAAkB;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../src/_subpath/webusb.ts"],"sourcesContent":["import { TransportWebUSB } from '@keystonehq/hw-transport-webusb';\nimport { Actions, USBTimeout } from '@keystonehq/hw-transport-usb';\n\nimport { KeystoneUsbConnectorBase } from '../KeystoneUsbConnectorBase';\n\nimport type { IConnector } from '@onekeyfe/hwk-adapter-core';\nimport type { TransportHID } from '@keystonehq/hw-transport-usb';\n\nexport function createKeystoneWebUsbConnector(options?: { timeoutMs?: number }): IConnector {\n const disconnectListenerCleanupByTransport = new WeakMap<object, () => void>();\n const connectExactDevice = (\n device: USBDevice,\n config?: ConstructorParameters<typeof TransportWebUSB>[1]\n ) => {\n const requestTransport = new TransportWebUSB(device, config);\n // Device information needs no confirmation; use the vendor's shorter transfer timeout.\n const infoTransport = new TransportWebUSB(device, {\n ...config,\n timeout: Math.min(config?.timeout ?? USBTimeout, USBTimeout),\n });\n const transport: TransportHID = {\n send: <T>(action: Actions, data: unknown) =>\n (action === Actions.CMD_GET_DEVICE_VERSION ? infoTransport : requestTransport).send<T>(\n action,\n data\n ),\n receive: (action, requestId) => requestTransport.receive(action, requestId),\n open: () => requestTransport.open(),\n close: () => requestTransport.close(),\n };\n let listenerAttached = true;\n function onDisconnect(event: USBConnectionEvent) {\n if (event.device !== device) return;\n cleanup();\n config?.disconnectListener?.(device);\n transport.close().catch(() => undefined);\n }\n const cleanup = () => {\n if (!listenerAttached) return;\n listenerAttached = false;\n navigator.usb.removeEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.delete(transport);\n };\n navigator.usb.addEventListener('disconnect', onDisconnect);\n disconnectListenerCleanupByTransport.set(transport, cleanup);\n return transport;\n };\n return new KeystoneUsbConnectorBase(\n {\n connect: async config => {\n await TransportWebUSB.isSupported();\n const devices = await TransportWebUSB.getKeystoneDevices();\n if (devices.length !== 1) {\n throw new Error('Keystone WebUSB default connect requires exactly one device');\n }\n return connectExactDevice(devices[0], config);\n },\n connectDevice: (device, config) =>\n Promise.resolve(connectExactDevice(device as USBDevice, config)),\n disposeTransport: transport => {\n disconnectListenerCleanupByTransport.get(transport as object)?.();\n },\n getKeystoneDevices: () => TransportWebUSB.getKeystoneDevices(),\n requestPermission: () => TransportWebUSB.requestPermission(),\n isSupported: () => TransportWebUSB.isSupported(),\n },\n options\n );\n}\n\n/** Opens the WebUSB device picker; must be called from a user-gesture handler. */\nexport async function requestKeystoneUsbPermission(): Promise<void> {\n await TransportWebUSB.requestPermission();\n}\n"],"mappings":";;;;;AAAA,SAAS,uBAAuB;AAChC,SAAS,SAAS,kBAAkB;AAO7B,SAAS,8BAA8B,SAA8C;AAC1F,QAAM,uCAAuC,oBAAI,QAA4B;AAC7E,QAAM,qBAAqB,CACzB,QACA,WACG;AACH,UAAM,mBAAmB,IAAI,gBAAgB,QAAQ,MAAM;AAE3D,UAAM,gBAAgB,IAAI,gBAAgB,QAAQ;AAAA,MAChD,GAAG;AAAA,MACH,SAAS,KAAK,IAAI,QAAQ,WAAW,YAAY,UAAU;AAAA,IAC7D,CAAC;AACD,UAAM,YAA0B;AAAA,MAC9B,MAAM,CAAI,QAAiB,UACxB,WAAW,QAAQ,yBAAyB,gBAAgB,kBAAkB;AAAA,QAC7E;AAAA,QACA;AAAA,MACF;AAAA,MACF,SAAS,CAAC,QAAQ,cAAc,iBAAiB,QAAQ,QAAQ,SAAS;AAAA,MAC1E,MAAM,MAAM,iBAAiB,KAAK;AAAA,MAClC,OAAO,MAAM,iBAAiB,MAAM;AAAA,IACtC;AACA,QAAI,mBAAmB;AACvB,aAAS,aAAa,OAA2B;AAC/C,UAAI,MAAM,WAAW,OAAQ;AAC7B,cAAQ;AACR,cAAQ,qBAAqB,MAAM;AACnC,gBAAU,MAAM,EAAE,MAAM,MAAM,MAAS;AAAA,IACzC;AACA,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,iBAAkB;AACvB,yBAAmB;AACnB,gBAAU,IAAI,oBAAoB,cAAc,YAAY;AAC5D,2CAAqC,OAAO,SAAS;AAAA,IACvD;AACA,cAAU,IAAI,iBAAiB,cAAc,YAAY;AACzD,yCAAqC,IAAI,WAAW,OAAO;AAC3D,WAAO;AAAA,EACT;AACA,SAAO,IAAI;AAAA,IACT;AAAA,MACE,SAAS,OAAM,WAAU;AACvB,cAAM,gBAAgB,YAAY;AAClC,cAAM,UAAU,MAAM,gBAAgB,mBAAmB;AACzD,YAAI,QAAQ,WAAW,GAAG;AACxB,gBAAM,IAAI,MAAM,6DAA6D;AAAA,QAC/E;AACA,eAAO,mBAAmB,QAAQ,CAAC,GAAG,MAAM;AAAA,MAC9C;AAAA,MACA,eAAe,CAAC,QAAQ,WACtB,QAAQ,QAAQ,mBAAmB,QAAqB,MAAM,CAAC;AAAA,MACjE,kBAAkB,eAAa;AAC7B,6CAAqC,IAAI,SAAmB,IAAI;AAAA,MAClE;AAAA,MACA,oBAAoB,MAAM,gBAAgB,mBAAmB;AAAA,MAC7D,mBAAmB,MAAM,gBAAgB,kBAAkB;AAAA,MAC3D,aAAa,MAAM,gBAAgB,YAAY;AAAA,IACjD;AAAA,IACA;AAAA,EACF;AACF;AAGA,eAAsB,+BAA8C;AAClE,QAAM,gBAAgB,kBAAkB;AAC1C;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hwk-keystone-connector-usb",
3
- "version": "1.2.8-alpha.118",
3
+ "version": "1.2.8-alpha.119",
4
4
  "description": "IConnector implementation for Keystone hardware wallets via WebUSB",
5
5
  "author": "OneKey",
6
6
  "license": "MIT",
@@ -59,7 +59,7 @@
59
59
  "@keystonehq/hw-transport-usb": "0.2.0",
60
60
  "@keystonehq/hw-transport-webusb": "0.5.3",
61
61
  "@ngraveio/bc-ur": "1.1.13",
62
- "@onekeyfe/hwk-adapter-core": "1.2.8-alpha.118"
62
+ "@onekeyfe/hwk-adapter-core": "1.2.8-alpha.119"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@keystonehq/bc-ur-registry-eth": "0.22.1",
@@ -67,5 +67,5 @@
67
67
  "tsup": "^8.0.0",
68
68
  "typescript": "^5.4.0"
69
69
  },
70
- "gitHead": "7b5fe42a7c29ff0aa4c8340c1d5da93026a1b590"
70
+ "gitHead": "26953c0d533e9a05980abc8ea43e7bbd45ead861"
71
71
  }