@onekeyfe/hd-core 1.2.0-alpha.88 → 1.2.0-alpha.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -836,10 +836,14 @@ const buildProtocolV2Artifacts = (release, { includeComponents = true, component
836
836
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 component ${key} duplicates target ${target}`, { firmwareUpdateCode: 'FirmwarePlanInvalid' });
837
837
  }
838
838
  componentTargetSet.add(target);
839
- artifacts.push(Object.assign(Object.assign({ artifactId: `component:${target}`, role: 'component', target, url: assertArtifactUrl(component.url, `Protocol V2 component ${key}`), container: 'raw', logicalName: key }, asIntegrity({
839
+ const integrity = asIntegrity({
840
840
  size: component.expectedSize,
841
841
  sha256: component.fingerprint,
842
- })), (asVersion(component.version) ? { targetVersion: asVersion(component.version) } : {})));
842
+ });
843
+ if (integrity.expectedSize === undefined || integrity.expectedSha256 === undefined) {
844
+ planError(`Protocol V2 component ${key} integrity metadata is invalid`);
845
+ }
846
+ artifacts.push(Object.assign(Object.assign({ artifactId: `component:${target}`, role: 'component', target, url: assertArtifactUrl(component.url, `Protocol V2 component ${key}`), container: 'raw', logicalName: key }, integrity), (asVersion(component.version) ? { targetVersion: asVersion(component.version) } : {})));
843
847
  targets.push(target);
844
848
  }
845
849
  return { artifacts, targets: [...new Set(targets)] };
@@ -893,6 +897,22 @@ const finalizeFirmwareUpdatePlan = ({ features, firmwareType, platform, artifact
893
897
  };
894
898
  return assertFirmwareUpdatePlan(Object.assign(Object.assign({}, planWithoutDigest), { planDigest: digestFirmwareUpdatePlan(planWithoutDigest) }));
895
899
  };
900
+ const buildProtocolV2LocalFirmwareUpdatePlan = ({ features, firmwareType, platform, artifacts, }) => {
901
+ if (artifacts.length === 0) {
902
+ return planError('Protocol V2 local firmware plan has no artifacts');
903
+ }
904
+ const plan = finalizeFirmwareUpdatePlan({
905
+ features,
906
+ firmwareType,
907
+ platform,
908
+ artifacts: artifacts.map(artifact => (Object.assign(Object.assign({}, artifact), { role: artifact.target === 'resource' ? 'resourceBundle' : 'component', url: `https://local-firmware.invalid/${encodeURIComponent(artifact.artifactId)}` }))),
909
+ targetsToUpdate: artifacts.map(artifact => artifact.target),
910
+ });
911
+ if (plan.executor !== 'v4') {
912
+ return planError('Protocol V2 local firmware plan requires executor v4');
913
+ }
914
+ return plan;
915
+ };
896
916
  const buildProtocolV2FirmwareUpdatePlan = ({ features, firmwareType, platform, release, targetsToUpdate, forceUpdateTargets, resourceArchive, }) => {
897
917
  const validatedForceTargets = validateFirmwareUpdatePlanForceTargets(forceUpdateTargets);
898
918
  if (validatedForceTargets.some(target => target === 'ble' || target === 'bootloader')) {
@@ -51229,6 +51249,88 @@ const INSTALLABLE_FIRMWARE_TARGET_IDS = new Set([
51229
51249
  ]);
51230
51250
  new Map(Object.entries(ProtocolV2FirmwareTargetType).flatMap(([key, value]) => INSTALLABLE_FIRMWARE_TARGET_IDS.has(value) ? [[key, value]] : []));
51231
51251
 
51252
+ let memoryHostSequence = 0;
51253
+ const createReference = (binary, prefix) => {
51254
+ const digest = utils.bytesToHex(sha256.sha256(new Uint8Array(binary)));
51255
+ return {
51256
+ artifactRef: `fwmem:${prefix}:${digest.slice(0, 32)}`,
51257
+ size: binary.byteLength,
51258
+ sha256: digest,
51259
+ };
51260
+ };
51261
+ function prepareFirmwareUpdateV4MemoryHost({ sdk, plan, artifacts, }) {
51262
+ if (plan.executor !== 'v4') {
51263
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory host only supports V4 plans');
51264
+ }
51265
+ memoryHostSequence += 1;
51266
+ const hostId = `${Date.now()}:${memoryHostSequence}`;
51267
+ const binaries = new Map();
51268
+ const inputs = artifacts.map((input, artifactIndex) => {
51269
+ var _a;
51270
+ const artifactBinary = new Uint8Array(input.binary).slice();
51271
+ const artifact = createReference(artifactBinary.buffer, `${hostId}:artifact:${artifactIndex}`);
51272
+ binaries.set(artifact.artifactRef, artifactBinary);
51273
+ const materializedEntries = (_a = input.materializedEntries) === null || _a === void 0 ? void 0 : _a.map((entry, entryIndex) => {
51274
+ const entryBinary = new Uint8Array(entry.binary).slice();
51275
+ const entryArtifact = createReference(entryBinary.buffer, `${hostId}:entry:${artifactIndex}:${entryIndex}`);
51276
+ binaries.set(entryArtifact.artifactRef, entryBinary);
51277
+ return {
51278
+ entryName: entry.entryName,
51279
+ artifact: entryArtifact,
51280
+ };
51281
+ });
51282
+ return Object.assign({ artifactId: input.artifactId, artifact }, ((materializedEntries === null || materializedEntries === void 0 ? void 0 : materializedEntries.length) ? { materializedEntries } : {}));
51283
+ });
51284
+ const preparedPlan = sdk.prepareFirmwareUpdatePlan({
51285
+ plan,
51286
+ leaseRef: `fwmemlease:${hostId}`,
51287
+ artifacts: inputs,
51288
+ });
51289
+ const readers = new Map();
51290
+ let readerSequence = 0;
51291
+ const artifactReader = {
51292
+ open({ artifactRef }) {
51293
+ const binary = binaries.get(artifactRef);
51294
+ if (!binary) {
51295
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory artifact is unavailable');
51296
+ }
51297
+ readerSequence += 1;
51298
+ const readerId = `fwmemreader:${hostId}:${readerSequence}`;
51299
+ readers.set(readerId, binary);
51300
+ return Promise.resolve({ readerId, size: binary.byteLength });
51301
+ },
51302
+ read({ readerId, offset, length }) {
51303
+ const binary = readers.get(readerId);
51304
+ if (!binary || offset < 0 || length <= 0 || offset + length > binary.byteLength) {
51305
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory artifact read is invalid');
51306
+ }
51307
+ const data = binary.slice(offset, offset + length).buffer;
51308
+ return Promise.resolve({
51309
+ data,
51310
+ bytesRead: data.byteLength,
51311
+ eof: offset + length === binary.byteLength,
51312
+ });
51313
+ },
51314
+ close({ readerId }) {
51315
+ readers.delete(readerId);
51316
+ return Promise.resolve();
51317
+ },
51318
+ };
51319
+ const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({
51320
+ artifactReader,
51321
+ preparedPlanDigest: preparedPlan.preparedPlanDigest,
51322
+ });
51323
+ return {
51324
+ preparedPlan,
51325
+ hostBindingGeneration,
51326
+ release: () => {
51327
+ sdk.unregisterFirmwareUpdateHostBinding(hostBindingGeneration);
51328
+ readers.clear();
51329
+ binaries.clear();
51330
+ },
51331
+ };
51332
+ }
51333
+
51232
51334
  const Log$6 = getLogger(exports.LoggerNames.Method);
51233
51335
  const SESSION_ERROR$1 = 'session not found';
51234
51336
  const PROTOCOL_V2_BOOTLOADER_RECONNECT_TIMEOUT = 90 * 1000;
@@ -51259,6 +51361,20 @@ const PROTOCOL_V2_RESOURCE_MANIFEST_MAX_BYTES = 1024 * 1024;
51259
51361
  const PROTOCOL_V2_RESOURCE_FILE_MAX_COUNT = 512;
51260
51362
  const PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES = 256 * 1024 * 1024;
51261
51363
  const PROTOCOL_V2_NEO_UNSUPPORTED_TARGETS = new Set(['se03', 'se04']);
51364
+ const getProtocolV2ZipEntrySizes = (entry) => {
51365
+ var _a;
51366
+ const { compressedSize, uncompressedSize } = (_a = entry._data) !== null && _a !== void 0 ? _a : {};
51367
+ if (!Number.isSafeInteger(compressedSize) ||
51368
+ Number(compressedSize) < 0 ||
51369
+ !Number.isSafeInteger(uncompressedSize) ||
51370
+ Number(uncompressedSize) <= 0) {
51371
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local resource ZIP entry size is invalid: ${entry.name}`, { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51372
+ }
51373
+ return {
51374
+ compressedSize: Number(compressedSize),
51375
+ uncompressedSize: Number(uncompressedSize),
51376
+ };
51377
+ };
51262
51378
  function assertProtocolV2FirmwareTargetsSupported(deviceType, params) {
51263
51379
  var _a;
51264
51380
  const unsupportedTargets = new Set(((_a = params.targetsToUpdate) !== null && _a !== void 0 ? _a : []).filter(target => PROTOCOL_V2_NEO_UNSUPPORTED_TARGETS.has(target)));
@@ -51515,7 +51631,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51515
51631
  return ['V2'];
51516
51632
  }
51517
51633
  init() {
51518
- var _a, _b;
51634
+ var _a, _b, _c, _d, _e;
51519
51635
  this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.NOT_INITIALIZE];
51520
51636
  this.requireDeviceMode = [];
51521
51637
  this.unlockPolicy = 'unlock-before-run';
@@ -51547,6 +51663,8 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51547
51663
  { name: 'se03Binary', type: 'buffer' },
51548
51664
  { name: 'se04Binary', type: 'buffer' },
51549
51665
  { name: 'resourceArchiveBinary', type: 'buffer' },
51666
+ { name: 'resourceFiles', type: 'array', allowEmpty: true },
51667
+ { name: 'resourceBundleArtifacts', type: 'array', allowEmpty: true },
51550
51668
  { name: 'firmwareType', type: 'string' },
51551
51669
  { name: 'targetsToUpdate', type: 'array', allowEmpty: true },
51552
51670
  { name: 'platform', type: 'string' },
@@ -51556,6 +51674,9 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51556
51674
  (payload.expectedDeviceId.length === 0 || payload.expectedDeviceId.length > 160)) {
51557
51675
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Protocol V2 expected device identity is invalid');
51558
51676
  }
51677
+ if (((_a = payload.resourceFiles) === null || _a === void 0 ? void 0 : _a.length) || ((_b = payload.resourceBundleArtifacts) === null || _b === void 0 ? void 0 : _b.length)) {
51678
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'Protocol V2 resourceFiles and resourceBundleArtifacts are deprecated; provide a complete signed resource ZIP through resourceArchiveBinary or preparedPlan');
51679
+ }
51559
51680
  const preparedPlan = payload.preparedPlan
51560
51681
  ? validateFirmwareUpdatePreparedPlan(payload.preparedPlan)
51561
51682
  : undefined;
@@ -51626,16 +51747,16 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51626
51747
  se03Binary: payload.se03Binary,
51627
51748
  se04Binary: payload.se04Binary,
51628
51749
  resourceArchiveBinary: payload.resourceArchiveBinary,
51629
- firmwareType: (_a = preparedPlan === null || preparedPlan === void 0 ? void 0 : preparedPlan.firmwareType) !== null && _a !== void 0 ? _a : payload.firmwareType,
51750
+ firmwareType: (_c = preparedPlan === null || preparedPlan === void 0 ? void 0 : preparedPlan.firmwareType) !== null && _c !== void 0 ? _c : payload.firmwareType,
51630
51751
  targetsToUpdate: preparedPlan
51631
51752
  ? [...preparedPlan.targetsToUpdate]
51632
- : payload.targetsToUpdate,
51753
+ : (_d = payload.targetsToUpdate) === null || _d === void 0 ? void 0 : _d.map((target) => target === 'boot_resources' ? 'resource' : target),
51633
51754
  expectedTargetVersions: preparedPlan
51634
51755
  ? preparedExpectedTargetVersions
51635
51756
  : payload.expectedTargetVersions,
51636
51757
  platform: payload.platform,
51637
51758
  expectedDeviceId: payload.expectedDeviceId,
51638
- artifactReader: (_b = hostBinding === null || hostBinding === void 0 ? void 0 : hostBinding.artifactReader) !== null && _b !== void 0 ? _b : payload.artifactReader,
51759
+ artifactReader: (_e = hostBinding === null || hostBinding === void 0 ? void 0 : hostBinding.artifactReader) !== null && _e !== void 0 ? _e : payload.artifactReader,
51639
51760
  componentArtifacts: preparedPlan ? undefined : payload.componentArtifacts,
51640
51761
  };
51641
51762
  }
@@ -51667,7 +51788,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51667
51788
  });
51668
51789
  }
51669
51790
  runProtocolV2() {
51670
- var _a, _b, _c, _d, _e;
51791
+ var _a, _b, _c, _d, _e, _f;
51671
51792
  return __awaiter(this, void 0, void 0, function* () {
51672
51793
  yield this.captureProtocolV2PhysicalIdentity();
51673
51794
  const deviceFeatures = yield this.getProtocolV2DeviceFeatures();
@@ -51679,15 +51800,28 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51679
51800
  const deviceFirmwareType = getFirmwareType(deviceFeatures);
51680
51801
  const firmwareType = (_a = this.params.firmwareType) !== null && _a !== void 0 ? _a : deviceFirmwareType;
51681
51802
  this.validateExpectedTargetVersions();
51682
- const hasPreparedComponentArtifacts = Object.values((_b = this.params.componentArtifacts) !== null && _b !== void 0 ? _b : {}).some(Boolean);
51803
+ if (!this.params.preparedPlan &&
51804
+ this.params.resourceArchiveBinary &&
51805
+ ((_b = this.params.targetsToUpdate) === null || _b === void 0 ? void 0 : _b.includes('resource'))) {
51806
+ const localMemoryHost = yield this.prepareProtocolV2LocalMemoryHost({
51807
+ features: deviceFeatures,
51808
+ firmwareType,
51809
+ });
51810
+ try {
51811
+ return yield this.runProtocolV2PreparedArtifacts(deviceFeatures, firmwareType);
51812
+ }
51813
+ finally {
51814
+ localMemoryHost.release();
51815
+ }
51816
+ }
51817
+ const hasPreparedComponentArtifacts = Object.values((_c = this.params.componentArtifacts) !== null && _c !== void 0 ? _c : {}).some(Boolean);
51683
51818
  if (this.params.preparedPlan || hasPreparedComponentArtifacts) {
51684
51819
  return this.runProtocolV2PreparedArtifacts(deviceFeatures, firmwareType);
51685
51820
  }
51686
- const wantsResources = !!((_c = this.params.targetsToUpdate) === null || _c === void 0 ? void 0 : _c.includes('resource'));
51821
+ const wantsResources = !!((_d = this.params.targetsToUpdate) === null || _d === void 0 ? void 0 : _d.includes('resource'));
51687
51822
  let fwBinaryMap = [];
51688
51823
  let bootloaderBinary = null;
51689
51824
  let installItems;
51690
- let resourceBundles = [];
51691
51825
  try {
51692
51826
  this.postTipMessage(exports.FirmwareUpdateTipMessage.StartDownloadFirmware);
51693
51827
  fwBinaryMap = this.collectExplicitTargetBinaries();
@@ -51697,16 +51831,13 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51697
51831
  fwBinaryMap,
51698
51832
  });
51699
51833
  const missingFirmwareTargets = this.getMissingProtocolV2FirmwareTargets(explicitInstallItems);
51700
- const needsRemoteFirmware = ((_d = this.params.targetsToUpdate) === null || _d === void 0 ? void 0 : _d.length)
51834
+ const needsRemoteFirmware = ((_e = this.params.targetsToUpdate) === null || _e === void 0 ? void 0 : _e.length)
51701
51835
  ? missingFirmwareTargets.length > 0
51702
51836
  : explicitInstallItems.length === 0;
51703
51837
  if (wantsResources) {
51704
- if (!this.params.resourceArchiveBinary) {
51705
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 resource archive must be provided for a local resource update', {
51706
- firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
51707
- });
51708
- }
51709
- resourceBundles = yield this.prepareProtocolV2LocalResourceArchive(this.params.resourceArchiveBinary);
51838
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 resource archive must be provided through a local or external PreparedPlan', {
51839
+ firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
51840
+ });
51710
51841
  }
51711
51842
  if (needsRemoteFirmware &&
51712
51843
  (this.params.artifactReader ||
@@ -51730,7 +51861,7 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51730
51861
  if (typeof err === 'object' &&
51731
51862
  err !== null &&
51732
51863
  'params' in err &&
51733
- ((_e = err.params) === null || _e === void 0 ? void 0 : _e.firmwareUpdateCode) === 'FirmwareArtifactsNotPrepared') {
51864
+ ((_f = err.params) === null || _f === void 0 ? void 0 : _f.firmwareUpdateCode) === 'FirmwareArtifactsNotPrepared') {
51734
51865
  throw err;
51735
51866
  }
51736
51867
  if (err instanceof hdShared.HardwareError && err.errorCode === hdShared.HardwareErrorCode.NetworkError) {
@@ -51738,14 +51869,11 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51738
51869
  }
51739
51870
  throw normalizeFirmwarePreparationError(err);
51740
51871
  }
51741
- if (!bootloaderBinary &&
51742
- fwBinaryMap.length === 0 &&
51743
- !(installItems === null || installItems === void 0 ? void 0 : installItems.length) &&
51744
- resourceBundles.length === 0) {
51872
+ if (!bootloaderBinary && fwBinaryMap.length === 0 && !(installItems === null || installItems === void 0 ? void 0 : installItems.length)) {
51745
51873
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, 'No firmware to update');
51746
51874
  }
51747
- return this.executeProtocolV2Update(Object.assign(Object.assign({ fwBinaryMap,
51748
- bootloaderBinary }, (installItems ? { installItems } : undefined)), (resourceBundles.length > 0 ? { resourceBundles } : undefined)));
51875
+ return this.executeProtocolV2Update(Object.assign({ fwBinaryMap,
51876
+ bootloaderBinary }, (installItems ? { installItems } : undefined)));
51749
51877
  });
51750
51878
  }
51751
51879
  openProtocolV2PreparedSource(artifact) {
@@ -51840,14 +51968,127 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51840
51968
  return installSources;
51841
51969
  });
51842
51970
  }
51971
+ prepareProtocolV2LocalMemoryHost({ features, firmwareType, }) {
51972
+ var _a, _b;
51973
+ return __awaiter(this, void 0, void 0, function* () {
51974
+ const installItems = this.buildProtocolV2InstallItems({
51975
+ bootloaderBinary: this.prepareBootloaderBinary(),
51976
+ fwBinaryMap: this.collectExplicitTargetBinaries(),
51977
+ });
51978
+ const requestedComponentTargets = new Set(((_a = this.params.targetsToUpdate) !== null && _a !== void 0 ? _a : []).filter((target) => target !== 'resource' && target !== 'boot_resources'));
51979
+ const localComponentTargets = new Set(installItems.flatMap(item => {
51980
+ const target = PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.get(item.targetId);
51981
+ return target ? [target] : [];
51982
+ }));
51983
+ const missingTarget = Array.from(requestedComponentTargets).find(target => !localComponentTargets.has(target));
51984
+ if (missingTarget) {
51985
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local update has no binary for requested target ${missingTarget}`, {
51986
+ firmwareUpdateCode: 'FirmwareArtifactsNotPrepared',
51987
+ artifactName: missingTarget,
51988
+ });
51989
+ }
51990
+ const planArtifacts = [];
51991
+ const memoryArtifacts = [];
51992
+ for (const item of installItems) {
51993
+ const target = PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.get(item.targetId);
51994
+ if (!target || item.binary.byteLength <= 0) {
51995
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local firmware artifact is invalid: ${item.fileName}`, { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51996
+ }
51997
+ const artifactId = `component:${target}`;
51998
+ planArtifacts.push(Object.assign({ artifactId,
51999
+ target, container: 'raw', logicalName: item.fileName, expectedSize: item.binary.byteLength, expectedSha256: bytesToHex(sha256.sha256(new Uint8Array(item.binary))) }, (((_b = this.params.expectedTargetVersions) === null || _b === void 0 ? void 0 : _b[target])
52000
+ ? { targetVersion: this.params.expectedTargetVersions[target] }
52001
+ : {})));
52002
+ memoryArtifacts.push({ artifactId, binary: item.binary });
52003
+ }
52004
+ const resourceArchive = yield this.prepareProtocolV2LocalResourceArchive(this.params.resourceArchiveBinary);
52005
+ const resourceArtifactId = 'resource:archive';
52006
+ planArtifacts.push({
52007
+ artifactId: resourceArtifactId,
52008
+ target: 'resource',
52009
+ container: 'zip',
52010
+ logicalName: 'protocol-v2-local-resource-archive',
52011
+ expectedSize: resourceArchive.binary.byteLength,
52012
+ expectedSha256: bytesToHex(sha256.sha256(new Uint8Array(resourceArchive.binary))),
52013
+ });
52014
+ memoryArtifacts.push({
52015
+ artifactId: resourceArtifactId,
52016
+ binary: resourceArchive.binary,
52017
+ materializedEntries: resourceArchive.materializedEntries,
52018
+ });
52019
+ const plan = buildProtocolV2LocalFirmwareUpdatePlan({
52020
+ features,
52021
+ firmwareType,
52022
+ platform: this.params.platform,
52023
+ artifacts: planArtifacts,
52024
+ });
52025
+ let memoryHost;
52026
+ try {
52027
+ memoryHost = prepareFirmwareUpdateV4MemoryHost({
52028
+ sdk: {
52029
+ prepareFirmwareUpdatePlan,
52030
+ registerFirmwareUpdateHostBinding,
52031
+ unregisterFirmwareUpdateHostBinding,
52032
+ },
52033
+ plan,
52034
+ artifacts: memoryArtifacts,
52035
+ });
52036
+ const preparedPlan = validateFirmwareUpdatePreparedPlan(memoryHost.preparedPlan);
52037
+ assertFirmwareUpdatePreparedPlanBinding({
52038
+ preparedPlan,
52039
+ executor: 'v4',
52040
+ platform: this.params.platform,
52041
+ scopeTargets: [],
52042
+ bindings: [],
52043
+ });
52044
+ assertFirmwareUpdatePreparedPlanDeviceIdentity({
52045
+ preparedPlan,
52046
+ deviceIdentity: this.protocolV2ExpectedSerialNumber,
52047
+ });
52048
+ const hostBinding = resolveFirmwareUpdateHostBinding(memoryHost.hostBindingGeneration, preparedPlan.preparedPlanDigest);
52049
+ this.params.preparedPlan = preparedPlan;
52050
+ this.params.targetsToUpdate = [...preparedPlan.targetsToUpdate];
52051
+ this.params.artifactReader = hostBinding.artifactReader;
52052
+ this.params.componentArtifacts = undefined;
52053
+ return memoryHost;
52054
+ }
52055
+ catch (error) {
52056
+ memoryHost === null || memoryHost === void 0 ? void 0 : memoryHost.release();
52057
+ throw error;
52058
+ }
52059
+ });
52060
+ }
51843
52061
  prepareProtocolV2LocalResourceArchive(binary) {
51844
52062
  var _a;
51845
52063
  return __awaiter(this, void 0, void 0, function* () {
52064
+ if (binary.byteLength <= 0 || binary.byteLength > PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES) {
52065
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP archive size is invalid', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
52066
+ }
51846
52067
  const zip = yield JSZip__default["default"].loadAsync(binary);
51847
- const entries = Object.values(zip.files).filter(entry => !entry.dir);
52068
+ const zipEntries = Object.values(zip.files);
52069
+ if (zipEntries.some(entry => entry.unsafeOriginalName && entry.unsafeOriginalName !== entry.name)) {
52070
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP contains an unsafe entry path', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
52071
+ }
52072
+ const entries = zipEntries.filter(entry => !entry.dir);
51848
52073
  if (entries.length === 0 || entries.length > PROTOCOL_V2_RESOURCE_FILE_MAX_COUNT + 1) {
51849
52074
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP entry set is invalid', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51850
52075
  }
52076
+ let declaredUncompressedSize = 0;
52077
+ let declaredCompressedSize = 0;
52078
+ for (const entry of entries) {
52079
+ const sizes = getProtocolV2ZipEntrySizes(entry);
52080
+ declaredCompressedSize += sizes.compressedSize;
52081
+ declaredUncompressedSize += sizes.uncompressedSize;
52082
+ const entryLimit = entry.name === 'manifest.json'
52083
+ ? PROTOCOL_V2_RESOURCE_MANIFEST_MAX_BYTES
52084
+ : PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES;
52085
+ if (sizes.uncompressedSize > entryLimit ||
52086
+ declaredCompressedSize > binary.byteLength ||
52087
+ declaredUncompressedSize >
52088
+ PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES + PROTOCOL_V2_RESOURCE_MANIFEST_MAX_BYTES) {
52089
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP declared size exceeds the allowed limit', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
52090
+ }
52091
+ }
51851
52092
  const manifestEntry = zip.file('manifest.json');
51852
52093
  if (!manifestEntry) {
51853
52094
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP has no manifest.json', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
@@ -51878,33 +52119,27 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
51878
52119
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP contains an unexpected entry', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51879
52120
  }
51880
52121
  let totalSize = 0;
51881
- const resourceBundles = [];
51882
- for (const [index, file] of selectedFiles.entries()) {
52122
+ const materializedEntries = [
52123
+ { entryName: 'manifest.json', binary: manifestBinary },
52124
+ ];
52125
+ for (const file of selectedFiles) {
51883
52126
  const entry = zip.file(file.archive_path);
51884
52127
  if (!entry) {
51885
52128
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local resource ZIP is missing ${file.archive_path}`, { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51886
52129
  }
52130
+ const { uncompressedSize } = getProtocolV2ZipEntrySizes(entry);
52131
+ totalSize += uncompressedSize;
52132
+ if (uncompressedSize !== file.size || totalSize > PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES) {
52133
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local resource file declared size is invalid: ${file.archive_path}`, { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
52134
+ }
51887
52135
  const fileBinary = yield entry.async('arraybuffer');
51888
52136
  const digest = bytesToHex(sha256.sha256(new Uint8Array(fileBinary)));
51889
52137
  if (fileBinary.byteLength !== file.size || digest !== file.sha256.toLowerCase()) {
51890
52138
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 local resource file does not match manifest: ${file.archive_path}`, { firmwareUpdateCode: 'FirmwareArtifactReceiptMismatch' });
51891
52139
  }
51892
- totalSize += fileBinary.byteLength;
51893
- if (totalSize > PROTOCOL_V2_RESOURCE_TOTAL_MAX_BYTES) {
51894
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Protocol V2 local resource ZIP exceeds the total size limit', { firmwareUpdateCode: 'FirmwareArtifactsNotPrepared' });
51895
- }
51896
- const header = fileBinary.byteLength >= PROTOCOL_V2_OKPP_HEADER_SIZE
51897
- ? parseProtocolV2OkppHeader(new Uint8Array(fileBinary))
51898
- : null;
51899
- resourceBundles.push(Object.assign({ name: file.original_name || `resource-${index}`, binary: fileBinary, devicePath: file.device_path }, (header
51900
- ? {
51901
- version: header.version,
51902
- payloadHash: header.payloadHash,
51903
- headerHash: header.headerHash,
51904
- }
51905
- : {})));
52140
+ materializedEntries.push({ entryName: file.archive_path, binary: fileBinary });
51906
52141
  }
51907
- return resourceBundles;
52142
+ return { binary, materializedEntries };
51908
52143
  });
