@bota.dev/react-native-app-sdk 2.0.0-beta.0 → 2.0.0-beta.10
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 +104 -3
- 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/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 +568 -8
- 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/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/index.js +29 -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/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/index.js +4 -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/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/index.d.ts +10 -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/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/index.ts +18 -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/uploadRecovery.ts +66 -0
|
@@ -135,6 +135,15 @@ export type NativeEncryptedUploadV2Recording = {
|
|
|
135
135
|
generation: number;
|
|
136
136
|
ciphertextLength: string;
|
|
137
137
|
ciphertextSha256: string;
|
|
138
|
+
startedAtMs?: string;
|
|
139
|
+
durationMs?: string;
|
|
140
|
+
plaintextLength?: string;
|
|
141
|
+
storageFormat?: number;
|
|
142
|
+
};
|
|
143
|
+
export type NativePendingRecording = {
|
|
144
|
+
profile: string;
|
|
145
|
+
legacy?: NativeDeviceRecording;
|
|
146
|
+
encrypted?: NativeEncryptedUploadV2Recording;
|
|
138
147
|
};
|
|
139
148
|
export type NativeEncryptedUploadV2Capability = {
|
|
140
149
|
encodingVersion: number;
|
|
@@ -195,6 +204,7 @@ export type NativeRecordingTransferResult = {
|
|
|
195
204
|
localPath: string;
|
|
196
205
|
e2eEncrypted: boolean;
|
|
197
206
|
contentSha256?: string;
|
|
207
|
+
fileSizeBytes: number;
|
|
198
208
|
};
|
|
199
209
|
export type NativeRecordingUploadProgress = {
|
|
200
210
|
taskId: string;
|
|
@@ -206,6 +216,7 @@ export type NativeRecordingUploadRequest = {
|
|
|
206
216
|
recordingId: string;
|
|
207
217
|
deviceId: string;
|
|
208
218
|
localPath: string;
|
|
219
|
+
fileSizeBytes?: number;
|
|
209
220
|
uploadUrl: string;
|
|
210
221
|
uploadToken?: string;
|
|
211
222
|
completeUrl?: string;
|
|
@@ -285,6 +296,50 @@ export type NativeDeviceLogLine = {
|
|
|
285
296
|
message: string;
|
|
286
297
|
isBacklog: boolean;
|
|
287
298
|
};
|
|
299
|
+
export type NativeDiagnosticFault = {
|
|
300
|
+
cpu_id: number;
|
|
301
|
+
cpu_emu: string;
|
|
302
|
+
core_emu: string;
|
|
303
|
+
hsb_emu: string;
|
|
304
|
+
audio_emu: string;
|
|
305
|
+
wireless_emu: string;
|
|
306
|
+
};
|
|
307
|
+
export type NativeDiagnosticExecution = {
|
|
308
|
+
task?: string;
|
|
309
|
+
reti?: string;
|
|
310
|
+
rets?: string;
|
|
311
|
+
pc_trace: ReadonlyArray<string>;
|
|
312
|
+
};
|
|
313
|
+
export type NativeDiagnosticRuntime = {
|
|
314
|
+
heap_free_bytes?: number;
|
|
315
|
+
task_stack_remaining_bytes?: number;
|
|
316
|
+
};
|
|
317
|
+
export type NativeDiagnosticBreadcrumb = {
|
|
318
|
+
delta_ms: number;
|
|
319
|
+
code: string;
|
|
320
|
+
arg0: number;
|
|
321
|
+
};
|
|
322
|
+
export type NativeDiagnosticReport = {
|
|
323
|
+
fault: NativeDiagnosticFault;
|
|
324
|
+
execution: NativeDiagnosticExecution;
|
|
325
|
+
runtime?: NativeDiagnosticRuntime;
|
|
326
|
+
breadcrumbs?: ReadonlyArray<NativeDiagnosticBreadcrumb>;
|
|
327
|
+
};
|
|
328
|
+
export type NativeDiagnosticEvent = {
|
|
329
|
+
event_id: string;
|
|
330
|
+
event_type: string;
|
|
331
|
+
reason_code: string;
|
|
332
|
+
uptime_ms: number;
|
|
333
|
+
signature: string;
|
|
334
|
+
firmware_build_id: string;
|
|
335
|
+
subsystem: string;
|
|
336
|
+
state_before_event: string;
|
|
337
|
+
report?: NativeDiagnosticReport;
|
|
338
|
+
};
|
|
339
|
+
export type NativeDiagnosticsBatch = {
|
|
340
|
+
schema_version: number;
|
|
341
|
+
events: ReadonlyArray<NativeDiagnosticEvent>;
|
|
342
|
+
};
|
|
288
343
|
export type NativeWiFiConfigResult = {
|
|
289
344
|
success: boolean;
|
|
290
345
|
error?: string;
|
|
@@ -305,7 +360,16 @@ export type NativeDeviceWiFiScanResult = {
|
|
|
305
360
|
networks: ReadonlyArray<NativeWiFiScanNetwork>;
|
|
306
361
|
currentSsid?: string;
|
|
307
362
|
};
|
|
363
|
+
export type NativeClientContext = {
|
|
364
|
+
schemaVersion: number;
|
|
365
|
+
sessionId: string;
|
|
366
|
+
sequence: number;
|
|
367
|
+
platform: string;
|
|
368
|
+
sdkPackage: string;
|
|
369
|
+
sdkVersion: string;
|
|
370
|
+
};
|
|
308
371
|
export interface Spec extends TurboModule {
|
|
372
|
+
nextClientPresence: (deviceId: string) => Promise<NativeClientContext | null>;
|
|
309
373
|
readonly onDeviceDiscovered: EventEmitter<NativeDiscoveredDevice>;
|
|
310
374
|
readonly onDeviceDisconnected: EventEmitter<NativeDeviceDisconnection>;
|
|
311
375
|
readonly onDeviceStatusUpdated: EventEmitter<NativeDeviceStatus>;
|
|
@@ -365,16 +429,22 @@ export interface Spec extends TurboModule {
|
|
|
365
429
|
startWiFiStatusUpdates: (device: NativeConnectedDevice) => Promise<void>;
|
|
366
430
|
startDeviceLogs: (device: NativeConnectedDevice) => Promise<void>;
|
|
367
431
|
stopDeviceLogs: () => Promise<void>;
|
|
432
|
+
readDiagnosticEvents: (device: NativeConnectedDevice) => Promise<NativeDiagnosticsBatch>;
|
|
433
|
+
acknowledgeDiagnosticEvents: (device: NativeConnectedDevice, acceptedEventIds: ReadonlyArray<string>) => Promise<void>;
|
|
368
434
|
stopStatusUpdates: () => Promise<void>;
|
|
369
435
|
stopWiFiStatusUpdates: () => Promise<void>;
|
|
370
436
|
stopScan: () => Promise<void>;
|
|
371
437
|
syncRecording: (device: NativeConnectedDevice, recording: NativeDeviceRecording, sinkId: string) => Promise<NativeRecordingTransferResult>;
|
|
372
438
|
syncEncryptedRecordingV2: (device: NativeConnectedDevice, recording: NativeEncryptedUploadV2Recording, operationId: string) => Promise<void>;
|
|
439
|
+
listPendingRecordings: (device: NativeConnectedDevice) => Promise<ReadonlyArray<NativePendingRecording>>;
|
|
440
|
+
cancelEncryptedRecordingV2: (operationId: string) => Promise<void>;
|
|
441
|
+
releaseEncryptedUploadV2Material: (materialRegistrationId: string) => Promise<void>;
|
|
373
442
|
resolveEncryptedUploadV2Profile: (requestId: string, decision: NativeEncryptedUploadV2ProfileDecision) => Promise<void>;
|
|
374
443
|
rejectEncryptedUploadV2Profile: (requestId: string, errorCode: string) => Promise<void>;
|
|
375
444
|
confirmRecording: (device: NativeConnectedDevice, recordingUuid: string) => Promise<void>;
|
|
376
445
|
uploadRecordingFile: (request: NativeRecordingUploadRequest) => Promise<void>;
|
|
377
446
|
cancelRecordingUpload: (taskId: string) => Promise<void>;
|
|
447
|
+
releaseRecordingFile: (taskId: string, localPath: string) => Promise<void>;
|
|
378
448
|
loadCompatibilityUploadQueue: () => Promise<string>;
|
|
379
449
|
saveCompatibilityUploadQueue: (serializedTasks: string) => Promise<void>;
|
|
380
450
|
stopAllRecordingOperations: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeBotaDeviceSDK.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBotaDeviceSDK.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NativeBotaDeviceSDK.d.ts","sourceRoot":"","sources":["../../../src/specs/NativeBotaDeviceSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { UploadInfo, UploadRecoveryContext, UploadRecoveryProvider } from './models/Recording';
|
|
2
|
+
/** A host-owned, authenticated lease. It must permanently reject changed identities. */
|
|
3
|
+
export interface UploadRecoveryBackend {
|
|
4
|
+
scopeKey: string;
|
|
5
|
+
signal: AbortSignal;
|
|
6
|
+
checkScope(): void;
|
|
7
|
+
dispose(): void;
|
|
8
|
+
getRecording(id: string, signal: AbortSignal): Promise<{
|
|
9
|
+
id: string;
|
|
10
|
+
status: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
content_sha256?: string | null;
|
|
13
|
+
file_size_bytes?: number | null;
|
|
14
|
+
}>;
|
|
15
|
+
getUploadInfo(id: string, relay: boolean, contentType: string | undefined, signal: AbortSignal): Promise<Pick<UploadInfo, 'uploadUrl' | 'relay' | 'contentType'>>;
|
|
16
|
+
completeRecording(id: string, data: {
|
|
17
|
+
duration_seconds?: number;
|
|
18
|
+
file_size_bytes: number;
|
|
19
|
+
content_sha256?: string;
|
|
20
|
+
}, signal: AbortSignal): Promise<unknown>;
|
|
21
|
+
}
|
|
22
|
+
/** Build scoped metadata recovery while native SDK storage retains recording bytes.
|
|
23
|
+
* A null host lease parks work until its original account is available.
|
|
24
|
+
* Even an already-uploaded recording requires the exact backend completion ACK.
|
|
25
|
+
*/
|
|
26
|
+
export declare function createUploadRecoveryProvider(openBackend: (task: UploadRecoveryContext) => Promise<UploadRecoveryBackend | null>): UploadRecoveryProvider;
|
|
27
|
+
//# sourceMappingURL=uploadRecovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadRecovery.d.ts","sourceRoot":"","sources":["../../src/uploadRecovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,IAAI,IAAI,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;QACrD,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACjE,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC;IAClK,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7J;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAClF,sBAAsB,CA2CxB"}
|
package/package.json
CHANGED
|
@@ -25,29 +25,40 @@ module BotaDeviceSDKSPMWorkaround
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
rewrite_aggregate_modulemap_references(installer)
|
|
28
|
+
installer.pod_targets.each do |pod_target|
|
|
29
|
+
pod_target.build_settings.each do |configuration_name, build_settings|
|
|
30
|
+
path = pod_target.xcconfig_path(configuration_name)
|
|
31
|
+
# Expo can re-save this cached config after the SPM post-install hook.
|
|
32
|
+
rewrite_modulemap_config(build_settings.xcconfig, path)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
28
35
|
end
|
|
29
36
|
|
|
30
37
|
def self.rewrite_aggregate_modulemap_references(installer)
|
|
31
|
-
nested = "${PODS_CONFIGURATION_BUILD_DIR}/#{POD_NAME}/#{POD_NAME}.modulemap"
|
|
32
|
-
flattened = "${PODS_CONFIGURATION_BUILD_DIR}/#{POD_NAME}.modulemap"
|
|
33
|
-
|
|
34
38
|
installer.aggregate_targets.each do |aggregate_target|
|
|
35
39
|
aggregate_target.xcconfigs.each do |configuration_name, config_file|
|
|
36
|
-
|
|
37
|
-
%w[OTHER_CFLAGS OTHER_SWIFT_FLAGS].each do |key|
|
|
38
|
-
value = config_file.attributes[key]
|
|
39
|
-
next unless value
|
|
40
|
-
|
|
41
|
-
updated = value.gsub(nested, flattened)
|
|
42
|
-
next if updated == value
|
|
43
|
-
|
|
44
|
-
config_file.attributes[key] = updated
|
|
45
|
-
changed = true
|
|
46
|
-
end
|
|
47
|
-
config_file.save_as(aggregate_target.xcconfig_path(configuration_name)) if changed
|
|
40
|
+
rewrite_modulemap_config(config_file, aggregate_target.xcconfig_path(configuration_name))
|
|
48
41
|
end
|
|
49
42
|
end
|
|
50
43
|
end
|
|
51
44
|
|
|
45
|
+
def self.rewrite_modulemap_config(config_file, path)
|
|
46
|
+
nested = "${PODS_CONFIGURATION_BUILD_DIR}/#{POD_NAME}/#{POD_NAME}.modulemap"
|
|
47
|
+
flattened = "${PODS_CONFIGURATION_BUILD_DIR}/#{POD_NAME}.modulemap"
|
|
48
|
+
changed = false
|
|
49
|
+
%w[OTHER_CFLAGS OTHER_SWIFT_FLAGS].each do |key|
|
|
50
|
+
value = config_file.attributes[key]
|
|
51
|
+
next unless value
|
|
52
|
+
|
|
53
|
+
updated = value.gsub(nested, flattened)
|
|
54
|
+
next if updated == value
|
|
55
|
+
|
|
56
|
+
config_file.attributes[key] = updated
|
|
57
|
+
changed = true
|
|
58
|
+
end
|
|
59
|
+
config_file.save_as(path) if changed
|
|
60
|
+
end
|
|
61
|
+
|
|
52
62
|
private_class_method :rewrite_aggregate_modulemap_references
|
|
63
|
+
private_class_method :rewrite_modulemap_config
|
|
53
64
|
end
|
package/src/BotaClient.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
+
import type { ClientPresence } from './clientPresence';
|
|
2
3
|
|
|
3
4
|
import type { BotaDeviceSDKClient } from './client';
|
|
4
5
|
import { getCompatibilityClient } from './compatibility/runtime';
|
|
5
6
|
import { DeviceManager } from './managers/DeviceManager';
|
|
6
7
|
import { OTAManager } from './managers/OTAManager';
|
|
7
8
|
import { RecordingManager } from './managers/RecordingManager';
|
|
9
|
+
import { rejectRecordingDataStore } from './managers/uploadRecoveryMetadata';
|
|
8
10
|
import type {
|
|
9
11
|
BluetoothState,
|
|
10
12
|
BotaClientEvents,
|
|
@@ -17,15 +19,22 @@ import { logger, type LogHandler } from './utils/logger';
|
|
|
17
19
|
|
|
18
20
|
const log = logger.tag('BotaClient');
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
type NormalizedConfig = Required<Omit<BotaConfig, 'uploadRecoveryProvider' | 'recordingDataStore'>> &
|
|
23
|
+
Pick<BotaConfig, 'uploadRecoveryProvider'>;
|
|
24
|
+
|
|
25
|
+
const normalizeConfig = (config: BotaConfig): NormalizedConfig => ({
|
|
21
26
|
environment: config.environment ?? 'production',
|
|
22
27
|
backgroundSyncEnabled: config.backgroundSyncEnabled ?? true,
|
|
23
28
|
wifiOnlyUpload: config.wifiOnlyUpload ?? false,
|
|
24
29
|
logLevel: config.logLevel ?? 'warn',
|
|
25
30
|
debug: config.debug ?? false,
|
|
31
|
+
...(config.uploadRecoveryProvider ? { uploadRecoveryProvider: config.uploadRecoveryProvider } : {}),
|
|
26
32
|
});
|
|
27
33
|
|
|
28
34
|
class BotaClientImpl extends EventEmitter<BotaClientEvents> {
|
|
35
|
+
readonly clientPresence: ClientPresence = {
|
|
36
|
+
nextReport: async (deviceId) => this._deviceManager?.clientPresence.nextReport(deviceId) ?? null,
|
|
37
|
+
};
|
|
29
38
|
private _config: BotaConfig | null = null;
|
|
30
39
|
private _state: SdkState = 'uninitialized';
|
|
31
40
|
private _bluetoothState: BluetoothState = 'unknown';
|
|
@@ -74,6 +83,11 @@ class BotaClientImpl extends EventEmitter<BotaClientEvents> {
|
|
|
74
83
|
}
|
|
75
84
|
|
|
76
85
|
configure(config: BotaConfig = {}): Promise<void> {
|
|
86
|
+
try {
|
|
87
|
+
rejectRecordingDataStore(config.recordingDataStore);
|
|
88
|
+
} catch (error) {
|
|
89
|
+
return Promise.reject(error);
|
|
90
|
+
}
|
|
77
91
|
if (this._configurePromise && !this._destroyPromise) {
|
|
78
92
|
return this._configurePromise;
|
|
79
93
|
}
|
|
@@ -141,7 +155,7 @@ class BotaClientImpl extends EventEmitter<BotaClientEvents> {
|
|
|
141
155
|
return queued;
|
|
142
156
|
}
|
|
143
157
|
|
|
144
|
-
private async performConfigure(config:
|
|
158
|
+
private async performConfigure(config: NormalizedConfig): Promise<void> {
|
|
145
159
|
if (this._state !== 'uninitialized' || this._nativeOwned) {
|
|
146
160
|
log.warn('SDK already configured, reconfiguring');
|
|
147
161
|
await this.releaseOwnerGraph();
|
|
@@ -170,7 +184,7 @@ class BotaClientImpl extends EventEmitter<BotaClientEvents> {
|
|
|
170
184
|
|
|
171
185
|
deviceManager = new DeviceManager();
|
|
172
186
|
await deviceManager.initialize();
|
|
173
|
-
recordingManager = new RecordingManager();
|
|
187
|
+
recordingManager = new RecordingManager({ uploadRecoveryProvider: config.uploadRecoveryProvider });
|
|
174
188
|
await recordingManager.initialize();
|
|
175
189
|
otaManager = new OTAManager(deviceManager);
|
|
176
190
|
|
package/src/ble/constants.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
export const DEVICE_LOG_FLAG_BACKLOG = 0x01;
|
|
2
2
|
export const DEVICE_LOG_FLAG_DROPPED = 0x02;
|
|
3
3
|
export const BLE_ERROR_STORAGE_KEY_UNAVAILABLE = 0x14;
|
|
4
|
+
|
|
5
|
+
export const DEVICE_DIAGNOSTICS_EVT_META = 0x90;
|
|
6
|
+
export const DEVICE_DIAGNOSTICS_EVT_SIGNATURE = 0x91;
|
|
7
|
+
export const DEVICE_DIAGNOSTICS_EVT_END = 0x92;
|
|
8
|
+
export const DEVICE_DIAGNOSTICS_EVT_DETAIL = 0x95;
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
DEVICE_DIAGNOSTICS_EVT_END,
|
|
5
|
+
DEVICE_DIAGNOSTICS_EVT_DETAIL,
|
|
6
|
+
DEVICE_DIAGNOSTICS_EVT_META,
|
|
7
|
+
DEVICE_DIAGNOSTICS_EVT_SIGNATURE,
|
|
8
|
+
} from './constants';
|
|
9
|
+
import type {
|
|
10
|
+
DeviceDiagnosticEvent,
|
|
11
|
+
DeviceDiagnosticEventType,
|
|
12
|
+
DeviceDiagnosticReasonCode,
|
|
13
|
+
DeviceDiagnosticsBatch,
|
|
14
|
+
} from '../models/Device';
|
|
15
|
+
|
|
16
|
+
const EVENT_TYPES: Record<number, DeviceDiagnosticEventType> = {
|
|
17
|
+
1: 'reset', 2: 'watchdog', 3: 'hard_fault', 4: 'storage',
|
|
18
|
+
5: 'power', 6: 'radio', 7: 'security',
|
|
19
|
+
};
|
|
20
|
+
const REASONS: Record<number, DeviceDiagnosticReasonCode> = {
|
|
21
|
+
1: 'watchdog_timeout', 2: 'cpu_illegal_instruction',
|
|
22
|
+
3: 'cpu_misaligned_access', 4: 'cpu_stack_overflow',
|
|
23
|
+
5: 'cpu_usage_fault', 6: 'memory_protection_fault',
|
|
24
|
+
7: 'invalid_register_read', 8: 'invalid_register_write',
|
|
25
|
+
9: 'audio_subsystem_fault', 10: 'wireless_subsystem_fault',
|
|
26
|
+
11: 'flash_mmu_fault', 12: 'low_voltage_reset',
|
|
27
|
+
255: 'unknown_cpu_exception',
|
|
28
|
+
};
|
|
29
|
+
const SUBSYSTEMS: Record<number, string> = {
|
|
30
|
+
0: 'system', 1: 'audio', 2: 'wireless', 3: 'storage',
|
|
31
|
+
4: 'power', 5: 'security',
|
|
32
|
+
};
|
|
33
|
+
const STATES: Record<number, string> = {
|
|
34
|
+
0: 'boot', 1: 'deep_standby', 2: 'recording', 3: 'upload_preparing',
|
|
35
|
+
4: 'uploading', 5: 'error_recovery', 6: 'full_sleep',
|
|
36
|
+
};
|
|
37
|
+
const BREADCRUMBS: Record<number, string> = {
|
|
38
|
+
1: 'boot', 2: 'standby_entered', 3: 'recording_started',
|
|
39
|
+
4: 'upload_preparing', 5: 'upload_started', 6: 'error_recovery',
|
|
40
|
+
7: 'full_sleep',
|
|
41
|
+
};
|
|
42
|
+
const DETAIL_WIRE_SIZE = 176;
|
|
43
|
+
|
|
44
|
+
function u64LeHex(bytes: Uint8Array): string {
|
|
45
|
+
return Buffer.from(bytes).reverse().toString('hex').padStart(16, '0');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function diagnosticEventIdCommand(eventId: string): Buffer {
|
|
49
|
+
if (!/^[0-9a-f]{16}$/.test(eventId)) {
|
|
50
|
+
throw new Error('Diagnostic event_id must be 16 lowercase hex characters');
|
|
51
|
+
}
|
|
52
|
+
return Buffer.concat([
|
|
53
|
+
Buffer.from([0x11]),
|
|
54
|
+
Buffer.from(eventId, 'hex').reverse(),
|
|
55
|
+
]);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
type PartialEvent = Omit<DeviceDiagnosticEvent, 'signature' | 'firmware_build_id' |
|
|
59
|
+
'subsystem' | 'state_before_event'> & {
|
|
60
|
+
signature?: string;
|
|
61
|
+
firmware_build_id?: string;
|
|
62
|
+
subsystem?: string;
|
|
63
|
+
state_before_event?: string;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
interface DetailAssembly {
|
|
67
|
+
buffer: Buffer;
|
|
68
|
+
received: number;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function normalizedAddress(value: number): string | undefined {
|
|
72
|
+
if (value === 0) return undefined;
|
|
73
|
+
const region = (value & 0x80000000) !== 0
|
|
74
|
+
? 'sdram'
|
|
75
|
+
: (value & 0x40000000) !== 0 ? 'ram' : 'rom';
|
|
76
|
+
const offset = (value & 0x3fffffff).toString(16).padStart(8, '0');
|
|
77
|
+
return `${region}:${offset}`;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
function fixedHex32(value: number): string {
|
|
81
|
+
return value.toString(16).padStart(8, '0');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function decodeDetail(bytes: Buffer): Pick<DeviceDiagnosticEvent,
|
|
85
|
+
'firmware_build_id' | 'subsystem' | 'state_before_event' | 'report'> {
|
|
86
|
+
if (bytes.length !== DETAIL_WIRE_SIZE || bytes[0] !== 1) {
|
|
87
|
+
throw new Error('Unsupported diagnostic detail payload');
|
|
88
|
+
}
|
|
89
|
+
const hasReport = (bytes[1] & 1) !== 0;
|
|
90
|
+
const firmwareBuildId = Buffer.from(bytes.subarray(2, 14)).toString('ascii');
|
|
91
|
+
if (!/^[0-9a-f]{12}$/.test(firmwareBuildId)) {
|
|
92
|
+
throw new Error('Invalid diagnostic firmware build id');
|
|
93
|
+
}
|
|
94
|
+
const common = {
|
|
95
|
+
firmware_build_id: firmwareBuildId,
|
|
96
|
+
subsystem: SUBSYSTEMS[bytes[14]] ?? 'system',
|
|
97
|
+
state_before_event: STATES[bytes[15]] ?? 'unknown',
|
|
98
|
+
};
|
|
99
|
+
if (!hasReport) return common;
|
|
100
|
+
|
|
101
|
+
const pcCount = Math.min(bytes[17], 6);
|
|
102
|
+
const breadcrumbCount = Math.min(bytes[18], 8);
|
|
103
|
+
const runtimeMask = bytes[19];
|
|
104
|
+
const pcTrace: string[] = [];
|
|
105
|
+
for (let index = 0; index < pcCount; index++) {
|
|
106
|
+
const address = normalizedAddress(bytes.readUInt32LE(48 + index * 4));
|
|
107
|
+
if (address) pcTrace.push(address);
|
|
108
|
+
}
|
|
109
|
+
const task = Buffer.from(bytes.subarray(80, 96)).toString('ascii').replace(/\0.*$/, '');
|
|
110
|
+
const breadcrumbs = [];
|
|
111
|
+
for (let index = 0; index < breadcrumbCount; index++) {
|
|
112
|
+
const offset = 96 + index * 10;
|
|
113
|
+
breadcrumbs.push({
|
|
114
|
+
delta_ms: bytes.readInt32LE(offset),
|
|
115
|
+
code: BREADCRUMBS[bytes.readUInt16LE(offset + 4)] ?? 'state_changed',
|
|
116
|
+
arg0: bytes.readInt32LE(offset + 6),
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
const reti = normalizedAddress(bytes.readUInt32LE(40));
|
|
120
|
+
const rets = normalizedAddress(bytes.readUInt32LE(44));
|
|
121
|
+
return {
|
|
122
|
+
...common,
|
|
123
|
+
report: {
|
|
124
|
+
fault: {
|
|
125
|
+
cpu_id: bytes[16],
|
|
126
|
+
cpu_emu: fixedHex32(bytes.readUInt32LE(20)),
|
|
127
|
+
core_emu: fixedHex32(bytes.readUInt32LE(24)),
|
|
128
|
+
hsb_emu: fixedHex32(bytes.readUInt32LE(28)),
|
|
129
|
+
audio_emu: fixedHex32(bytes.readUInt32LE(32)),
|
|
130
|
+
wireless_emu: fixedHex32(bytes.readUInt32LE(36)),
|
|
131
|
+
},
|
|
132
|
+
execution: {
|
|
133
|
+
...(task ? { task } : {}),
|
|
134
|
+
...(reti ? { reti } : {}),
|
|
135
|
+
...(rets ? { rets } : {}),
|
|
136
|
+
pc_trace: pcTrace,
|
|
137
|
+
},
|
|
138
|
+
...((runtimeMask & 3) !== 0 ? {
|
|
139
|
+
runtime: {
|
|
140
|
+
...((runtimeMask & 1) !== 0
|
|
141
|
+
? { heap_free_bytes: bytes.readUInt32LE(72) } : {}),
|
|
142
|
+
...((runtimeMask & 2) !== 0
|
|
143
|
+
? { task_stack_remaining_bytes: bytes.readUInt32LE(76) } : {}),
|
|
144
|
+
},
|
|
145
|
+
} : {}),
|
|
146
|
+
...(breadcrumbs.length ? { breadcrumbs } : {}),
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export class DeviceDiagnosticsDecoder {
|
|
152
|
+
private events = new Map<number, PartialEvent>();
|
|
153
|
+
private details = new Map<number, DetailAssembly>();
|
|
154
|
+
|
|
155
|
+
push(packet: Buffer): DeviceDiagnosticsBatch | null {
|
|
156
|
+
if (packet.length === 17 && packet[0] === DEVICE_DIAGNOSTICS_EVT_META) {
|
|
157
|
+
const type = EVENT_TYPES[packet[2]];
|
|
158
|
+
if (!type) return null;
|
|
159
|
+
this.events.set(packet[1], {
|
|
160
|
+
event_id: u64LeHex(packet.subarray(9, 17)),
|
|
161
|
+
event_type: type,
|
|
162
|
+
reason_code: REASONS[packet.readUInt16LE(3)] ?? 'unknown_cpu_exception',
|
|
163
|
+
uptime_ms: packet.readUInt32LE(5),
|
|
164
|
+
});
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
if (packet.length === 10 && packet[0] === DEVICE_DIAGNOSTICS_EVT_SIGNATURE) {
|
|
168
|
+
const event = this.events.get(packet[1]);
|
|
169
|
+
if (event) event.signature = u64LeHex(packet.subarray(2, 10));
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
if (packet.length >= 6 && packet.length <= 20 &&
|
|
173
|
+
packet[0] === DEVICE_DIAGNOSTICS_EVT_DETAIL) {
|
|
174
|
+
const index = packet[1];
|
|
175
|
+
const offset = packet.readUInt16LE(2);
|
|
176
|
+
const total = packet.readUInt16LE(4);
|
|
177
|
+
if (total !== DETAIL_WIRE_SIZE || offset + packet.length - 6 > total) {
|
|
178
|
+
this.reset();
|
|
179
|
+
throw new Error('Invalid diagnostic detail chunk');
|
|
180
|
+
}
|
|
181
|
+
let detail = this.details.get(index);
|
|
182
|
+
if (offset === 0) {
|
|
183
|
+
if (detail) {
|
|
184
|
+
this.reset();
|
|
185
|
+
throw new Error(`Duplicate diagnostic detail at index ${index}`);
|
|
186
|
+
}
|
|
187
|
+
detail = { buffer: Buffer.alloc(total), received: 0 };
|
|
188
|
+
this.details.set(index, detail);
|
|
189
|
+
}
|
|
190
|
+
if (!detail || detail.received !== offset) {
|
|
191
|
+
this.reset();
|
|
192
|
+
throw new Error(`Out-of-order diagnostic detail at index ${index}`);
|
|
193
|
+
}
|
|
194
|
+
packet.copy(detail.buffer, offset, 6);
|
|
195
|
+
detail.received += packet.length - 6;
|
|
196
|
+
if (detail.received === total) {
|
|
197
|
+
const event = this.events.get(index);
|
|
198
|
+
if (!event) {
|
|
199
|
+
this.reset();
|
|
200
|
+
throw new Error(`Diagnostic detail without metadata at index ${index}`);
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
Object.assign(event, decodeDetail(detail.buffer));
|
|
204
|
+
} catch (error) {
|
|
205
|
+
this.reset();
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
if (packet.length === 2 && packet[0] === DEVICE_DIAGNOSTICS_EVT_END) {
|
|
212
|
+
const expected = packet[1];
|
|
213
|
+
const events: DeviceDiagnosticEvent[] = [];
|
|
214
|
+
for (let index = 0; index < expected; index++) {
|
|
215
|
+
const event = this.events.get(index);
|
|
216
|
+
if (!event?.signature || !event.firmware_build_id ||
|
|
217
|
+
!event.subsystem || !event.state_before_event ||
|
|
218
|
+
this.details.get(index)?.received !== DETAIL_WIRE_SIZE) {
|
|
219
|
+
this.reset();
|
|
220
|
+
throw new Error(`Incomplete diagnostic event at index ${index}`);
|
|
221
|
+
}
|
|
222
|
+
events.push(event as DeviceDiagnosticEvent);
|
|
223
|
+
}
|
|
224
|
+
const batch: DeviceDiagnosticsBatch = {
|
|
225
|
+
schema_version: 1,
|
|
226
|
+
events,
|
|
227
|
+
};
|
|
228
|
+
this.reset();
|
|
229
|
+
return batch;
|
|
230
|
+
}
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
reset(): void {
|
|
235
|
+
this.events.clear();
|
|
236
|
+
this.details.clear();
|
|
237
|
+
}
|
|
238
|
+
}
|