@onekeyfe/hd-core 1.2.0-alpha.118 → 1.2.0-alpha.119

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.
@@ -1,5 +1,4 @@
1
1
  import { Buffer } from 'buffer';
2
-
3
2
  import { encode as encodeJpeg } from 'jpeg-js';
4
3
 
5
4
  import { decodeCanonicalBase64, decodeJpegBase64ToRgba } from '../src/api/helpers/base64Data';
@@ -2,6 +2,7 @@ import { EDeviceType, HardwareErrorCode } from '@onekeyfe/hd-shared';
2
2
  import { DeviceSettingsPage } from '@onekeyfe/hd-transport';
3
3
 
4
4
  import DeviceSettings from '../src/api/device/DeviceSettings';
5
+ import { DEVICE_SETTINGS_NEVER_TIMEOUT_MS } from '../src/utils/deviceSettings';
5
6
 
6
7
  import type { Features } from '../src/types';
7
8
 
@@ -115,6 +116,39 @@ describe('DeviceSettings protocol routing', () => {
115
116
  );
116
117
  });
117
118
 
119
+ it('normalizes legacy Protocol V1 never values before ApplySettings', async () => {
120
+ const { device, typedCall, updateState } = createDevice({ protocol: 'V1' });
121
+ const method = new DeviceSettings({
122
+ id: 2,
123
+ payload: {
124
+ method: 'deviceSettings',
125
+ autoLockDelayMs: 0,
126
+ autoShutdownDelayMs: 0,
127
+ },
128
+ });
129
+ method.init();
130
+ (method as any).device = device;
131
+
132
+ await expect(method.run()).resolves.toEqual({ message: 'Success' });
133
+ expect(typedCall).toHaveBeenCalledWith(
134
+ 'ApplySettings',
135
+ 'Success',
136
+ expect.objectContaining({
137
+ auto_lock_delay_ms: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
138
+ auto_shutdown_delay_ms: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
139
+ })
140
+ );
141
+ expect(updateState).toHaveBeenCalledWith(
142
+ {
143
+ settings: {
144
+ autoLockDelayMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
145
+ autoShutdownDelayMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
146
+ },
147
+ },
148
+ 'settings-write'
149
+ );
150
+ });
151
+
118
152
  it('uses DeviceSettingsSet and reloads Protocol V2 status and settings from the device', async () => {
119
153
  const { device, typedCall, updateState, getDeviceState } = createDevice({ protocol: 'V2' });
120
154
  const method = new DeviceSettings({
@@ -1,6 +1,7 @@
1
1
  import { EDeviceType } from '@onekeyfe/hd-shared';
2
2
 
3
3
  import {
4
+ DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
4
5
  PROTOCOL_V2_NEVER_TIMEOUT_MS,
5
6
  getAutoLockOptions,
6
7
  getAutoShutDownOptions,
@@ -81,10 +82,14 @@ describe('Pro 2 device settings options', () => {
81
82
  );
82
83
  });
83
84
 
84
- test('keeps the legacy and Protocol V2 never values protocol-specific', () => {
85
+ test('returns the firmware-supported never value for both protocols', () => {
85
86
  expect(getAutoLockOptions(EDeviceType.Pro, 'V1').slice(-1)[0]).toEqual({
86
87
  label: 'Never',
87
- valueMs: 0,
88
+ valueMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
89
+ });
90
+ expect(getAutoShutDownOptions(EDeviceType.Pro, 'V1').slice(-1)[0]).toEqual({
91
+ label: 'Never',
92
+ valueMs: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
88
93
  });
89
94
  expect(getAutoLockOptions(EDeviceType.Pro2, 'V2').slice(-1)[0]).toEqual({
90
95
  label: 'Never',
@@ -234,7 +234,11 @@ describe('FirmwareUpdatePreparedPlan', () => {
234
234
  },
235
235
  ],
236
236
  });
237
- const resourceArtifact = prepared.artifacts.find(item => item.target === 'resource')!;
237
+ const resourceArtifact = prepared.artifacts.find(item => item.target === 'resource');
238
+ expect(resourceArtifact).toBeDefined();
239
+ if (!resourceArtifact) {
240
+ throw new Error('Expected prepared resource artifact');
241
+ }
238
242
  const tamperedWithoutDigest = {
239
243
  ...prepared,
240
244
  artifacts: prepared.artifacts.map(item =>
@@ -242,7 +246,7 @@ describe('FirmwareUpdatePreparedPlan', () => {
242
246
  ? {
243
247
  ...item,
244
248
  materializedEntries: [
245
- ...resourceArtifact.materializedEntries!,
249
+ ...(resourceArtifact.materializedEntries ?? []),
246
250
  {
247
251
  entryName: 'other/index.bin',
248
252
  artifact: artifact('d'.repeat(64), 2),
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceSettings.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceSettings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAe3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAuD5D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU,CAAC,aAAa,CAAC;IACnE,qBAAqB;IAIrB,IAAI;IAwEJ,eAAe;;;;;;;IAWT,GAAG;CAgIV"}
1
+ {"version":3,"file":"DeviceSettings.d.ts","sourceRoot":"","sources":["../../../src/api/device/DeviceSettings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgB3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA0D5D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU,CAAC,aAAa,CAAC;IACnE,qBAAqB;IAIrB,IAAI;IAwEJ,eAAe;;;;;;;IAWT,GAAG;CAyIV"}
package/dist/index.d.ts CHANGED
@@ -4774,6 +4774,7 @@ type DeviceSettingsField = keyof DeviceSettingsParams;
4774
4774
  declare const DEVICE_SETTINGS_SHARED_FIELDS: readonly ["language", "label", "usePassphrase", "autoLockDelayMs", "autoShutdownDelayMs", "hapticFeedback", "bluetoothEnabled"];
4775
4775
  declare const DEVICE_SETTINGS_V1_ONLY_FIELDS: readonly ["homescreen", "passphraseSource", "displayRotation", "passphraseAlwaysOnDevice", "safetyChecks", "experimentalFeatures", "changeBrightness"];
4776
4776
  declare const DEVICE_SETTINGS_V2_ONLY_FIELDS: readonly ["brightness", "airgapMode", "animationEnabled", "tapToWake", "deviceNameDisplayEnabled", "fidoEnabled", "usbLockEnabled", "randomKeypad"];
4777
+ declare const DEVICE_SETTINGS_NEVER_TIMEOUT_MS = 268435456;
4777
4778
  declare const PROTOCOL_V2_NEVER_TIMEOUT_MS = 268435456;
4778
4779
  declare const normalizeSafetyCheckLevel: (value: SafetyCheckLevel | null | undefined) => Enum_SafetyCheckLevel | null | undefined;
4779
4780
  declare const getLanguageConfig: (deviceType: IDeviceType) => Record<string, string>[];
@@ -4889,4 +4890,4 @@ declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, can
4889
4890
  declare const HardwareSDKLowLevel: ({ init, call, dispose, eventEmitter, addHardwareGlobalEventListener, uiResponse, cancel, updateSettings, switchTransport, }: LowLevelInjectApi) => LowLevelCoreApi;
4890
4891
  declare const HardwareTopLevelSdk: () => CoreApi;
4891
4892
 
4892
- export { AccountAddress, AccountAddresses, AlephiumAddress, AlephiumGetAddressParams, AlephiumSignMessageParams, AlephiumSignTransactionParams, AlephiumSignedTx, AlgoAddress, AlgoGetAddressParams, AlgoSignTransactionParams, AlgoSignedTx, AllFirmwareRelease, AllNetworkAddressParams, AllNetworkGetAddressParams, AptosAddress, AptosGetAddressParams, AptosGetPublicKeyParams, AptosMessageSignature, AptosPublicKey, AptosSignInMessageParams, AptosSignInMessageSignature, AptosSignMessageParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BenfenAddress, BenfenGetAddressParams, BenfenGetPublicKeyParams, BenfenPublicKey, BenfenSignMessageParams, BenfenSignTransactionParams, BenfenSignedTx, BleReleaseInfoEvent, BleReleaseInfoPayload, BridgeReleaseCheckResult, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CardanoAddress, CardanoGetAddressMethodParams, CardanoGetAddressParams, CardanoSignMessageMethodParams, CardanoSignMessageParams, CardanoSignTransaction, CardanoSignedTxData, CipheredKeyValue, CipheredKeyValueParams, ClearSessionCacheParams, ClearSessionCachePayload, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, CosmosAddress, CosmosGetAddressParams, CosmosGetPublicKeyParams, CosmosPublicKey, CosmosSignTransactionParams, CosmosSignedTx, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DEVICE_SETTINGS_SHARED_FIELDS, DEVICE_SETTINGS_V1_ONLY_FIELDS, DEVICE_SETTINGS_V2_ONLY_FIELDS, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesMode, DeviceFeaturesPayload, DeviceFeaturesProtocol, DeviceFeaturesRaw, DeviceFeaturesRawPatch, DeviceFeaturesVerify, DeviceFirmwareRange, DeviceFlagsParams, DeviceModelToTypes, DeviceProgress, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendState, DeviceSendSupportFeatures, DeviceSettingsCapabilities, DeviceSettingsDurationOption, DeviceSettingsField, DeviceSettingsParams, DeviceSettingsProtocol, DeviceSettingsValueOption, DeviceState, DeviceStateEvent, DeviceStateIdentity, DeviceStateMode, DeviceStatePatch, DeviceStateProtocol, DeviceStateScope, DeviceStateSection, DeviceStateSecurityElement, DeviceStateSecurityElements, DeviceStateSecurityElementsPatch, DeviceStateSettings, DeviceStateStatus, DeviceStateUpdateSource, DeviceStateVersions, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceTypeToModels, DeviceUnlockParams, DeviceUploadResourceParams, DeviceUploadResourceResponse, DeviceVerifyParams, DeviceVerifySignature, DnxAddress, DnxGetAddressParams, DnxSignTransactionParams, DnxSignature, DnxTxKey, EOneKeyDeviceMode, EVMAccessList, EVMAddress, EVMAuthorization, EVMAuthorizationSignature, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMTransactionEIP7702, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FilecoinAddress, FilecoinGetAddressParams, FilecoinSignTransactionParams, FilecoinSignedTx, FirmwareArtifactReader, FirmwareArtifactReference, FirmwareEvent, FirmwareMemoryArtifact, FirmwareMemoryArtifactEntry, FirmwareMessage, FirmwareProcessing, FirmwareProgress, FirmwareRange, FirmwareRelease, FirmwareReleaseCheckResult, FirmwareTip, FirmwareUpdateArtifactParams, FirmwareUpdateBinaryParams, FirmwareUpdateCapabilities, FirmwareUpdateHostBinding, FirmwareUpdateParams, FirmwareUpdatePlan, FirmwareUpdatePlanArtifact, FirmwareUpdatePlanArtifactRole, FirmwareUpdatePlanForceTarget, FirmwareUpdatePlanTarget, FirmwareUpdatePreparedArtifact, FirmwareUpdatePreparedArtifactInput, FirmwareUpdatePreparedEntry, FirmwareUpdatePreparedPlan, FirmwareUpdateTipMessage, FirmwareUpdateV3Params, FirmwareUpdateV4MemoryHost, FirmwareUpdateV4Params, FirmwareUpdateV4Target, GetDeviceStateParams, GetPassphraseStateParams, HardwareSDKLowLevel, HardwareTopLevelSdk, HardwareUiInteractionMeta, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareField, IFirmwareReleaseInfo, IFirmwareUpdateProgressType, IFirmwareUpdateTipMessage, IFrameBridge, IFrameCallMessage, IFrameCallback, IFrameCallbackMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, IFrameSwitchTransport, IFrameSwitchTransportMessage, ILocale, IProtocolV2FirmwareComponent, IProtocolV2FirmwareComponentTarget, IProtocolV2ResourceManifest, IProtocolV2ResourceManifestFile, IProtocolV2ResourceSource, IProtocolV2Resources, ITransportStatus, IVersionArray, IVersionRange, KaspaAddress, KaspaGetAddressParams, KaspaSignInputParams, KaspaSignOutputParams, KaspaSignTransactionParams, KaspaSignature, KaspaStreamingSignInputParams, KaspaStreamingSignOutputParams, KnownDevice, LOG, LOG_EVENT, LogBlockEvent, LogEvent, LogEventMessage, LogOutput, LoggerNames, LowLevelCoreApi, LowLevelInjectApi, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, NervosAddress, NervosGetAddressParams, NervosSignTransactionParams, NervosSignedTx, NexaAddress, NexaGetAddressParams, NexaSignInputParams, NexaSignOutputParams, NexaSignTransactionParams, NexaSignature, NormalizedFeatures, OnekeyFeatures, OpenWalletSessionMode, OpenWalletSessionModeValue, OpenWalletSessionParams, OpenWalletSessionPayload, PRO2_WALLPAPER_HEIGHT, PRO2_WALLPAPER_WIDTH, PROTOCOL_V2_NEVER_TIMEOUT_MS, Params, PassphraseRequestPayload, PolkadotAddress, PolkadotGetAddressParams, PolkadotSignTransactionParams, PolkadotSignedTx, PostMessageEvent, PreviousAddressResult, Pro2WallpaperColorFormat, ProtocolV2ComponentReleaseInfo, ProtocolV2FirmwareComponentRelease, ProtocolV2FirmwareComponentReleaseStatus, ProtocolV2FirmwareReleaseStatus, ProtocolV2UiCompletion, ProtocolV2UiEventMetadata, ProtocolV2UiEventSource, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, RequestContext, Response, ScdoAddress, ScdoGetAddressParams, ScdoSignMessageParams, ScdoSignTransactionParams, ScdoSignedTx, SdkTracingContext, SearchDevice, SignedTransaction, SolSignMessageParams, SolSignMessageResponse, SolSignOffchainMessageParams, SolSignOffchainMessageResponse, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SuiAddress, SuiGetAddressParams, SuiGetPublicKeyParams, SuiPublicKey, SuiSignMessageParams, SuiSignTransactionParams, SuiSignedTx, SupportFeatureType, SupportFeatures, TestProtocolV2PingParams, TonAddress, TonGetAddressParams, TonSignDataParams, TonSignMessageParams, TonSignProofParams, TopLevelInjectApi, TransactionOptions, TransportReleaseStatus, TronAddress, TronDelegateResourceContract, TronFreezeBalanceV2Contract, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceV2Contract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestFirmwareProgressing, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestSelectDeviceForSwitchFirmwareWebDevice, UiRequestSelectDeviceInBootloaderForWebDevice, UiRequestWindowClose, UiRequestWithoutPayload, UiResponseCorrelation, UiResponseCorrelationFields, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UiResponseSelectDeviceForSwitchFirmwareWebDevice, UiResponseSelectDeviceInBootloaderForWebDevice, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, checkNeedUpdateBootForClassicAndMini, checkNeedUpdateBootForTouch, cleanupCallback, cleanupSdkInstance, completeRequestContext, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createRequestContext, createResponseMessage, createSdkTracingContext, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, encodePro2Wallpaper, executeCallback, formatLogMethodLabel, formatRequestContext, generateInstanceId, generateSdkInstanceId, getActiveRequestsByDeviceInstance, getAutoLockOptions, getAutoShutDownOptions, getDeviceBLEFirmwareVersion, getDeviceBleName, getDeviceBoardloaderVersion, getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceSerialNo, getDeviceSettingsCapabilities, getDeviceType, getDeviceTypeByBleName, getDeviceUUID, getEnv, getFirmwareType, getFirmwareUpdateField, getFirmwareUpdateFieldArray, getFirmwareUpdateHostBindingGeneration, getHDPath, getHomeScreenDefaultList, getHomeScreenHex, getHomeScreenSize, getLanguageConfig, getLog, getLogBlockLabel, getLogger, getMethodSupportedProtocols, getMethodVersionRange, getNftSize, getOutputScriptType, getSDKVersion, getSafeLogPayload, getScriptType, getTimeStamp, httpRequest, init$1 as initCore, isBleConnect, isValidVersionArray, isValidVersionString, normalizeSafetyCheckLevel, normalizeVersionArray, parseConnectSettings, parseMessage, parseProtocolV2ResourceManifest, patchFeatures, preloadSessionCache, prepareFirmwareUpdateV4MemoryHost, projectFeatures as projectDeviceStateFeatures, registerFirmwareUpdateHostBinding, safeThrowError, selectProtocolV2ResourceManifestFiles, setLoggerPostMessage, supportInputPinOnSoftware, switchTransport, transportEnv, unregisterFirmwareUpdateHostBinding, updateRequestContext, versionCompare, versionSplit, wait, whitelist, whitelistExtension };
4893
+ export { AccountAddress, AccountAddresses, AlephiumAddress, AlephiumGetAddressParams, AlephiumSignMessageParams, AlephiumSignTransactionParams, AlephiumSignedTx, AlgoAddress, AlgoGetAddressParams, AlgoSignTransactionParams, AlgoSignedTx, AllFirmwareRelease, AllNetworkAddressParams, AllNetworkGetAddressParams, AptosAddress, AptosGetAddressParams, AptosGetPublicKeyParams, AptosMessageSignature, AptosPublicKey, AptosSignInMessageParams, AptosSignInMessageSignature, AptosSignMessageParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BenfenAddress, BenfenGetAddressParams, BenfenGetPublicKeyParams, BenfenPublicKey, BenfenSignMessageParams, BenfenSignTransactionParams, BenfenSignedTx, BleReleaseInfoEvent, BleReleaseInfoPayload, BridgeReleaseCheckResult, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CardanoAddress, CardanoGetAddressMethodParams, CardanoGetAddressParams, CardanoSignMessageMethodParams, CardanoSignMessageParams, CardanoSignTransaction, CardanoSignedTxData, CipheredKeyValue, CipheredKeyValueParams, ClearSessionCacheParams, ClearSessionCachePayload, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, CosmosAddress, CosmosGetAddressParams, CosmosGetPublicKeyParams, CosmosPublicKey, CosmosSignTransactionParams, CosmosSignedTx, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DEVICE_SETTINGS_NEVER_TIMEOUT_MS, DEVICE_SETTINGS_SHARED_FIELDS, DEVICE_SETTINGS_V1_ONLY_FIELDS, DEVICE_SETTINGS_V2_ONLY_FIELDS, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesMode, DeviceFeaturesPayload, DeviceFeaturesProtocol, DeviceFeaturesRaw, DeviceFeaturesRawPatch, DeviceFeaturesVerify, DeviceFirmwareRange, DeviceFlagsParams, DeviceModelToTypes, DeviceProgress, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendState, DeviceSendSupportFeatures, DeviceSettingsCapabilities, DeviceSettingsDurationOption, DeviceSettingsField, DeviceSettingsParams, DeviceSettingsProtocol, DeviceSettingsValueOption, DeviceState, DeviceStateEvent, DeviceStateIdentity, DeviceStateMode, DeviceStatePatch, DeviceStateProtocol, DeviceStateScope, DeviceStateSection, DeviceStateSecurityElement, DeviceStateSecurityElements, DeviceStateSecurityElementsPatch, DeviceStateSettings, DeviceStateStatus, DeviceStateUpdateSource, DeviceStateVersions, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceTypeToModels, DeviceUnlockParams, DeviceUploadResourceParams, DeviceUploadResourceResponse, DeviceVerifyParams, DeviceVerifySignature, DnxAddress, DnxGetAddressParams, DnxSignTransactionParams, DnxSignature, DnxTxKey, EOneKeyDeviceMode, EVMAccessList, EVMAddress, EVMAuthorization, EVMAuthorizationSignature, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMTransactionEIP7702, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FilecoinAddress, FilecoinGetAddressParams, FilecoinSignTransactionParams, FilecoinSignedTx, FirmwareArtifactReader, FirmwareArtifactReference, FirmwareEvent, FirmwareMemoryArtifact, FirmwareMemoryArtifactEntry, FirmwareMessage, FirmwareProcessing, FirmwareProgress, FirmwareRange, FirmwareRelease, FirmwareReleaseCheckResult, FirmwareTip, FirmwareUpdateArtifactParams, FirmwareUpdateBinaryParams, FirmwareUpdateCapabilities, FirmwareUpdateHostBinding, FirmwareUpdateParams, FirmwareUpdatePlan, FirmwareUpdatePlanArtifact, FirmwareUpdatePlanArtifactRole, FirmwareUpdatePlanForceTarget, FirmwareUpdatePlanTarget, FirmwareUpdatePreparedArtifact, FirmwareUpdatePreparedArtifactInput, FirmwareUpdatePreparedEntry, FirmwareUpdatePreparedPlan, FirmwareUpdateTipMessage, FirmwareUpdateV3Params, FirmwareUpdateV4MemoryHost, FirmwareUpdateV4Params, FirmwareUpdateV4Target, GetDeviceStateParams, GetPassphraseStateParams, HardwareSDKLowLevel, HardwareTopLevelSdk, HardwareUiInteractionMeta, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareField, IFirmwareReleaseInfo, IFirmwareUpdateProgressType, IFirmwareUpdateTipMessage, IFrameBridge, IFrameCallMessage, IFrameCallback, IFrameCallbackMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, IFrameSwitchTransport, IFrameSwitchTransportMessage, ILocale, IProtocolV2FirmwareComponent, IProtocolV2FirmwareComponentTarget, IProtocolV2ResourceManifest, IProtocolV2ResourceManifestFile, IProtocolV2ResourceSource, IProtocolV2Resources, ITransportStatus, IVersionArray, IVersionRange, KaspaAddress, KaspaGetAddressParams, KaspaSignInputParams, KaspaSignOutputParams, KaspaSignTransactionParams, KaspaSignature, KaspaStreamingSignInputParams, KaspaStreamingSignOutputParams, KnownDevice, LOG, LOG_EVENT, LogBlockEvent, LogEvent, LogEventMessage, LogOutput, LoggerNames, LowLevelCoreApi, LowLevelInjectApi, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, NervosAddress, NervosGetAddressParams, NervosSignTransactionParams, NervosSignedTx, NexaAddress, NexaGetAddressParams, NexaSignInputParams, NexaSignOutputParams, NexaSignTransactionParams, NexaSignature, NormalizedFeatures, OnekeyFeatures, OpenWalletSessionMode, OpenWalletSessionModeValue, OpenWalletSessionParams, OpenWalletSessionPayload, PRO2_WALLPAPER_HEIGHT, PRO2_WALLPAPER_WIDTH, PROTOCOL_V2_NEVER_TIMEOUT_MS, Params, PassphraseRequestPayload, PolkadotAddress, PolkadotGetAddressParams, PolkadotSignTransactionParams, PolkadotSignedTx, PostMessageEvent, PreviousAddressResult, Pro2WallpaperColorFormat, ProtocolV2ComponentReleaseInfo, ProtocolV2FirmwareComponentRelease, ProtocolV2FirmwareComponentReleaseStatus, ProtocolV2FirmwareReleaseStatus, ProtocolV2UiCompletion, ProtocolV2UiEventMetadata, ProtocolV2UiEventSource, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, RequestContext, Response, ScdoAddress, ScdoGetAddressParams, ScdoSignMessageParams, ScdoSignTransactionParams, ScdoSignedTx, SdkTracingContext, SearchDevice, SignedTransaction, SolSignMessageParams, SolSignMessageResponse, SolSignOffchainMessageParams, SolSignOffchainMessageResponse, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SuiAddress, SuiGetAddressParams, SuiGetPublicKeyParams, SuiPublicKey, SuiSignMessageParams, SuiSignTransactionParams, SuiSignedTx, SupportFeatureType, SupportFeatures, TestProtocolV2PingParams, TonAddress, TonGetAddressParams, TonSignDataParams, TonSignMessageParams, TonSignProofParams, TopLevelInjectApi, TransactionOptions, TransportReleaseStatus, TronAddress, TronDelegateResourceContract, TronFreezeBalanceV2Contract, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, TronUnDelegateResourceContract, TronUnfreezeBalanceV2Contract, TronWithdrawBalanceContract, TronWithdrawExpireUnfreezeContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestFirmwareProgressing, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestSelectDeviceForSwitchFirmwareWebDevice, UiRequestSelectDeviceInBootloaderForWebDevice, UiRequestWindowClose, UiRequestWithoutPayload, UiResponseCorrelation, UiResponseCorrelationFields, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UiResponseSelectDeviceForSwitchFirmwareWebDevice, UiResponseSelectDeviceInBootloaderForWebDevice, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, checkNeedUpdateBootForClassicAndMini, checkNeedUpdateBootForTouch, cleanupCallback, cleanupSdkInstance, completeRequestContext, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createRequestContext, createResponseMessage, createSdkTracingContext, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, encodePro2Wallpaper, executeCallback, formatLogMethodLabel, formatRequestContext, generateInstanceId, generateSdkInstanceId, getActiveRequestsByDeviceInstance, getAutoLockOptions, getAutoShutDownOptions, getDeviceBLEFirmwareVersion, getDeviceBleName, getDeviceBoardloaderVersion, getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceLabel, getDeviceSerialNo, getDeviceSettingsCapabilities, getDeviceType, getDeviceTypeByBleName, getDeviceUUID, getEnv, getFirmwareType, getFirmwareUpdateField, getFirmwareUpdateFieldArray, getFirmwareUpdateHostBindingGeneration, getHDPath, getHomeScreenDefaultList, getHomeScreenHex, getHomeScreenSize, getLanguageConfig, getLog, getLogBlockLabel, getLogger, getMethodSupportedProtocols, getMethodVersionRange, getNftSize, getOutputScriptType, getSDKVersion, getSafeLogPayload, getScriptType, getTimeStamp, httpRequest, init$1 as initCore, isBleConnect, isValidVersionArray, isValidVersionString, normalizeSafetyCheckLevel, normalizeVersionArray, parseConnectSettings, parseMessage, parseProtocolV2ResourceManifest, patchFeatures, preloadSessionCache, prepareFirmwareUpdateV4MemoryHost, projectFeatures as projectDeviceStateFeatures, registerFirmwareUpdateHostBinding, safeThrowError, selectProtocolV2ResourceManifestFiles, setLoggerPostMessage, supportInputPinOnSoftware, switchTransport, transportEnv, unregisterFirmwareUpdateHostBinding, updateRequestContext, versionCompare, versionSplit, wait, whitelist, whitelistExtension };
package/dist/index.js CHANGED
@@ -42329,7 +42329,12 @@ const DEVICE_SETTINGS_V2_ONLY_FIELDS = [
42329
42329
  'usbLockEnabled',
42330
42330
  'randomKeypad',
42331
42331
  ];
42332
- const PROTOCOL_V2_NEVER_TIMEOUT_MS = 0x10000000;
42332
+ const DEVICE_SETTINGS_NEVER_TIMEOUT_MS = 0x10000000;
42333
+ const PROTOCOL_V2_NEVER_TIMEOUT_MS = DEVICE_SETTINGS_NEVER_TIMEOUT_MS;
42334
+ const NEVER_TIMEOUT_MS_BY_PROTOCOL = {
42335
+ V1: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
42336
+ V2: PROTOCOL_V2_NEVER_TIMEOUT_MS,
42337
+ };
42333
42338
  const normalizeSafetyCheckLevel = (value) => {
42334
42339
  if (typeof value === 'number' || value === null || value === undefined)
42335
42340
  return value;
@@ -42408,7 +42413,7 @@ const getLanguageConfig = (deviceType) => {
42408
42413
  return keys.map(key => ({ code: key, label: LANGUAGE_LABELS[key] }));
42409
42414
  };
42410
42415
  const durationOption = (valueMs) => {
42411
- if (valueMs === 0 || valueMs === PROTOCOL_V2_NEVER_TIMEOUT_MS) {
42416
+ if (valueMs === DEVICE_SETTINGS_NEVER_TIMEOUT_MS) {
42412
42417
  return { label: 'Never', valueMs };
42413
42418
  }
42414
42419
  if (valueMs < 60000) {
@@ -42417,7 +42422,7 @@ const durationOption = (valueMs) => {
42417
42422
  const minutes = valueMs / 60000;
42418
42423
  return { label: `${minutes} ${minutes === 1 ? 'minute' : 'minutes'}`, valueMs };
42419
42424
  };
42420
- const withNever = (values, protocol) => [...values, protocol === 'V2' ? PROTOCOL_V2_NEVER_TIMEOUT_MS : 0].map(durationOption);
42425
+ const withNever = (values, protocol) => [...values, NEVER_TIMEOUT_MS_BY_PROTOCOL[protocol]].map(durationOption);
42421
42426
  const getAutoLockOptions = (deviceType, protocol) => {
42422
42427
  switch (deviceType) {
42423
42428
  case hdShared.EDeviceType.Mini:
@@ -48352,6 +48357,7 @@ const assertSettingsSupported = (payload, unsupported, protocol) => {
48352
48357
  throw invalidParameter$1(`${protocol} does not support settings: ${provided.join(', ')}.`);
48353
48358
  }
48354
48359
  };
48360
+ const normalizeProtocolV1DelayMs = (value) => value === 0 ? DEVICE_SETTINGS_NEVER_TIMEOUT_MS : value;
48355
48361
  const assertProtocolV2SettingValues = (payload, capabilities) => {
48356
48362
  const brightnessRange = capabilities.ranges.brightness;
48357
48363
  if (payload.brightness !== undefined &&
@@ -48509,8 +48515,9 @@ class DeviceSettings extends BaseMethod {
48509
48515
  .map(option => option.value)
48510
48516
  .join(', ')}.`);
48511
48517
  }
48512
- const res = yield this.device.commands.typedCall('ApplySettings', 'Success', Object.assign({}, this.params));
48513
- this.device.updateState(mapApplySettingsToState(this.params), 'settings-write');
48518
+ const protocolV1Params = Object.assign(Object.assign({}, this.params), { auto_lock_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_lock_delay_ms), auto_shutdown_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_shutdown_delay_ms) });
48519
+ const res = yield this.device.commands.typedCall('ApplySettings', 'Success', protocolV1Params);
48520
+ this.device.updateState(mapApplySettingsToState(protocolV1Params), 'settings-write');
48514
48521
  return res.message;
48515
48522
  }
48516
48523
  catch (error) {
@@ -66126,6 +66133,7 @@ exports.Core = Core;
66126
66133
  exports.DEFAULT_PRIORITY = DEFAULT_PRIORITY;
66127
66134
  exports.DEVICE = DEVICE;
66128
66135
  exports.DEVICE_EVENT = DEVICE_EVENT;
66136
+ exports.DEVICE_SETTINGS_NEVER_TIMEOUT_MS = DEVICE_SETTINGS_NEVER_TIMEOUT_MS;
66129
66137
  exports.DEVICE_SETTINGS_SHARED_FIELDS = DEVICE_SETTINGS_SHARED_FIELDS;
66130
66138
  exports.DEVICE_SETTINGS_V1_ONLY_FIELDS = DEVICE_SETTINGS_V1_ONLY_FIELDS;
66131
66139
  exports.DEVICE_SETTINGS_V2_ONLY_FIELDS = DEVICE_SETTINGS_V2_ONLY_FIELDS;
@@ -7,6 +7,7 @@ export type DeviceSettingsField = keyof DeviceSettingsParams;
7
7
  export declare const DEVICE_SETTINGS_SHARED_FIELDS: readonly ["language", "label", "usePassphrase", "autoLockDelayMs", "autoShutdownDelayMs", "hapticFeedback", "bluetoothEnabled"];
8
8
  export declare const DEVICE_SETTINGS_V1_ONLY_FIELDS: readonly ["homescreen", "passphraseSource", "displayRotation", "passphraseAlwaysOnDevice", "safetyChecks", "experimentalFeatures", "changeBrightness"];
9
9
  export declare const DEVICE_SETTINGS_V2_ONLY_FIELDS: readonly ["brightness", "airgapMode", "animationEnabled", "tapToWake", "deviceNameDisplayEnabled", "fidoEnabled", "usbLockEnabled", "randomKeypad"];
10
+ export declare const DEVICE_SETTINGS_NEVER_TIMEOUT_MS = 268435456;
10
11
  export declare const PROTOCOL_V2_NEVER_TIMEOUT_MS = 268435456;
11
12
  export declare const normalizeSafetyCheckLevel: (value: SafetyCheckLevel | null | undefined) => Enum_SafetyCheckLevel | null | undefined;
12
13
  export declare const LANGUAGE_LABELS: {
@@ -1 +1 @@
1
- {"version":3,"file":"deviceSettings.d.ts","sourceRoot":"","sources":["../../src/utils/deviceSettings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,6BAA6B,iIAQS,CAAC;AAEpD,eAAO,MAAM,8BAA8B,wJAQQ,CAAC;AAEpD,eAAO,MAAM,8BAA8B,qJASQ,CAAC;AAEpD,eAAO,MAAM,4BAA4B,YAAa,CAAC;AAEvD,eAAO,MAAM,yBAAyB,UAC7B,gBAAgB,GAAG,IAAI,GAAG,SAAS,KACzC,qBAAqB,GAAG,IAAI,GAAG,SAGjC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;CAYlB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,eAAe,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYnE,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAe,MAAM,uBACgC,CAAC;AAM1F,eAAO,MAAM,yBAAyB,cAAe,MAAM,oGACmB,CAAC;AAsB/E,eAAO,MAAM,iBAAiB,eAAgB,WAAW,KAAG,OAAO,MAAM,EAAE,MAAM,CAAC,EA0BjF,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAmBF,eAAO,MAAM,kBAAkB,eACjB,WAAW,YACb,sBAAsB,KAC/B,4BAA4B,EAe9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,eACrB,WAAW,YACb,sBAAsB,KAC/B,4BAA4B,EAiB9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,oBAAoB,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC9D,wBAAwB,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAClE,MAAM,EAAE;QACN,UAAU,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;IACF,kBAAkB,EAAE,aAAa,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpF,0BAA0B,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC5D,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC5B,WAAW,YACb,sBAAsB,KAC/B,0BAmBD,CAAC"}
1
+ {"version":3,"file":"deviceSettings.d.ts","sourceRoot":"","sources":["../../src/utils/deviceSettings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,6BAA6B,iIAQS,CAAC;AAEpD,eAAO,MAAM,8BAA8B,wJAQQ,CAAC;AAEpD,eAAO,MAAM,8BAA8B,qJASQ,CAAC;AAEpD,eAAO,MAAM,gCAAgC,YAAa,CAAC;AAE3D,eAAO,MAAM,4BAA4B,YAAmC,CAAC;AAO7E,eAAO,MAAM,yBAAyB,UAC7B,gBAAgB,GAAG,IAAI,GAAG,SAAS,KACzC,qBAAqB,GAAG,IAAI,GAAG,SAGjC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;CAYlB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,eAAe,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC;AAEjG,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAYnE,CAAC;AAEF,eAAO,MAAM,uBAAuB,cAAe,MAAM,uBACgC,CAAC;AAM1F,eAAO,MAAM,yBAAyB,cAAe,MAAM,oGACmB,CAAC;AAsB/E,eAAO,MAAM,iBAAiB,eAAgB,WAAW,KAAG,OAAO,MAAM,EAAE,MAAM,CAAC,EA0BjF,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAmBF,eAAO,MAAM,kBAAkB,eACjB,WAAW,YACb,sBAAsB,KAC/B,4BAA4B,EAe9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,eACrB,WAAW,YACb,sBAAsB,KAC/B,4BAA4B,EAiB9B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,eAAe,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,oBAAoB,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAC9D,wBAAwB,EAAE,SAAS,4BAA4B,EAAE,CAAC;IAClE,MAAM,EAAE;QACN,UAAU,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3C,CAAC;IACF,kBAAkB,EAAE,aAAa,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpF,0BAA0B,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC5D,CAAC;AAEF,eAAO,MAAM,6BAA6B,eAC5B,WAAW,YACb,sBAAsB,KAC/B,0BAmBD,CAAC"}
@@ -7,7 +7,7 @@ export { getDeviceTypeByBleName, getDeviceType, getDeviceBleName, getDeviceSeria
7
7
  export { getDeviceBoardloaderVersion, getDeviceBootloaderVersion, getDeviceFirmwareVersion, getDeviceBLEFirmwareVersion, } from './deviceVersionUtils';
8
8
  export { getFirmwareUpdateField, supportInputPinOnSoftware, getFirmwareUpdateFieldArray, } from './deviceFeaturesUtils';
9
9
  export { checkNeedUpdateBootForTouch, checkNeedUpdateBootForClassicAndMini, } from '../api/firmware/updateBootloader';
10
- export { DEVICE_SETTINGS_SHARED_FIELDS, DEVICE_SETTINGS_V1_ONLY_FIELDS, DEVICE_SETTINGS_V2_ONLY_FIELDS, PROTOCOL_V2_NEVER_TIMEOUT_MS, getAutoLockOptions, getAutoShutDownOptions, getDeviceSettingsCapabilities, getLanguageConfig, normalizeSafetyCheckLevel, } from './deviceSettings';
10
+ export { DEVICE_SETTINGS_NEVER_TIMEOUT_MS, DEVICE_SETTINGS_SHARED_FIELDS, DEVICE_SETTINGS_V1_ONLY_FIELDS, DEVICE_SETTINGS_V2_ONLY_FIELDS, PROTOCOL_V2_NEVER_TIMEOUT_MS, getAutoLockOptions, getAutoShutDownOptions, getDeviceSettingsCapabilities, getLanguageConfig, normalizeSafetyCheckLevel, } from './deviceSettings';
11
11
  export type { DeviceSettingsCapabilities, DeviceSettingsDurationOption, DeviceSettingsField, DeviceSettingsProtocol, DeviceSettingsValueOption, } from './deviceSettings';
12
12
  export { getHDPath, getScriptType, getOutputScriptType } from '../api/helpers/pathUtils';
13
13
  export declare const isBleConnect: (env: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC3F,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC7B,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,eAAO,MAAM,YAAY,QAAS,MAAM,YAAiD,CAAC;AAE1F,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAG3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC3F,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,oCAAoC,GACrC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC7B,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,eAAO,MAAM,YAAY,QAAS,MAAM,YAAiD,CAAC;AAE1F,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnG,YAAY,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAG3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onekeyfe/hd-core",
3
- "version": "1.2.0-alpha.118",
3
+ "version": "1.2.0-alpha.119",
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.118",
29
- "@onekeyfe/hd-transport": "1.2.0-alpha.118",
28
+ "@onekeyfe/hd-shared": "1.2.0-alpha.119",
29
+ "@onekeyfe/hd-transport": "1.2.0-alpha.119",
30
30
  "axios": "1.15.2",
31
31
  "bignumber.js": "^9.0.2",
32
32
  "buffer": "^6.0.3",
@@ -46,5 +46,5 @@
46
46
  "@types/w3c-web-usb": "^1.0.10",
47
47
  "@types/web-bluetooth": "^0.0.21"
48
48
  },
49
- "gitHead": "da1c8629c0be39171f494b5eebb3ac6c393a6342"
49
+ "gitHead": "63d9140aec732cf5c3d74bec8d62e6344e14eb10"
50
50
  }
@@ -10,6 +10,7 @@ import {
10
10
  } from '../../device/DeviceStateMapper';
11
11
  import { getProtocolV2SettingsBehavior } from '../../protocols/protocol-v2/settingsUnlockPolicy';
12
12
  import {
13
+ DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
13
14
  DEVICE_SETTINGS_V1_ONLY_FIELDS,
14
15
  DEVICE_SETTINGS_V2_ONLY_FIELDS,
15
16
  LANGUAGE_LABELS,
@@ -30,6 +31,9 @@ const assertSettingsSupported = (
30
31
  }
31
32
  };
32
33
 
34
+ const normalizeProtocolV1DelayMs = (value: number | undefined) =>
35
+ value === 0 ? DEVICE_SETTINGS_NEVER_TIMEOUT_MS : value;
36
+
33
37
  const assertProtocolV2SettingValues = (
34
38
  payload: DeviceSettingsParams,
35
39
  capabilities: ReturnType<typeof getDeviceSettingsCapabilities>
@@ -253,10 +257,19 @@ export default class DeviceSettings extends BaseMethod<ApplySettings> {
253
257
  );
254
258
  }
255
259
 
256
- const res = await this.device.commands.typedCall('ApplySettings', 'Success', {
260
+ // Early SDK 1.2 alphas exposed 0 as Protocol V1 "Never". Normalize at the
261
+ // protocol boundary so existing consumers send the firmware-supported value.
262
+ const protocolV1Params = {
257
263
  ...this.params,
258
- });
259
- this.device.updateState(mapApplySettingsToState(this.params), 'settings-write');
264
+ auto_lock_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_lock_delay_ms),
265
+ auto_shutdown_delay_ms: normalizeProtocolV1DelayMs(this.params.auto_shutdown_delay_ms),
266
+ };
267
+ const res = await this.device.commands.typedCall(
268
+ 'ApplySettings',
269
+ 'Success',
270
+ protocolV1Params
271
+ );
272
+ this.device.updateState(mapApplySettingsToState(protocolV1Params), 'settings-write');
260
273
  return res.message;
261
274
  } catch (error) {
262
275
  if (error.message?.toLowerCase().includes('no setting provided')) {
@@ -39,7 +39,14 @@ export const DEVICE_SETTINGS_V2_ONLY_FIELDS = [
39
39
  'randomKeypad',
40
40
  ] as const satisfies readonly DeviceSettingsField[];
41
41
 
42
- export const PROTOCOL_V2_NEVER_TIMEOUT_MS = 0x10000000;
42
+ export const DEVICE_SETTINGS_NEVER_TIMEOUT_MS = 0x10000000;
43
+ // Keep the protocol-specific name for compatibility with existing SDK consumers.
44
+ export const PROTOCOL_V2_NEVER_TIMEOUT_MS = DEVICE_SETTINGS_NEVER_TIMEOUT_MS;
45
+
46
+ const NEVER_TIMEOUT_MS_BY_PROTOCOL: Record<DeviceSettingsProtocol, number> = {
47
+ V1: DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
48
+ V2: PROTOCOL_V2_NEVER_TIMEOUT_MS,
49
+ };
43
50
 
44
51
  export const normalizeSafetyCheckLevel = (
45
52
  value: SafetyCheckLevel | null | undefined
@@ -148,7 +155,7 @@ export type DeviceSettingsValueOption<T> = {
148
155
  };
149
156
 
150
157
  const durationOption = (valueMs: number): DeviceSettingsDurationOption => {
151
- if (valueMs === 0 || valueMs === PROTOCOL_V2_NEVER_TIMEOUT_MS) {
158
+ if (valueMs === DEVICE_SETTINGS_NEVER_TIMEOUT_MS) {
152
159
  return { label: 'Never', valueMs };
153
160
  }
154
161
  if (valueMs < 60_000) {
@@ -162,7 +169,7 @@ const withNever = (
162
169
  values: readonly number[],
163
170
  protocol: DeviceSettingsProtocol
164
171
  ): DeviceSettingsDurationOption[] =>
165
- [...values, protocol === 'V2' ? PROTOCOL_V2_NEVER_TIMEOUT_MS : 0].map(durationOption);
172
+ [...values, NEVER_TIMEOUT_MS_BY_PROTOCOL[protocol]].map(durationOption);
166
173
 
167
174
  export const getAutoLockOptions = (
168
175
  deviceType: IDeviceType,
@@ -30,6 +30,7 @@ export {
30
30
  checkNeedUpdateBootForClassicAndMini,
31
31
  } from '../api/firmware/updateBootloader';
32
32
  export {
33
+ DEVICE_SETTINGS_NEVER_TIMEOUT_MS,
33
34
  DEVICE_SETTINGS_SHARED_FIELDS,
34
35
  DEVICE_SETTINGS_V1_ONLY_FIELDS,
35
36
  DEVICE_SETTINGS_V2_ONLY_FIELDS,