@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/__tests__/messages.test.js +8 -9
- package/__tests__/protocol-v2-link-manager.test.js +25 -0
- package/__tests__/protocol-v2.test.js +68 -0
- package/dist/constants.d.ts +1 -1
- package/dist/index.d.ts +84 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -8
- package/dist/protocols/index.d.ts +2 -1
- package/dist/protocols/index.d.ts.map +1 -1
- package/dist/protocols/v2/decode.d.ts +1 -0
- package/dist/protocols/v2/decode.d.ts.map +1 -1
- package/dist/protocols/v2/link-manager.d.ts +1 -0
- package/dist/protocols/v2/link-manager.d.ts.map +1 -1
- package/dist/protocols/v2/session.d.ts +4 -1
- package/dist/protocols/v2/session.d.ts.map +1 -1
- package/dist/types/messages.d.ts +6 -25
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/transport.d.ts +1 -1
- package/dist/types/transport.d.ts.map +1 -1
- package/messages-protocol-v2.json +25 -79
- package/package.json +2 -2
- package/src/constants.ts +16 -16
- package/src/protocols/index.ts +7 -1
- package/src/protocols/v2/crc8.ts +1 -1
- package/src/protocols/v2/decode.ts +7 -0
- package/src/protocols/v2/encode.ts +1 -1
- package/src/protocols/v2/link-manager.ts +2 -0
- package/src/protocols/v2/session.ts +57 -16
- package/src/protocols/v2/usb-transport-base.ts +1 -1
- package/src/types/messages.ts +7 -36
- package/src/types/transport.ts +2 -6
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 =
|
|
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 =
|
|
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),
|
|
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
|
|
910
|
-
if (
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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 =
|
|
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":"AACA,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvE,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,SAAS,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC;IAChE,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/protocols/v2/session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAK7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvE,UAAU,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,SAAS,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC;IAChE,cAAc,CAAC,EAAE,wBAAwB,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAalD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAIpD;AA+BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,UAQ7C;AAED,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,kBAAkB,EAAE,MAAM,KAAK,EAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,OAAO,CAAC,CAAC,CAAC,CAmBZ;AAKD,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAC5D,eAAO,MAAM,wCAAwC,OAAQ,CAAC;AAE9D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IAEnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAI1D,OAAO,CAAC,WAAW,CAAuC;gBAE9C,OAAO,EAAE,wBAAwB;IAK7C,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,GAAE,qBAA0B,GACtC,OAAO,CAAC,iBAAiB,CAAC;YASf,WAAW;CAyK1B;AAED,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,SAAS,EACT,MAAM,EACN,SAAwB,EACxB,aAAa,EACb,aAAa,GACd,EAAE;IACD,IAAI,EAAE,CACJ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,qBAAqB,KAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC1D,oBAoBA"}
|
package/dist/types/messages.d.ts
CHANGED
|
@@ -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
|
|
3786
|
-
session_id
|
|
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
|
-
|
|
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;
|