@bota.dev/react-native-app-sdk 2.0.0-beta.1 → 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 -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/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
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import EventEmitter from 'eventemitter3';
|
|
4
4
|
import { getCompatibilityClient } from '../compatibility/runtime';
|
|
5
|
+
import { NativeUploadQueue } from './NativeUploadQueue';
|
|
6
|
+
import { rejectRecordingDataStore } from './uploadRecoveryMetadata';
|
|
5
7
|
import { StreamingSession, setStreamingSessionTerminalHandler } from './StreamingSession';
|
|
6
8
|
const createTaskId = () => `task_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
7
9
|
const createOpaqueId = () => 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, value => {
|
|
@@ -48,24 +50,25 @@ const observeProgress = start => {
|
|
|
48
50
|
};
|
|
49
51
|
};
|
|
50
52
|
export class RecordingManager extends EventEmitter {
|
|
51
|
-
tasks = [];
|
|
52
53
|
initialized = false;
|
|
53
|
-
paused = false;
|
|
54
54
|
destroyed = false;
|
|
55
55
|
activeStreamingSession = null;
|
|
56
|
-
constructor() {
|
|
56
|
+
constructor(options = {}) {
|
|
57
57
|
super();
|
|
58
|
+
rejectRecordingDataStore(options.recordingDataStore);
|
|
58
59
|
this.client = getCompatibilityClient();
|
|
60
|
+
this.queue = new NativeUploadQueue(this.client.recordings, options.uploadRecoveryProvider);
|
|
61
|
+
this.queue.on('queueUpdated', tasks => this.emit('queueUpdated', tasks));
|
|
62
|
+
this.queue.on('uploadStarted', id => this.emit('uploadStarted', id));
|
|
63
|
+
this.queue.on('uploadProgress', (id, progress) => this.emit('uploadProgress', id, progress));
|
|
64
|
+
this.queue.on('uploadCompleted', (id, recordingId) => this.emit('uploadCompleted', id, recordingId));
|
|
65
|
+
this.queue.on('uploadFailed', (id, error) => this.emit('uploadFailed', id, error));
|
|
59
66
|
}
|
|
60
67
|
async initialize() {
|
|
61
68
|
if (this.initialized) return;
|
|
62
69
|
this.assertAlive();
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
createdAt: new Date(task.createdAt),
|
|
66
|
-
updatedAt: new Date(task.updatedAt),
|
|
67
|
-
status: task.status === 'uploading' ? 'pending' : task.status
|
|
68
|
-
}));
|
|
70
|
+
await this.queue.initialize();
|
|
71
|
+
this.assertAlive();
|
|
69
72
|
this.initialized = true;
|
|
70
73
|
}
|
|
71
74
|
async getStorageInfo(device) {
|
|
@@ -84,6 +87,10 @@ export class RecordingManager extends EventEmitter {
|
|
|
84
87
|
}
|
|
85
88
|
async *syncRecording(device, recording, uploadInfo) {
|
|
86
89
|
this.assertReady();
|
|
90
|
+
if (uploadInfo.signal?.aborted) {
|
|
91
|
+
uploadInfo.dispose?.();
|
|
92
|
+
throw new Error('Upload authorization context cancelled');
|
|
93
|
+
}
|
|
87
94
|
this.emit('syncStarted', recording.uuid);
|
|
88
95
|
const sinkId = createOpaqueId();
|
|
89
96
|
const now = new Date();
|
|
@@ -91,6 +98,9 @@ export class RecordingManager extends EventEmitter {
|
|
|
91
98
|
id: createTaskId(),
|
|
92
99
|
recordingId: uploadInfo.recordingId,
|
|
93
100
|
deviceId: device.id,
|
|
101
|
+
recordingUuid: recording.uuid,
|
|
102
|
+
recoveryScope: uploadInfo.recoveryScope,
|
|
103
|
+
fileSizeBytes: recording.fileSizeBytes,
|
|
94
104
|
localPath: '',
|
|
95
105
|
uploadUrl: uploadInfo.uploadUrl,
|
|
96
106
|
...(uploadInfo.uploadToken ? {
|
|
@@ -107,9 +117,34 @@ export class RecordingManager extends EventEmitter {
|
|
|
107
117
|
createdAt: now,
|
|
108
118
|
updatedAt: now
|
|
109
119
|
};
|
|
110
|
-
this.
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
const recovered = uploadInfo.recoveryScope && this.queue.all().find(value => value.recoveryScope === uploadInfo.recoveryScope && value.recordingId === uploadInfo.recordingId && value.deviceId === device.id && value.recordingUuid === recording.uuid && !!value.localPath);
|
|
121
|
+
if (recovered) {
|
|
122
|
+
const adopted = this.queue.offerCredentials(recovered.id, uploadInfo);
|
|
123
|
+
try {
|
|
124
|
+
await this.queue.run(recovered.id);
|
|
125
|
+
this.assertReady();
|
|
126
|
+
if (uploadInfo.signal?.aborted) throw new Error('Upload authorization context cancelled');
|
|
127
|
+
await this.client.recordings.confirmRecording(device, recording.uuid);
|
|
128
|
+
this.assertReady();
|
|
129
|
+
yield this.emitSyncProgress(recording.uuid, {
|
|
130
|
+
stage: 'completed',
|
|
131
|
+
progress: 1,
|
|
132
|
+
recordingId: recovered.recordingId,
|
|
133
|
+
contentSha256: recovered.contentSha256
|
|
134
|
+
});
|
|
135
|
+
this.emit('syncCompleted', recording.uuid, recovered.recordingId);
|
|
136
|
+
} finally {
|
|
137
|
+
if (!adopted) uploadInfo.dispose?.();
|
|
138
|
+
}
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
await this.queue.add(task, uploadInfo);
|
|
143
|
+
} catch (error) {
|
|
144
|
+
uploadInfo.dispose?.();
|
|
145
|
+
throw error;
|
|
146
|
+
}
|
|
147
|
+
let uploadAttempted = false;
|
|
113
148
|
try {
|
|
114
149
|
yield this.emitSyncProgress(recording.uuid, {
|
|
115
150
|
stage: 'preparing',
|
|
@@ -134,10 +169,21 @@ export class RecordingManager extends EventEmitter {
|
|
|
134
169
|
if (transferResult.e2eEncrypted && !uploadInfo.relay) {
|
|
135
170
|
throw new Error('Device delivered encrypted recording data without an upload relay');
|
|
136
171
|
}
|
|
137
|
-
|
|
172
|
+
this.assertReady();
|
|
173
|
+
if (uploadInfo.signal?.aborted || !this.queue.get(task.id)) throw new Error('Upload cancelled');
|
|
174
|
+
const nativeSize = 'fileSizeBytes' in transferResult && typeof transferResult.fileSizeBytes === 'number' ? transferResult.fileSizeBytes : undefined;
|
|
175
|
+
if (nativeSize !== undefined && (!Number.isSafeInteger(nativeSize) || nativeSize < 0)) throw new Error('Invalid native recording file size');
|
|
176
|
+
if (nativeSize === undefined && uploadInfo.complete) throw new Error('Host completion requires actual native recording file size');
|
|
177
|
+
// Route selection comes from native transfer metadata, never list flags.
|
|
178
|
+
uploadInfo = {
|
|
179
|
+
...uploadInfo,
|
|
180
|
+
relay: transferResult.e2eEncrypted ? uploadInfo.relay : undefined
|
|
181
|
+
};
|
|
182
|
+
await this.queue.update(task.id, {
|
|
138
183
|
localPath: transferResult.localPath,
|
|
184
|
+
fileSizeBytes: nativeSize ?? (transferResult.e2eEncrypted ? undefined : recording.fileSizeBytes),
|
|
139
185
|
contentSha256: transferResult.contentSha256,
|
|
140
|
-
|
|
186
|
+
relayUpload: transferResult.e2eEncrypted
|
|
141
187
|
});
|
|
142
188
|
yield this.emitSyncProgress(recording.uuid, {
|
|
143
189
|
stage: 'uploading',
|
|
@@ -146,7 +192,8 @@ export class RecordingManager extends EventEmitter {
|
|
|
146
192
|
totalBytes: recording.fileSizeBytes,
|
|
147
193
|
contentSha256: transferResult.contentSha256
|
|
148
194
|
});
|
|
149
|
-
|
|
195
|
+
uploadAttempted = true;
|
|
196
|
+
const upload = observeProgress(onProgress => this.queue.run(task.id, onProgress));
|
|
150
197
|
while (true) {
|
|
151
198
|
const value = await upload.next();
|
|
152
199
|
if (value.done) break;
|
|
@@ -162,7 +209,10 @@ export class RecordingManager extends EventEmitter {
|
|
|
162
209
|
stage: 'completing',
|
|
163
210
|
progress: 0.5
|
|
164
211
|
});
|
|
212
|
+
this.assertReady();
|
|
213
|
+
if (uploadInfo.signal?.aborted || !this.queue.get(task.id)) throw new Error('Upload cancelled');
|
|
165
214
|
await this.client.recordings.confirmRecording(device, recording.uuid);
|
|
215
|
+
this.assertReady();
|
|
166
216
|
const completed = this.emitSyncProgress(recording.uuid, {
|
|
167
217
|
stage: 'completed',
|
|
168
218
|
progress: 1,
|
|
@@ -173,12 +223,13 @@ export class RecordingManager extends EventEmitter {
|
|
|
173
223
|
this.emit('syncCompleted', recording.uuid, uploadInfo.recordingId);
|
|
174
224
|
} catch (error) {
|
|
175
225
|
const failure = error instanceof Error ? error : new Error(String(error));
|
|
176
|
-
if (this.
|
|
177
|
-
await this.
|
|
226
|
+
if (!this.destroyed && this.queue.get(task.id)?.status === 'pending' && !this.queue.get(task.id)?.localPath) {
|
|
227
|
+
await this.queue.update(task.id, {
|
|
178
228
|
status: 'failed',
|
|
179
|
-
errorMessage:
|
|
229
|
+
errorMessage: 'Recording transfer failed'
|
|
180
230
|
});
|
|
181
231
|
}
|
|
232
|
+
if (this.destroyed) throw failure;
|
|
182
233
|
yield this.emitSyncProgress(recording.uuid, {
|
|
183
234
|
stage: 'failed',
|
|
184
235
|
progress: 0,
|
|
@@ -186,6 +237,8 @@ export class RecordingManager extends EventEmitter {
|
|
|
186
237
|
});
|
|
187
238
|
this.emit('syncFailed', recording.uuid, failure);
|
|
188
239
|
throw failure;
|
|
240
|
+
} finally {
|
|
241
|
+
if (!uploadAttempted) this.queue.discardCredentials(task.id);
|
|
189
242
|
}
|
|
190
243
|
}
|
|
191
244
|
async triggerDeviceUpload(device) {
|
|
@@ -295,12 +348,10 @@ export class RecordingManager extends EventEmitter {
|
|
|
295
348
|
}
|
|
296
349
|
}
|
|
297
350
|
getPendingUploads() {
|
|
298
|
-
return this.
|
|
351
|
+
return this.queue.all().filter(task => task.status === 'pending' || task.status === 'uploading');
|
|
299
352
|
}
|
|
300
353
|
getAllUploads() {
|
|
301
|
-
return this.
|
|
302
|
-
...task
|
|
303
|
-
}));
|
|
354
|
+
return this.queue.all();
|
|
304
355
|
}
|
|
305
356
|
startStreamingSync(device, recordingUuid, uploadInfoProvider, options = {}) {
|
|
306
357
|
this.assertReady();
|
|
@@ -321,110 +372,40 @@ export class RecordingManager extends EventEmitter {
|
|
|
321
372
|
return this.activeStreamingSession;
|
|
322
373
|
}
|
|
323
374
|
async cancelUpload(taskId) {
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
await this.persistTasks();
|
|
327
|
-
this.emitQueueUpdated();
|
|
375
|
+
this.assertReady();
|
|
376
|
+
await this.queue.cancel(taskId);
|
|
328
377
|
}
|
|
329
378
|
async retryFailedUploads() {
|
|
330
379
|
this.assertReady();
|
|
331
|
-
|
|
332
|
-
for (const task of this.tasks.filter(value => value.status === 'failed')) {
|
|
333
|
-
await this.updateTask(task.id, {
|
|
334
|
-
status: 'pending',
|
|
335
|
-
retryCount: task.retryCount + 1,
|
|
336
|
-
errorMessage: undefined
|
|
337
|
-
});
|
|
338
|
-
try {
|
|
339
|
-
await this.runUpload(task.id);
|
|
340
|
-
} catch {
|
|
341
|
-
// Keep failed tasks available for the next explicit retry.
|
|
342
|
-
}
|
|
343
|
-
}
|
|
380
|
+
await this.queue.retryFailed();
|
|
344
381
|
}
|
|
345
382
|
async clearCompletedUploads() {
|
|
346
|
-
this.
|
|
347
|
-
await this.
|
|
348
|
-
this.emitQueueUpdated();
|
|
383
|
+
this.assertReady();
|
|
384
|
+
await this.queue.clearCompleted();
|
|
349
385
|
}
|
|
350
386
|
async clearAllUploads() {
|
|
351
|
-
|
|
352
|
-
await
|
|
353
|
-
this.tasks = [];
|
|
354
|
-
await this.persistTasks();
|
|
355
|
-
this.emitQueueUpdated();
|
|
387
|
+
this.assertReady();
|
|
388
|
+
await this.queue.clearAll();
|
|
356
389
|
}
|
|
357
390
|
pauseUploads() {
|
|
358
|
-
this.
|
|
391
|
+
this.queue.pause();
|
|
359
392
|
}
|
|
360
393
|
resumeUploads() {
|
|
361
|
-
this.
|
|
362
|
-
void this.retryFailedUploads();
|
|
394
|
+
this.queue.resume();
|
|
363
395
|
}
|
|
364
396
|
destroy() {
|
|
365
397
|
if (this.destroyed) return;
|
|
366
398
|
this.destroyed = true;
|
|
399
|
+
this.queue.destroy();
|
|
367
400
|
this.activeStreamingSession?.abort();
|
|
368
401
|
this.activeStreamingSession = null;
|
|
369
|
-
void this.client.recordings.destroyCompatibilityOperations().catch(() => undefined);
|
|
370
402
|
this.removeAllListeners();
|
|
371
403
|
this.initialized = false;
|
|
372
404
|
}
|
|
373
|
-
async runUpload(taskId, onProgress) {
|
|
374
|
-
if (this.paused) throw new Error('Upload queue is paused');
|
|
375
|
-
const task = this.requireTask(taskId);
|
|
376
|
-
await this.updateTask(taskId, {
|
|
377
|
-
status: 'uploading',
|
|
378
|
-
errorMessage: undefined
|
|
379
|
-
});
|
|
380
|
-
this.emit('uploadStarted', taskId);
|
|
381
|
-
try {
|
|
382
|
-
await this.client.recordings.uploadRecordingFile(this.requireTask(taskId), progress => {
|
|
383
|
-
onProgress?.(progress);
|
|
384
|
-
const ratio = progress.totalBytes > 0 ? Math.min(progress.completedBytes / progress.totalBytes, 1) : 0;
|
|
385
|
-
this.emit('uploadProgress', taskId, ratio);
|
|
386
|
-
});
|
|
387
|
-
await this.updateTask(taskId, {
|
|
388
|
-
status: 'completed',
|
|
389
|
-
errorMessage: undefined
|
|
390
|
-
});
|
|
391
|
-
this.emit('uploadCompleted', taskId, task.recordingId);
|
|
392
|
-
} catch (error) {
|
|
393
|
-
const failure = error instanceof Error ? error : new Error(String(error));
|
|
394
|
-
await this.updateTask(taskId, {
|
|
395
|
-
status: 'failed',
|
|
396
|
-
errorMessage: failure.message
|
|
397
|
-
});
|
|
398
|
-
this.emit('uploadFailed', taskId, failure);
|
|
399
|
-
throw failure;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
405
|
emitSyncProgress(recordingUuid, progress) {
|
|
403
406
|
this.emit('syncProgress', recordingUuid, progress);
|
|
404
407
|
return progress;
|
|
405
408
|
}
|
|
406
|
-
requireTask(taskId) {
|
|
407
|
-
const task = this.tasks.find(value => value.id === taskId);
|
|
408
|
-
if (!task) throw new Error(`Upload task not found: ${taskId}`);
|
|
409
|
-
return task;
|
|
410
|
-
}
|
|
411
|
-
async updateTask(taskId, patch) {
|
|
412
|
-
const index = this.tasks.findIndex(task => task.id === taskId);
|
|
413
|
-
if (index < 0) throw new Error(`Upload task not found: ${taskId}`);
|
|
414
|
-
this.tasks[index] = {
|
|
415
|
-
...this.tasks[index],
|
|
416
|
-
...patch,
|
|
417
|
-
updatedAt: new Date()
|
|
418
|
-
};
|
|
419
|
-
await this.persistTasks();
|
|
420
|
-
this.emitQueueUpdated();
|
|
421
|
-
}
|
|
422
|
-
async persistTasks() {
|
|
423
|
-
await this.client.recordings.saveUploadQueue(this.tasks);
|
|
424
|
-
}
|
|
425
|
-
emitQueueUpdated() {
|
|
426
|
-
this.emit('queueUpdated', this.getAllUploads());
|
|
427
|
-
}
|
|
428
409
|
assertReady() {
|
|
429
410
|
this.assertAlive();
|
|
430
411
|
if (!this.initialized) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","getCompatibilityClient","StreamingSession","setStreamingSessionTerminalHandler","createTaskId","Date","now","Math","random","toString","slice","createOpaqueId","replace","value","floor","nibble","errorMessage","error","Error","message","String","observeProgress","start","queued","waiting","result","failure","settled","wake","splice","forEach","resolve","progress","push","then","next","length","Promise","shift","done","undefined","RecordingManager","tasks","initialized","paused","destroyed","activeStreamingSession","constructor","client","initialize","assertAlive","recordings","loadUploadQueue","map","task","createdAt","updatedAt","status","getStorageInfo","device","assertReady","all","devices","readStatus","listRecordings","totalKb","storageTotalMb","usedKb","storageUsedMb","totalRecordings","pendingSyncCount","pendingRecordings","syncRecording","recording","uploadInfo","emit","uuid","sinkId","id","recordingId","deviceId","localPath","uploadUrl","uploadToken","completeUrl","contentType","retryCount","persistTasks","emitQueueUpdated","emitSyncProgress","stage","totalBytes","fileSizeBytes","transfer","onProgress","transferResult","min","completedBytes","bytesTransferred","e2eEncrypted","relay","updateTask","contentSha256","bytesUploaded","upload","runUpload","confirmRecording","completed","requireTask","triggerDeviceUpload","observeUploadOwnership","recordingUuid","uploadId","destinationId","kind","accepted","monitorDeviceUpload","initialPendingCount","recordingIndex","syncAllRecordings","uploadInfoProvider","ownership","index","getPendingUploads","filter","getAllUploads","startStreamingSync","options","isActive","session","chunkSizeKb","flushIntervalMs","catch","getActiveStreamingSession","cancelUpload","taskId","cancelRecordingUpload","retryFailedUploads","clearCompletedUploads","clearAllUploads","ids","pauseUploads","resumeUploads","destroy","abort","destroyCompatibilityOperations","removeAllListeners","uploadRecordingFile","ratio","find","patch","findIndex","saveUploadQueue"],"sourceRoot":"../../../src","sources":["managers/RecordingManager.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["EventEmitter","getCompatibilityClient","NativeUploadQueue","rejectRecordingDataStore","StreamingSession","setStreamingSessionTerminalHandler","createTaskId","Date","now","Math","random","toString","slice","createOpaqueId","replace","value","floor","nibble","errorMessage","error","Error","message","String","observeProgress","start","queued","waiting","result","failure","settled","wake","splice","forEach","resolve","progress","push","then","next","length","Promise","shift","done","undefined","RecordingManager","initialized","destroyed","activeStreamingSession","constructor","options","recordingDataStore","client","queue","recordings","uploadRecoveryProvider","on","tasks","emit","id","recordingId","initialize","assertAlive","getStorageInfo","device","assertReady","status","all","devices","readStatus","listRecordings","totalKb","storageTotalMb","usedKb","storageUsedMb","totalRecordings","pendingSyncCount","pendingRecordings","syncRecording","recording","uploadInfo","signal","aborted","dispose","uuid","sinkId","task","deviceId","recordingUuid","recoveryScope","fileSizeBytes","localPath","uploadUrl","uploadToken","completeUrl","contentType","retryCount","createdAt","updatedAt","recovered","find","adopted","offerCredentials","run","confirmRecording","emitSyncProgress","stage","contentSha256","add","uploadAttempted","totalBytes","transfer","onProgress","transferResult","min","completedBytes","bytesTransferred","e2eEncrypted","relay","get","nativeSize","Number","isSafeInteger","complete","update","relayUpload","bytesUploaded","upload","completed","discardCredentials","triggerDeviceUpload","observeUploadOwnership","uploadId","destinationId","kind","accepted","monitorDeviceUpload","initialPendingCount","recordingIndex","syncAllRecordings","uploadInfoProvider","ownership","index","getPendingUploads","filter","getAllUploads","startStreamingSync","isActive","session","chunkSizeKb","flushIntervalMs","catch","getActiveStreamingSession","cancelUpload","taskId","cancel","retryFailedUploads","retryFailed","clearCompletedUploads","clearCompleted","clearAllUploads","clearAll","pauseUploads","pause","resumeUploads","resume","destroy","abort","removeAllListeners"],"sourceRoot":"../../../src","sources":["managers/RecordingManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const invalid = () => {
|
|
4
|
+
throw new Error('Invalid upload recovery journal');
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
/** Whitelist, never spread a runtime object into persistent storage. */
|
|
8
|
+
export function persistedUploadQueue(tasks) {
|
|
9
|
+
return tasks.map(task => ({
|
|
10
|
+
id: task.id,
|
|
11
|
+
recordingId: task.recordingId,
|
|
12
|
+
deviceId: task.deviceId,
|
|
13
|
+
localPath: task.localPath,
|
|
14
|
+
uploadUrl: '',
|
|
15
|
+
status: task.status,
|
|
16
|
+
retryCount: task.retryCount,
|
|
17
|
+
createdAt: new Date(task.createdAt),
|
|
18
|
+
updatedAt: new Date(task.updatedAt),
|
|
19
|
+
...(task.recordingUuid === undefined ? {} : {
|
|
20
|
+
recordingUuid: task.recordingUuid
|
|
21
|
+
}),
|
|
22
|
+
...(task.recoveryScope === undefined ? {} : {
|
|
23
|
+
recoveryScope: task.recoveryScope
|
|
24
|
+
}),
|
|
25
|
+
...(task.fileSizeBytes === undefined ? {} : {
|
|
26
|
+
fileSizeBytes: task.fileSizeBytes
|
|
27
|
+
}),
|
|
28
|
+
...(task.nextAttemptAt === undefined ? {} : {
|
|
29
|
+
nextAttemptAt: task.nextAttemptAt
|
|
30
|
+
}),
|
|
31
|
+
...(task.contentType === undefined ? {} : {
|
|
32
|
+
contentType: task.contentType
|
|
33
|
+
}),
|
|
34
|
+
...(task.contentSha256 === undefined ? {} : {
|
|
35
|
+
contentSha256: task.contentSha256
|
|
36
|
+
}),
|
|
37
|
+
relayUpload: task.relayUpload ?? !!task.relay
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
export function restoreUploadQueue(value) {
|
|
41
|
+
if (!Array.isArray(value)) return invalid();
|
|
42
|
+
const ids = new Set();
|
|
43
|
+
const validated = value.map(entry => {
|
|
44
|
+
if (!entry || typeof entry !== 'object') return invalid();
|
|
45
|
+
const task = entry;
|
|
46
|
+
for (const field of ['id', 'recordingId', 'deviceId']) {
|
|
47
|
+
if (typeof task[field] !== 'string' || !task[field]) return invalid();
|
|
48
|
+
}
|
|
49
|
+
if (typeof task.localPath !== 'string' || ids.has(task.id)) return invalid();
|
|
50
|
+
ids.add(task.id);
|
|
51
|
+
if (!['pending', 'uploading', 'failed', 'completed'].includes(task.status)) return invalid();
|
|
52
|
+
if (!Number.isSafeInteger(task.retryCount) || task.retryCount < 0) return invalid();
|
|
53
|
+
for (const field of ['recordingUuid', 'recoveryScope', 'contentType', 'contentSha256']) {
|
|
54
|
+
if (task[field] !== undefined && typeof task[field] !== 'string') return invalid();
|
|
55
|
+
}
|
|
56
|
+
for (const field of ['fileSizeBytes', 'nextAttemptAt']) {
|
|
57
|
+
if (task[field] !== undefined && (!Number.isSafeInteger(task[field]) || task[field] < 0)) return invalid();
|
|
58
|
+
}
|
|
59
|
+
if (task.relayUpload !== undefined && typeof task.relayUpload !== 'boolean') return invalid();
|
|
60
|
+
const createdAt = new Date(task.createdAt);
|
|
61
|
+
const updatedAt = new Date(task.updatedAt);
|
|
62
|
+
if (!Number.isFinite(createdAt.getTime()) || !Number.isFinite(updatedAt.getTime())) return invalid();
|
|
63
|
+
return {
|
|
64
|
+
...task,
|
|
65
|
+
createdAt,
|
|
66
|
+
updatedAt,
|
|
67
|
+
status: task.status === 'uploading' ? 'pending' : task.status
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
return persistedUploadQueue(validated);
|
|
71
|
+
}
|
|
72
|
+
export function rejectRecordingDataStore(value) {
|
|
73
|
+
if (value !== undefined) {
|
|
74
|
+
throw new Error('RecordingDataStore byte callbacks are unsupported; recording files are native-owned');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=uploadRecoveryMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["invalid","Error","persistedUploadQueue","tasks","map","task","id","recordingId","deviceId","localPath","uploadUrl","status","retryCount","createdAt","Date","updatedAt","recordingUuid","undefined","recoveryScope","fileSizeBytes","nextAttemptAt","contentType","contentSha256","relayUpload","relay","restoreUploadQueue","value","Array","isArray","ids","Set","validated","entry","field","has","add","includes","Number","isSafeInteger","isFinite","getTime","rejectRecordingDataStore"],"sourceRoot":"../../../src","sources":["managers/uploadRecoveryMetadata.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SDK_PACKAGE","SDK_VERSION"],"sourceRoot":"../../src","sources":["sdkIdentity.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,WAAW,GAAG,gCAAgC;AAC3D,OAAO,MAAMC,WAAW,GAAG,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeBotaDeviceSDK.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeBotaDeviceSDK.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AA6lBlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,eAAe,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/** A host-owned, authenticated lease. It must permanently reject changed identities. */
|
|
4
|
+
|
|
5
|
+
/** Build scoped metadata recovery while native SDK storage retains recording bytes.
|
|
6
|
+
* A null host lease parks work until its original account is available.
|
|
7
|
+
* Even an already-uploaded recording requires the exact backend completion ACK.
|
|
8
|
+
*/
|
|
9
|
+
export function createUploadRecoveryProvider(openBackend) {
|
|
10
|
+
return async task => {
|
|
11
|
+
if (!task.recoveryScope || task.signal.aborted) return null;
|
|
12
|
+
let backend = null;
|
|
13
|
+
try {
|
|
14
|
+
backend = await openBackend(task);
|
|
15
|
+
if (!backend) return null;
|
|
16
|
+
const api = backend;
|
|
17
|
+
const check = (signal = task.signal) => {
|
|
18
|
+
api.checkScope();
|
|
19
|
+
if (api.signal.aborted || task.signal.aborted || signal.aborted) throw new Error('Upload recovery cancelled');
|
|
20
|
+
};
|
|
21
|
+
if (api.scopeKey !== task.recoveryScope) {
|
|
22
|
+
api.dispose();
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
check();
|
|
26
|
+
const recording = await api.getRecording(task.recordingId, task.signal);
|
|
27
|
+
check();
|
|
28
|
+
if (recording.id !== task.recordingId || !task.relayUpload && (task.contentSha256 && recording.content_sha256 && task.contentSha256 !== recording.content_sha256 || task.fileSizeBytes !== undefined && recording.file_size_bytes != null && task.fileSizeBytes !== recording.file_size_bytes)) throw new Error('Upload recovery identity or evidence changed');
|
|
29
|
+
if (!['pending', 'uploaded', 'integrity_failure'].includes(recording.status)) throw new Error('Recording unavailable for recovery');
|
|
30
|
+
const start = Date.parse(String(recording.metadata?.started_at ?? ''));
|
|
31
|
+
const end = Date.parse(String(recording.metadata?.ended_at ?? ''));
|
|
32
|
+
const duration = Number.isFinite(start) && Number.isFinite(end) && end >= start ? Math.floor((end - start) / 1000) : undefined;
|
|
33
|
+
const target = recording.status === 'uploaded' ? {
|
|
34
|
+
uploadUrl: ''
|
|
35
|
+
} : await api.getUploadInfo(task.recordingId, task.relayUpload, task.contentType, task.signal);
|
|
36
|
+
check();
|
|
37
|
+
return {
|
|
38
|
+
...target,
|
|
39
|
+
recordingId: task.recordingId,
|
|
40
|
+
recoveryScope: task.recoveryScope,
|
|
41
|
+
alreadyUploaded: recording.status === 'uploaded',
|
|
42
|
+
signal: api.signal,
|
|
43
|
+
dispose: () => api.dispose(),
|
|
44
|
+
complete: async ({
|
|
45
|
+
fileSizeBytes,
|
|
46
|
+
contentSha256,
|
|
47
|
+
signal
|
|
48
|
+
}) => {
|
|
49
|
+
check(signal);
|
|
50
|
+
await api.completeRecording(task.recordingId, {
|
|
51
|
+
duration_seconds: duration,
|
|
52
|
+
file_size_bytes: fileSizeBytes,
|
|
53
|
+
content_sha256: contentSha256
|
|
54
|
+
}, signal);
|
|
55
|
+
check(signal);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
} catch {
|
|
59
|
+
backend?.dispose();
|
|
60
|
+
throw new Error('Upload recovery request failed');
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=uploadRecovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createUploadRecoveryProvider","openBackend","task","recoveryScope","signal","aborted","backend","api","check","checkScope","Error","scopeKey","dispose","recording","getRecording","recordingId","id","relayUpload","contentSha256","content_sha256","fileSizeBytes","undefined","file_size_bytes","includes","status","start","Date","parse","String","metadata","started_at","end","ended_at","duration","Number","isFinite","Math","floor","target","uploadUrl","getUploadInfo","contentType","alreadyUploaded","complete","completeRecording","duration_seconds"],"sourceRoot":"../../src","sources":["uploadRecovery.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
+
import type { ClientPresence } from './clientPresence';
|
|
2
3
|
import { DeviceManager } from './managers/DeviceManager';
|
|
3
4
|
import { OTAManager } from './managers/OTAManager';
|
|
4
5
|
import { RecordingManager } from './managers/RecordingManager';
|
|
5
6
|
import type { BluetoothState, BotaClientEvents, BotaConfig, LogLevel, SdkState } from './models/Status';
|
|
6
7
|
import { type LogHandler } from './utils/logger';
|
|
7
8
|
declare class BotaClientImpl extends EventEmitter<BotaClientEvents> {
|
|
9
|
+
readonly clientPresence: ClientPresence;
|
|
8
10
|
private _config;
|
|
9
11
|
private _state;
|
|
10
12
|
private _bluetoothState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BotaClient.d.ts","sourceRoot":"","sources":["../../src/BotaClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"BotaClient.d.ts","sourceRoot":"","sources":["../../src/BotaClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,QAAQ,EACT,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgBzD,cAAM,cAAe,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACzD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAErC;IACF,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,eAAe,CAA8B;IAErD,IAAI,KAAK,IAAI,QAAQ,CAEpB;IAED,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,IAAI,MAAM,IAAI,UAAU,GAAG,IAAI,CAE9B;IAED,IAAI,OAAO,IAAI,aAAa,CAG3B;IAED,IAAI,UAAU,IAAI,gBAAgB,CAGjC;IAED,IAAI,GAAG,IAAI,UAAU,CAGpB;IAED,SAAS,CAAC,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,gBAAgB,CAAC,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBhE,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKlC,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAI/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAexB,OAAO,CAAC,OAAO;YAMD,gBAAgB;YAwDhB,iBAAiB;IAgB/B,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,iBAAiB;CAK1B;AAED,eAAO,MAAM,UAAU,gBAAuB,CAAC;AAE/C,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export declare const DEVICE_LOG_FLAG_BACKLOG = 1;
|
|
2
2
|
export declare const DEVICE_LOG_FLAG_DROPPED = 2;
|
|
3
3
|
export declare const BLE_ERROR_STORAGE_KEY_UNAVAILABLE = 20;
|
|
4
|
+
export declare const DEVICE_DIAGNOSTICS_EVT_META = 144;
|
|
5
|
+
export declare const DEVICE_DIAGNOSTICS_EVT_SIGNATURE = 145;
|
|
6
|
+
export declare const DEVICE_DIAGNOSTICS_EVT_END = 146;
|
|
7
|
+
export declare const DEVICE_DIAGNOSTICS_EVT_DETAIL = 149;
|
|
4
8
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/ble/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,IAAO,CAAC;AAC5C,eAAO,MAAM,uBAAuB,IAAO,CAAC;AAC5C,eAAO,MAAM,iCAAiC,KAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/ble/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,IAAO,CAAC;AAC5C,eAAO,MAAM,uBAAuB,IAAO,CAAC;AAC5C,eAAO,MAAM,iCAAiC,KAAO,CAAC;AAEtD,eAAO,MAAM,2BAA2B,MAAO,CAAC;AAChD,eAAO,MAAM,gCAAgC,MAAO,CAAC;AACrD,eAAO,MAAM,0BAA0B,MAAO,CAAC;AAC/C,eAAO,MAAM,6BAA6B,MAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
2
|
+
import type { DeviceDiagnosticsBatch } from '../models/Device';
|
|
3
|
+
export declare function diagnosticEventIdCommand(eventId: string): Buffer;
|
|
4
|
+
export declare class DeviceDiagnosticsDecoder {
|
|
5
|
+
private events;
|
|
6
|
+
private details;
|
|
7
|
+
push(packet: Buffer): DeviceDiagnosticsBatch | null;
|
|
8
|
+
reset(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=deviceDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviceDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/ble/deviceDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhC,OAAO,KAAK,EAIV,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAkC1B,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQhE;AA+FD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,OAAO,CAAqC;IAEpD,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;IA+EnD,KAAK,IAAI,IAAI;CAId"}
|