@bota.dev/react-native-app-sdk 2.0.0-beta.1 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +75 -3
  2. package/android/build.gradle +1 -0
  3. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevices.kt +4 -0
  4. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDiagnostics.kt +53 -0
  5. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogs.kt +16 -0
  6. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt +144 -14
  7. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordings.kt +150 -29
  8. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKEncryptedUploadV2Materials.kt +27 -0
  9. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKModule.kt +83 -3
  10. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevicesTest.kt +1 -0
  11. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogsTest.kt +33 -0
  12. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt +135 -6
  13. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingsTest.kt +236 -10
  14. package/generated/codegen-contract.json +568 -8
  15. package/ios/BotaDeviceSDK.mm +114 -0
  16. package/ios/BotaDeviceSDKAppleBridge.swift +141 -4
  17. package/ios/BotaDeviceSDKAppleDevices.swift +11 -0
  18. package/ios/BotaDeviceSDKAppleDiagnostics.swift +40 -0
  19. package/ios/BotaDeviceSDKAppleLogs.swift +18 -0
  20. package/ios/BotaDeviceSDKAppleRecordingUploads.swift +138 -6
  21. package/ios/BotaDeviceSDKAppleRecordings.swift +113 -5
  22. package/ios/BotaDeviceSDKEncryptedUploadV2Materials.swift +40 -0
  23. package/lib/commonjs/BotaClient.js +13 -2
  24. package/lib/commonjs/BotaClient.js.map +1 -1
  25. package/lib/commonjs/ble/constants.js +5 -1
  26. package/lib/commonjs/ble/constants.js.map +1 -1
  27. package/lib/commonjs/ble/deviceDiagnostics.js +240 -0
  28. package/lib/commonjs/ble/deviceDiagnostics.js.map +1 -0
  29. package/lib/commonjs/client.js +183 -28
  30. package/lib/commonjs/client.js.map +1 -1
  31. package/lib/commonjs/index.js +15 -0
  32. package/lib/commonjs/index.js.map +1 -1
  33. package/lib/commonjs/managers/DeviceManager.js +8 -0
  34. package/lib/commonjs/managers/DeviceManager.js.map +1 -1
  35. package/lib/commonjs/managers/NativeUploadQueue.js +386 -0
  36. package/lib/commonjs/managers/NativeUploadQueue.js.map +1 -0
  37. package/lib/commonjs/managers/RecordingManager.js +83 -102
  38. package/lib/commonjs/managers/RecordingManager.js.map +1 -1
  39. package/lib/commonjs/managers/uploadRecoveryMetadata.js +83 -0
  40. package/lib/commonjs/managers/uploadRecoveryMetadata.js.map +1 -0
  41. package/lib/commonjs/sdkIdentity.js +10 -0
  42. package/lib/commonjs/sdkIdentity.js.map +1 -0
  43. package/lib/commonjs/specs/NativeBotaDeviceSDK.js.map +1 -1
  44. package/lib/module/BotaClient.js +13 -2
  45. package/lib/module/BotaClient.js.map +1 -1
  46. package/lib/module/ble/constants.js +4 -0
  47. package/lib/module/ble/constants.js.map +1 -1
  48. package/lib/module/ble/deviceDiagnostics.js +234 -0
  49. package/lib/module/ble/deviceDiagnostics.js.map +1 -0
  50. package/lib/module/client.js +183 -28
  51. package/lib/module/client.js.map +1 -1
  52. package/lib/module/index.js +2 -0
  53. package/lib/module/index.js.map +1 -1
  54. package/lib/module/managers/DeviceManager.js +8 -0
  55. package/lib/module/managers/DeviceManager.js.map +1 -1
  56. package/lib/module/managers/NativeUploadQueue.js +380 -0
  57. package/lib/module/managers/NativeUploadQueue.js.map +1 -0
  58. package/lib/module/managers/RecordingManager.js +83 -102
  59. package/lib/module/managers/RecordingManager.js.map +1 -1
  60. package/lib/module/managers/uploadRecoveryMetadata.js +77 -0
  61. package/lib/module/managers/uploadRecoveryMetadata.js.map +1 -0
  62. package/lib/module/sdkIdentity.js +6 -0
  63. package/lib/module/sdkIdentity.js.map +1 -0
  64. package/lib/module/specs/NativeBotaDeviceSDK.js.map +1 -1
  65. package/lib/typescript/BotaClient.d.ts.map +1 -1
  66. package/lib/typescript/ble/constants.d.ts +4 -0
  67. package/lib/typescript/ble/constants.d.ts.map +1 -1
  68. package/lib/typescript/ble/deviceDiagnostics.d.ts +10 -0
  69. package/lib/typescript/ble/deviceDiagnostics.d.ts.map +1 -0
  70. package/lib/typescript/client.d.ts +24 -3
  71. package/lib/typescript/client.d.ts.map +1 -1
  72. package/lib/typescript/index.d.ts +6 -4
  73. package/lib/typescript/index.d.ts.map +1 -1
  74. package/lib/typescript/managers/DeviceManager.d.ts +3 -1
  75. package/lib/typescript/managers/DeviceManager.d.ts.map +1 -1
  76. package/lib/typescript/managers/NativeUploadQueue.d.ts +41 -0
  77. package/lib/typescript/managers/NativeUploadQueue.d.ts.map +1 -0
  78. package/lib/typescript/managers/RecordingManager.d.ts +3 -8
  79. package/lib/typescript/managers/RecordingManager.d.ts.map +1 -1
  80. package/lib/typescript/managers/types.d.ts +6 -1
  81. package/lib/typescript/managers/types.d.ts.map +1 -1
  82. package/lib/typescript/managers/uploadRecoveryMetadata.d.ts +6 -0
  83. package/lib/typescript/managers/uploadRecoveryMetadata.d.ts.map +1 -0
  84. package/lib/typescript/models/Device.d.ts +42 -0
  85. package/lib/typescript/models/Device.d.ts.map +1 -1
  86. package/lib/typescript/models/Recording.d.ts +47 -0
  87. package/lib/typescript/models/Recording.d.ts.map +1 -1
  88. package/lib/typescript/models/Status.d.ts +5 -1
  89. package/lib/typescript/models/Status.d.ts.map +1 -1
  90. package/lib/typescript/sdkIdentity.d.ts +3 -0
  91. package/lib/typescript/sdkIdentity.d.ts.map +1 -0
  92. package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts +70 -0
  93. package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/scripts/bota_device_sdk_spm_workaround.rb +26 -15
  96. package/src/BotaClient.ts +13 -3
  97. package/src/ble/constants.ts +5 -0
  98. package/src/ble/deviceDiagnostics.ts +238 -0
  99. package/src/client.ts +189 -18
  100. package/src/index.ts +14 -0
  101. package/src/managers/DeviceManager.ts +11 -0
  102. package/src/managers/NativeUploadQueue.ts +330 -0
  103. package/src/managers/RecordingManager.ts +83 -116
  104. package/src/managers/types.ts +7 -1
  105. package/src/managers/uploadRecoveryMetadata.ts +59 -0
  106. package/src/models/Device.ts +43 -0
  107. package/src/models/Recording.ts +52 -0
  108. package/src/models/Status.ts +5 -1
  109. package/src/sdkIdentity.ts +3 -0
  110. package/src/specs/NativeBotaDeviceSDK.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
