@onekeyfe/hd-core 1.1.20-alpha.2 → 1.1.20
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/data-manager/DataManager.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +45 -12
- package/dist/types/settings.d.ts +1 -0
- package/dist/types/settings.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/data-manager/DataManager.ts +49 -13
- package/src/types/settings.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataManager.d.ts","sourceRoot":"","sources":["../../src/data-manager/DataManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiBjE,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,eAAe,wEAKlB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,IAAI,CAAC;AAqB7C,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,MAAM,CAAC,SAAS,EAAE,aAAa,CAyB7B;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC;IAEjC,MAAM,CAAC,QAAQ,EAAE;SAAG,OAAO,IAAI,cAAc,GAAG,IAAI;KAAE,CAGpD;IAEF,MAAM,CAAC,kBAAkB,SAAK;IAE9B,MAAM,CAAC,iBAAiB,aACZ,QAAQ,gBACJ,aAAa,KAC1B,qBAAqB,CAyBtB;IAMF,MAAM,CAAC,4BAA4B;kBAKvB,QAAQ;;sBAEJ,aAAa;6BAqB3B;IAMF,MAAM,CAAC,kBAAkB,aAAc,QAAQ,gBAAgB,aAAa,wBAe1E;IAEF,MAAM,CAAC,qBAAqB,aAAc,QAAQ,gBAAgB,aAAa,wBAmB7E;IAEF,MAAM,CAAC,0BAA0B,aACrB,QAAQ,gBACJ,aAAa,KAC1B,aAAa,GAAG,SAAS,CAa1B;IAEF,MAAM,CAAC,mCAAmC,aAC9B,QAAQ,gBACJ,aAAa,KAC1B,aAAa,GAAG,SAAS,CAgB1B;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ,gBAAgB,aAAa;;;QAuB5E;IAEF,MAAM,CAAC,wBAAwB,aAAc,QAAQ,gBAAgB,aAAa,yDAsBhF;IAEF,MAAM,CAAC,oBAAoB,aAAc,QAAQ,KAAG,wBAAwB,CAc1E;IAEF,MAAM,CAAC,uBAAuB,aAAc,QAAQ;;;QAalD;IAEF,MAAM,CAAC,2BAA2B,aAAc,QAAQ,4DAMtD;IAEF,MAAM,CAAC,kBAAkB,iBAAkB,MAAM,KAAG,gBAAgB,CAKlE;IAEF,MAAM,CAAC,kBAAkB;;;kBAAuC;IAEhE,OAAO,CAAC,MAAM,CAAC,yBAAyB;WA4C3B,IAAI,CAAC,QAAQ,EAAE,eAAe;IAiE3C,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC;WAalC,kBAAkB;IAQ/B,MAAM,CAAC,mBAAmB,CAAC,cAAc,GAAE,cAAyB,GAAG,IAAI;IAI3E,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,eAAe;IAEpD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAU/E,MAAM,CAAC,YAAY,QAAS,eAAe,CAAC,KAAK,CAAC,aAC0B;IAG5E,MAAM,CAAC,eAAe,QAAS,eAAe,CAAC,KAAK,CAAC,aAA8B;IAGnF,MAAM,CAAC,eAAe,QAAS,eAAe,CAAC,KAAK,CAAC,aAAsB;CAC5E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -184,6 +184,7 @@ type ConnectSettings = {
|
|
|
184
184
|
preRelease?: boolean;
|
|
185
185
|
fetchConfig?: boolean;
|
|
186
186
|
extension?: string;
|
|
187
|
+
configFetcher?: (url: string) => Promise<RemoteConfigResponse | null>;
|
|
187
188
|
};
|
|
188
189
|
type IVersionArray = [number, number, number];
|
|
189
190
|
type ILocale = 'zh-CN' | 'en-US';
|
package/dist/index.js
CHANGED
|
@@ -787,7 +787,7 @@ const createLogMessage = (type, payload) => ({
|
|
|
787
787
|
|
|
788
788
|
const MAX_ENTRIES = 500;
|
|
789
789
|
let postMessage$1;
|
|
790
|
-
class Log$
|
|
790
|
+
class Log$g {
|
|
791
791
|
constructor(prefix, enabled) {
|
|
792
792
|
this.prefix = prefix;
|
|
793
793
|
this.enabled = enabled;
|
|
@@ -839,7 +839,7 @@ class Log$f {
|
|
|
839
839
|
}
|
|
840
840
|
const _logs = {};
|
|
841
841
|
const initLog = (prefix, enabled) => {
|
|
842
|
-
const instance = new Log$
|
|
842
|
+
const instance = new Log$g(prefix, !!enabled);
|
|
843
843
|
_logs[prefix] = instance;
|
|
844
844
|
return instance;
|
|
845
845
|
};
|
|
@@ -1035,7 +1035,7 @@ function patchFeatures(response) {
|
|
|
1035
1035
|
return response;
|
|
1036
1036
|
}
|
|
1037
1037
|
|
|
1038
|
-
const Log$
|
|
1038
|
+
const Log$f = getLogger(exports.LoggerNames.Core);
|
|
1039
1039
|
let globalInstanceCounter = 0;
|
|
1040
1040
|
let sdkInstanceCounter = 0;
|
|
1041
1041
|
function generateSdkInstanceId() {
|
|
@@ -1095,7 +1095,7 @@ function completeRequestContext(responseID, error) {
|
|
|
1095
1095
|
context.status = error ? 'error' : 'success';
|
|
1096
1096
|
if (error) {
|
|
1097
1097
|
context.error = error.message;
|
|
1098
|
-
Log$
|
|
1098
|
+
Log$f.error(`[RequestContext] [completeRequestContext] Error: ${formatRequestContext(context)}`);
|
|
1099
1099
|
}
|
|
1100
1100
|
globalActiveRequests.delete(responseID);
|
|
1101
1101
|
if (context.sdkInstanceId) {
|
|
@@ -25046,6 +25046,7 @@ const findLatestRelease = (releases) => {
|
|
|
25046
25046
|
};
|
|
25047
25047
|
|
|
25048
25048
|
var _a$1;
|
|
25049
|
+
const Log$e = getLogger(exports.LoggerNames.Core);
|
|
25049
25050
|
const FIRMWARE_FIELDS = [
|
|
25050
25051
|
'firmware',
|
|
25051
25052
|
'firmware-v2',
|
|
@@ -25100,13 +25101,44 @@ class DataManager {
|
|
|
25100
25101
|
if (!settings.fetchConfig) {
|
|
25101
25102
|
return;
|
|
25102
25103
|
}
|
|
25103
|
-
|
|
25104
|
-
|
|
25105
|
-
|
|
25106
|
-
|
|
25107
|
-
|
|
25108
|
-
|
|
25109
|
-
|
|
25104
|
+
const url = settings.preRelease
|
|
25105
|
+
? 'https://data.onekey.so/pre-config.json'
|
|
25106
|
+
: 'https://data.onekey.so/config.json';
|
|
25107
|
+
const urlWithCache = `${url}?noCache=${getTimeStamp()}`;
|
|
25108
|
+
let data = null;
|
|
25109
|
+
let fetchMethod = 'none';
|
|
25110
|
+
if (settings.configFetcher) {
|
|
25111
|
+
Log$e.debug('[DataConfig] Trying configFetcher (client-side fetcher)...');
|
|
25112
|
+
try {
|
|
25113
|
+
data = yield settings.configFetcher(urlWithCache);
|
|
25114
|
+
if (data) {
|
|
25115
|
+
fetchMethod = 'configFetcher';
|
|
25116
|
+
Log$e.log('[DataConfig] ConfigFetcher success');
|
|
25117
|
+
}
|
|
25118
|
+
else {
|
|
25119
|
+
Log$e.debug('[DataConfig] ConfigFetcher returned null, will fallback to axios');
|
|
25120
|
+
}
|
|
25121
|
+
}
|
|
25122
|
+
catch (e) {
|
|
25123
|
+
Log$e.warn('[DataConfig] ConfigFetcher error, will fallback to axios:', e);
|
|
25124
|
+
}
|
|
25125
|
+
}
|
|
25126
|
+
if (!data) {
|
|
25127
|
+
Log$e.debug('[DataConfig] Trying axios (SDK default fetcher)...');
|
|
25128
|
+
try {
|
|
25129
|
+
const response = yield axios__default["default"].get(urlWithCache, {
|
|
25130
|
+
timeout: 7000,
|
|
25131
|
+
});
|
|
25132
|
+
data = response.data;
|
|
25133
|
+
fetchMethod = 'axios';
|
|
25134
|
+
Log$e.log('[DataConfig] Axios fetch success');
|
|
25135
|
+
}
|
|
25136
|
+
catch (e) {
|
|
25137
|
+
Log$e.warn('[DataConfig] Axios fetch error:', e);
|
|
25138
|
+
}
|
|
25139
|
+
}
|
|
25140
|
+
if (data) {
|
|
25141
|
+
Log$e.log(`[DataConfig] Config loaded successfully via [${fetchMethod}]`);
|
|
25110
25142
|
this.deviceMap = {
|
|
25111
25143
|
[hdShared.EDeviceType.Classic]: this.enrichFirmwareReleaseInfo(data.classic),
|
|
25112
25144
|
[hdShared.EDeviceType.Classic1s]: this.enrichFirmwareReleaseInfo(data.classic1s),
|
|
@@ -25119,7 +25151,8 @@ class DataManager {
|
|
|
25119
25151
|
bridge: data.bridge,
|
|
25120
25152
|
};
|
|
25121
25153
|
}
|
|
25122
|
-
|
|
25154
|
+
else {
|
|
25155
|
+
Log$e.warn('[DataConfig] All fetch methods failed, using built-in default config');
|
|
25123
25156
|
}
|
|
25124
25157
|
});
|
|
25125
25158
|
}
|
package/dist/types/settings.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export type ConnectSettings = {
|
|
|
20
20
|
preRelease?: boolean;
|
|
21
21
|
fetchConfig?: boolean;
|
|
22
22
|
extension?: string;
|
|
23
|
+
configFetcher?: (url: string) => Promise<RemoteConfigResponse | null>;
|
|
23
24
|
};
|
|
24
25
|
export type IVersionArray = [number, number, number];
|
|
25
26
|
export type ILocale = 'zh-CN' | 'en-US';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,KAAK,GACL,cAAc,GACd,UAAU,GACV,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,iBAAiB,GACjB,UAAU,GACV,UAAU,CAAC;AACf,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,GAAG,EAAE,YAAY,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.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.1.20
|
|
3
|
+
"version": "1.1.20",
|
|
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.1.20
|
|
29
|
-
"@onekeyfe/hd-transport": "1.1.20
|
|
28
|
+
"@onekeyfe/hd-shared": "1.1.20",
|
|
29
|
+
"@onekeyfe/hd-transport": "1.1.20",
|
|
30
30
|
"axios": "1.12.2",
|
|
31
31
|
"bignumber.js": "^9.0.2",
|
|
32
32
|
"bytebuffer": "^5.0.1",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"@types/w3c-web-usb": "^1.0.10",
|
|
45
45
|
"@types/web-bluetooth": "^0.0.21"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "3f1367f1ad5253e2207442e74fa47361df7ff442"
|
|
48
48
|
}
|
|
@@ -5,11 +5,13 @@ import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
|
|
|
5
5
|
import MessagesJSON from '../data/messages/messages.json';
|
|
6
6
|
import MessagesLegacyV1JSON from '../data/messages/messages_legacy_v1.json';
|
|
7
7
|
import {
|
|
8
|
+
LoggerNames,
|
|
8
9
|
getDeviceBLEFirmwareVersion,
|
|
9
10
|
getDeviceFirmwareVersion,
|
|
10
11
|
getDeviceType,
|
|
11
12
|
getFirmwareType,
|
|
12
13
|
getFirmwareUpdateField,
|
|
14
|
+
getLogger,
|
|
13
15
|
getTimeStamp,
|
|
14
16
|
} from '../utils';
|
|
15
17
|
import { DeviceModelToTypes } from '../types';
|
|
@@ -27,6 +29,8 @@ import type {
|
|
|
27
29
|
RemoteConfigResponse,
|
|
28
30
|
} from '../types';
|
|
29
31
|
|
|
32
|
+
const Log = getLogger(LoggerNames.Core);
|
|
33
|
+
|
|
30
34
|
export const FIRMWARE_FIELDS = [
|
|
31
35
|
'firmware',
|
|
32
36
|
'firmware-v2',
|
|
@@ -387,18 +391,50 @@ export default class DataManager {
|
|
|
387
391
|
if (!settings.fetchConfig) {
|
|
388
392
|
return;
|
|
389
393
|
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
394
|
+
|
|
395
|
+
const url = settings.preRelease
|
|
396
|
+
? 'https://data.onekey.so/pre-config.json'
|
|
397
|
+
: 'https://data.onekey.so/config.json';
|
|
398
|
+
|
|
399
|
+
const urlWithCache = `${url}?noCache=${getTimeStamp()}`;
|
|
400
|
+
let data: RemoteConfigResponse | null = null;
|
|
401
|
+
let fetchMethod: 'configFetcher' | 'axios' | 'none' = 'none';
|
|
402
|
+
|
|
403
|
+
// 1. Try custom configFetcher first (client-side IP direct connection support)
|
|
404
|
+
if (settings.configFetcher) {
|
|
405
|
+
Log.debug('[DataConfig] Trying configFetcher (client-side fetcher)...');
|
|
406
|
+
try {
|
|
407
|
+
data = await settings.configFetcher(urlWithCache);
|
|
408
|
+
if (data) {
|
|
409
|
+
fetchMethod = 'configFetcher';
|
|
410
|
+
Log.log('[DataConfig] ConfigFetcher success');
|
|
411
|
+
} else {
|
|
412
|
+
Log.debug('[DataConfig] ConfigFetcher returned null, will fallback to axios');
|
|
400
413
|
}
|
|
401
|
-
)
|
|
414
|
+
} catch (e) {
|
|
415
|
+
Log.warn('[DataConfig] ConfigFetcher error, will fallback to axios:', e);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// 2. Fallback to default axios request
|
|
420
|
+
if (!data) {
|
|
421
|
+
Log.debug('[DataConfig] Trying axios (SDK default fetcher)...');
|
|
422
|
+
try {
|
|
423
|
+
const response = await axios.get<RemoteConfigResponse>(urlWithCache, {
|
|
424
|
+
// because of iframe timeout is 10000
|
|
425
|
+
timeout: 7000,
|
|
426
|
+
});
|
|
427
|
+
data = response.data;
|
|
428
|
+
fetchMethod = 'axios';
|
|
429
|
+
Log.log('[DataConfig] Axios fetch success');
|
|
430
|
+
} catch (e) {
|
|
431
|
+
Log.warn('[DataConfig] Axios fetch error:', e);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
// 3. Apply config if available
|
|
436
|
+
if (data) {
|
|
437
|
+
Log.log(`[DataConfig] Config loaded successfully via [${fetchMethod}]`);
|
|
402
438
|
this.deviceMap = {
|
|
403
439
|
[EDeviceType.Classic]: this.enrichFirmwareReleaseInfo(data.classic),
|
|
404
440
|
[EDeviceType.Classic1s]: this.enrichFirmwareReleaseInfo(data.classic1s),
|
|
@@ -410,8 +446,8 @@ export default class DataManager {
|
|
|
410
446
|
this.assets = {
|
|
411
447
|
bridge: data.bridge,
|
|
412
448
|
};
|
|
413
|
-
}
|
|
414
|
-
|
|
449
|
+
} else {
|
|
450
|
+
Log.warn('[DataConfig] All fetch methods failed, using built-in default config');
|
|
415
451
|
}
|
|
416
452
|
}
|
|
417
453
|
|
package/src/types/settings.ts
CHANGED