@bota.dev/react-native-app-sdk 2.0.0-beta.1 → 2.0.0-beta.11
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/README.md +115 -4
- package/android/build.gradle +1 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevices.kt +22 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDiagnostics.kt +53 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogs.kt +16 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt +144 -14
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordings.kt +150 -29
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKEncryptedUploadV2Materials.kt +27 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKModule.kt +86 -3
- package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKPackage.kt +9 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/upload/BotaUploadV2BackendModule.kt +66 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/upload/NativeUpload.kt +400 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/upload/UploadHttp.kt +158 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/upload/UploadJournal.kt +112 -0
- package/android/src/main/java/dev/bota/sdk/reactnative/upload/UploadModels.kt +171 -0
- package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevicesTest.kt +35 -0
- package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogsTest.kt +33 -0
- package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt +135 -6
- package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingsTest.kt +236 -10
- package/generated/codegen-contract.json +751 -32
- package/ios/BotaDeviceSDK.mm +114 -0
- package/ios/BotaDeviceSDKAppleBridge.swift +141 -4
- package/ios/BotaDeviceSDKAppleDevices.swift +11 -0
- package/ios/BotaDeviceSDKAppleDiagnostics.swift +40 -0
- package/ios/BotaDeviceSDKAppleLogs.swift +18 -0
- package/ios/BotaDeviceSDKAppleRecordingUploads.swift +138 -6
- package/ios/BotaDeviceSDKAppleRecordings.swift +113 -5
- package/ios/BotaDeviceSDKEncryptedUploadV2Materials.swift +40 -0
- package/ios/BotaUploadV2Backend.mm +49 -0
- package/ios/UploadBackend/BotaUploadV2BackendBridge.swift +98 -0
- package/ios/UploadBackend/UploadCoordinator.swift +84 -0
- package/ios/UploadBackend/UploadHTTP.swift +82 -0
- package/ios/UploadBackend/UploadJournal.swift +187 -0
- package/ios/UploadBackend/UploadModels.swift +273 -0
- package/ios/UploadBackend/UploadOperation.swift +391 -0
- package/lib/commonjs/BotaClient.js +16 -2
- package/lib/commonjs/BotaClient.js.map +1 -1
- package/lib/commonjs/ble/constants.js +5 -1
- package/lib/commonjs/ble/constants.js.map +1 -1
- package/lib/commonjs/ble/deviceDiagnostics.js +240 -0
- package/lib/commonjs/ble/deviceDiagnostics.js.map +1 -0
- package/lib/commonjs/client.js +183 -28
- package/lib/commonjs/client.js.map +1 -1
- package/lib/commonjs/clientPresence.js +26 -0
- package/lib/commonjs/clientPresence.js.map +1 -0
- package/lib/commonjs/encryptedUploadV2Backend.js +200 -0
- package/lib/commonjs/encryptedUploadV2Backend.js.map +1 -0
- package/lib/commonjs/index.js +34 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/managers/DeviceManager.js +23 -0
- package/lib/commonjs/managers/DeviceManager.js.map +1 -1
- package/lib/commonjs/managers/NativeUploadQueue.js +386 -0
- package/lib/commonjs/managers/NativeUploadQueue.js.map +1 -0
- package/lib/commonjs/managers/RecordingManager.js +83 -102
- package/lib/commonjs/managers/RecordingManager.js.map +1 -1
- package/lib/commonjs/managers/uploadRecoveryMetadata.js +83 -0
- package/lib/commonjs/managers/uploadRecoveryMetadata.js.map +1 -0
- package/lib/commonjs/sdkIdentity.js +10 -0
- package/lib/commonjs/sdkIdentity.js.map +1 -0
- package/lib/commonjs/specs/NativeBotaDeviceSDK.js.map +1 -1
- package/lib/commonjs/specs/NativeBotaUploadV2Backend.js +11 -0
- package/lib/commonjs/specs/NativeBotaUploadV2Backend.js.map +1 -0
- package/lib/commonjs/uploadRecovery.js +68 -0
- package/lib/commonjs/uploadRecovery.js.map +1 -0
- package/lib/module/BotaClient.js +16 -2
- package/lib/module/BotaClient.js.map +1 -1
- package/lib/module/ble/constants.js +4 -0
- package/lib/module/ble/constants.js.map +1 -1
- package/lib/module/ble/deviceDiagnostics.js +234 -0
- package/lib/module/ble/deviceDiagnostics.js.map +1 -0
- package/lib/module/client.js +183 -28
- package/lib/module/client.js.map +1 -1
- package/lib/module/clientPresence.js +22 -0
- package/lib/module/clientPresence.js.map +1 -0
- package/lib/module/encryptedUploadV2Backend.js +196 -0
- package/lib/module/encryptedUploadV2Backend.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/managers/DeviceManager.js +23 -0
- package/lib/module/managers/DeviceManager.js.map +1 -1
- package/lib/module/managers/NativeUploadQueue.js +380 -0
- package/lib/module/managers/NativeUploadQueue.js.map +1 -0
- package/lib/module/managers/RecordingManager.js +83 -102
- package/lib/module/managers/RecordingManager.js.map +1 -1
- package/lib/module/managers/uploadRecoveryMetadata.js +77 -0
- package/lib/module/managers/uploadRecoveryMetadata.js.map +1 -0
- package/lib/module/sdkIdentity.js +6 -0
- package/lib/module/sdkIdentity.js.map +1 -0
- package/lib/module/specs/NativeBotaDeviceSDK.js.map +1 -1
- package/lib/module/specs/NativeBotaUploadV2Backend.js +9 -0
- package/lib/module/specs/NativeBotaUploadV2Backend.js.map +1 -0
- package/lib/module/uploadRecovery.js +64 -0
- package/lib/module/uploadRecovery.js.map +1 -0
- package/lib/typescript/BotaClient.d.ts +2 -0
- package/lib/typescript/BotaClient.d.ts.map +1 -1
- package/lib/typescript/ble/constants.d.ts +4 -0
- package/lib/typescript/ble/constants.d.ts.map +1 -1
- package/lib/typescript/ble/deviceDiagnostics.d.ts +10 -0
- package/lib/typescript/ble/deviceDiagnostics.d.ts.map +1 -0
- package/lib/typescript/client.d.ts +24 -3
- package/lib/typescript/client.d.ts.map +1 -1
- package/lib/typescript/clientPresence.d.ts +26 -0
- package/lib/typescript/clientPresence.d.ts.map +1 -0
- package/lib/typescript/encryptedUploadV2Backend.d.ts +41 -0
- package/lib/typescript/encryptedUploadV2Backend.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +13 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/managers/DeviceManager.d.ts +5 -1
- package/lib/typescript/managers/DeviceManager.d.ts.map +1 -1
- package/lib/typescript/managers/NativeUploadQueue.d.ts +41 -0
- package/lib/typescript/managers/NativeUploadQueue.d.ts.map +1 -0
- package/lib/typescript/managers/RecordingManager.d.ts +3 -8
- package/lib/typescript/managers/RecordingManager.d.ts.map +1 -1
- package/lib/typescript/managers/types.d.ts +6 -1
- package/lib/typescript/managers/types.d.ts.map +1 -1
- package/lib/typescript/managers/uploadRecoveryMetadata.d.ts +6 -0
- package/lib/typescript/managers/uploadRecoveryMetadata.d.ts.map +1 -0
- package/lib/typescript/models/Device.d.ts +42 -0
- package/lib/typescript/models/Device.d.ts.map +1 -1
- package/lib/typescript/models/Recording.d.ts +47 -0
- package/lib/typescript/models/Recording.d.ts.map +1 -1
- package/lib/typescript/models/Status.d.ts +5 -1
- package/lib/typescript/models/Status.d.ts.map +1 -1
- package/lib/typescript/sdkIdentity.d.ts +3 -0
- package/lib/typescript/sdkIdentity.d.ts.map +1 -0
- package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts +70 -0
- package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts.map +1 -1
- package/lib/typescript/specs/NativeBotaUploadV2Backend.d.ts +18 -0
- package/lib/typescript/specs/NativeBotaUploadV2Backend.d.ts.map +1 -0
- package/lib/typescript/uploadRecovery.d.ts +27 -0
- package/lib/typescript/uploadRecovery.d.ts.map +1 -0
- package/package.json +1 -1
- package/scripts/bota_device_sdk_spm_workaround.rb +26 -15
- package/src/BotaClient.ts +17 -3
- package/src/ble/constants.ts +5 -0
- package/src/ble/deviceDiagnostics.ts +238 -0
- package/src/client.ts +189 -18
- package/src/clientPresence.ts +33 -0
- package/src/encryptedUploadV2Backend.ts +171 -0
- package/src/index.ts +24 -0
- package/src/managers/DeviceManager.ts +23 -0
- package/src/managers/NativeUploadQueue.ts +330 -0
- package/src/managers/RecordingManager.ts +83 -116
- package/src/managers/types.ts +7 -1
- package/src/managers/uploadRecoveryMetadata.ts +59 -0
- package/src/models/Device.ts +43 -0
- package/src/models/Recording.ts +52 -0
- package/src/models/Status.ts +5 -1
- package/src/sdkIdentity.ts +3 -0
- package/src/specs/NativeBotaDeviceSDK.ts +66 -0
- package/src/specs/NativeBotaUploadV2Backend.ts +19 -0
- package/src/uploadRecovery.ts +66 -0
package/lib/module/BotaClient.js
CHANGED
|
@@ -5,6 +5,7 @@ import { getCompatibilityClient } from './compatibility/runtime';
|
|
|
5
5
|
import { DeviceManager } from './managers/DeviceManager';
|
|
6
6
|
import { OTAManager } from './managers/OTAManager';
|
|
7
7
|
import { RecordingManager } from './managers/RecordingManager';
|
|
8
|
+
import { rejectRecordingDataStore } from './managers/uploadRecoveryMetadata';
|
|
8
9
|
import { BluetoothError, SdkError } from './utils/errors';
|
|
9
10
|
import { logger } from './utils/logger';
|
|
10
11
|
const log = logger.tag('BotaClient');
|
|
@@ -13,9 +14,15 @@ const normalizeConfig = config => ({
|
|
|
13
14
|
backgroundSyncEnabled: config.backgroundSyncEnabled ?? true,
|
|
14
15
|
wifiOnlyUpload: config.wifiOnlyUpload ?? false,
|
|
15
16
|
logLevel: config.logLevel ?? 'warn',
|
|
16
|
-
debug: config.debug ?? false
|
|
17
|
+
debug: config.debug ?? false,
|
|
18
|
+
...(config.uploadRecoveryProvider ? {
|
|
19
|
+
uploadRecoveryProvider: config.uploadRecoveryProvider
|
|
20
|
+
} : {})
|
|
17
21
|
});
|
|
18
22
|
class BotaClientImpl extends EventEmitter {
|
|
23
|
+
clientPresence = {
|
|
24
|
+
nextReport: async deviceId => this._deviceManager?.clientPresence.nextReport(deviceId) ?? null
|
|
25
|
+
};
|
|
19
26
|
_config = null;
|
|
20
27
|
_state = 'uninitialized';
|
|
21
28
|
_bluetoothState = 'unknown';
|
|
@@ -55,6 +62,11 @@ class BotaClientImpl extends EventEmitter {
|
|
|
55
62
|
return this._otaManager;
|
|
56
63
|
}
|
|
57
64
|
configure(config = {}) {
|
|
65
|
+
try {
|
|
66
|
+
rejectRecordingDataStore(config.recordingDataStore);
|
|
67
|
+
} catch (error) {
|
|
68
|
+
return Promise.reject(error);
|
|
69
|
+
}
|
|
58
70
|
if (this._configurePromise && !this._destroyPromise) {
|
|
59
71
|
return this._configurePromise;
|
|
60
72
|
}
|
|
@@ -135,7 +147,9 @@ class BotaClientImpl extends EventEmitter {
|
|
|
135
147
|
this.setBluetoothState(capabilities.bluetooth ? 'poweredOn' : 'unsupported');
|
|
136
148
|
deviceManager = new DeviceManager();
|
|
137
149
|
await deviceManager.initialize();
|
|
138
|
-
recordingManager = new RecordingManager(
|
|
150
|
+
recordingManager = new RecordingManager({
|
|
151
|
+
uploadRecoveryProvider: config.uploadRecoveryProvider
|
|
152
|
+
});
|
|
139
153
|
await recordingManager.initialize();
|
|
140
154
|
otaManager = new OTAManager(deviceManager);
|
|
141
155
|
this._deviceManager = deviceManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","getCompatibilityClient","DeviceManager","OTAManager","RecordingManager","BluetoothError","SdkError","logger","log","tag","normalizeConfig","config","environment","backgroundSyncEnabled","wifiOnlyUpload","logLevel","debug","BotaClientImpl","_config","_state","_bluetoothState","_client","
|
|
1
|
+
{"version":3,"names":["EventEmitter","getCompatibilityClient","DeviceManager","OTAManager","RecordingManager","rejectRecordingDataStore","BluetoothError","SdkError","logger","log","tag","normalizeConfig","config","environment","backgroundSyncEnabled","wifiOnlyUpload","logLevel","debug","uploadRecoveryProvider","BotaClientImpl","clientPresence","nextReport","deviceId","_deviceManager","_config","_state","_bluetoothState","_client","_recordingManager","_otaManager","_nativeOwned","_operation","Promise","resolve","_configurePromise","_destroyPromise","state","bluetoothState","isBluetoothReady","isInitialized","devices","notInitialized","recordings","ota","configure","recordingDataStore","error","reject","normalized","operation","enqueue","performConfigure","finally","catch","undefined","waitForBluetooth","timeoutMs","unavailable","deadline","Date","now","setTimeout","capabilities","getCapabilities","bluetooth","setBluetoothState","timeout","setLogLevel","level","setLevel","setLogHandler","handler","setHandler","destroy","releaseOwnerGraph","removeAllListeners","queued","then","warn","setState","client","deviceManager","recordingManager","otaManager","nativeState","getState","invalidState","initialize","info","failure","Error","String","emit","BotaClient"],"sourceRoot":"../../src","sources":["BotaClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,4 +3,8 @@
|
|
|
3
3
|
export const DEVICE_LOG_FLAG_BACKLOG = 0x01;
|
|
4
4
|
export const DEVICE_LOG_FLAG_DROPPED = 0x02;
|
|
5
5
|
export const BLE_ERROR_STORAGE_KEY_UNAVAILABLE = 0x14;
|
|
6
|
+
export const DEVICE_DIAGNOSTICS_EVT_META = 0x90;
|
|
7
|
+
export const DEVICE_DIAGNOSTICS_EVT_SIGNATURE = 0x91;
|
|
8
|
+
export const DEVICE_DIAGNOSTICS_EVT_END = 0x92;
|
|
9
|
+
export const DEVICE_DIAGNOSTICS_EVT_DETAIL = 0x95;
|
|
6
10
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEVICE_LOG_FLAG_BACKLOG","DEVICE_LOG_FLAG_DROPPED","BLE_ERROR_STORAGE_KEY_UNAVAILABLE"],"sourceRoot":"../../../src","sources":["ble/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,IAAI;AAC3C,OAAO,MAAMC,uBAAuB,GAAG,IAAI;AAC3C,OAAO,MAAMC,iCAAiC,GAAG,IAAI","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DEVICE_LOG_FLAG_BACKLOG","DEVICE_LOG_FLAG_DROPPED","BLE_ERROR_STORAGE_KEY_UNAVAILABLE","DEVICE_DIAGNOSTICS_EVT_META","DEVICE_DIAGNOSTICS_EVT_SIGNATURE","DEVICE_DIAGNOSTICS_EVT_END","DEVICE_DIAGNOSTICS_EVT_DETAIL"],"sourceRoot":"../../../src","sources":["ble/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,uBAAuB,GAAG,IAAI;AAC3C,OAAO,MAAMC,uBAAuB,GAAG,IAAI;AAC3C,OAAO,MAAMC,iCAAiC,GAAG,IAAI;AAErD,OAAO,MAAMC,2BAA2B,GAAG,IAAI;AAC/C,OAAO,MAAMC,gCAAgC,GAAG,IAAI;AACpD,OAAO,MAAMC,0BAA0B,GAAG,IAAI;AAC9C,OAAO,MAAMC,6BAA6B,GAAG,IAAI","ignoreList":[]}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
import { DEVICE_DIAGNOSTICS_EVT_END, DEVICE_DIAGNOSTICS_EVT_DETAIL, DEVICE_DIAGNOSTICS_EVT_META, DEVICE_DIAGNOSTICS_EVT_SIGNATURE } from './constants';
|
|
5
|
+
const EVENT_TYPES = {
|
|
6
|
+
1: 'reset',
|
|
7
|
+
2: 'watchdog',
|
|
8
|
+
3: 'hard_fault',
|
|
9
|
+
4: 'storage',
|
|
10
|
+
5: 'power',
|
|
11
|
+
6: 'radio',
|
|
12
|
+
7: 'security'
|
|
13
|
+
};
|
|
14
|
+
const REASONS = {
|
|
15
|
+
1: 'watchdog_timeout',
|
|
16
|
+
2: 'cpu_illegal_instruction',
|
|
17
|
+
3: 'cpu_misaligned_access',
|
|
18
|
+
4: 'cpu_stack_overflow',
|
|
19
|
+
5: 'cpu_usage_fault',
|
|
20
|
+
6: 'memory_protection_fault',
|
|
21
|
+
7: 'invalid_register_read',
|
|
22
|
+
8: 'invalid_register_write',
|
|
23
|
+
9: 'audio_subsystem_fault',
|
|
24
|
+
10: 'wireless_subsystem_fault',
|
|
25
|
+
11: 'flash_mmu_fault',
|
|
26
|
+
12: 'low_voltage_reset',
|
|
27
|
+
255: 'unknown_cpu_exception'
|
|
28
|
+
};
|
|
29
|
+
const SUBSYSTEMS = {
|
|
30
|
+
0: 'system',
|
|
31
|
+
1: 'audio',
|
|
32
|
+
2: 'wireless',
|
|
33
|
+
3: 'storage',
|
|
34
|
+
4: 'power',
|
|
35
|
+
5: 'security'
|
|
36
|
+
};
|
|
37
|
+
const STATES = {
|
|
38
|
+
0: 'boot',
|
|
39
|
+
1: 'deep_standby',
|
|
40
|
+
2: 'recording',
|
|
41
|
+
3: 'upload_preparing',
|
|
42
|
+
4: 'uploading',
|
|
43
|
+
5: 'error_recovery',
|
|
44
|
+
6: 'full_sleep'
|
|
45
|
+
};
|
|
46
|
+
const BREADCRUMBS = {
|
|
47
|
+
1: 'boot',
|
|
48
|
+
2: 'standby_entered',
|
|
49
|
+
3: 'recording_started',
|
|
50
|
+
4: 'upload_preparing',
|
|
51
|
+
5: 'upload_started',
|
|
52
|
+
6: 'error_recovery',
|
|
53
|
+
7: 'full_sleep'
|
|
54
|
+
};
|
|
55
|
+
const DETAIL_WIRE_SIZE = 176;
|
|
56
|
+
function u64LeHex(bytes) {
|
|
57
|
+
return Buffer.from(bytes).reverse().toString('hex').padStart(16, '0');
|
|
58
|
+
}
|
|
59
|
+
export function diagnosticEventIdCommand(eventId) {
|
|
60
|
+
if (!/^[0-9a-f]{16}$/.test(eventId)) {
|
|
61
|
+
throw new Error('Diagnostic event_id must be 16 lowercase hex characters');
|
|
62
|
+
}
|
|
63
|
+
return Buffer.concat([Buffer.from([0x11]), Buffer.from(eventId, 'hex').reverse()]);
|
|
64
|
+
}
|
|
65
|
+
function normalizedAddress(value) {
|
|
66
|
+
if (value === 0) return undefined;
|
|
67
|
+
const region = (value & 0x80000000) !== 0 ? 'sdram' : (value & 0x40000000) !== 0 ? 'ram' : 'rom';
|
|
68
|
+
const offset = (value & 0x3fffffff).toString(16).padStart(8, '0');
|
|
69
|
+
return `${region}:${offset}`;
|
|
70
|
+
}
|
|
71
|
+
function fixedHex32(value) {
|
|
72
|
+
return value.toString(16).padStart(8, '0');
|
|
73
|
+
}
|
|
74
|
+
function decodeDetail(bytes) {
|
|
75
|
+
if (bytes.length !== DETAIL_WIRE_SIZE || bytes[0] !== 1) {
|
|
76
|
+
throw new Error('Unsupported diagnostic detail payload');
|
|
77
|
+
}
|
|
78
|
+
const hasReport = (bytes[1] & 1) !== 0;
|
|
79
|
+
const firmwareBuildId = Buffer.from(bytes.subarray(2, 14)).toString('ascii');
|
|
80
|
+
if (!/^[0-9a-f]{12}$/.test(firmwareBuildId)) {
|
|
81
|
+
throw new Error('Invalid diagnostic firmware build id');
|
|
82
|
+
}
|
|
83
|
+
const common = {
|
|
84
|
+
firmware_build_id: firmwareBuildId,
|
|
85
|
+
subsystem: SUBSYSTEMS[bytes[14]] ?? 'system',
|
|
86
|
+
state_before_event: STATES[bytes[15]] ?? 'unknown'
|
|
87
|
+
};
|
|
88
|
+
if (!hasReport) return common;
|
|
89
|
+
const pcCount = Math.min(bytes[17], 6);
|
|
90
|
+
const breadcrumbCount = Math.min(bytes[18], 8);
|
|
91
|
+
const runtimeMask = bytes[19];
|
|
92
|
+
const pcTrace = [];
|
|
93
|
+
for (let index = 0; index < pcCount; index++) {
|
|
94
|
+
const address = normalizedAddress(bytes.readUInt32LE(48 + index * 4));
|
|
95
|
+
if (address) pcTrace.push(address);
|
|
96
|
+
}
|
|
97
|
+
const task = Buffer.from(bytes.subarray(80, 96)).toString('ascii').replace(/\0.*$/, '');
|
|
98
|
+
const breadcrumbs = [];
|
|
99
|
+
for (let index = 0; index < breadcrumbCount; index++) {
|
|
100
|
+
const offset = 96 + index * 10;
|
|
101
|
+
breadcrumbs.push({
|
|
102
|
+
delta_ms: bytes.readInt32LE(offset),
|
|
103
|
+
code: BREADCRUMBS[bytes.readUInt16LE(offset + 4)] ?? 'state_changed',
|
|
104
|
+
arg0: bytes.readInt32LE(offset + 6)
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
const reti = normalizedAddress(bytes.readUInt32LE(40));
|
|
108
|
+
const rets = normalizedAddress(bytes.readUInt32LE(44));
|
|
109
|
+
return {
|
|
110
|
+
...common,
|
|
111
|
+
report: {
|
|
112
|
+
fault: {
|
|
113
|
+
cpu_id: bytes[16],
|
|
114
|
+
cpu_emu: fixedHex32(bytes.readUInt32LE(20)),
|
|
115
|
+
core_emu: fixedHex32(bytes.readUInt32LE(24)),
|
|
116
|
+
hsb_emu: fixedHex32(bytes.readUInt32LE(28)),
|
|
117
|
+
audio_emu: fixedHex32(bytes.readUInt32LE(32)),
|
|
118
|
+
wireless_emu: fixedHex32(bytes.readUInt32LE(36))
|
|
119
|
+
},
|
|
120
|
+
execution: {
|
|
121
|
+
...(task ? {
|
|
122
|
+
task
|
|
123
|
+
} : {}),
|
|
124
|
+
...(reti ? {
|
|
125
|
+
reti
|
|
126
|
+
} : {}),
|
|
127
|
+
...(rets ? {
|
|
128
|
+
rets
|
|
129
|
+
} : {}),
|
|
130
|
+
pc_trace: pcTrace
|
|
131
|
+
},
|
|
132
|
+
...((runtimeMask & 3) !== 0 ? {
|
|
133
|
+
runtime: {
|
|
134
|
+
...((runtimeMask & 1) !== 0 ? {
|
|
135
|
+
heap_free_bytes: bytes.readUInt32LE(72)
|
|
136
|
+
} : {}),
|
|
137
|
+
...((runtimeMask & 2) !== 0 ? {
|
|
138
|
+
task_stack_remaining_bytes: bytes.readUInt32LE(76)
|
|
139
|
+
} : {})
|
|
140
|
+
}
|
|
141
|
+
} : {}),
|
|
142
|
+
...(breadcrumbs.length ? {
|
|
143
|
+
breadcrumbs
|
|
144
|
+
} : {})
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export class DeviceDiagnosticsDecoder {
|
|
149
|
+
events = new Map();
|
|
150
|
+
details = new Map();
|
|
151
|
+
push(packet) {
|
|
152
|
+
if (packet.length === 17 && packet[0] === DEVICE_DIAGNOSTICS_EVT_META) {
|
|
153
|
+
const type = EVENT_TYPES[packet[2]];
|
|
154
|
+
if (!type) return null;
|
|
155
|
+
this.events.set(packet[1], {
|
|
156
|
+
event_id: u64LeHex(packet.subarray(9, 17)),
|
|
157
|
+
event_type: type,
|
|
158
|
+
reason_code: REASONS[packet.readUInt16LE(3)] ?? 'unknown_cpu_exception',
|
|
159
|
+
uptime_ms: packet.readUInt32LE(5)
|
|
160
|
+
});
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
if (packet.length === 10 && packet[0] === DEVICE_DIAGNOSTICS_EVT_SIGNATURE) {
|
|
164
|
+
const event = this.events.get(packet[1]);
|
|
165
|
+
if (event) event.signature = u64LeHex(packet.subarray(2, 10));
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
if (packet.length >= 6 && packet.length <= 20 && packet[0] === DEVICE_DIAGNOSTICS_EVT_DETAIL) {
|
|
169
|
+
const index = packet[1];
|
|
170
|
+
const offset = packet.readUInt16LE(2);
|
|
171
|
+
const total = packet.readUInt16LE(4);
|
|
172
|
+
if (total !== DETAIL_WIRE_SIZE || offset + packet.length - 6 > total) {
|
|
173
|
+
this.reset();
|
|
174
|
+
throw new Error('Invalid diagnostic detail chunk');
|
|
175
|
+
}
|
|
176
|
+
let detail = this.details.get(index);
|
|
177
|
+
if (offset === 0) {
|
|
178
|
+
if (detail) {
|
|
179
|
+
this.reset();
|
|
180
|
+
throw new Error(`Duplicate diagnostic detail at index ${index}`);
|
|
181
|
+
}
|
|
182
|
+
detail = {
|
|
183
|
+
buffer: Buffer.alloc(total),
|
|
184
|
+
received: 0
|
|
185
|
+
};
|
|
186
|
+
this.details.set(index, detail);
|
|
187
|
+
}
|
|
188
|
+
if (!detail || detail.received !== offset) {
|
|
189
|
+
this.reset();
|
|
190
|
+
throw new Error(`Out-of-order diagnostic detail at index ${index}`);
|
|
191
|
+
}
|
|
192
|
+
packet.copy(detail.buffer, offset, 6);
|
|
193
|
+
detail.received += packet.length - 6;
|
|
194
|
+
if (detail.received === total) {
|
|
195
|
+
const event = this.events.get(index);
|
|
196
|
+
if (!event) {
|
|
197
|
+
this.reset();
|
|
198
|
+
throw new Error(`Diagnostic detail without metadata at index ${index}`);
|
|
199
|
+
}
|
|
200
|
+
try {
|
|
201
|
+
Object.assign(event, decodeDetail(detail.buffer));
|
|
202
|
+
} catch (error) {
|
|
203
|
+
this.reset();
|
|
204
|
+
throw error;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
if (packet.length === 2 && packet[0] === DEVICE_DIAGNOSTICS_EVT_END) {
|
|
210
|
+
const expected = packet[1];
|
|
211
|
+
const events = [];
|
|
212
|
+
for (let index = 0; index < expected; index++) {
|
|
213
|
+
const event = this.events.get(index);
|
|
214
|
+
if (!event?.signature || !event.firmware_build_id || !event.subsystem || !event.state_before_event || this.details.get(index)?.received !== DETAIL_WIRE_SIZE) {
|
|
215
|
+
this.reset();
|
|
216
|
+
throw new Error(`Incomplete diagnostic event at index ${index}`);
|
|
217
|
+
}
|
|
218
|
+
events.push(event);
|
|
219
|
+
}
|
|
220
|
+
const batch = {
|
|
221
|
+
schema_version: 1,
|
|
222
|
+
events
|
|
223
|
+
};
|
|
224
|
+
this.reset();
|
|
225
|
+
return batch;
|
|
226
|
+
}
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
reset() {
|
|
230
|
+
this.events.clear();
|
|
231
|
+
this.details.clear();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=deviceDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","DEVICE_DIAGNOSTICS_EVT_END","DEVICE_DIAGNOSTICS_EVT_DETAIL","DEVICE_DIAGNOSTICS_EVT_META","DEVICE_DIAGNOSTICS_EVT_SIGNATURE","EVENT_TYPES","REASONS","SUBSYSTEMS","STATES","BREADCRUMBS","DETAIL_WIRE_SIZE","u64LeHex","bytes","from","reverse","toString","padStart","diagnosticEventIdCommand","eventId","test","Error","concat","normalizedAddress","value","undefined","region","offset","fixedHex32","decodeDetail","length","hasReport","firmwareBuildId","subarray","common","firmware_build_id","subsystem","state_before_event","pcCount","Math","min","breadcrumbCount","runtimeMask","pcTrace","index","address","readUInt32LE","push","task","replace","breadcrumbs","delta_ms","readInt32LE","code","readUInt16LE","arg0","reti","rets","report","fault","cpu_id","cpu_emu","core_emu","hsb_emu","audio_emu","wireless_emu","execution","pc_trace","runtime","heap_free_bytes","task_stack_remaining_bytes","DeviceDiagnosticsDecoder","events","Map","details","packet","type","set","event_id","event_type","reason_code","uptime_ms","event","get","signature","total","reset","detail","buffer","alloc","received","copy","Object","assign","error","expected","batch","schema_version","clear"],"sourceRoot":"../../../src","sources":["ble/deviceDiagnostics.ts"],"mappings":"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","ignoreList":[]}
|