- this.tasks = (await this.client.recordings.loadUploadQueue()).map(task => ({
64
- ...task,
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.tasks.push(task);
111
- await this.persistTasks();
112
- this.emitQueueUpdated();
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
- await this.updateTask(task.id, {
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
- relay: transferResult.e2eEncrypted ? uploadInfo.relay : undefined
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
- const upload = observeProgress(onProgress => this.runUpload(task.id, onProgress));
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.requireTask(task.id).status !== 'completed') {
177
- await this.updateTask(task.id, {
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: failure.message
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.tasks.filter(task => task.status === 'pending' || task.status === 'uploading');
351
+ return this.queue.all().filter(task => task.status === 'pending' || task.status === 'uploading');
299
352
  }
300
353
  getAllUploads() {
301
- return this.tasks.map(task => ({
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
- await this.client.recordings.cancelRecordingUpload(taskId);
325
- this.tasks = this.tasks.filter(task => task.id !== taskId);
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
- if (this.paused) return;
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.tasks = this.tasks.filter(task => task.status !== 'completed');
347
- await this.persistTasks();
348
- this.emitQueueUpdated();
383
+ this.assertReady();
384
+ await this.queue.clearCompleted();
349
385
  }
350
386
  async clearAllUploads() {
351
- const ids = this.tasks.map(task => task.id);
352
- await Promise.all(ids.map(taskId => this.client.recordings.cancelRecordingUpload(taskId).catch(() => undefined)));
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.paused = true;
391
+ this.queue.pause();
359
392
  }
360
393
  resumeUploads() {
361
- this.paused = false;
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,6 @@
1
+ "use strict";
2
+
3
+ // Generated by cargo xtask client-identity generate. Do not edit.
4
+ export const SDK_PACKAGE = '@bota.dev/react-native-app-sdk';
5
+ export const SDK_VERSION = '2.0.0-beta.4';
6
+ //# sourceMappingURL=sdkIdentity.js.map
@@ -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,cAAc","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeBotaDeviceSDK.ts"],"mappings":";;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AA2hBlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,eAAe,CAAC","ignoreList":[]}
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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BotaClient.d.ts","sourceRoot":"","sources":["../../src/BotaClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/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;AAYzD,cAAM,cAAe,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IACzD,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;IAe3C,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
+ {"version":3,"file":"BotaClient.d.ts","sourceRoot":"","sources":["../../src/BotaClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAIzC,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,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"}
@@ -1,5 +1,9 @@
1
- import type { NativeCapabilities, NativeEncryptedUploadV2Capability, NativeEncryptedUploadV2Checkpoint, NativeEncryptedUploadV2Recording, NativeFactoryResetCompletion, NativeFactoryResetGrantRequest, NativeStreamingStartRequest, NativeStreamingUploadDestination, NativeProvisioningMaterialRequest, Spec } from './specs/NativeBotaDeviceSDK';
2
- import type { ConnectedDevice, DeviceConnectionSettings, DeviceStatus, DeviceLogEvent, DiscoveredDevice, ReconnectOptions, ScanOptions, WiFiConfigGrant, WiFiConfigResult, WiFiCredentials, WiFiStatusInfo, BleFactoryResetResultPersister, DeviceWiFiScanResult, Environment, RecordingState } from './models/Device';
1
+ import type { NativeClientContext, NativeCapabilities, NativeEncryptedUploadV2Capability, NativeEncryptedUploadV2Checkpoint, NativeEncryptedUploadV2Recording, NativeFactoryResetCompletion, NativeFactoryResetGrantRequest, NativeStreamingStartRequest, NativeStreamingUploadDestination, NativeProvisioningMaterialRequest, Spec } from './specs/NativeBotaDeviceSDK';
2
+ export type SdkClientContext = NativeClientContext;
3
+ export type BotaClientPresence = {
4
+ nextReport(deviceId: string): Promise<SdkClientContext | null>;
5
+ };
6
+ import type { ConnectedDevice, DeviceConnectionSettings, DeviceStatus, DeviceLogEvent, DeviceDiagnosticsBatch, DiscoveredDevice, ReconnectOptions, ScanOptions, WiFiConfigGrant, WiFiConfigResult, WiFiCredentials, WiFiStatusInfo, BleFactoryResetResultPersister, DeviceWiFiScanResult, Environment, RecordingState } from './models/Device';
3
7
  import type { DeviceRecording, UploadTask } from './models/Recording';
4
8
  export type BotaLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
5
9
  export type BotaDeviceSDKConfiguration = {
@@ -65,9 +69,20 @@ export type BotaRecordingTransferProgress = {
65
69
  totalBytes: number;
66
70
  };
67
71
  export type BotaEncryptedUploadV2Recording = NativeEncryptedUploadV2Recording;
72
+ export type BotaEncryptedUploadV2PendingRecording = Omit<BotaEncryptedUploadV2Recording, 'durationMs'> & {
73
+ storageFormat: 3;
74
+ startedAt: Date;
75
+ durationMs: number;
76
+ plaintextLength: string;
77
+ };
78
+ export type BotaEncryptedUploadV2SyncOptions = {
79
+ signal?: AbortSignal;
80
+ operationId?: string;
81
+ };
68
82
  export type BotaEncryptedUploadV2Capability = NativeEncryptedUploadV2Capability;
69
83
  export type BotaEncryptedUploadV2Checkpoint = NativeEncryptedUploadV2Checkpoint;
70
84
  export type BotaEncryptedUploadV2ProviderContext = {
85
+ operationId: string;
71
86
  recording: BotaEncryptedUploadV2Recording;
72
87
  capability: BotaEncryptedUploadV2Capability;
73
88
  checkpoint?: BotaEncryptedUploadV2Checkpoint;
@@ -125,6 +140,8 @@ export type BotaDeviceSDKOTAClient = {
125
140
  cancelFirmwareUpdate(): Promise<void>;
126
141
  };
127
142
  export type BotaDeviceSDKLogClient = {
143
+ readDiagnosticEvents(device: ConnectedDevice): Promise<DeviceDiagnosticsBatch>;
144
+ acknowledgeDiagnosticEvents(device: ConnectedDevice, acceptedEventIds: string[]): Promise<void>;
128
145
  subscribe(device: ConnectedDevice, onLine: (line: DeviceLogEvent) => void): Promise<BotaAsyncEventSubscription>;
129
146
  };
130
147
  export type BotaDeviceSDKWiFiClient = {
@@ -136,15 +153,18 @@ export type BotaDeviceSDKWiFiClient = {
136
153
  };
137
154
  export type BotaDeviceSDKRecordingClient = {
138
155
  listRecordings(device: ConnectedDevice): Promise<DeviceRecording[]>;
156
+ listPendingRecordings(device: ConnectedDevice): Promise<Array<DeviceRecording | BotaEncryptedUploadV2PendingRecording>>;
139
157
  syncRecording(device: ConnectedDevice, recording: DeviceRecording, onProgress?: (progress: BotaRecordingTransferProgress) => void, sinkId?: string): Promise<{
140
158
  localPath: string;
141
159
  e2eEncrypted: boolean;
142
160
  contentSha256?: string;
161
+ fileSizeBytes: number;
143
162
  }>;
144
- syncEncryptedRecordingV2(device: ConnectedDevice, recording: BotaEncryptedUploadV2Recording, provider: BotaEncryptedUploadV2ProfileProvider, onProgress?: (progress: BotaEncryptedUploadV2Progress) => void): Promise<void>;
163
+ syncEncryptedRecordingV2(device: ConnectedDevice, recording: BotaEncryptedUploadV2Recording, provider: BotaEncryptedUploadV2ProfileProvider, onProgress?: (progress: BotaEncryptedUploadV2Progress) => void, options?: BotaEncryptedUploadV2SyncOptions): Promise<void>;
145
164
  confirmRecording(device: ConnectedDevice, recordingUuid: string): Promise<void>;
146
165
  uploadRecordingFile(task: UploadTask, onProgress?: (progress: BotaRecordingTransferProgress) => void): Promise<void>;
147
166
  cancelRecordingUpload(taskId: string): Promise<void>;
167
+ releaseRecordingFile(taskId: string, localPath: string): Promise<void>;
148
168
  loadUploadQueue(): Promise<UploadTask[]>;
149
169
  saveUploadQueue(tasks: UploadTask[]): Promise<void>;
150
170
  destroyCompatibilityOperations(): Promise<void>;
@@ -190,6 +210,7 @@ export declare class BotaNativeModuleError extends Error {
190
210
  constructor();
191
211
  }
192
212
  export type BotaDeviceSDKClient = {
213
+ readonly clientPresence: BotaClientPresence;
193
214
  readonly controls: BotaDeviceSDKControlClient;
194
215
  readonly devices: BotaDeviceSDKDeviceClient;
195
216
  readonly factoryReset: BotaDeviceSDKFactoryResetClient;