@onekeyfe/hd-core 1.2.0-alpha.73 → 1.2.0-alpha.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/__tests__/connectSettings.test.ts +5 -45
  2. package/__tests__/devicePoolBootloaderPath.test.ts +64 -0
  3. package/__tests__/firmware-update/firmware-update-v2-download-before-boot.test.ts +31 -59
  4. package/__tests__/protocol-v2.test.ts +100 -405
  5. package/dist/api/CheckAllFirmwareRelease.d.ts.map +1 -1
  6. package/dist/api/FirmwareUpdate.d.ts.map +1 -1
  7. package/dist/api/FirmwareUpdateV2.d.ts +0 -10
  8. package/dist/api/FirmwareUpdateV2.d.ts.map +1 -1
  9. package/dist/api/FirmwareUpdateV3.d.ts +3 -7
  10. package/dist/api/FirmwareUpdateV3.d.ts.map +1 -1
  11. package/dist/api/FirmwareUpdateV4.d.ts +5 -25
  12. package/dist/api/FirmwareUpdateV4.d.ts.map +1 -1
  13. package/dist/api/device/DeviceUpdateBootloader.d.ts +1 -5
  14. package/dist/api/device/DeviceUpdateBootloader.d.ts.map +1 -1
  15. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts +0 -8
  16. package/dist/api/firmware/FirmwareUpdateBaseMethod.d.ts.map +1 -1
  17. package/dist/api/firmware/getBinary.d.ts +0 -7
  18. package/dist/api/firmware/getBinary.d.ts.map +1 -1
  19. package/dist/api/firmware/updateBootloader.d.ts +0 -2
  20. package/dist/api/firmware/updateBootloader.d.ts.map +1 -1
  21. package/dist/api/firmware/uploadFirmware.d.ts +1 -9
  22. package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
  23. package/dist/api/stellar/StellarSignTransaction.d.ts +1 -1
  24. package/dist/core/index.d.ts.map +1 -1
  25. package/dist/data-manager/DataManager.d.ts +0 -1
  26. package/dist/data-manager/DataManager.d.ts.map +1 -1
  27. package/dist/data-manager/connectSettings.d.ts.map +1 -1
  28. package/dist/device/Device.d.ts +0 -1
  29. package/dist/device/Device.d.ts.map +1 -1
  30. package/dist/device/DeviceConnector.d.ts +1 -1
  31. package/dist/device/DeviceConnector.d.ts.map +1 -1
  32. package/dist/device/DevicePool.d.ts +1 -0
  33. package/dist/device/DevicePool.d.ts.map +1 -1
  34. package/dist/index.d.ts +2 -180
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1076 -3080
  37. package/dist/inject.d.ts.map +1 -1
  38. package/dist/lowLevelInject.d.ts.map +1 -1
  39. package/dist/topLevelInject.d.ts.map +1 -1
  40. package/dist/types/api/checkAllFirmwareRelease.d.ts +0 -4
  41. package/dist/types/api/checkAllFirmwareRelease.d.ts.map +1 -1
  42. package/dist/types/api/deviceUpdateBootloader.d.ts +0 -6
  43. package/dist/types/api/deviceUpdateBootloader.d.ts.map +1 -1
  44. package/dist/types/api/export.d.ts +1 -4
  45. package/dist/types/api/export.d.ts.map +1 -1
  46. package/dist/types/api/firmwareUpdate.d.ts +0 -68
  47. package/dist/types/api/firmwareUpdate.d.ts.map +1 -1
  48. package/dist/types/api/index.d.ts +1 -9
  49. package/dist/types/api/index.d.ts.map +1 -1
  50. package/dist/types/settings.d.ts +0 -13
  51. package/dist/types/settings.d.ts.map +1 -1
  52. package/dist/utils/deviceFeaturesCompat.d.ts +0 -1
  53. package/dist/utils/deviceFeaturesCompat.d.ts.map +1 -1
  54. package/package.json +4 -4
  55. package/src/api/CheckAllFirmwareRelease.ts +6 -57
  56. package/src/api/FirmwareUpdate.ts +1 -13
  57. package/src/api/FirmwareUpdateV2.ts +121 -296
  58. package/src/api/FirmwareUpdateV3.ts +57 -263
  59. package/src/api/FirmwareUpdateV4.ts +347 -875
  60. package/src/api/device/DeviceUpdateBootloader.ts +6 -125
  61. package/src/api/firmware/FirmwareUpdateBaseMethod.ts +1 -72
  62. package/src/api/firmware/updateBootloader.ts +4 -19
  63. package/src/api/firmware/uploadFirmware.ts +22 -140
  64. package/src/core/index.ts +16 -0
  65. package/src/data-manager/DataManager.ts +54 -62
  66. package/src/data-manager/connectSettings.ts +0 -11
  67. package/src/device/Device.ts +3 -7
  68. package/src/device/DeviceConnector.ts +2 -2
  69. package/src/device/DevicePool.ts +15 -1
  70. package/src/index.ts +0 -5
  71. package/src/inject.ts +2 -22
  72. package/src/lowLevelInject.ts +1 -5
  73. package/src/topLevelInject.ts +1 -5
  74. package/src/types/api/checkAllFirmwareRelease.ts +0 -4
  75. package/src/types/api/deviceUpdateBootloader.ts +0 -6
  76. package/src/types/api/export.ts +0 -18
  77. package/src/types/api/firmwareUpdate.ts +0 -75
  78. package/src/types/api/index.ts +0 -14
  79. package/src/types/settings.ts +0 -13
  80. package/src/utils/deviceFeaturesCompat.ts +0 -6
  81. package/__tests__/device-initialize-timeout.test.ts +0 -56
  82. package/__tests__/firmware-update/check-all-firmware-release.test.ts +0 -175
  83. package/__tests__/firmware-update/device-update-bootloader.test.ts +0 -87
  84. package/__tests__/firmware-update/firmware-artifact-source.test.ts +0 -119
  85. package/__tests__/firmware-update/firmware-host-binding.test.ts +0 -70
  86. package/__tests__/firmware-update/firmware-preparation-error.test.ts +0 -27
  87. package/__tests__/firmware-update/firmware-update-bootloader-poll.test.ts +0 -200
  88. package/__tests__/firmware-update/firmware-update-capabilities.test.ts +0 -13
  89. package/__tests__/firmware-update/firmware-update-plan-bootloader-identity.test.ts +0 -394
  90. package/__tests__/firmware-update/firmware-update-plan.test.ts +0 -593
  91. package/__tests__/firmware-update/firmware-update-prepared-plan.test.ts +0 -231
  92. package/__tests__/firmware-update/firmware-update-v3-reconnect.test.ts +0 -63
  93. package/__tests__/firmware-update/firmware-upload-source.test.ts +0 -70
  94. package/dist/api/firmware/FirmwareArtifactSource.d.ts +0 -25
  95. package/dist/api/firmware/FirmwareArtifactSource.d.ts.map +0 -1
  96. package/dist/api/firmware/FirmwareHostBinding.d.ts +0 -6
  97. package/dist/api/firmware/FirmwareHostBinding.d.ts.map +0 -1
  98. package/dist/api/firmware/FirmwarePreparationError.d.ts +0 -3
  99. package/dist/api/firmware/FirmwarePreparationError.d.ts.map +0 -1
  100. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts +0 -3
  101. package/dist/api/firmware/FirmwareUpdateCapabilities.d.ts.map +0 -1
  102. package/dist/api/firmware/FirmwareUpdatePlan.d.ts +0 -25
  103. package/dist/api/firmware/FirmwareUpdatePlan.d.ts.map +0 -1
  104. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts +0 -32
  105. package/dist/api/firmware/FirmwareUpdatePreparedPlan.d.ts.map +0 -1
  106. package/dist/types/api/firmwareUpdateCapabilities.d.ts +0 -9
  107. package/dist/types/api/firmwareUpdateCapabilities.d.ts.map +0 -1
  108. package/dist/types/api/firmwareUpdatePlan.d.ts +0 -28
  109. package/dist/types/api/firmwareUpdatePlan.d.ts.map +0 -1
  110. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts +0 -42
  111. package/dist/types/api/firmwareUpdatePreparedPlan.d.ts.map +0 -1
  112. package/src/api/firmware/FirmwareArtifactSource.ts +0 -278
  113. package/src/api/firmware/FirmwareHostBinding.ts +0 -100
  114. package/src/api/firmware/FirmwarePreparationError.ts +0 -12
  115. package/src/api/firmware/FirmwareUpdateCapabilities.ts +0 -9
  116. package/src/api/firmware/FirmwareUpdatePlan.ts +0 -772
  117. package/src/api/firmware/FirmwareUpdatePreparedPlan.ts +0 -449
  118. package/src/types/api/firmwareUpdateCapabilities.ts +0 -9
  119. package/src/types/api/firmwareUpdatePlan.ts +0 -38
  120. package/src/types/api/firmwareUpdatePreparedPlan.ts +0 -53