51909
52144
  }
51910
52145
  prepareProtocolV2ResourceSources() {
@@ -52182,7 +52417,9 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52182
52417
  const target = PROTOCOL_V2_UPDATE_TARGET_BY_TARGET_ID.get(item.targetId);
52183
52418
  return target ? [target] : [];
52184
52419
  }));
52185
- return ((_a = this.params.targetsToUpdate) !== null && _a !== void 0 ? _a : []).filter(target => target !== 'resource' && !preparedTargets.has(target));
52420
+ return ((_a = this.params.targetsToUpdate) !== null && _a !== void 0 ? _a : [])
52421
+ .filter((target) => target !== 'resource' && target !== 'boot_resources')
52422
+ .filter(target => !preparedTargets.has(target));
52186
52423
  }
52187
52424
  buildProtocolV2InstallItems({ bootloaderBinary, fwBinaryMap, }) {
52188
52425
  const installItems = [];
@@ -52231,7 +52468,17 @@ class FirmwareUpdateV4 extends FirmwareUpdateBaseMethod {
52231
52468
  if (!component.url) {
52232
52469
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Missing Protocol V2 firmware component url: ${key}/${component.target}`);
52233
52470
  }
52471
+ const expectedFingerprint = normalizeProtocolV2Hex(component.fingerprint);
52472
+ if (!Number.isSafeInteger(component.expectedSize) ||
52473
+ Number(component.expectedSize) <= 0 ||
52474
+ !expectedFingerprint ||
52475
+ !/^[0-9a-f]{64}$/u.test(expectedFingerprint)) {
52476
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 firmware component integrity metadata is invalid: ${key}/${component.target}`, { firmwareUpdateCode: 'FirmwarePlanInvalid' });
52477
+ }
52234
52478
  const { binary } = yield getSysResourceBinary(component.url);
52479
+ if (binary.byteLength !== component.expectedSize) {
52480
+ throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 firmware size mismatch: ${key}/${component.target}`, { firmwareUpdateCode: 'FirmwareArtifactReceiptMismatch' });
52481
+ }
52235
52482
  if (!isProtocolV2FirmwareFingerprintValid(binary, component.fingerprint)) {
52236
52483
  throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, `Protocol V2 firmware fingerprint mismatch: ${key}/${component.target}`);
52237
52484
  }
@@ -65192,86 +65439,6 @@ const switchTransport = ({ env, Transport, plugin, }) => {
65192
65439
  initConnector();
65193
65440
  };
65194
65441
 
65195
- let memoryHostSequence = 0;
65196
- const createReference = (binary, prefix) => {
65197
- const digest = utils.bytesToHex(sha256.sha256(new Uint8Array(binary)));
65198
- return {
65199
- artifactRef: `fwmem:${prefix}:${digest.slice(0, 32)}`,
65200
- size: binary.byteLength,
65201
- sha256: digest,
65202
- };
65203
- };
65204
- function prepareFirmwareUpdateV4MemoryHost({ sdk, plan, artifacts, }) {
65205
- if (plan.executor !== 'v4') {
65206
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory host only supports V4 plans');
65207
- }
65208
- memoryHostSequence += 1;
65209
- const hostId = `${Date.now()}:${memoryHostSequence}`;
65210
- const binaries = new Map();
65211
- const inputs = artifacts.map((input, artifactIndex) => {
65212
- var _a;
65213
- const artifact = createReference(input.binary, `${hostId}:artifact:${artifactIndex}`);
65214
- binaries.set(artifact.artifactRef, new Uint8Array(input.binary));
65215
- const materializedEntries = (_a = input.materializedEntries) === null || _a === void 0 ? void 0 : _a.map((entry, entryIndex) => {
65216
- const entryArtifact = createReference(entry.binary, `${hostId}:entry:${artifactIndex}:${entryIndex}`);
65217
- binaries.set(entryArtifact.artifactRef, new Uint8Array(entry.binary));
65218
- return {
65219
- entryName: entry.entryName,
65220
- artifact: entryArtifact,
65221
- };
65222
- });
65223
- return Object.assign({ artifactId: input.artifactId, artifact }, ((materializedEntries === null || materializedEntries === void 0 ? void 0 : materializedEntries.length) ? { materializedEntries } : {}));
65224
- });
65225
- const preparedPlan = sdk.prepareFirmwareUpdatePlan({
65226
- plan,
65227
- leaseRef: `fwmemlease:${hostId}`,
65228
- artifacts: inputs,
65229
- });
65230
- const readers = new Map();
65231
- let readerSequence = 0;
65232
- const artifactReader = {
65233
- open({ artifactRef }) {
65234
- const binary = binaries.get(artifactRef);
65235
- if (!binary) {
65236
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory artifact is unavailable');
65237
- }
65238
- readerSequence += 1;
65239
- const readerId = `fwmemreader:${hostId}:${readerSequence}`;
65240
- readers.set(readerId, binary);
65241
- return Promise.resolve({ readerId, size: binary.byteLength });
65242
- },
65243
- read({ readerId, offset, length }) {
65244
- const binary = readers.get(readerId);
65245
- if (!binary || offset < 0 || length <= 0 || offset + length > binary.byteLength) {
65246
- throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'Firmware memory artifact read is invalid');
65247
- }
65248
- const data = binary.slice(offset, offset + length).buffer;
65249
- return Promise.resolve({
65250
- data,
65251
- bytesRead: data.byteLength,
65252
- eof: offset + length === binary.byteLength,
65253
- });
65254
- },
65255
- close({ readerId }) {
65256
- readers.delete(readerId);
65257
- return Promise.resolve();
65258
- },
65259
- };
65260
- const hostBindingGeneration = sdk.registerFirmwareUpdateHostBinding({
65261
- artifactReader,
65262
- preparedPlanDigest: preparedPlan.preparedPlanDigest,
65263
- });
65264
- return {
65265
- preparedPlan,
65266
- hostBindingGeneration,
65267
- release: () => {
65268
- sdk.unregisterFirmwareUpdateHostBinding(hostBindingGeneration);
65269
- readers.clear();
65270
- binaries.clear();
65271
- },
65272
- };
65273
- }
65274
-
65275
65442
  const HardwareSdk = ({ init, call, dispose, eventEmitter, uiResponse, cancel, updateSettings, switchTransport, }) => inject({
65276
65443
  init,
65277
65444
  call,
@@ -94,7 +94,7 @@ export interface FirmwareUpdateV3Params {
94
94
  }>;
95
95
  };
96
96
  }
97
- export type FirmwareUpdateV4Target = 'boot' | 'app_v1' | 'app_v2' | 'coprocessor' | 'resource' | 'se01' | 'se02' | 'se03' | 'se04';
97
+ export type FirmwareUpdateV4Target = 'boot' | 'boot_resources' | 'app_v1' | 'app_v2' | 'coprocessor' | 'resource' | 'se01' | 'se02' | 'se03' | 'se04';
98
98
  export interface FirmwareUpdateV4Params {
99
99
  preparedPlan?: FirmwareUpdatePreparedPlan;
100
100
  hostBindingGeneration?: number;
@@ -114,9 +114,19 @@ export interface FirmwareUpdateV4Params {
114
114
  se03Binary?: ArrayBuffer;
115
115
  se04Binary?: ArrayBuffer;
116
116
  resourceArchiveBinary?: ArrayBuffer;
117
+ resourceFiles?: Array<{
118
+ binary: ArrayBuffer;
119
+ devicePath: string;
120
+ size?: number;
121
+ fileHash?: string;
122
+ }>;
117
123
  forcedUpdateRes?: boolean;
118
124
  artifactReader?: FirmwareArtifactReader;
119
- componentArtifacts?: Partial<Record<Exclude<FirmwareUpdateV4Target, 'resource'>, FirmwareArtifactReference>>;
125
+ componentArtifacts?: Partial<Record<Exclude<FirmwareUpdateV4Target, 'resource' | 'boot_resources'>, FirmwareArtifactReference>>;
126
+ resourceBundleArtifacts?: Array<{
127
+ name: string;
128
+ artifact: FirmwareArtifactReference;
129
+ }>;
120
130
  }
121
131
  export declare function registerFirmwareUpdateHostBinding(binding: FirmwareUpdateHostBinding): number;
122
132
  export declare function unregisterFirmwareUpdateHostBinding(generation?: number): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,KAAK,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC;AAEtC,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACzE,IAAI,EAAE,WAAW,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC;KACd,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,sBAAsB,CAAC;IAEvC,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,0BAA0B,CAAC;IACzC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,yBAAyB,CAAC;KACrC,CAAC,CAAC;IACH,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,oBAAoB,CAAC,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACnE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,0BAA0B,CAAC,GAAG;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GACzE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE3B,KAAK,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;AACpE,KAAK,QAAQ,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC;AAExC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,GAC9C,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,0BAA0B,GAAG,QAAQ,CAAC,GACpD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,4BAA4B,GAAG,QAAQ,CAAC,GACtD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE3B,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,YAAY,CAAC,EAAE,aAAa,CAAC;IAE7B,QAAQ,EAAE,SAAS,CAAC;IAEpB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,SAAS,CAAC,EAAE;QACV,GAAG,CAAC,EAAE,yBAAyB,CAAC;QAChC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;QACrC,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,eAAe,CAAC,EAAE,KAAK,CAAC;YACtB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,yBAAyB,CAAC;SACrC,CAAC,CAAC;KACJ,CAAC;CACH;AAMD,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC3C,sBAAsB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IAGzE,eAAe,CAAC,EAAE,WAAW,CAAC;IAE9B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAElC,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAElC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,CAAC;IAEzB,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,kBAAkB,CAAC,EAAE,OAAO,CAC1B,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,UAAU,CAAC,EAAE,yBAAyB,CAAC,CAC/E,CAAC;CACH;AAED,MAAM,CAAC,OAAO,UAAU,iCAAiC,CACvD,OAAO,EAAE,yBAAyB,GACjC,MAAM,CAAC;AAEV,MAAM,CAAC,OAAO,UAAU,mCAAmC,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;AAE1F,MAAM,CAAC,OAAO,UAAU,sCAAsC,IAAI,MAAM,CAAC;AAEzE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAAC,GACrC,QAAQ,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAAC,GACrC,QAAQ,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC"}
1
+ {"version":3,"file":"firmwareUpdate.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.2.0-alpha.88",
3
+ "version": "1.2.0-alpha.89",
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.88",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.88",
28
+ "@onekeyfe/hd-shared": "1.2.0-alpha.89",
29
+ "@onekeyfe/hd-transport": "1.2.0-alpha.89",
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": "004b8385657f82848f58fd91f25bd3d12d7e33c7"
47
+ "gitHead": "4730d9cdba7270cd9aef237a9076b36dd89f37c1"
48
48
  }