@onekeyfe/hd-core 1.2.0-alpha.98 → 1.2.0-alpha.99
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__/check-all-firmware-release-protocol-v2.test.ts +66 -61
- package/__tests__/check-firmware-release-protocol-v2.test.ts +1 -1
- package/__tests__/firmware-memory-host.test.ts +18 -4
- package/__tests__/firmware-update/device-update-bootloader.test.ts +1 -0
- package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +65 -2
- package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +80 -0
- package/__tests__/firmware-update/firmware-update-plan.test.ts +61 -1
- package/__tests__/protocol-v2-firmware-targets.test.ts +16 -0
- package/__tests__/protocol-v2.test.ts +96 -0
- package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
- package/dist/api/FirmwareUpdateV4.d.ts +3 -1
- package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareMemoryHost.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -1
- package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +1 -0
- package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -1
- package/dist/index.js +207 -54
- package/package.json +4 -4
- package/src/api/CheckAllFirmwareRelease.ts +6 -1
- package/src/api/FirmwareUpdateV2.ts +123 -65
- package/src/api/FirmwareUpdateV4.ts +54 -8
- package/src/api/firmware/FirmwareHostBinding.ts +10 -0
- package/src/api/firmware/FirmwareMemoryHost.ts +4 -3
- package/src/api/firmware/FirmwareUpdateBaseMethod.ts +122 -73
- package/src/api/firmware/FirmwareUpdatePlan.ts +18 -5
- package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +22 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2B1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEtD,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,yBAAyB,CAAC;KACrC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAkFF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAiGJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAEb,KAAK,aAAa,EAKnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2B1C,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAEtD,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,KAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,yBAAyB,CAAC;KACrC,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,CAAC;AAkFF,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC9D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAiGJ,cAAc,YAAa,MAAM,UAS/B;YAEY,qCAAqC;IAkBnD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAwJvC,4BAA4B;IAyB1C,qBAAqB;IAUrB,uBAAuB,CAAC,UAAU,EAAE,MAAM;IAc1C,gCAAgC,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAAE,YAAY,EAAE,aAAa;IAwBtF,GAAG;CAkRV"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { EDeviceType } from '@onekeyfe/hd-shared';
|
|
2
2
|
import { FirmwareUpdateBaseMethod } from './firmware/FirmwareUpdateBaseMethod';
|
|
3
3
|
import type { FirmwareUpdateV4Params } from '../types/api/firmwareUpdate';
|
|
4
|
-
export declare function assertProtocolV2FirmwareTargetsSupported(deviceType: EDeviceType | string | undefined, params: FirmwareUpdateV4Params): void;
|
|
4
|
+
export declare function assertProtocolV2FirmwareTargetsSupported(deviceType: EDeviceType | string | undefined, params: FirmwareUpdateV4Params, hasExplicitTargetSelection?: boolean): void;
|
|
5
5
|
export declare const isProtocolV2FirmwareFingerprintValid: (binary: ArrayBuffer | Uint8Array, fingerprint: string | undefined) => boolean;
|
|
6
6
|
export declare const assertProtocolV2ReconnectIdentity: (expectedSerialNumber?: string, actualSerialNumber?: string, expectedPath?: string, actualPath?: string) => void;
|
|
7
7
|
export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareUpdateV4Params> {
|
|
8
8
|
private protocolV2ExpectedSerialNumber?;
|
|
9
9
|
private protocolV2ExpectedPath?;
|
|
10
|
+
private protocolV2HasExplicitTargetSelection;
|
|
10
11
|
getSupportedProtocols(): readonly ["V2"];
|
|
11
12
|
private protocolV2PreparedSources;
|
|
12
13
|
private protocolV2ExecutionInLoader;
|
|
@@ -46,6 +47,7 @@ export default class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod<FirmwareU
|
|
|
46
47
|
private verifyProtocolV2ReconnectIdentity;
|
|
47
48
|
private prepareBootloaderBinary;
|
|
48
49
|
private getMissingProtocolV2FirmwareTargets;
|
|
50
|
+
private filterProtocolV2LocalInstallItems;
|
|
49
51
|
private buildProtocolV2InstallItems;
|
|
50
52
|
private getRemoteComponentEntries;
|
|
51
53
|
private getRemoteComponentTarget;
|
|
@@ -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;AAkC/E,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AA2ErC,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,EAC5C,MAAM,EAAE,sBAAsB,
|
|
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;AAkC/E,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,6BAA6B,CAAC;AA2ErC,wBAAgB,wCAAwC,CACtD,UAAU,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,0BAA0B,UAAQ,QAqBnC;AAmWD,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,OAAO,CAAC,oCAAoC,CAAS;IAErD,qBAAqB;IAIrB,OAAO,CAAC,yBAAyB,CAA4B;IAE7D,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,iCAAiC,CAAS;IAElD,OAAO,CAAC,iCAAiC,CAA6B;IAEtE,OAAO,CAAC,6BAA6B,CAAC,CAAW;IAEjD,OAAO,CAAC,6BAA6B,CAAS;IAE9C,IAAI;IA4KJ,OAAO,CAAC,8BAA8B;IAwBhC,GAAG;;;;;YAKK,aAAa;YAqIb,4BAA4B;YAkB5B,0BAA0B;YAY1B,8BAA8B;YAK9B,+BAA+B;YAqG/B,gCAAgC;YAgIhC,qCAAqC;YAmJrC,gCAAgC;YAgBhC,uCAAuC;YAmJvC,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,oCAAoC;IAY5C,OAAO,CAAC,4BAA4B;IAUpC,OAAO,CAAC,kCAAkC;IAS1C,OAAO,CAAC,8BAA8B;YAMxB,iCAAiC;YAOjC,iCAAiC;YAmBjC,iCAAiC;IAM/C,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,mCAAmC;IAe3C,OAAO,CAAC,iCAAiC;IAWzC,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,wBAAwB;YAkBlB,iCAAiC;YAuDjC,+BAA+B;IA6E7C,OAAO,CAAC,6BAA6B;YAMvB,8BAA8B;YA+C9B,kCAAkC;IA+BhD,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,yBAAyB;IAc3B,6BAA6B;YAgCrB,+BAA+B;IAkD7C,OAAO,CAAC,6BAA6B;IAkCrC,OAAO,CAAC,8BAA8B;YA6DxB,uBAAuB;YA0CvB,0CAA0C;YA6B1C,6BAA6B;YAa7B,uBAAuB;YAiCvB,8BAA8B;YAqE9B,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareHostBinding.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareHostBinding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FirmwareHostBinding.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareHostBinding.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAyGhF,eAAO,MAAM,iCAAiC,YAAa,yBAAyB,KAAG,MACxC,CAAC;AAEhD,eAAO,MAAM,mCAAmC,gBAAiB,MAAM,KAAG,OACtB,CAAC;AAErD,eAAO,MAAM,sCAAsC,QAAO,MACb,CAAC;AAE9C,eAAO,MAAM,gCAAgC,eAC/B,MAAM,GAAG,SAAS,uBACT,MAAM,KAC1B,yBACgF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareMemoryHost.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareMemoryHost.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC/D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAaF,wBAAgB,iCAAiC,CAAC,EAChD,GAAG,EACH,IAAI,EACJ,SAAS,GACV,EAAE;IACD,GAAG,EAAE,IAAI,CACP,OAAO,EACL,2BAA2B,GAC3B,mCAAmC,GACnC,qCAAqC,CACxC,CAAC;IACF,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACrC,GAAG,0BAA0B,
|
|
1
|
+
{"version":3,"file":"FirmwareMemoryHost.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareMemoryHost.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC/D,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAaF,wBAAgB,iCAAiC,CAAC,EAChD,GAAG,EACH,IAAI,EACJ,SAAS,GACV,EAAE;IACD,GAAG,EAAE,IAAI,CACP,OAAO,EACL,2BAA2B,GAC3B,mCAAmC,GACnC,qCAAqC,CACxC,CAAC;IACF,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACrC,GAAG,0BAA0B,CA0F7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAcnE,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D,KAAK,uBAAuB,GAAG,IAAI,CACjC,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,GAAG,YAAY,GAAG,oBAAoB,GAAG,WAAW,CACvE,CAAC;AAWF,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aACP,MAAM,gBACF,2BAA2B,YAC/B,uBAAuB,UAUjC;cAEc,qCAAqC;cAkBrC,uCAAuC;IAkBvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateBaseMethod.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateBaseMethod.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAcnE,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAE1D,KAAK,uBAAuB,GAAG,IAAI,CACjC,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,GAAG,YAAY,GAAG,oBAAoB,GAAG,WAAW,CACvE,CAAC;AAWF,qBAAa,wBAAwB,CAAC,MAAM,CAAE,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtE,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI,IAAI,IAAI;IAEZ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAInB,cAAc,IAAI,OAAO;IASzB,cAAc,YAAa,yBAAyB,UASlD;IAMF,qBAAqB,SAAU,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,UAM3E;IAMF,mBAAmB,aACP,MAAM,gBACF,2BAA2B,YAC/B,uBAAuB,UAUjC;cAEc,qCAAqC;cAkBrC,uCAAuC;IAkBvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;YAyJvC,4BAA4B;IAyBpC,mBAAmB;IA8CnB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA6BlD,8BAA8B,CAAC,IAAI,EAAE,MAAM;IAW3C,uBAAuB,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE,KAAK,CAAC,cAAc,GAAG;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IA4CK,iCAAiC,CAAC,EACtC,MAAM,EACN,QAAQ,EACR,aAAa,EACb,SAAS,GACV,EAAE;QACD,MAAM,EAAE,kBAAkB,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IAsCK,sBAAsB,CAC1B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,WAAW,GAAG,MAAM,EAC3B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgFnB,MAAM,CAAC,UAAU,EAAE,UAAU;CAsBpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdatePlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePlan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAU5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EACV,kBAAkB,EAElB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;AAEjF,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA+GF,eAAO,MAAM,4BAA4B,UAAW,OAAO,KAAG,MAG3D,CAAC;AAgCJ,eAAO,MAAM,sCAAsC,UAC1C,OAAO,KACb,6BAA6B,EAa/B,CAAC;AAEF,eAAO,MAAM,uCAAuC,UAC3C,OAAO,KACb,sBAAsB,
|
|
1
|
+
{"version":3,"file":"FirmwareUpdatePlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePlan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAU5F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EACV,kBAAkB,EAElB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAEvE,KAAK,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;AAEjF,KAAK,aAAa,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA+GF,eAAO,MAAM,4BAA4B,UAAW,OAAO,KAAG,MAG3D,CAAC;AAgCJ,eAAO,MAAM,sCAAsC,UAC1C,OAAO,KACb,6BAA6B,EAa/B,CAAC;AAEF,eAAO,MAAM,uCAAuC,UAC3C,OAAO,KACb,sBAAsB,EAkBxB,CAAC;AAuBF,eAAO,MAAM,4BAA4B,+BAavC,CAAC;AAEH,eAAO,MAAM,0BAA0B,aAOrC,CAAC;AAYH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,kBAmHzD,CAAC;AAkPF,MAAM,MAAM,yCAAyC,GAAG;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,CAAC;IAC1D,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,sCAAsC;cAMvC,QAAQ;kBACJ,aAAa;cACjB,sBAAsB;eACrB,yCAAyC,EAAE;MACpD,kBAmBH,CAAC;AAEF,eAAO,MAAM,iCAAiC;cASlC,QAAQ;kBACJ,aAAa;cACjB,sBAAsB;aACvB,aAAa,GAAG,SAAS;qBACjB,SAAS,sBAAsB,EAAE;;qBAEjC,yBAAyB,GAAG,SAAS;MACpD,kBA6DH,CAAC;AAEF,eAAO,MAAM,uBAAuB;cASxB,QAAQ;kBACJ,aAAa;cACjB,sBAAsB;cACtB,gBAAgB;SACrB,gBAAgB;;;MAGnB,kBAkKH,CAAC"}
|
|
@@ -13,6 +13,7 @@ export declare const getFirmwareUpdatePreparedRawArtifact: ({ preparedPlan: valu
|
|
|
13
13
|
target: FirmwareUpdatePreparedArtifact['target'];
|
|
14
14
|
role: FirmwareUpdatePreparedArtifact['role'];
|
|
15
15
|
}) => FirmwareUpdatePreparedArtifact;
|
|
16
|
+
export declare const clearFirmwareUpdatePreparedPlanDeviceIdentityPin: (preparedPlanDigest: string) => void;
|
|
16
17
|
export declare const assertFirmwareUpdatePreparedPlanDeviceIdentity: ({ preparedPlan: value, deviceIdentity: reportedIdentity, bootloaderMode, deviceModel, }: {
|
|
17
18
|
preparedPlan: unknown;
|
|
18
19
|
deviceIdentity: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FirmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,8BAA8B,EAC9B,mCAAmC,EAEnC,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAwB7E,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,MA8B9D,CAAC;AAgGF,eAAO,MAAM,yBAAyB;UAK9B,kBAAkB;cACd,MAAM;eACL,mCAAmC,EAAE;MAC9C,0BAmBH,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,0BA0GnE,CAAC;AAEF,eAAO,MAAM,oCAAoC;kBAKjC,OAAO;YACb,8BAA8B,CAAC,QAAQ,CAAC;UAC1C,8BAA8B,CAAC,MAAM,CAAC;MAC1C,8BAOH,CAAC;
|
|
1
|
+
{"version":3,"file":"FirmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,8BAA8B,EAC9B,mCAAmC,EAEnC,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAwB7E,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,MA8B9D,CAAC;AAgGF,eAAO,MAAM,yBAAyB;UAK9B,kBAAkB;cACd,MAAM;eACL,mCAAmC,EAAE;MAC9C,0BAmBH,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,0BA0GnE,CAAC;AAEF,eAAO,MAAM,oCAAoC;kBAKjC,OAAO;YACb,8BAA8B,CAAC,QAAQ,CAAC;UAC1C,8BAA8B,CAAC,MAAM,CAAC;MAC1C,8BAOH,CAAC;AA4BF,eAAO,MAAM,gDAAgD,uBACvC,MAAM,KACzB,IAEF,CAAC;AAEF,eAAO,MAAM,8CAA8C;kBAM3C,OAAO;oBACL,MAAM,GAAG,SAAS;;;MAKhC,0BAsCH,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,yBAAyB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,uCAAuC;kBAQpC,OAAO;cACX,0BAA0B,CAAC,UAAU,CAAC;;;kBAGlC,0BAA0B,CAAC,iBAAiB,CAAC;cACjD,6BAA6B,EAAE;MACvC,0BAmDH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -627,13 +627,16 @@ const validateProtocolV2FirmwareUpdateTargets = (value) => {
|
|
|
627
627
|
if (value === undefined) {
|
|
628
628
|
return [];
|
|
629
629
|
}
|
|
630
|
-
if (!Array.isArray(value)
|
|
631
|
-
value.length > PROTOCOL_V2_FIRMWARE_UPDATE_TARGETS.size ||
|
|
632
|
-
value.some(target => !PROTOCOL_V2_FIRMWARE_UPDATE_TARGETS.has(target)) ||
|
|
633
|
-
new Set(value).size !== value.length) {
|
|
630
|
+
if (!Array.isArray(value)) {
|
|
634
631
|
return planError('Protocol V2 firmware update targets are invalid');
|
|
635
632
|
}
|
|
636
|
-
|
|
633
|
+
const normalizedTargets = value.map(target => target === 'boot_resources' ? 'resource' : target);
|
|
634
|
+
if (normalizedTargets.length > PROTOCOL_V2_FIRMWARE_UPDATE_TARGETS.size ||
|
|
635
|
+
normalizedTargets.some(target => !PROTOCOL_V2_FIRMWARE_UPDATE_TARGETS.has(target)) ||
|
|
636
|
+
new Set(normalizedTargets).size !== normalizedTargets.length) {
|
|
637
|
+
return planError('Protocol V2 firmware update targets are invalid');
|
|
638
|
+
}
|
|
639
|
+
return normalizedTargets;
|
|
637
640
|
};
|
|
638
641
|
const assertExactKeys = (value, required, optional = []) => {
|
|
639
642
|
const allowed = new Set([...required, ...optional]);
|
|
@@ -1041,6 +1044,11 @@ const buildFirmwareUpdatePlan = ({ features, firmwareType, platform, firmware, b
|
|
|
1041
1044
|
}
|
|
1042
1045
|
targetsToUpdate = [...new Set(artifacts.map(artifact => artifact.target))];
|
|
1043
1046
|
}
|
|
1047
|
+
if (executor !== 'v4' &&
|
|
1048
|
+
targetsToUpdate.includes('resource') &&
|
|
1049
|
+
!targetsToUpdate.includes('firmware')) {
|
|
1050
|
+
planError('Legacy resource updates require a firmware target');
|
|
1051
|
+
}
|
|
1044
1052
|
assertForcedTargetsRepresented({
|
|
1045
1053
|
executor,
|
|
1046
1054
|
forcedTargets: validatedForceTargets,
|
|
@@ -1284,14 +1292,19 @@ const getFirmwareUpdatePreparedRawArtifact = ({ preparedPlan: value, target, rol
|
|
|
1284
1292
|
};
|
|
1285
1293
|
const degradedPlanIdentityPins = new Map();
|
|
1286
1294
|
const DEGRADED_PLAN_IDENTITY_PIN_LIMIT = 32;
|
|
1287
|
-
const pinDegradedPlanIdentity = (
|
|
1288
|
-
|
|
1295
|
+
const pinDegradedPlanIdentity = (preparedPlanDigest, deviceIdentity) => {
|
|
1296
|
+
const key = preparedPlanDigest.toLowerCase();
|
|
1297
|
+
if (!degradedPlanIdentityPins.has(key) &&
|
|
1298
|
+
degradedPlanIdentityPins.size >= DEGRADED_PLAN_IDENTITY_PIN_LIMIT) {
|
|
1289
1299
|
const oldest = degradedPlanIdentityPins.keys().next();
|
|
1290
1300
|
if (!oldest.done) {
|
|
1291
1301
|
degradedPlanIdentityPins.delete(oldest.value);
|
|
1292
1302
|
}
|
|
1293
1303
|
}
|
|
1294
|
-
degradedPlanIdentityPins.set(
|
|
1304
|
+
degradedPlanIdentityPins.set(key, deviceIdentity);
|
|
1305
|
+
};
|
|
1306
|
+
const clearFirmwareUpdatePreparedPlanDeviceIdentityPin = (preparedPlanDigest) => {
|
|
1307
|
+
degradedPlanIdentityPins.delete(preparedPlanDigest.toLowerCase());
|
|
1295
1308
|
};
|
|
1296
1309
|
const assertFirmwareUpdatePreparedPlanDeviceIdentity = ({ preparedPlan: value, deviceIdentity: reportedIdentity, bootloaderMode, deviceModel, }) => {
|
|
1297
1310
|
const preparedPlan = validateFirmwareUpdatePreparedPlan(value);
|
|
@@ -1300,7 +1313,7 @@ const assertFirmwareUpdatePreparedPlanDeviceIdentity = ({ preparedPlan: value, d
|
|
|
1300
1313
|
if (deviceModel === undefined || preparedPlan.deviceModel !== deviceModel) {
|
|
1301
1314
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckDeviceIdError);
|
|
1302
1315
|
}
|
|
1303
|
-
const pinnedIdentity = degradedPlanIdentityPins.get(preparedPlan.
|
|
1316
|
+
const pinnedIdentity = degradedPlanIdentityPins.get(preparedPlan.preparedPlanDigest.toLowerCase());
|
|
1304
1317
|
if (!deviceIdentity) {
|
|
1305
1318
|
if (preparedPlan.executor !== 'v4' && bootloaderMode !== true) {
|
|
1306
1319
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceCheckDeviceIdError);
|
|
@@ -1308,7 +1321,7 @@ const assertFirmwareUpdatePreparedPlanDeviceIdentity = ({ preparedPlan: value, d
|
|
|
1308
1321
|
return preparedPlan;
|
|
1309
1322
|
}
|
|
1310
1323
|
if (!pinnedIdentity) {
|
|
1311
|
-
pinDegradedPlanIdentity(preparedPlan.
|
|
1324
|
+
pinDegradedPlanIdentity(preparedPlan.preparedPlanDigest, deviceIdentity);
|
|
1312
1325
|
return preparedPlan;
|
|
1313
1326
|
}
|
|
1314
1327
|
if (pinnedIdentity !== deviceIdentity) {
|
|
@@ -1373,7 +1386,7 @@ class FirmwareHostBindingRegistry {
|
|
|
1373
1386
|
this.generation = 0;
|
|
1374
1387
|
}
|
|
1375
1388
|
register(binding) {
|
|
1376
|
-
var _a;
|
|
1389
|
+
var _a, _b;
|
|
1377
1390
|
if (!binding ||
|
|
1378
1391
|
typeof binding.preparedPlanDigest !== 'string' ||
|
|
1379
1392
|
!/^[0-9a-f]{64}$/i.test(binding.preparedPlanDigest) ||
|
|
@@ -1382,16 +1395,25 @@ class FirmwareHostBindingRegistry {
|
|
|
1382
1395
|
typeof binding.artifactReader.close !== 'function') {
|
|
1383
1396
|
return bindingError('Firmware host binding is invalid');
|
|
1384
1397
|
}
|
|
1398
|
+
const replacedPreparedPlanDigest = (_b = this.binding) === null || _b === void 0 ? void 0 : _b.preparedPlanDigest;
|
|
1385
1399
|
this.generation += 1;
|
|
1386
1400
|
this.binding = binding;
|
|
1401
|
+
if (replacedPreparedPlanDigest) {
|
|
1402
|
+
clearFirmwareUpdatePreparedPlanDeviceIdentityPin(replacedPreparedPlanDigest);
|
|
1403
|
+
}
|
|
1387
1404
|
return this.generation;
|
|
1388
1405
|
}
|
|
1389
1406
|
unregister(generation) {
|
|
1407
|
+
var _a;
|
|
1390
1408
|
if (generation !== undefined && generation !== this.generation) {
|
|
1391
1409
|
return false;
|
|
1392
1410
|
}
|
|
1411
|
+
const releasedPreparedPlanDigest = (_a = this.binding) === null || _a === void 0 ? void 0 : _a.preparedPlanDigest;
|
|
1393
1412
|
this.generation += 1;
|
|
1394
1413
|
this.binding = undefined;
|
|
1414
|
+
if (releasedPreparedPlanDigest) {
|
|
1415
|
+
clearFirmwareUpdatePreparedPlanDeviceIdentityPin(releasedPreparedPlanDigest);
|
|
1416
|
+
}
|
|
1395
1417
|
return true;
|
|
1396
1418
|
}
|
|
1397
1419
|
getGeneration() {
|
|
@@ -47807,9 +47829,10 @@ class CheckAllFirmwareRelease extends BaseMethod {
|
|
|
47807
47829
|
]));
|
|
47808
47830
|
const forceResourceUpdate = validatedForceUpdateTargets.includes('resource') ||
|
|
47809
47831
|
validatedProtocolV2ForceUpdateTargets.includes('resource');
|
|
47832
|
+
const includeResourceUpdate = forceResourceUpdate || (resourceSource !== undefined && detectedComponentTargets.length > 0);
|
|
47810
47833
|
const targetsToUpdate = Array.from(new Set([
|
|
47811
47834
|
...componentTargetsToUpdate,
|
|
47812
|
-
...(
|
|
47835
|
+
...(includeResourceUpdate ? ['resource'] : []),
|
|
47813
47836
|
]));
|
|
47814
47837
|
let firmwareUpdatePlan;
|
|
47815
47838
|
const shouldBuildFirmwareUpdatePlan = targetsToUpdate.length > 0;
|
|
@@ -49394,11 +49417,34 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
49394
49417
|
let checkCount = 0;
|
|
49395
49418
|
let hasPromptedWebDevice = false;
|
|
49396
49419
|
let isPromptingWebDevice = false;
|
|
49420
|
+
let isFinished = false;
|
|
49421
|
+
let intervalTimer;
|
|
49397
49422
|
let timeoutTimer;
|
|
49398
49423
|
const isTouchOrProDevice = ((_a = this === null || this === void 0 ? void 0 : this.device) === null || _a === void 0 ? void 0 : _a.getCurrentDeviceType()) === hdShared.EDeviceType.Touch ||
|
|
49399
49424
|
((_b = this === null || this === void 0 ? void 0 : this.device) === null || _b === void 0 ? void 0 : _b.getCurrentDeviceType()) === hdShared.EDeviceType.Pro;
|
|
49400
|
-
const
|
|
49425
|
+
const clearPollingTimers = () => {
|
|
49426
|
+
if (intervalTimer !== undefined) {
|
|
49427
|
+
clearInterval(intervalTimer);
|
|
49428
|
+
intervalTimer = undefined;
|
|
49429
|
+
}
|
|
49430
|
+
if (timeoutTimer !== undefined) {
|
|
49431
|
+
clearTimeout(timeoutTimer);
|
|
49432
|
+
timeoutTimer = undefined;
|
|
49433
|
+
}
|
|
49434
|
+
};
|
|
49435
|
+
const checkForBootloader = (clearActiveTimers) => __awaiter(this, void 0, void 0, function* () {
|
|
49436
|
+
const found = yield this._checkDeviceInBootloaderMode(connectId, clearActiveTimers ? intervalTimer : undefined, clearActiveTimers ? timeoutTimer : undefined);
|
|
49437
|
+
if (found) {
|
|
49438
|
+
isFinished = true;
|
|
49439
|
+
clearPollingTimers();
|
|
49440
|
+
}
|
|
49441
|
+
return found;
|
|
49442
|
+
});
|
|
49443
|
+
let startPolling = () => undefined;
|
|
49444
|
+
const pollForBootloader = () => __awaiter(this, void 0, void 0, function* () {
|
|
49401
49445
|
var _c, _d, _e, _f;
|
|
49446
|
+
if (isFinished || isPromptingWebDevice)
|
|
49447
|
+
return;
|
|
49402
49448
|
checkCount += 1;
|
|
49403
49449
|
Log$a.log('FirmwareUpdateBaseMethod [checkDeviceToBootloader] isFirstCheck: ', isFirstCheck);
|
|
49404
49450
|
if (isTouchOrProDevice && isFirstCheck) {
|
|
@@ -49411,20 +49457,22 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
49411
49457
|
!this.payload.skipWebDevicePrompt &&
|
|
49412
49458
|
!hasPromptedWebDevice &&
|
|
49413
49459
|
!isPromptingWebDevice) {
|
|
49414
|
-
|
|
49415
|
-
clearTimeout(timeoutTimer);
|
|
49460
|
+
clearPollingTimers();
|
|
49416
49461
|
isPromptingWebDevice = true;
|
|
49417
49462
|
try {
|
|
49418
49463
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
|
|
49419
49464
|
const confirmed = yield this._promptDeviceInBootloaderForWebDevice();
|
|
49420
49465
|
hasPromptedWebDevice = true;
|
|
49421
49466
|
if (confirmed) {
|
|
49422
|
-
yield
|
|
49467
|
+
yield checkForBootloader(false);
|
|
49468
|
+
}
|
|
49469
|
+
if (!isFinished) {
|
|
49470
|
+
startPolling();
|
|
49423
49471
|
}
|
|
49424
49472
|
}
|
|
49425
49473
|
catch (e) {
|
|
49426
|
-
|
|
49427
|
-
|
|
49474
|
+
isFinished = true;
|
|
49475
|
+
clearPollingTimers();
|
|
49428
49476
|
Log$a.log('FirmwareUpdateBaseMethod [checkDeviceToBootloader] _promptDeviceInBootloaderForWebDevice failed: ', e);
|
|
49429
49477
|
(_c = this.checkPromise) === null || _c === void 0 ? void 0 : _c.reject(e);
|
|
49430
49478
|
}
|
|
@@ -49441,7 +49489,8 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
49441
49489
|
yield ((_d = this.device.deviceConnector) === null || _d === void 0 ? void 0 : _d.acquire(this.device.originalDescriptor.id, null, true, (_e = this.payload.connectProtocol) !== null && _e !== void 0 ? _e : this.device.originalDescriptor.protocolType));
|
|
49442
49490
|
yield this.device.initialize({ timeoutMs: BOOTLOADER_POLL_INITIALIZE_TIMEOUT_MS });
|
|
49443
49491
|
if (this.device.isBootloader()) {
|
|
49444
|
-
|
|
49492
|
+
isFinished = true;
|
|
49493
|
+
clearPollingTimers();
|
|
49445
49494
|
(_f = this.checkPromise) === null || _f === void 0 ? void 0 : _f.resolve(true);
|
|
49446
49495
|
}
|
|
49447
49496
|
}
|
|
@@ -49453,15 +49502,32 @@ class FirmwareUpdateBaseMethod extends BaseMethod {
|
|
|
49453
49502
|
}
|
|
49454
49503
|
}
|
|
49455
49504
|
else {
|
|
49456
|
-
yield
|
|
49457
|
-
}
|
|
49458
|
-
}), isBleReconnect ? 3000 : 2000);
|
|
49459
|
-
timeoutTimer = setTimeout(() => {
|
|
49460
|
-
if (this.checkPromise) {
|
|
49461
|
-
clearInterval(intervalTimer);
|
|
49462
|
-
this.checkPromise.reject(new Error());
|
|
49505
|
+
yield checkForBootloader(true);
|
|
49463
49506
|
}
|
|
49464
|
-
}
|
|
49507
|
+
});
|
|
49508
|
+
startPolling = () => {
|
|
49509
|
+
if (isFinished)
|
|
49510
|
+
return;
|
|
49511
|
+
clearPollingTimers();
|
|
49512
|
+
intervalTimer = setInterval(() => {
|
|
49513
|
+
pollForBootloader().catch(error => {
|
|
49514
|
+
var _a;
|
|
49515
|
+
if (isFinished)
|
|
49516
|
+
return;
|
|
49517
|
+
isFinished = true;
|
|
49518
|
+
clearPollingTimers();
|
|
49519
|
+
(_a = this.checkPromise) === null || _a === void 0 ? void 0 : _a.reject(error);
|
|
49520
|
+
});
|
|
49521
|
+
}, isBleReconnect ? 3000 : 2000);
|
|
49522
|
+
timeoutTimer = setTimeout(() => {
|
|
49523
|
+
if (!isFinished && this.checkPromise) {
|
|
49524
|
+
isFinished = true;
|
|
49525
|
+
clearPollingTimers();
|
|
49526
|
+
this.checkPromise.reject(new Error());
|
|
49527
|
+
}
|
|
49528
|
+
}, 30000);
|
|
49529
|
+
};
|
|
49530
|
+
startPolling();
|
|
49465
49531
|
}
|
|
49466
49532
|
_checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer) {
|
|
49467
49533
|
var _a, _b, _c, _d, _e;
|
|
@@ -50390,11 +50456,36 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50390
50456
|
Log$8.log('FirmwareUpdateV2 [checkDeviceToBootloader] isBleReconnect: ', isBleReconnect);
|
|
50391
50457
|
let isFirstCheck = true;
|
|
50392
50458
|
let checkCount = 0;
|
|
50459
|
+
let hasPromptedWebDevice = false;
|
|
50460
|
+
let isPromptingWebDevice = false;
|
|
50461
|
+
let isFinished = false;
|
|
50462
|
+
let intervalTimer;
|
|
50393
50463
|
let timeoutTimer;
|
|
50394
50464
|
const deviceType = (_a = this.device) === null || _a === void 0 ? void 0 : _a.getCurrentDeviceType();
|
|
50395
50465
|
const isTouchOrProDevice = deviceType === hdShared.EDeviceType.Touch || deviceType === hdShared.EDeviceType.Pro;
|
|
50396
|
-
const
|
|
50466
|
+
const clearPollingTimers = () => {
|
|
50467
|
+
if (intervalTimer !== undefined) {
|
|
50468
|
+
clearInterval(intervalTimer);
|
|
50469
|
+
intervalTimer = undefined;
|
|
50470
|
+
}
|
|
50471
|
+
if (timeoutTimer !== undefined) {
|
|
50472
|
+
clearTimeout(timeoutTimer);
|
|
50473
|
+
timeoutTimer = undefined;
|
|
50474
|
+
}
|
|
50475
|
+
};
|
|
50476
|
+
const checkForBootloader = (clearActiveTimers) => __awaiter(this, void 0, void 0, function* () {
|
|
50477
|
+
const found = yield this._checkDeviceInBootloaderMode(connectId, clearActiveTimers ? intervalTimer : undefined, clearActiveTimers ? timeoutTimer : undefined);
|
|
50478
|
+
if (found) {
|
|
50479
|
+
isFinished = true;
|
|
50480
|
+
clearPollingTimers();
|
|
50481
|
+
}
|
|
50482
|
+
return found;
|
|
50483
|
+
});
|
|
50484
|
+
let startPolling = () => undefined;
|
|
50485
|
+
const pollForBootloader = () => __awaiter(this, void 0, void 0, function* () {
|
|
50397
50486
|
var _b, _c, _d, _e;
|
|
50487
|
+
if (isFinished || isPromptingWebDevice)
|
|
50488
|
+
return;
|
|
50398
50489
|
checkCount += 1;
|
|
50399
50490
|
Log$8.log('FirmwareUpdateV2 [checkDeviceToBootloader] isFirstCheck: ', isFirstCheck);
|
|
50400
50491
|
if (isTouchOrProDevice && isFirstCheck) {
|
|
@@ -50404,20 +50495,31 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50404
50495
|
}
|
|
50405
50496
|
if (checkCount > 4 &&
|
|
50406
50497
|
DataManager.isBrowserWebUsb(DataManager.getSettings('env')) &&
|
|
50407
|
-
!this.payload.skipWebDevicePrompt
|
|
50408
|
-
|
|
50409
|
-
|
|
50498
|
+
!this.payload.skipWebDevicePrompt &&
|
|
50499
|
+
!hasPromptedWebDevice &&
|
|
50500
|
+
!isPromptingWebDevice) {
|
|
50501
|
+
clearPollingTimers();
|
|
50502
|
+
isPromptingWebDevice = true;
|
|
50410
50503
|
try {
|
|
50411
50504
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.SelectDeviceInBootloaderForWebDevice);
|
|
50412
50505
|
const confirmed = yield this._promptDeviceInBootloaderForWebDevice();
|
|
50506
|
+
hasPromptedWebDevice = true;
|
|
50413
50507
|
if (confirmed) {
|
|
50414
|
-
yield
|
|
50508
|
+
yield checkForBootloader(false);
|
|
50509
|
+
}
|
|
50510
|
+
if (!isFinished) {
|
|
50511
|
+
startPolling();
|
|
50415
50512
|
}
|
|
50416
50513
|
}
|
|
50417
50514
|
catch (e) {
|
|
50515
|
+
isFinished = true;
|
|
50516
|
+
clearPollingTimers();
|
|
50418
50517
|
Log$8.log('FirmwareUpdateV2 [checkDeviceToBootloader] promptDeviceInBootloaderForWebDevice failed: ', e);
|
|
50419
50518
|
(_b = this.checkPromise) === null || _b === void 0 ? void 0 : _b.reject(e);
|
|
50420
50519
|
}
|
|
50520
|
+
finally {
|
|
50521
|
+
isPromptingWebDevice = false;
|
|
50522
|
+
}
|
|
50421
50523
|
return;
|
|
50422
50524
|
}
|
|
50423
50525
|
if (isBleReconnect) {
|
|
@@ -50428,7 +50530,8 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50428
50530
|
yield ((_c = this.device.deviceConnector) === null || _c === void 0 ? void 0 : _c.acquire(this.device.originalDescriptor.id, null, true, (_d = this.payload.connectProtocol) !== null && _d !== void 0 ? _d : this.device.originalDescriptor.protocolType));
|
|
50429
50531
|
yield this.device.initialize({ timeoutMs: BOOTLOADER_POLL_INITIALIZE_TIMEOUT_MS });
|
|
50430
50532
|
if (this.device.isBootloader()) {
|
|
50431
|
-
|
|
50533
|
+
isFinished = true;
|
|
50534
|
+
clearPollingTimers();
|
|
50432
50535
|
(_e = this.checkPromise) === null || _e === void 0 ? void 0 : _e.resolve(true);
|
|
50433
50536
|
}
|
|
50434
50537
|
}
|
|
@@ -50440,15 +50543,32 @@ class FirmwareUpdateV2 extends BaseMethod {
|
|
|
50440
50543
|
}
|
|
50441
50544
|
}
|
|
50442
50545
|
else {
|
|
50443
|
-
yield
|
|
50444
|
-
}
|
|
50445
|
-
}), isBleReconnect ? 3000 : 2000);
|
|
50446
|
-
timeoutTimer = setTimeout(() => {
|
|
50447
|
-
if (this.checkPromise) {
|
|
50448
|
-
clearInterval(intervalTimer);
|
|
50449
|
-
this.checkPromise.reject(new Error());
|
|
50546
|
+
yield checkForBootloader(true);
|
|
50450
50547
|
}
|
|
50451
|
-
}
|
|
50548
|
+
});
|
|
50549
|
+
startPolling = () => {
|
|
50550
|
+
if (isFinished)
|
|
50551
|
+
return;
|
|
50552
|
+
clearPollingTimers();
|
|
50553
|
+
intervalTimer = setInterval(() => {
|
|
50554
|
+
pollForBootloader().catch(error => {
|
|
50555
|
+
var _a;
|
|
50556
|
+
if (isFinished)
|
|
50557
|
+
return;
|
|
50558
|
+
isFinished = true;
|
|
50559
|
+
clearPollingTimers();
|
|
50560
|
+
(_a = this.checkPromise) === null || _a === void 0 ? void 0 : _a.reject(error);
|
|
50561
|
+
});
|
|
50562
|
+
}, isBleReconnect ? 3000 : 2000);
|
|
50563
|
+
timeoutTimer = setTimeout(() => {
|
|
50564
|
+
if (!isFinished && this.checkPromise) {
|
|
50565
|
+
isFinished = true;
|
|
50566
|
+
clearPollingTimers();
|
|
50567
|
+
this.checkPromise.reject(new Error());
|
|
50568
|
+
}
|
|
50569
|
+
}, 30000);
|
|
50570
|
+
};
|
|
50571
|
+
startPolling();
|
|
50452
50572
|
}
|
|
50453
50573
|
_checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer) {
|
|
50454
50574
|
var _a, _b, _c, _d, _e;
|
|
@@ -51458,9 +51578,7 @@ function prepareFirmwareUpdateV4MemoryHost({ sdk, plan, artifacts, }) {
|
|
|
51458
51578
|
const artifact = createReference(artifactBinary.buffer, `${hostId}:artifact:${artifactIndex}`);
|
|
51459
51579
|
binaries.set(artifact.artifactRef, artifactBinary);
|
|
51460
51580
|
const materializedEntries = (_a = input.materializedEntries) === null || _a === void 0 ? void 0 : _a.map((entry, entryIndex) => {
|
|
51461
|
-
const
|
|
51462
|
-
const entryArtifact = createReference(entryBinary.buffer, `${hostId}:entry:${artifactIndex}:${entryIndex}`);
|
|
51463
|
-
binaries.set(entryArtifact.artifactRef, entryBinary);
|
|
51581
|
+
const entryArtifact = createReference(entry.binary, `${hostId}:entry:${artifactIndex}:${entryIndex}`);
|
|
51464
51582
|
return {
|
|
51465
51583
|
entryName: entry.entryName,
|
|
51466
51584
|
artifact: entryArtifact,
|
|
@@ -51562,13 +51680,16 @@ const getProtocolV2ZipEntrySizes = (entry) => {
|
|
|
51562
51680
|
uncompressedSize: Number(uncompressedSize),
|
|
51563
51681
|
};
|
|
51564
51682
|
};
|
|
51565
|
-
function assertProtocolV2FirmwareTargetsSupported(deviceType, params) {
|
|
51683
|
+
function assertProtocolV2FirmwareTargetsSupported(deviceType, params, hasExplicitTargetSelection = false) {
|
|
51566
51684
|
var _a;
|
|
51567
|
-
const
|
|
51568
|
-
|
|
51685
|
+
const requestedTargets = new Set((_a = params.targetsToUpdate) !== null && _a !== void 0 ? _a : []);
|
|
51686
|
+
const unsupportedTargets = new Set(Array.from(requestedTargets).filter(target => PROTOCOL_V2_NEO_UNSUPPORTED_TARGETS.has(target)));
|
|
51687
|
+
if (params.se03Binary && (!hasExplicitTargetSelection || requestedTargets.has('se03'))) {
|
|
51569
51688
|
unsupportedTargets.add('se03');
|
|
51570
|
-
|
|
51689
|
+
}
|
|
51690
|
+
if (params.se04Binary && (!hasExplicitTargetSelection || requestedTargets.has('se04'))) {
|
|
51571
51691
|
unsupportedTargets.add('se04');
|
|
51692
|
+
}
|
|
51572
51693
|
if (!unsupportedTargets.size || deviceType === hdShared.EDeviceType.Pro2)
|
|
51573
51694
|
return;
|
|
51574
51695
|
const targetList = Array.from(unsupportedTargets).join(', ');
|
|
@@ -51809,6 +51930,7 @@ const assertProtocolV2ReconnectIdentity = (expectedSerialNumber, actualSerialNum
|
|
|
51809
51930
|
class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
51810
51931
|
constructor() {
|
|
51811
51932
|
super(...arguments);
|
|
51933
|
+
this.protocolV2HasExplicitTargetSelection = false;
|
|
51812
51934
|
this.protocolV2PreparedSources = [];
|
|
51813
51935
|
this.protocolV2ExecutionInLoader = false;
|
|
51814
51936
|
this.protocolV2BootResourceStagingSafe = false;
|
|
@@ -51826,6 +51948,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51826
51948
|
this.useDevicePassphraseState = false;
|
|
51827
51949
|
this.skipForceUpdateCheck = true;
|
|
51828
51950
|
const { payload } = this;
|
|
51951
|
+
this.protocolV2HasExplicitTargetSelection = payload.targetsToUpdate !== undefined;
|
|
51829
51952
|
if (typeof payload.retryCount !== 'number') {
|
|
51830
51953
|
payload.retryCount = PROTOCOL_V2_CONNECT_RETRY_COUNT;
|
|
51831
51954
|
}
|
|
@@ -51982,7 +52105,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51982
52105
|
});
|
|
51983
52106
|
}
|
|
51984
52107
|
runProtocolV2() {
|
|
51985
|
-
var _a, _b, _c, _d, _e, _f;
|
|
52108
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
51986
52109
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51987
52110
|
yield this.captureProtocolV2PhysicalIdentity();
|
|
51988
52111
|
const deviceFeatures = yield this.getProtocolV2DeviceFeatures();
|
|
@@ -51990,7 +52113,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
51990
52113
|
const capabilityDeviceType = currentDeviceType === hdShared.EDeviceType.Pro2 || currentDeviceType === hdShared.EDeviceType.Neo
|
|
51991
52114
|
? currentDeviceType
|
|
51992
52115
|
: getDeviceType(deviceFeatures);
|
|
51993
|
-
assertProtocolV2FirmwareTargetsSupported(capabilityDeviceType, this.params);
|
|
52116
|
+
assertProtocolV2FirmwareTargetsSupported(capabilityDeviceType, this.params, this.protocolV2HasExplicitTargetSelection);
|
|
51994
52117
|
const deviceFirmwareType = getFirmwareType(deviceFeatures);
|
|
51995
52118
|
const firmwareType = (_a = this.params.firmwareType) !== null && _a !== void 0 ? _a : deviceFirmwareType;
|
|
51996
52119
|
this.validateExpectedTargetVersions();
|
|
@@ -52049,13 +52172,25 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52049
52172
|
fwBinaryMap = remoteBinaries.fwBinaryMap;
|
|
52050
52173
|
installItems = remoteBinaries.installItems;
|
|
52051
52174
|
}
|
|
52175
|
+
else {
|
|
52176
|
+
const selectedInstallItems = this.filterProtocolV2LocalInstallItems(explicitInstallItems);
|
|
52177
|
+
bootloaderBinary =
|
|
52178
|
+
(_g = (_f = selectedInstallItems.find(item => item.kind === 'bootloader')) === null || _f === void 0 ? void 0 : _f.binary) !== null && _g !== void 0 ? _g : null;
|
|
52179
|
+
fwBinaryMap = selectedInstallItems
|
|
52180
|
+
.filter(item => item.kind === 'firmware')
|
|
52181
|
+
.map(item => ({
|
|
52182
|
+
fileName: item.fileName,
|
|
52183
|
+
binary: item.binary,
|
|
52184
|
+
targetId: item.targetId,
|
|
52185
|
+
}));
|
|
52186
|
+
}
|
|
52052
52187
|
this.postTipMessage(exports.FirmwareUpdateTipMessage.FinishDownloadFirmware);
|
|
52053
52188
|
}
|
|
52054
52189
|
catch (err) {
|
|
52055
52190
|
if (typeof err === 'object' &&
|
|
52056
52191
|
err !== null &&
|
|
52057
52192
|
'params' in err &&
|
|
52058
|
-
((
|
|
52193
|
+
((_h = err.params) === null || _h === void 0 ? void 0 : _h.firmwareUpdateCode) === 'FirmwareArtifactsNotPrepared') {
|
|
52059
52194
|
throw err;
|
|
52060
52195
|
}
|
|
52061
52196
|
if (err instanceof hdShared.HardwareError && err.errorCode === hdShared.HardwareErrorCode.NetworkError) {
|
|
@@ -52165,12 +52300,12 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52165
52300
|
prepareProtocolV2LocalMemoryHost({ features, firmwareType, }) {
|
|
52166
52301
|
var _a, _b;
|
|
52167
52302
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52168
|
-
const
|
|
52303
|
+
const availableInstallItems = this.buildProtocolV2InstallItems({
|
|
52169
52304
|
bootloaderBinary: this.prepareBootloaderBinary(),
|
|
52170
52305
|
fwBinaryMap: this.collectExplicitTargetBinaries(),
|
|
52171
52306
|
});
|
|
52172
52307
|
const requestedComponentTargets = new Set(((_a = this.params.targetsToUpdate) !== null && _a !== void 0 ? _a : []).filter((target) => target !== 'resource' && target !== 'boot_resources'));
|
|
52173
|
-
const localComponentTargets = new Set(
|
|
52308
|
+
const localComponentTargets = new Set(availableInstallItems.flatMap(item => {
|
|
52174
52309
|
const target = PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.get(item.targetId);
|
|
52175
52310
|
return target ? [target] : [];
|
|
52176
52311
|
}));
|
|
@@ -52181,6 +52316,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52181
52316
|
artifactName: missingTarget,
|
|
52182
52317
|
});
|
|
52183
52318
|
}
|
|
52319
|
+
const installItems = this.filterProtocolV2LocalInstallItems(availableInstallItems);
|
|
52184
52320
|
const planArtifacts = [];
|
|
52185
52321
|
const memoryArtifacts = [];
|
|
52186
52322
|
for (const item of installItems) {
|
|
@@ -52259,7 +52395,13 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52259
52395
|
if (binary.byteLength <= 0 || binary.byteLength > PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES) {
|
|
52260
52396
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP archive size is invalid', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
|
|
52261
52397
|
}
|
|
52262
|
-
|
|
52398
|
+
let zip;
|
|
52399
|
+
try {
|
|
52400
|
+
zip = yield JSZip__default["default"].loadAsync(binary);
|
|
52401
|
+
}
|
|
52402
|
+
catch (_b) {
|
|
52403
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 resource ZIP cannot be parsed', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
|
|
52404
|
+
}
|
|
52263
52405
|
const zipEntries = Object.values(zip.files);
|
|
52264
52406
|
if (zipEntries.some(entry => entry.unsafeOriginalName && entry.unsafeOriginalName !== entry.name)) {
|
|
52265
52407
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP contains an unsafe entry path', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
|
|
@@ -52651,6 +52793,17 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
|
|
|
52651
52793
|
.filter((target) => target !== 'resource' && target !== 'boot_resources')
|
|
52652
52794
|
.filter(target => !preparedTargets.has(target));
|
|
52653
52795
|
}
|
|
52796
|
+
filterProtocolV2LocalInstallItems(installItems) {
|
|
52797
|
+
var _a;
|
|
52798
|
+
if (!this.protocolV2HasExplicitTargetSelection) {
|
|
52799
|
+
return installItems;
|
|
52800
|
+
}
|
|
52801
|
+
const requestedTargets = new Set((_a = this.params.targetsToUpdate) !== null && _a !== void 0 ? _a : []);
|
|
52802
|
+
return installItems.filter(item => {
|
|
52803
|
+
const target = PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.get(item.targetId);
|
|
52804
|
+
return target !== undefined && requestedTargets.has(target);
|
|
52805
|
+
});
|
|
52806
|
+
}
|
|
52654
52807
|
buildProtocolV2InstallItems({ bootloaderBinary, fwBinaryMap, }) {
|
|
52655
52808
|
const installItems = [];
|
|
52656
52809
|
if (bootloaderBinary) {
|
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.99",
|
|
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.99",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.2.0-alpha.99",
|
|
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": "8924c0e509f84675a2c33c0062166967f5bcb2d0"
|
|
48
48
|
}
|