@@ -1,231 +0,0 @@
1
- import { EDeviceType, EFirmwareType } from '@onekeyfe/hd-shared';
2
-
3
- import { buildFirmwareUpdatePlan } from '../../src/api/firmware/FirmwareUpdatePlan';
4
- import {
5
- assertFirmwareUpdatePreparedPlanDeviceIdentity,
6
- assertFirmwareUpdatePreparedPlanBinding,
7
- prepareFirmwareUpdatePlan,
8
- validateFirmwareUpdatePreparedPlan,
9
- } from '../../src/api/firmware/FirmwareUpdatePreparedPlan';
10
-
11
- import type { Features } from '../../src/types';
12
-
13
- const buildPlan = () =>
14
- buildFirmwareUpdatePlan({
15
- features: {
16
- deviceType: EDeviceType.Classic1s,
17
- serialNo: 'classic1s-device-id',
18
- firmwareVersion: '1.0.0',
19
- bootloaderVersion: '1.0.0',
20
- } as Features,
21
- firmwareType: EFirmwareType.Universal,
22
- platform: 'native',
23
- firmware: {
24
- status: 'outdated',
25
- release: {
26
- url: 'https://firmware.onekey.so/classic/firmware.bin',
27
- expectedSize: 4,
28
- fingerprint: 'a'.repeat(64),
29
- version: [3, 0, 0],
30
- resource: 'https://firmware.onekey.so/classic/resource.zip',
31
- resourceExpectedSize: 8,
32
- resourceFingerprint: 'b'.repeat(64),
33
- },
34
- },
35
- ble: {
36
- status: 'valid',
37
- release: undefined,
38
- },
39
- bootloader: {
40
- status: 'valid',
41
- release: undefined,
42
- },
43
- });
44
-
45
- const artifact = (sha256: string, size: number) => ({
46
- artifactRef: `fw:${sha256}`,
47
- size,
48
- sha256,
49
- });
50
-
51
- describe('FirmwareUpdatePreparedPlan', () => {
52
- test('binds all receipts into a URL-free, network-forbidden plan', () => {
53
- const plan = buildPlan();
54
- const prepared = prepareFirmwareUpdatePlan({
55
- plan,
56
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
57
- artifacts: [
58
- {
59
- artifactId: 'firmware',
60
- artifact: artifact('a'.repeat(64), 4),
61
- },
62
- {
63
- artifactId: 'resource',
64
- artifact: artifact('b'.repeat(64), 8),
65
- materializedEntries: [
66
- {
67
- entryName: 'resource/index.bin',
68
- artifact: artifact('c'.repeat(64), 2),
69
- },
70
- ],
71
- },
72
- ],
73
- });
74
-
75
- expect(prepared.networkPolicy).toBe('forbid');
76
- expect(prepared.planDigest).toBe(plan.planDigest);
77
- expect(prepared.preparedPlanDigest).toMatch(/^[a-f0-9]{64}$/u);
78
- expect(JSON.stringify(prepared)).not.toContain('https://');
79
- expect(validateFirmwareUpdatePreparedPlan(prepared)).toEqual(prepared);
80
- expect(
81
- assertFirmwareUpdatePreparedPlanDeviceIdentity({
82
- preparedPlan: prepared,
83
- deviceIdentity: plan.deviceIdentity,
84
- })
85
- ).toEqual(prepared);
86
- expect(() =>
87
- assertFirmwareUpdatePreparedPlanDeviceIdentity({
88
- preparedPlan: prepared,
89
- deviceIdentity: 'different-device-id',
90
- })
91
- ).toThrow();
92
- expect(
93
- assertFirmwareUpdatePreparedPlanBinding({
94
- preparedPlan: prepared,
95
- executor: 'v2',
96
- platform: 'native',
97
- scopeTargets: ['firmware', 'resource'],
98
- bindings: [
99
- {
100
- target: 'firmware',
101
- artifact: artifact('a'.repeat(64), 4),
102
- },
103
- {
104
- target: 'resource',
105
- entryName: 'resource/index.bin',
106
- artifact: artifact('c'.repeat(64), 2),
107
- },
108
- ],
109
- })
110
- ).toEqual(prepared);
111
- expect(() =>
112
- assertFirmwareUpdatePreparedPlanBinding({
113
- preparedPlan: prepared,
114
- executor: 'v2',
115
- platform: 'native',
116
- scopeTargets: ['firmware', 'resource'],
117
- bindings: [
118
- {
119
- target: 'firmware',
120
- artifact: artifact('a'.repeat(64), 4),
121
- },
122
- {
123
- target: 'resource',
124
- artifact: artifact('b'.repeat(64), 8),
125
- },
126
- ],
127
- })
128
- ).toThrow('artifact binding is invalid');
129
- expect(() =>
130
- assertFirmwareUpdatePreparedPlanBinding({
131
- preparedPlan: prepared,
132
- executor: 'v2',
133
- platform: 'native',
134
- scopeTargets: ['firmware'],
135
- bindings: [
136
- {
137
- target: 'firmware',
138
- artifact: artifact('b'.repeat(64), 8),
139
- },
140
- ],
141
- })
142
- ).toThrow('artifact binding is invalid');
143
- });
144
-
145
- test('rejects receipt drift and a tampered update plan digest', () => {
146
- const plan = buildPlan();
147
- expect(() =>
148
- prepareFirmwareUpdatePlan({
149
- plan,
150
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
151
- artifacts: [
152
- {
153
- artifactId: 'firmware',
154
- artifact: artifact('d'.repeat(64), 4),
155
- },
156
- {
157
- artifactId: 'resource',
158
- artifact: artifact('b'.repeat(64), 8),
159
- materializedEntries: [
160
- {
161
- entryName: 'resource/index.bin',
162
- artifact: artifact('c'.repeat(64), 2),
163
- },
164
- ],
165
- },
166
- ],
167
- })
168
- ).toThrow('receipt does not match');
169
-
170
- expect(() =>
171
- prepareFirmwareUpdatePlan({
172
- plan: { ...plan, planDigest: 'f'.repeat(64) },
173
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
174
- artifacts: [],
175
- })
176
- ).toThrow('plan digest is invalid');
177
- });
178
-
179
- test('projects portable archive paths to unique device resource names', () => {
180
- const plan = buildPlan();
181
- const buildArtifacts = (entryNames: string[]) => [
182
- {
183
- artifactId: 'firmware',
184
- artifact: artifact('a'.repeat(64), 4),
185
- },
186
- {
187
- artifactId: 'resource',
188
- artifact: artifact('b'.repeat(64), 8),
189
- materializedEntries: entryNames.map((entryName, index) => ({
190
- entryName,
191
- artifact: artifact(String(index + 1).repeat(64), 2),
192
- })),
193
- },
194
- ];
195
-
196
- expect(() =>
197
- prepareFirmwareUpdatePlan({
198
- plan,
199
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
200
- artifacts: buildArtifacts(['icons/index.bin', 'fonts/index.bin']),
201
- })
202
- ).toThrow('duplicate entry names');
203
- expect(() =>
204
- prepareFirmwareUpdatePlan({
205
- plan,
206
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
207
- artifacts: buildArtifacts(['../index.bin']),
208
- })
209
- ).toThrow('entry name is invalid');
210
- });
211
-
212
- test('rejects unknown fields even when a caller presents a plan-shaped object', () => {
213
- const plan = buildPlan();
214
- expect(() =>
215
- prepareFirmwareUpdatePlan({
216
- plan: {
217
- ...plan,
218
- artifacts: [
219
- {
220
- ...plan.artifacts[0],
221
- unexpectedUrl: 'https://attacker.invalid/payload',
222
- },
223
- plan.artifacts[1],
224
- ],
225
- } as typeof plan,
226
- leaseRef: 'fwlease:00000000-0000-4000-8000-000000000001',
227
- artifacts: [],
228
- })
229
- ).toThrow('invalid field set');
230
- });
231
- });
@@ -1,63 +0,0 @@
1
- import FirmwareUpdateV3 from '../../src/api/FirmwareUpdateV3';
2
- import type { Device } from '../../src/device/Device';
3
- import { DevicePool } from '../../src/device/DevicePool';
4
-
5
- jest.mock('../../src/data/config', () => ({
6
- getSDKVersion: jest.fn(() => '1.0.0'),
7
- DEFAULT_DOMAIN: 'https://jssdk.onekey.so/1.0.0/',
8
- }));
9
-
10
- describe('FirmwareUpdateV3 reconnect', () => {
11
- afterEach(() => {
12
- jest.restoreAllMocks();
13
- });
14
-
15
- it('keeps transient USB acquire failures inside the reconnect loop', async () => {
16
- const acquire = jest.fn().mockResolvedValue(undefined);
17
- const commands = {
18
- disposed: true,
19
- mainId: '',
20
- };
21
- const cachedDevice = {} as Device;
22
- const updateFromCache = jest.fn();
23
- jest.spyOn(DevicePool, 'getDevices').mockResolvedValue({
24
- devices: {},
25
- deviceList: [cachedDevice],
26
- });
27
-
28
- const method = new FirmwareUpdateV3({
29
- id: 1,
30
- payload: {
31
- method: 'firmwareUpdateV3',
32
- connectId: 'usb-path',
33
- },
34
- });
35
- method.isBleReconnect = jest.fn(() => false);
36
- method.device = {
37
- originalDescriptor: {
38
- id: 'usb-path',
39
- path: 'usb-path',
40
- protocolType: 'V1',
41
- },
42
- deviceConnector: {
43
- enumerate: jest.fn().mockResolvedValue({
44
- descriptors: [{ path: 'usb-path' }],
45
- }),
46
- },
47
- updateFromCache,
48
- acquire,
49
- commands,
50
- getCommands: () => commands,
51
- mainId: 'usb-session',
52
- } as unknown as Device;
53
-
54
- await method.waitForDeviceReconnect(1000);
55
-
56
- expect(updateFromCache).toHaveBeenCalledWith(cachedDevice);
57
- expect(acquire).toHaveBeenCalledWith(undefined, {
58
- throwOnRunPromiseError: true,
59
- });
60
- expect(commands.disposed).toBe(false);
61
- expect(commands.mainId).toBe('usb-session');
62
- });
63
- });
@@ -1,70 +0,0 @@
1
- import { EDeviceType } from '@onekeyfe/hd-shared';
2
-
3
- import { uploadFirmwareFromSource } from '../../src/api/firmware/uploadFirmware';
4
-
5
- import type { Device } from '../../src/device/Device';
6
- import type { FirmwareByteSource } from '../../src/api/firmware/FirmwareArtifactSource';
7
-
8
- jest.mock('../../src/data/config', () => ({
9
- getSDKVersion: jest.fn(() => '1.0.0'),
10
- DEFAULT_DOMAIN: 'https://jssdk.onekey.so/1.0.0/',
11
- }));
12
-
13
- describe('uploadFirmwareFromSource', () => {
14
- it('serves legacy Touch firmware requests without materializing the complete artifact', async () => {
15
- const size = 700 * 1024;
16
- const requestedRanges: Array<{ offset: number; length: number }> = [];
17
- const source: FirmwareByteSource = {
18
- size,
19
- readAt: jest.fn((offset: number, length: number) => {
20
- requestedRanges.push({ offset, length });
21
- return Promise.resolve(new ArrayBuffer(length));
22
- }),
23
- close: jest.fn(() => Promise.resolve()),
24
- };
25
- let nextOffset = 0;
26
- const requestedLength = 128 * 1024;
27
- const typedCall = jest.fn((type: string) => {
28
- if (type === 'FirmwareErase') {
29
- return Promise.resolve({
30
- type: 'FirmwareRequest',
31
- message: {
32
- offset: nextOffset,
33
- length: Math.min(requestedLength, size - nextOffset),
34
- },
35
- });
36
- }
37
- if (type === 'FirmwareUpload') {
38
- nextOffset += Math.min(requestedLength, size - nextOffset);
39
- if (nextOffset < size) {
40
- return Promise.resolve({
41
- type: 'FirmwareRequest',
42
- message: {
43
- offset: nextOffset,
44
- length: Math.min(requestedLength, size - nextOffset),
45
- },
46
- });
47
- }
48
- return Promise.resolve({
49
- type: 'Success',
50
- message: { message: 'installed' },
51
- });
52
- }
53
- return Promise.reject(new Error(`Unexpected command: ${type}`));
54
- });
55
- const device = {
56
- features: undefined,
57
- emit: jest.fn(),
58
- getCurrentDeviceType: () => EDeviceType.Touch,
59
- toMessageObject: () => ({}),
60
- } as unknown as Device;
61
-
62
- await expect(
63
- uploadFirmwareFromSource('firmware', typedCall as never, jest.fn(), device, source)
64
- ).resolves.toEqual({ message: 'installed' });
65
-
66
- expect(requestedRanges).toHaveLength(Math.ceil(size / requestedLength));
67
- expect(requestedRanges.every(({ length }) => length <= 256 * 1024)).toBe(true);
68
- expect(requestedRanges.some(({ length }) => length === size)).toBe(false);
69
- });
70
- });
@@ -1,25 +0,0 @@
1
- import type { FirmwareArtifactReader, FirmwareArtifactReference } from '../../types/api/firmwareUpdate';
2
- export declare const MAX_FIRMWARE_ARTIFACT_READ_BYTES: number;
3
- export interface FirmwareByteSource {
4
- readonly size: number;
5
- readAt(offset: number, length: number): Promise<ArrayBuffer>;
6
- close(): Promise<void>;
7
- }
8
- export declare const assertFirmwareArtifactReference: (artifact: FirmwareArtifactReference) => FirmwareArtifactReference;
9
- export declare const openFirmwareByteSource: ({ binary, artifact, reader, }: {
10
- binary?: ArrayBuffer | undefined;
11
- artifact?: FirmwareArtifactReference | undefined;
12
- reader?: FirmwareArtifactReader | undefined;
13
- }) => Promise<FirmwareByteSource | null>;
14
- export declare const readFirmwareByteSourceFully: (source: FirmwareByteSource) => Promise<ArrayBuffer>;
15
- export declare const writeFirmwareByteSource: ({ source, chunkSize, write, }: {
16
- source: FirmwareByteSource;
17
- chunkSize: number;
18
- write: (input: {
19
- data: ArrayBuffer;
20
- sourceOffset: number;
21
- length: number;
22
- first: boolean;
23
- }) => Promise<number>;
24
- }) => Promise<number>;
25
- //# sourceMappingURL=FirmwareArtifactSource.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwareArtifactSource.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareArtifactSource.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,gCAAgC,QAAa,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAqBD,eAAO,MAAM,+BAA+B,aAChC,yBAAyB,KAClC,yBAsBF,CAAC;AAoIF,eAAO,MAAM,sBAAsB;;;;MAQ/B,QAAQ,kBAAkB,GAAG,IAAI,CAqBpC,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAC9B,kBAAkB,KACzB,QAAQ,WAAW,CASrB,CAAC;AAEF,eAAO,MAAM,uBAAuB;YAK1B,kBAAkB;eACf,MAAM;mBACF;QACb,IAAI,EAAE,WAAW,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;KAChB,KAAK,QAAQ,MAAM,CAAC;qBA+BtB,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { FirmwareUpdateHostBinding } from '../../types/api/firmwareUpdate';
2
- export declare const registerFirmwareUpdateHostBinding: (binding: FirmwareUpdateHostBinding) => number;
3
- export declare const unregisterFirmwareUpdateHostBinding: (generation?: number) => boolean;
4
- export declare const getFirmwareUpdateHostBindingGeneration: () => number;
5
- export declare const resolveFirmwareUpdateHostBinding: (generation: number | undefined) => FirmwareUpdateHostBinding;
6
- //# sourceMappingURL=FirmwareHostBinding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwareHostBinding.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareHostBinding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAsFhF,eAAO,MAAM,iCAAiC,YAAa,yBAAyB,KAAG,MACxC,CAAC;AAEhD,eAAO,MAAM,mCAAmC,gBAAiB,MAAM,KAAG,OACtB,CAAC;AAErD,eAAO,MAAM,sCAAsC,QAAO,MACb,CAAC;AAE9C,eAAO,MAAM,gCAAgC,eAC/B,MAAM,GAAG,SAAS,KAC7B,yBAA0F,CAAC"}
@@ -1,3 +0,0 @@
1
- import { HardwareError } from '@onekeyfe/hd-shared';
2
- export declare const normalizeFirmwarePreparationError: (error: unknown) => HardwareError;
3
- //# sourceMappingURL=FirmwarePreparationError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwarePreparationError.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwarePreparationError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAqB,MAAM,qBAAqB,CAAC;AAE/E,eAAO,MAAM,iCAAiC,UAAW,OAAO,kBAS/D,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { FirmwareUpdateCapabilities } from '../../types/api/firmwareUpdateCapabilities';
2
- export declare const getFirmwareUpdateCapabilities: () => FirmwareUpdateCapabilities;
3
- //# sourceMappingURL=FirmwareUpdateCapabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwareUpdateCapabilities.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdateCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAE7F,eAAO,MAAM,6BAA6B,QAAO,0BAM/C,CAAC"}
@@ -1,25 +0,0 @@
1
- import { EFirmwareType } from '@onekeyfe/hd-shared';
2
- import type { FirmwareUpdatePlan, FirmwareUpdatePlanForceTarget, FirmwareUpdatePlanTarget } from '../../types/api/firmwareUpdatePlan';
3
- import type { Features } from '../../types';
4
- type FirmwareUpdatePlatform = 'native' | 'desktop' | 'ext' | 'web' | 'web-embed';
5
- type ReleaseSelection = {
6
- shouldUpdate?: boolean;
7
- status?: unknown;
8
- release?: unknown;
9
- };
10
- export declare const digestFirmwareUpdateContract: (value: unknown) => string;
11
- export declare const validateFirmwareUpdatePlanForceTargets: (value: unknown) => FirmwareUpdatePlanForceTarget[];
12
- export declare const FIRMWARE_UPDATE_PLAN_TARGETS: Set<FirmwareUpdatePlanTarget>;
13
- export declare const FIRMWARE_UPDATE_PLAN_ROLES: Set<string>;
14
- export declare const assertFirmwareUpdatePlan: (value: unknown) => FirmwareUpdatePlan;
15
- export declare const buildFirmwareUpdatePlan: ({ features, firmwareType, platform, firmware, ble, bootloader, forceUpdateTargets, }: {
16
- features: Features;
17
- firmwareType: EFirmwareType;
18
- platform: FirmwareUpdatePlatform;
19
- firmware: ReleaseSelection;
20
- ble: ReleaseSelection;
21
- bootloader?: ReleaseSelection | undefined;
22
- forceUpdateTargets?: FirmwareUpdatePlanForceTarget[] | undefined;
23
- }) => FirmwareUpdatePlan;
24
- export {};
25
- //# sourceMappingURL=FirmwareUpdatePlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwareUpdatePlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePlan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,aAAa,EAA6B,MAAM,qBAAqB,CAAC;AAU5F,OAAO,KAAK,EACV,kBAAkB,EAElB,6BAA6B,EAC7B,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,sBAAsB,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;AAyBjF,KAAK,gBAAgB,GAAG;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AA0GF,eAAO,MAAM,4BAA4B,UAAW,OAAO,KAAG,MAG3D,CAAC;AAkBJ,eAAO,MAAM,sCAAsC,UAC1C,OAAO,KACb,6BAA6B,EAa/B,CAAC;AAuBF,eAAO,MAAM,4BAA4B,+BAavC,CAAC;AAEH,eAAO,MAAM,0BAA0B,aAOrC,CAAC;AAYH,eAAO,MAAM,wBAAwB,UAAW,OAAO,KAAG,kBAyHzD,CAAC;AA4NF,eAAO,MAAM,uBAAuB;cASxB,QAAQ;kBACJ,aAAa;cACjB,sBAAsB;cACtB,gBAAgB;SACrB,gBAAgB;;;MAGnB,kBAsKH,CAAC"}
@@ -1,32 +0,0 @@
1
- import type { FirmwareUpdatePreparedArtifactInput, FirmwareUpdatePreparedPlan } from '../../types/api/firmwareUpdatePreparedPlan';
2
- import type { FirmwareArtifactReference } from '../../types/api/firmwareUpdate';
3
- import type { FirmwareUpdatePlan } from '../../types/api/firmwareUpdatePlan';
4
- export declare const getFirmwareUpdateResourceName: (value: unknown) => string;
5
- export declare const prepareFirmwareUpdatePlan: ({ plan: value, leaseRef, artifacts, }: {
6
- plan: FirmwareUpdatePlan;
7
- leaseRef: string;
8
- artifacts: FirmwareUpdatePreparedArtifactInput[];
9
- }) => FirmwareUpdatePreparedPlan;
10
- export declare const validateFirmwareUpdatePreparedPlan: (value: unknown) => FirmwareUpdatePreparedPlan;
11
- export declare const assertFirmwareUpdatePreparedPlanDeviceIdentity: ({ preparedPlan: value, deviceIdentity: reportedIdentity, bootloaderMode, deviceModel, }: {
12
- preparedPlan: unknown;
13
- deviceIdentity: string | undefined;
14
- bootloaderMode?: boolean | undefined;
15
- deviceModel?: string | undefined;
16
- }) => FirmwareUpdatePreparedPlan;
17
- type FirmwareUpdatePreparedBinding = {
18
- target: FirmwareUpdatePlan['targetsToUpdate'][number];
19
- artifact: FirmwareArtifactReference;
20
- logicalName?: string;
21
- entryName?: string;
22
- };
23
- export declare const assertFirmwareUpdatePreparedPlanBinding: ({ preparedPlan: value, executor, platform, deviceIdentity, scopeTargets, bindings, }: {
24
- preparedPlan: unknown;
25
- executor: FirmwareUpdatePreparedPlan['executor'];
26
- platform?: "native" | "desktop" | "ext" | "web" | "web-embed" | undefined;
27
- deviceIdentity?: string | undefined;
28
- scopeTargets: FirmwareUpdatePreparedPlan['targetsToUpdate'];
29
- bindings: FirmwareUpdatePreparedBinding[];
30
- }) => FirmwareUpdatePreparedPlan;
31
- export {};
32
- //# sourceMappingURL=FirmwareUpdatePreparedPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FirmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/FirmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,mCAAmC,EAEnC,0BAA0B,EAC3B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAwB7E,eAAO,MAAM,6BAA6B,UAAW,OAAO,KAAG,MA8B9D,CAAC;AAgGF,eAAO,MAAM,yBAAyB;UAK9B,kBAAkB;cACd,MAAM;eACL,mCAAmC,EAAE;MAC9C,0BAmBH,CAAC;AAEF,eAAO,MAAM,kCAAkC,UAAW,OAAO,KAAG,0BAmGnE,CAAC;AAuBF,eAAO,MAAM,8CAA8C;kBAM3C,OAAO;oBACL,MAAM,GAAG,SAAS;;;MAKhC,0BAoCH,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,EAAE,yBAAyB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAUF,eAAO,MAAM,uCAAuC;kBAQpC,OAAO;cACX,0BAA0B,CAAC,UAAU,CAAC;;;kBAGlC,0BAA0B,CAAC,iBAAiB,CAAC;cACjD,6BAA6B,EAAE;MACvC,0BAmDH,CAAC"}
@@ -1,9 +0,0 @@
1
- export interface FirmwareUpdateCapabilities {
2
- planSchemaVersion: 2;
3
- preparedPlanSchemaVersion: 2;
4
- hostBindingProtocolVersion: 2;
5
- manifestModes: Array<'external-only' | 'sdk-managed'>;
6
- supportsArtifactReader: true;
7
- }
8
- export declare function getFirmwareUpdateCapabilities(): FirmwareUpdateCapabilities;
9
- //# sourceMappingURL=firmwareUpdateCapabilities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firmwareUpdateCapabilities.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdateCapabilities.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,CAAC,CAAC;IACrB,yBAAyB,EAAE,CAAC,CAAC;IAC7B,0BAA0B,EAAE,CAAC,CAAC;IAC9B,aAAa,EAAE,KAAK,CAAC,eAAe,GAAG,aAAa,CAAC,CAAC;IACtD,sBAAsB,EAAE,IAAI,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,6BAA6B,IAAI,0BAA0B,CAAC"}
@@ -1,28 +0,0 @@
1
- import type { FirmwareUpdateV4Target } from './firmwareUpdate';
2
- import type { EFirmwareType } from '@onekeyfe/hd-shared';
3
- export type FirmwareUpdatePlanArtifactRole = 'firmware' | 'ble' | 'bootloader' | 'resource' | 'component' | 'resourceBundle';
4
- export type FirmwareUpdatePlanTarget = 'firmware' | 'ble' | 'bootloader' | FirmwareUpdateV4Target;
5
- export type FirmwareUpdatePlanForceTarget = 'firmware' | 'ble' | 'bootloader' | 'resource';
6
- export interface FirmwareUpdatePlanArtifact {
7
- artifactId: string;
8
- role: FirmwareUpdatePlanArtifactRole;
9
- target: FirmwareUpdatePlanTarget;
10
- url: string;
11
- container: 'raw' | 'zip';
12
- logicalName?: string;
13
- expectedSize?: number;
14
- expectedSha256?: string;
15
- targetVersion?: string;
16
- }
17
- export interface FirmwareUpdatePlan {
18
- schemaVersion: 2;
19
- planDigest: string;
20
- executor: 'v2' | 'v3' | 'v4';
21
- deviceIdentity: string;
22
- deviceModel: string;
23
- firmwareType: EFirmwareType;
24
- platform: 'native' | 'desktop' | 'ext' | 'web' | 'web-embed';
25
- artifacts: FirmwareUpdatePlanArtifact[];
26
- targetsToUpdate: FirmwareUpdatePlanTarget[];
27
- }
28
- //# sourceMappingURL=firmwareUpdatePlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firmwareUpdatePlan.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdatePlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,8BAA8B,GACtC,UAAU,GACV,KAAK,GACL,YAAY,GACZ,UAAU,GACV,WAAW,GACX,gBAAgB,CAAC;AAErB,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,sBAAsB,CAAC;AAElG,MAAM,MAAM,6BAA6B,GAAG,UAAU,GAAG,KAAK,GAAG,YAAY,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,8BAA8B,CAAC;IACrC,MAAM,EAAE,wBAAwB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,WAAW,CAAC;IAC7D,SAAS,EAAE,0BAA0B,EAAE,CAAC;IACxC,eAAe,EAAE,wBAAwB,EAAE,CAAC;CAC7C"}
@@ -1,42 +0,0 @@
1
- import type { FirmwareArtifactReference } from './firmwareUpdate';
2
- import type { FirmwareUpdatePlan, FirmwareUpdatePlanArtifactRole, FirmwareUpdatePlanTarget } from './firmwareUpdatePlan';
3
- export interface FirmwareUpdatePreparedEntry {
4
- entryName: string;
5
- artifact: FirmwareArtifactReference;
6
- }
7
- export interface FirmwareUpdatePreparedArtifactInput {
8
- artifactId: string;
9
- artifact: FirmwareArtifactReference;
10
- materializedEntries?: FirmwareUpdatePreparedEntry[];
11
- }
12
- export interface FirmwareUpdatePreparedArtifact {
13
- artifactId: string;
14
- role: FirmwareUpdatePlanArtifactRole;
15
- target: FirmwareUpdatePlanTarget;
16
- container: 'raw' | 'zip';
17
- logicalName?: string;
18
- targetVersion?: string;
19
- artifact: FirmwareArtifactReference;
20
- materializedEntries?: FirmwareUpdatePreparedEntry[];
21
- }
22
- export interface FirmwareUpdatePreparedPlan {
23
- schemaVersion: 2;
24
- preparedPlanDigest: string;
25
- planDigest: string;
26
- networkPolicy: 'forbid';
27
- executor: FirmwareUpdatePlan['executor'];
28
- deviceIdentity: string;
29
- deviceModel: string;
30
- firmwareType: FirmwareUpdatePlan['firmwareType'];
31
- platform: FirmwareUpdatePlan['platform'];
32
- leaseRef: string;
33
- artifacts: FirmwareUpdatePreparedArtifact[];
34
- targetsToUpdate: FirmwareUpdatePlanTarget[];
35
- }
36
- export declare function prepareFirmwareUpdatePlan(input: {
37
- plan: FirmwareUpdatePlan;
38
- leaseRef: string;
39
- artifacts: FirmwareUpdatePreparedArtifactInput[];
40
- }): FirmwareUpdatePreparedPlan;
41
- export declare function validateFirmwareUpdatePreparedPlan(value: unknown): FirmwareUpdatePreparedPlan;
42
- //# sourceMappingURL=firmwareUpdatePreparedPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firmwareUpdatePreparedPlan.d.ts","sourceRoot":"","sources":["../../../src/types/api/firmwareUpdatePreparedPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,KAAK,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,WAAW,mCAAmC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,8BAA8B,CAAC;IACrC,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,mBAAmB,CAAC,EAAE,2BAA2B,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,CAAC,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,8BAA8B,EAAE,CAAC;IAC5C,eAAe,EAAE,wBAAwB,EAAE,CAAC;CAC7C;AAED,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,KAAK,EAAE;IACvD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,mCAAmC,EAAE,CAAC;CAClD,GAAG,0BAA0B,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,kCAAkC,CACxD,KAAK,EAAE,OAAO,GACb,0BAA0B,CAAC"}