@onekeyfe/hd-transport 1.2.0-alpha.19 → 1.2.0-alpha.20

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/index.js CHANGED
@@ -267,7 +267,7 @@ const PROTOCOL_V1_CHUNK_PAYLOAD_SIZE = 63;
267
267
  const PROTOCOL_V1_USB_PACKET_SIZE = PROTOCOL_V1_CHUNK_PAYLOAD_SIZE + 1;
268
268
  const PROTOCOL_V1_MESSAGE_HEADER_SIZE = 2 + 4;
269
269
  const PROTOCOL_V1_ENVELOPE_HEADER_SIZE = 1 + 1 + PROTOCOL_V1_MESSAGE_HEADER_SIZE;
270
- const PROTOCOL_V2_FRAME_MAX_BYTES = 4608;
270
+ const PROTOCOL_V2_FRAME_MAX_BYTES = 4200;
271
271
  const PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE = 4000;
272
272
  const PROTOCOL_V2_BLE_FILE_CHUNK_SIZE = 1800;
273
273
  const PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE = 900;
@@ -425,7 +425,7 @@ function encodeFrame(payload, packetSrc, router, seq) {
425
425
  const payloadLen = payload ? payload.length : 0;
426
426
  const frameLen = payloadLen + PROTO_HEAD_CRC_SIZE;
427
427
  if (frameLen > PROTOCOL_V2_FRAME_MAX_BYTES) {
428
- throw new Error(`Protocol V2 frame too large: ${frameLen}`);
428
+ throw new Error(`Protocol V2 frame too large: ${frameLen} > ${PROTOCOL_V2_FRAME_MAX_BYTES}`);
429
429
  }
430
430
  const frame = new Uint8Array(frameLen);
431
431
  frame[0] = PROTO_HEAD_SOF;
@@ -485,6 +485,12 @@ function isAckFrame(data) {
485
485
  }
486
486
  return true;
487
487
  }
