@onekeyfe/hd-core 1.2.0-alpha.73 → 1.2.0-alpha.74
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__/firmware-update/firmware-update-prepared-plan.test.ts +1 -1
- package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +2 -1
- package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
- package/dist/index.js +9 -8
- package/package.json +4 -4
- package/src/api/FirmwareUpdateV4.ts +8 -4
|
@@ -2,8 +2,8 @@ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
|
|
|
2
2
|
|
|
3
3
|
import { buildFirmwareUpdatePlan } from '../../src/api/firmware/FirmwareUpdatePlan';
|
|
4
4
|
import {
|
|
5
|
-
assertFirmwareUpdatePreparedPlanDeviceIdentity,
|
|
6
5
|
assertFirmwareUpdatePreparedPlanBinding,
|
|
6
|
+
assertFirmwareUpdatePreparedPlanDeviceIdentity,
|
|
7
7
|
prepareFirmwareUpdatePlan,
|
|
8
8
|
validateFirmwareUpdatePreparedPlan,
|
|
9
9
|
} from '../../src/api/firmware/FirmwareUpdatePreparedPlan';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import FirmwareUpdateV3 from '../../src/api/FirmwareUpdateV3';
|
|
2
|
-
import type { Device } from '../../src/device/Device';
|
|
3
2
|
import { DevicePool } from '../../src/device/DevicePool';
|
|
4
3
|
|
|
4
|
+
import type { Device } from '../../src/device/Device';
|
|
5
|
+
|
|
5
6
|
jest.mock('../../src/data/config', () => ({
|
|
6
7
|
getSDKVersion: jest.fn(() => '1.0.0'),
|
|
7
8
|
DEFAULT_DOMAIN: 'https://jssdk.onekey.so/1.0.0/',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkD,MAAM,qBAAqB,CAAC;AAyBlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAwB/E,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV4.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkD,MAAM,qBAAqB,CAAC;AAyBlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAwB/E,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AA+CrC,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,EAC5C,MAAM,EAAE,sBAAsB,QAgB/B;AAgUD,eAAO,MAAM,oCAAoC,WACvC,WAAW,GAAG,UAAU,eACnB,MAAM,GAAG,SAAS,YAKhC,CAAC;AAEF,eAAO,MAAM,iCAAiC,0BACrB,MAAM,uBACR,MAAM,iBACZ,MAAM,eACR,MAAM,SAsBpB,CAAC;AAUF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,wBAAwB,CAAC,sBAAsB,CAAC;IAC5F,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAEhD,OAAO,CAAC,sBAAsB,CAAC,CAAS;IAExC,qBAAqB;IAIrB,OAAO,CAAC,yBAAyB,CAA4B;IAE7D,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,iCAAiC,CAA6B;IAEtE,OAAO,CAAC,6BAA6B,CAAC,CAAW;IAEjD,OAAO,CAAC,6BAA6B,CAAS;IAE9C,IAAI;IAoHJ,OAAO,CAAC,8BAA8B;IAwBhC,GAAG;;;;;YAKK,aAAa;YAwHb,4BAA4B;YAkB5B,0BAA0B;YAY1B,8BAA8B;YAK9B,+BAA+B;YAqD/B,gCAAgC;YAmDhC,8BAA8B;IAsB5C,OAAO,CAAC,8BAA8B;IA0BtC,OAAO,CAAC,kCAAkC;IAc1C,OAAO,CAAC,gCAAgC;IAsDxC,OAAO,CAAC,6BAA6B;YAsBvB,2BAA2B;IAWzC,OAAO,CAAC,yBAAyB;IAKjC,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,8BAA8B;YAMxB,iCAAiC;YAOjC,iCAAiC;YAkBjC,iCAAiC;IAM/C,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,4BAA4B;IAQpC,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,wBAAwB;YAkBlB,iCAAiC;YAmCjC,+BAA+B;IAqD7C,OAAO,CAAC,uBAAuB;YAMjB,8BAA8B;YA0C9B,+BAA+B;IAgD7C,OAAO,CAAC,8BAA8B;IAetC,OAAO,CAAC,sCAAsC;YAmChC,gCAAgC;YAqChC,0BAA0B;IAexC,OAAO,CAAC,6BAA6B;YAMvB,8BAA8B;YA8C9B,kCAAkC;IAgChD,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,yBAAyB;IAc3B,6BAA6B;YAgCrB,+BAA+B;IAkD7C,OAAO,CAAC,6BAA6B;IAkCrC,OAAO,CAAC,8BAA8B;YA8CxB,uBAAuB;YAiCvB,6BAA6B;YAa7B,uBAAuB;YA0CvB,8BAA8B;YA2D9B,6BAA6B;IAuE3C,OAAO,CAAC,mCAAmC;YAI7B,0BAA0B;IAaxC,OAAO,CAAC,4BAA4B;IAyGpC,OAAO,CAAC,6BAA6B;YAcvB,uCAAuC;YA0JvC,gCAAgC;YAehC,yBAAyB;YAQzB,8BAA8B;IAQ5C,OAAO,CAAC,0BAA0B;YAkBpB,mCAAmC;YAWnC,qCAAqC;YAgDrC,yBAAyB;YA8DzB,8BAA8B;IAU5C,OAAO,CAAC,kCAAkC;YAQ5B,cAAc;YAuCd,6BAA6B;YAW7B,0BAA0B;YAS1B,6BAA6B;YAmB7B,gBAAgB;IAiB9B,OAAO,CAAC,qBAAqB;CAM9B"}
|
package/dist/index.js
CHANGED
|
@@ -50925,6 +50925,7 @@ const INSTALLABLE_FIRMWARE_TARGET_IDS = new Set([
|
|
|
50925
50925
|
new Map(Object.entries(ProtocolV2FirmwareTargetType).flatMap(([key, value]) => INSTALLABLE_FIRMWARE_TARGET_IDS.has(value) ? [[key, value]] : []));
|
|
50926
50926
|
|
|
50927
50927
|
const Log$6 = getLogger(exports.LoggerNames.Method);
|
|
50928
|
+
const SESSION_ERROR$1 = 'session not found';
|
|
50928
50929
|
const PROTOCOL_V2_BOOTLOADER_RECONNECT_TIMEOUT = 90 * 1000;
|
|
50929
50930
|
const PROTOCOL_V2_FINAL_RECONNECT_TIMEOUT = 3 * 60 * 1000;
|
|
50930
50931
|
const PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT = 5 * 1000;
|
|
@@ -51295,7 +51296,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51295
51296
|
resourceBundleArtifacts: payload.resourceBundleArtifacts,
|
|
51296
51297
|
};
|
|
51297
51298
|
}
|
|
51298
|
-
getProtocolV2FirmwareChunkSize(direction
|
|
51299
|
+
getProtocolV2FirmwareChunkSize(direction, filePath) {
|
|
51299
51300
|
var _a, _b;
|
|
51300
51301
|
const payloadChunkSize = Number((_a = this.params) === null || _a === void 0 ? void 0 : _a.chunkSize);
|
|
51301
51302
|
const env = DataManager.getSettings('env');
|
|
@@ -51880,7 +51881,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51880
51881
|
return false;
|
|
51881
51882
|
}
|
|
51882
51883
|
const digest = sha256.sha256.create();
|
|
51883
|
-
const chunkSize = this.getProtocolV2FirmwareChunkSize();
|
|
51884
|
+
const chunkSize = this.getProtocolV2FirmwareChunkSize('write');
|
|
51884
51885
|
let offset = 0;
|
|
51885
51886
|
while (offset < file.size) {
|
|
51886
51887
|
const response = yield commands.typedCall('FilesystemFileRead', 'FilesystemFile', {
|
|
@@ -51960,7 +51961,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51960
51961
|
: yield readProtocolV2ResourceInventory({
|
|
51961
51962
|
commands: this.device.getCommands(),
|
|
51962
51963
|
resources,
|
|
51963
|
-
chunkSize: this.getProtocolV2FirmwareChunkSize(),
|
|
51964
|
+
chunkSize: this.getProtocolV2FirmwareChunkSize('write'),
|
|
51964
51965
|
timeoutMs: PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT,
|
|
51965
51966
|
});
|
|
51966
51967
|
const plan = buildProtocolV2ResourceUpdatePlan({
|
|
@@ -52750,8 +52751,8 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52750
52751
|
});
|
|
52751
52752
|
if (writeRes.type !== 'FilesystemFile') {
|
|
52752
52753
|
if (writeRes.type === 'CallMethodError') {
|
|
52753
|
-
if (((_a = writeRes.message.error) !== null && _a !== void 0 ? _a : '').indexOf(SESSION_ERROR) > -1) {
|
|
52754
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, SESSION_ERROR);
|
|
52754
|
+
if (((_a = writeRes.message.error) !== null && _a !== void 0 ? _a : '').indexOf(SESSION_ERROR$1) > -1) {
|
|
52755
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, SESSION_ERROR$1);
|
|
52755
52756
|
}
|
|
52756
52757
|
}
|
|
52757
52758
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.EmmcFileWriteFirmwareError, 'transfer data error');
|
|
@@ -52920,7 +52921,7 @@ const Log$4 = getLogger(exports.LoggerNames.Core);
|
|
|
52920
52921
|
const MIN_FILE_CHUNK_SIZE = 64;
|
|
52921
52922
|
const FILE_TRANSFER_RATE_WINDOW_MS = 1000;
|
|
52922
52923
|
const FILE_TRANSFER_LOG_INTERVAL_MS = 10000;
|
|
52923
|
-
const SESSION_ERROR
|
|
52924
|
+
const SESSION_ERROR = 'session not found';
|
|
52924
52925
|
function formatFileTransferRate(bytesPerSecond) {
|
|
52925
52926
|
return (Math.max(bytesPerSecond, 0) / 1024).toFixed(2);
|
|
52926
52927
|
}
|
|
@@ -53088,8 +53089,8 @@ function writeProtocolV2File(options) {
|
|
|
53088
53089
|
const responseType = response.type;
|
|
53089
53090
|
if (responseType && responseType !== 'FilesystemFile') {
|
|
53090
53091
|
const responseError = (_l = response.message) === null || _l === void 0 ? void 0 : _l.error;
|
|
53091
|
-
if (typeof responseError === 'string' && responseError.includes(SESSION_ERROR
|
|
53092
|
-
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, SESSION_ERROR
|
|
53092
|
+
if (typeof responseError === 'string' && responseError.includes(SESSION_ERROR)) {
|
|
53093
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, SESSION_ERROR);
|
|
53093
53094
|
}
|
|
53094
53095
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `FilesystemFileWrite received unexpected response ${responseType}`);
|
|
53095
53096
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "1.2.0-alpha.
|
|
3
|
+
"version": "1.2.0-alpha.74",
|
|
4
4
|
"description": "Core processes and APIs for communicating with OneKey hardware devices.",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-shared": "1.2.0-alpha.
|
|
29
|
-
"@onekeyfe/hd-transport": "1.2.0-alpha.
|
|
28
|
+
"@onekeyfe/hd-shared": "1.2.0-alpha.74",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.2.0-alpha.74",
|
|
30
30
|
"axios": "1.15.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"@types/w3c-web-usb": "^1.0.10",
|
|
45
45
|
"@types/web-bluetooth": "^0.0.21"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "4b263fb8e60a3286d9ad12d6b3bce3b0f8d023ce"
|
|
48
48
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EDeviceType, ERRORS, HardwareError, HardwareErrorCode, wait } from '@onekeyfe/hd-shared';
|
|
2
2
|
import {
|
|
3
3
|
DeviceRebootType,
|
|
4
|
-
PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE,
|
|
5
4
|
PROTOCOL_V2_BLE_FILE_CHUNK_SIZE,
|
|
5
|
+
PROTOCOL_V2_BLE_FILE_READ_CHUNK_SIZE,
|
|
6
6
|
PROTOCOL_V2_BLE_FIRMWARE_FILE_CHUNK_SIZE,
|
|
7
7
|
PROTOCOL_V2_WEBUSB_FILE_CHUNK_SIZE,
|
|
8
8
|
} from '@onekeyfe/hd-transport';
|
|
@@ -67,6 +67,10 @@ import type { FirmwareByteSource } from './firmware/FirmwareArtifactSource';
|
|
|
67
67
|
|
|
68
68
|
const Log = getLogger(LoggerNames.Method);
|
|
69
69
|
|
|
70
|
+
// Restored after a rebase dropped the declaration while keeping its use in
|
|
71
|
+
// fileWriteChunk; without it that error branch throws ReferenceError instead of
|
|
72
|
+
// the intended typed session error.
|
|
73
|
+
const SESSION_ERROR = 'session not found';
|
|
70
74
|
const PROTOCOL_V2_BOOTLOADER_RECONNECT_TIMEOUT = 90 * 1000;
|
|
71
75
|
const PROTOCOL_V2_FINAL_RECONNECT_TIMEOUT = 3 * 60 * 1000;
|
|
72
76
|
const PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT = 5 * 1000;
|
|
@@ -612,7 +616,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
612
616
|
};
|
|
613
617
|
}
|
|
614
618
|
|
|
615
|
-
private getProtocolV2FirmwareChunkSize(direction: 'read' | 'write'
|
|
619
|
+
private getProtocolV2FirmwareChunkSize(direction: 'read' | 'write', filePath?: string) {
|
|
616
620
|
const payloadChunkSize = Number(this.params?.chunkSize);
|
|
617
621
|
const env = DataManager.getSettings('env');
|
|
618
622
|
const isBle = this.params?.platform === 'native' || (env && DataManager.isBleConnect(env));
|
|
@@ -1325,7 +1329,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1325
1329
|
}
|
|
1326
1330
|
|
|
1327
1331
|
const digest = sha256.create();
|
|
1328
|
-
const chunkSize = this.getProtocolV2FirmwareChunkSize();
|
|
1332
|
+
const chunkSize = this.getProtocolV2FirmwareChunkSize('write');
|
|
1329
1333
|
let offset = 0;
|
|
1330
1334
|
while (offset < file.size) {
|
|
1331
1335
|
const response = await commands.typedCall(
|
|
@@ -1420,7 +1424,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
1420
1424
|
: await readProtocolV2ResourceInventory({
|
|
1421
1425
|
commands: this.device.getCommands(),
|
|
1422
1426
|
resources,
|
|
1423
|
-
chunkSize: this.getProtocolV2FirmwareChunkSize(),
|
|
1427
|
+
chunkSize: this.getProtocolV2FirmwareChunkSize('write'),
|
|
1424
1428
|
timeoutMs: PROTOCOL_V2_SHORT_RESPONSE_TIMEOUT,
|
|
1425
1429
|
});
|
|
1426
1430
|
const plan = buildProtocolV2ResourceUpdatePlan({
|