@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.
Files changed (29) hide show
  1. package/__tests__/check-all-firmware-release-protocol-v2.test.ts +66 -61
  2. package/__tests__/check-firmware-release-protocol-v2.test.ts +1 -1
  3. package/__tests__/firmware-memory-host.test.ts +18 -4
  4. package/__tests__/firmware-update/device-update-bootloader.test.ts +1 -0
  5. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +65 -2
  6. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +80 -0
  7. package/__tests__/firmware-update/firmware-update-plan.test.ts +61 -1
  8. package/__tests__/protocol-v2-firmware-targets.test.ts +16 -0
  9. package/__tests__/protocol-v2.test.ts +96 -0
  10. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  11. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  12. package/dist/api/FirmwareUpdateV4.d.ts +3 -1
  13. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  14. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +1 -1
  15. package/dist/api/firmware/FirmwareMemoryHost.d.ts.map +1 -1
  16. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  17. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +1 -1
  18. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +1 -0
  19. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +1 -1
  20. package/dist/index.js +207 -54
  21. package/package.json +4 -4
  22. package/src/api/CheckAllFirmwareRelease.ts +6 -1
  23. package/src/api/FirmwareUpdateV2.ts +123 -65
  24. package/src/api/FirmwareUpdateV4.ts +54 -8
  25. package/src/api/firmware/FirmwareHostBinding.ts +10 -0
  26. package/src/api/firmware/FirmwareMemoryHost.ts +4 -3
  27. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +122 -73
  28. package/src/api/firmware/FirmwareUpdatePlan.ts +18 -5
  29. 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;YA8FvC,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
+ {"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,QAgB/B;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,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;IA0KJ,OAAO,CAAC,8BAA8B;IAwBhC,GAAG;;;;;YAKK,aAAa;YAsHb,4BAA4B;YAkB5B,0BAA0B;YAY1B,8BAA8B;YAK9B,+BAA+B;YAqG/B,gCAAgC;YA+HhC,qCAAqC;YA0IrC,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,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
+ {"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":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAiGhF,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
+ {"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,CAyF7B"}
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;YAwGvC,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
+ {"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,EAaxB,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,kBA0JH,CAAC"}
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;AAuBF,eAAO,MAAM,8CAA8C;kBAM3C,OAAO;oBACL,MAAM,GAAG,SAAS;;;MAKhC,0BAoCH,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"}
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
- return [...value];
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 = (leaseRef, deviceIdentity) => {
1288
- if (degradedPlanIdentityPins.size >= DEGRADED_PLAN_IDENTITY_PIN_LIMIT) {
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(leaseRef, deviceIdentity);
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.leaseRef);
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.leaseRef, deviceIdentity);
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
- ...(forceResourceUpdate ? ['resource'] : []),
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 intervalTimer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
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
- clearInterval(intervalTimer);
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 this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
49467
+ yield checkForBootloader(false);
49468
+ }
49469
+ if (!isFinished) {
49470
+ startPolling();
49423
49471
  }
49424
49472
  }
49425
49473
  catch (e) {
49426
- clearInterval(intervalTimer);
49427
- clearTimeout(timeoutTimer);
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
- clearInterval(intervalTimer);
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 this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
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
- }, 30000);
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 intervalTimer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
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
- clearInterval(intervalTimer);
50409
- clearTimeout(timeoutTimer);
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 this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
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
- clearInterval(intervalTimer);
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 this._checkDeviceInBootloaderMode(connectId, intervalTimer, timeoutTimer);
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
- }, 30000);
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 entryBinary = new Uint8Array(entry.binary).slice();
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 unsupportedTargets = new Set(((_a = params.targetsToUpdate) !== null && _a !== void 0 ? _a : []).filter(target => PROTOCOL_V2_NEO_UNSUPPORTED_TARGETS.has(target)));
51568
- if (params.se03Binary)
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
- if (params.se04Binary)
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
- ((_f = err.params) === null || _f === void 0 ? void 0 : _f.firmwareUpdateCode) === 'FirmwareArtifactsNotPrepared') {
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 installItems = this.buildProtocolV2InstallItems({
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(installItems.flatMap(item => {
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
- const zip = yield JSZip__default["default"].loadAsync(binary);
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.98",
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.98",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.98",
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": "10f2dcaecec17a629216c2402cc9ab8801987297"
47
+ "gitHead": "8924c0e509f84675a2c33c0062166967f5bcb2d0"
48
48
  }