488
+ function getAckSequence(data) {
489
+ if (!isAckFrame(data)) {
490
+ return undefined;
491
+ }
492
+ return data[6];
493
+ }
488
494
  function decodeFrame(data) {
489
495
  const frameLen = validateFrame(data);
490
496
  const seq = data[6];
@@ -583,6 +589,7 @@ var protocolV2Codec = /*#__PURE__*/Object.freeze({
583
589
  encodeFrame: encodeFrame,
584
590
  encodeProtobufFrame: encodeProtobufFrame,
585
591
  isAckFrame: isAckFrame,
592
+ getAckSequence: getAckSequence,
586
593
  decodeFrame: decodeFrame,
587
594
  concatUint8Arrays: concatUint8Arrays,
588
595
  ProtocolV2FrameAssembler: ProtocolV2FrameAssembler
@@ -634,6 +641,7 @@ const ProtocolV1 = {
634
641
  };
635
642
  const ProtocolV2 = {
636
643
  isAckFrame,
644
+ getAckSequence,
637
645
  inspectFrame(schemas, frame) {
638
646
  const { messageTypeId, pbPayload, seq } = decodeFrame(frame);
639
647
  const { messageName } = createProtocolV2MessageFromType(messageTypeId, schemas);
@@ -863,7 +871,8 @@ function withProtocolTimeout(promise, timeoutMs, createTimeoutError, onTimeout)
863
871
  }
864
872
  });
865
873
  }
866
- const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 0;
874
+ const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 30000;
875
+ const PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = 5000;
867
876
  class ProtocolV2Session {
868
877
  constructor(options) {
869
878
  var _a;
@@ -879,7 +888,7 @@ class ProtocolV2Session {
879
888
  }
880
889
  executeCall(name, data, callOptions) {
881
890
  return __awaiter(this, void 0, void 0, function* () {
882
- const { schemas, router, packetSrc = PROTOCOL_V2_PACKET_SRC_COMMAND, maxFrameBytes, prepareCall, writeFrame, readFrame, logger, logPrefix = 'ProtocolV2', createTimeoutError, generation = 0, } = this.options;
891
+ const { schemas, router, packetSrc = PROTOCOL_V2_PACKET_SRC_COMMAND, maxFrameBytes, prepareCall, writeFrame, readFrame, logger, logPrefix = 'ProtocolV2', createTimeoutError, generation = 0, writeTimeoutMs = PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, deliveryTimeoutMs = PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS, } = this.options;
883
892
  const shouldReduceDebug = shouldReduceProtocolV2Debug(name);
884
893
  const callContext = {
885
894
  messageName: name,
@@ -897,8 +906,18 @@ class ProtocolV2Session {
897
906
  if (maxFrameBytes !== undefined && frame.length > maxFrameBytes) {
898
907
  throw new Error(`Protocol V2 frame too large for transport: ${frame.length} > ${maxFrameBytes}`);
899
908
  }
900
- yield withProtocolTimeout(writeFrame(frame, callContext), PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS, () => new Error(`Protocol V2 write timeout after ${PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS}ms for ${name}`));
909
+ yield withProtocolTimeout(writeFrame(frame, callContext), writeTimeoutMs, () => new Error(`Protocol V2 write timeout after ${writeTimeoutMs}ms for ${name}`));
901
910
  const cancellation = { cancelled: false };
911
+ let resolveDelivery = () => undefined;
912
+ let deliveryConfirmed = false;
913
+ const deliveryPromise = new Promise(resolve => {
914
+ resolveDelivery = () => {
915
+ if (deliveryConfirmed)
916
+ return;
917
+ deliveryConfirmed = true;
918
+ resolve();
919
+ };
920
+ });
902
921
  const readResponse = () => __awaiter(this, void 0, void 0, function* () {
903
922
  var _a, _b, _c, _d;
904
923
  while (!cancellation.cancelled) {
@@ -906,8 +925,14 @@ class ProtocolV2Session {
906
925
  if (cancellation.cancelled) {
907
926
  break;
908
927
  }
909
- const isAck = ProtocolV2.isAckFrame(rxFrame);
910
- if (!isAck) {
928
+ const ackSequence = ProtocolV2.getAckSequence(rxFrame);
929
+ if (ackSequence !== undefined) {
930
+ if (ackSequence === protoSeq) {
931
+ resolveDelivery();
932
+ }
933
+ }
934
+ else {
935
+ resolveDelivery();
911
936
  const decoded = ProtocolV2.decodeFrame(schemas, rxFrame);
912
937
  const response = call(decoded);
913
938
  if ((_a = callOptions.intermediateTypes) === null || _a === void 0 ? void 0 : _a.includes(response.type)) {
@@ -923,7 +948,7 @@ class ProtocolV2Session {
923
948
  }
924
949
  throw new Error(`Protocol V2 read loop cancelled after timeout for ${name}`);
925
950
  });
926
- return withProtocolTimeout(readResponse(), callOptions.timeoutMs, () => {
951
+ const responsePromise = withProtocolTimeout(readResponse(), callOptions.timeoutMs, () => {
927
952
  var _a;
928
953
  return createTimeoutError
929
954
  ? createTimeoutError(name, (_a = callOptions.timeoutMs) !== null && _a !== void 0 ? _a : 0)
@@ -931,6 +956,26 @@ class ProtocolV2Session {
931
956
  }, () => {
932
957
  cancellation.cancelled = true;
933
958
  });
959
+ const deliverySignal = Promise.race([deliveryPromise, responsePromise.then(() => undefined)]);
960
+ const deliveryWatchdog = withProtocolTimeout(deliverySignal, deliveryTimeoutMs, () => new Error(`Protocol V2 delivery timeout after ${deliveryTimeoutMs}ms for ${name}`), () => {
961
+ cancellation.cancelled = true;
962
+ });
963
+ try {
964
+ const firstResult = yield Promise.race([
965
+ deliveryWatchdog.then(() => ({ kind: 'delivered' })),
966
+ responsePromise.then(response => ({ kind: 'response', response })),
967
+ ]);
968
+ if (firstResult.kind === 'response') {
969
+ return firstResult.response;
970
+ }
971
+ return yield responsePromise;
972
+ }
973
+ catch (error) {
974
+ cancellation.cancelled = true;
975
+ deliveryWatchdog.catch(() => undefined);
976
+ responsePromise.catch(() => undefined);
977
+ throw error;
978
+ }
934
979
  });
935
980
  }
936
981
  }
@@ -1039,6 +1084,7 @@ class ProtocolV2LinkManager {
1039
1084
  logger: adapter.logger,
1040
1085
  logPrefix: adapter.logPrefix,
1041
1086
  createTimeoutError: adapter.createTimeoutError,
1087
+ writeTimeoutMs: adapter.writeTimeoutMs,
1042
1088
  });
1043
1089
  const link = { adapter, session, state };
1044
1090
  this.links.set(key, link);
@@ -1964,6 +2010,7 @@ exports.PROTOCOL_V2_BLE_FRAME_MAX_BYTES = PROTOCOL_V2_BLE_FRAME_MAX_BYTES;
1964
2010
  exports.PROTOCOL_V2_CHANNEL_BLE_UART = PROTOCOL_V2_CHANNEL_BLE_UART;
1965
2011
  exports.PROTOCOL_V2_CHANNEL_SOCKET = PROTOCOL_V2_CHANNEL_SOCKET;
1966
2012
  exports.PROTOCOL_V2_CHANNEL_USB = PROTOCOL_V2_CHANNEL_USB;
2013
+ exports.PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS;
1967
2014
  exports.PROTOCOL_V2_FILE_CHUNK_SIZE = PROTOCOL_V2_FILE_CHUNK_SIZE;
1968
2015
  exports.PROTOCOL_V2_FRAME_MAX_BYTES = PROTOCOL_V2_FRAME_MAX_BYTES;
1969
2016
  exports.PROTOCOL_V2_PACKET_SRC_COMMAND = PROTOCOL_V2_PACKET_SRC_COMMAND;
@@ -2,7 +2,7 @@
2
2
  import ByteBuffer from 'bytebuffer';
3
3
  import { encodeEnvelopeMessage } from './v1/packets';
4
4
  import { decodeMessage as decodeV1Message } from './v1/receive';
5
- import { isAckFrame } from './v2';
5
+ import { getAckSequence, isAckFrame } from './v2';
6
6
  import type { Root } from 'protobufjs/light';
7
7
  export declare const PROTOCOL_V2_SYS_MESSAGE_THRESHOLD = 60000;
8
8
  type ProtocolV2Schemas = {
@@ -27,6 +27,7 @@ export declare const ProtocolV1: {
27
27
  };
28
28
  export declare const ProtocolV2: {
29
29
  isAckFrame: typeof isAckFrame;
30
+ getAckSequence: typeof getAckSequence;
30
31
  inspectFrame(schemas: ProtocolV2Schemas, frame: Uint8Array): {
31
32
  messageName: string;
32
33
  messageTypeId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAA+C,MAAM,cAAc,CAAC;AAElG,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAIhE,OAAO,EAAqD,UAAU,EAAE,MAAM,MAAM,CAAC;AAErF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AAEvD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAsCF,eAAO,MAAM,UAAU;;;;;;;;;;CAOtB,CAAC;AAEF,eAAO,MAAM,UAAU;;0BAGC,iBAAiB,SAAS,UAAU;;;;;;;yBAa/C,iBAAiB,QACpB,MAAM,QACN,OAAO,MAAM,EAAE,OAAO,CAAC,YACpB,sBAAsB;yBAkBZ,iBAAiB,SAAS,UAAU;;;;;;;;;;CAe1D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAA+C,MAAM,cAAc,CAAC;AAElG,OAAO,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAIhE,OAAO,EAGL,cAAc,EACd,UAAU,EACX,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,eAAO,MAAM,iCAAiC,QAAQ,CAAC;AAEvD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAsCF,eAAO,MAAM,UAAU;;;;;;;;;;CAOtB,CAAC;AAEF,eAAO,MAAM,UAAU;;;0BAIC,iBAAiB,SAAS,UAAU;;;;;;;yBAa/C,iBAAiB,QACpB,MAAM,QACN,OAAO,MAAM,EAAE,OAAO,CAAC,YACpB,sBAAsB;yBAkBZ,iBAAiB,SAAS,UAAU;;;;;;;;;;CAe1D,CAAC"}
@@ -4,5 +4,6 @@ export interface ProtoV2Frame {
4
4
  seq: number;
5
5
  }
6
6
  export declare function isAckFrame(data: Uint8Array): boolean;
7
+ export declare function getAckSequence(data: Uint8Array): number | undefined;
7
8
  export declare function decodeFrame(data: Uint8Array): ProtoV2Frame;
8
9
  //# sourceMappingURL=decode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/decode.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAE3B,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,UAAU,CAAC;IAEtB,GAAG,EAAE,MAAM,CAAC;CACb;AAwCD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAWpD;AAYD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAe1D"}
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/decode.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAE3B,aAAa,EAAE,MAAM,CAAC;IAEtB,SAAS,EAAE,UAAU,CAAC;IAEtB,GAAG,EAAE,MAAM,CAAC;CACb;AAwCD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAWpD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAKnE;AAYD,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAe1D"}
@@ -12,6 +12,7 @@ export interface ProtocolV2LinkAdapter {
12
12
  logger?: ProtocolV2SessionOptions['logger'];
13
13
  logPrefix?: string;
14
14
  createTimeoutError?: ProtocolV2SessionOptions['createTimeoutError'];
15
+ writeTimeoutMs?: number;
15
16
  }
16
17
  export type ProtocolV2LinkManagerOptions<Key> = {
17
18
  getSchemas: () => ProtocolV2Schemas;
@@ -1 +1 @@
1
- {"version":3,"file":"link-manager.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/link-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAEpG,MAAM,MAAM,iCAAiC,GAAG,YAAY,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,4BAA4B,CAAC,GAAG,IAAI;IAC9C,UAAU,EAAE,MAAM,iBAAiB,CAAC;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iCAAiC,CAAC;IACrE,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxE,CAAC;AAUF,qBAAa,qBAAqB,CAAC,GAAG;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC;IAItD,IAAI,CACF,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,MAAM,qBAAqB,EAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAevB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,eAAe;YA+CT,WAAW;IAkBzB,OAAO,CAAC,qBAAqB;CAK9B"}
1
+ {"version":3,"file":"link-manager.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/link-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAEpG,MAAM,MAAM,iCAAiC,GAAG,YAAY,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,SAAS,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,4BAA4B,CAAC,GAAG,IAAI;IAC9C,UAAU,EAAE,MAAM,iBAAiB,CAAC;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iCAAiC,CAAC;IACrE,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxE,CAAC;AAUF,qBAAa,qBAAqB,CAAC,GAAG;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAEtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAE/D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAEhD,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC;IAItD,IAAI,CACF,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,MAAM,qBAAqB,EAC1C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAevB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,OAAO,CAAC,eAAe;YAgDT,WAAW;IAkBzB,OAAO,CAAC,qBAAqB;CAK9B"}
@@ -29,6 +29,8 @@ export type ProtocolV2SessionOptions = {
29
29
  createTimeoutError?: (name: string, timeoutMs: number) => Error;
30
30
  sequenceCursor?: ProtocolV2SequenceCursor;
31
31
  generation?: number;
32
+ writeTimeoutMs?: number;
33
+ deliveryTimeoutMs?: number;
32
34
  };
33
35
  export type ProtocolV2CallOptions = {
34
36
  timeoutMs?: number;
@@ -42,7 +44,8 @@ export declare function hexToBytes(hex: string): Uint8Array;
42
44
  export declare function bytesToHex(bytes: Uint8Array): string;
43
45
  export declare function getErrorMessage(error: unknown): string;
44
46
  export declare function withProtocolTimeout<T>(promise: Promise<T>, timeoutMs: number | undefined, createTimeoutError: () => Error, onTimeout?: () => void): Promise<T>;
45
- export declare const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 0;
47
+ export declare const PROTOCOL_V2_WRITE_WATCHDOG_TIMEOUT_MS = 30000;
48
+ export declare const PROTOCOL_V2_DELIVERY_WATCHDOG_TIMEOUT_MS = 5000;
46
49
  export declare class ProtocolV2Session {
47
50
  private readonly options;
48
51
  private readonly sequenceCursor;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/session.ts"],"names":[],"mappings":"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"}
@@ -3578,13 +3578,10 @@ export type DeviceReboot = {
3578
3578
  reboot_type: DeviceRebootType;
3579
3579
  };
3580
3580
  export type DeviceSettings = {
3581
- label?: string;
3582
3581
  bt_enable?: boolean;
3583
3582
  language?: string;
3584
3583
  wallpaper_path?: string;
3585
3584
  brightness?: number;
3586
- autolock_delay_ms?: number;
3587
- autoshutdown_delay_ms?: number;
3588
3585
  animation_enable?: boolean;
3589
3586
  tap_to_wake?: boolean;
3590
3587
  haptic_feedback?: boolean;
@@ -3594,6 +3591,9 @@ export type DeviceSettings = {
3594
3591
  random_keypad?: boolean;
3595
3592
  passphrase_enable?: boolean;
3596
3593
  fido_enabled?: boolean;
3594
+ autolock_delay_ms?: number;
3595
+ autoshutdown_delay_ms?: number;
3596
+ label?: string;
3597
3597
  };
3598
3598
  export type DeviceSettingsGet = {};
3599
3599
  export type DeviceSettingsSet = {
@@ -3782,22 +3782,8 @@ export type ProtocolV2DeviceInfo = {
3782
3782
  se4?: DeviceSEInfo;
3783
3783
  status?: DeviceStatus;
3784
3784
  };
3785
- export type DeviceSessionResume = {
3786
- session_id: string;
3787
- };
3788
- export type DeviceHostPassphrase = {
3789
- passphrase: string;
3790
- };
3791
- export type DevicePassphraseOnDevice = {};
3792
- export type DeviceAttachPinOnDevice = {};
3793
- export type DeviceWalletSelect = {
3794
- host_passphrase?: DeviceHostPassphrase;
3795
- passphrase_on_device?: DevicePassphraseOnDevice;
3796
- attach_pin_on_device?: DeviceAttachPinOnDevice;
3797
- };
3798
- export type DeviceSessionOpen = {
3799
- resume?: DeviceSessionResume;
3800
- select?: DeviceWalletSelect;
3785
+ export type DeviceSessionGet = {
3786
+ session_id?: string;
3801
3787
  };
3802
3788
  export type DeviceSession = {
3803
3789
  session_id?: string;
@@ -4578,12 +4564,7 @@ export type MessageType = {
4578
4564
  DeviceInfoTargets: DeviceInfoTargets;
4579
4565
  DeviceInfoTypes: DeviceInfoTypes;
4580
4566
  DeviceInfoGet: DeviceInfoGet;
4581
- DeviceSessionResume: DeviceSessionResume;
4582
- DeviceHostPassphrase: DeviceHostPassphrase;
4583
- DevicePassphraseOnDevice: DevicePassphraseOnDevice;
4584
- DeviceAttachPinOnDevice: DeviceAttachPinOnDevice;
4585
- DeviceWalletSelect: DeviceWalletSelect;
4586
- DeviceSessionOpen: DeviceSessionOpen;
4567
+ DeviceSessionGet: DeviceSessionGet;
4587
4568
  DeviceSession: DeviceSession;
4588
4569
  DeviceSessionAskPin: DeviceSessionAskPin;
4589
4570
  DeviceStatus: DeviceStatus;