@bota-dev/react-native-sdk 0.0.2

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 (177) hide show
  1. package/README.md +279 -0
  2. package/lib/commonjs/BotaClient.js +223 -0
  3. package/lib/commonjs/BotaClient.js.map +1 -0
  4. package/lib/commonjs/ble/BleManager.js +494 -0
  5. package/lib/commonjs/ble/BleManager.js.map +1 -0
  6. package/lib/commonjs/ble/constants.js +166 -0
  7. package/lib/commonjs/ble/constants.js.map +1 -0
  8. package/lib/commonjs/ble/index.js +54 -0
  9. package/lib/commonjs/ble/index.js.map +1 -0
  10. package/lib/commonjs/ble/parsers.js +345 -0
  11. package/lib/commonjs/ble/parsers.js.map +1 -0
  12. package/lib/commonjs/index.js +81 -0
  13. package/lib/commonjs/index.js.map +1 -0
  14. package/lib/commonjs/managers/DeviceManager.js +437 -0
  15. package/lib/commonjs/managers/DeviceManager.js.map +1 -0
  16. package/lib/commonjs/managers/OTAManager.js +227 -0
  17. package/lib/commonjs/managers/OTAManager.js.map +1 -0
  18. package/lib/commonjs/managers/RecordingManager.js +384 -0
  19. package/lib/commonjs/managers/RecordingManager.js.map +1 -0
  20. package/lib/commonjs/managers/index.js +27 -0
  21. package/lib/commonjs/managers/index.js.map +1 -0
  22. package/lib/commonjs/models/Device.js +2 -0
  23. package/lib/commonjs/models/Device.js.map +1 -0
  24. package/lib/commonjs/models/Recording.js +2 -0
  25. package/lib/commonjs/models/Recording.js.map +1 -0
  26. package/lib/commonjs/models/Status.js +6 -0
  27. package/lib/commonjs/models/Status.js.map +1 -0
  28. package/lib/commonjs/models/index.js +39 -0
  29. package/lib/commonjs/models/index.js.map +1 -0
  30. package/lib/commonjs/protocol/ProtocolHandler.js +343 -0
  31. package/lib/commonjs/protocol/ProtocolHandler.js.map +1 -0
  32. package/lib/commonjs/protocol/index.js +13 -0
  33. package/lib/commonjs/protocol/index.js.map +1 -0
  34. package/lib/commonjs/storage/StorageManager.js +333 -0
  35. package/lib/commonjs/storage/StorageManager.js.map +1 -0
  36. package/lib/commonjs/storage/index.js +19 -0
  37. package/lib/commonjs/storage/index.js.map +1 -0
  38. package/lib/commonjs/upload/S3Uploader.js +133 -0
  39. package/lib/commonjs/upload/S3Uploader.js.map +1 -0
  40. package/lib/commonjs/upload/UploadQueue.js +280 -0
  41. package/lib/commonjs/upload/UploadQueue.js.map +1 -0
  42. package/lib/commonjs/upload/index.js +20 -0
  43. package/lib/commonjs/upload/index.js.map +1 -0
  44. package/lib/commonjs/utils/errors.js +187 -0
  45. package/lib/commonjs/utils/errors.js.map +1 -0
  46. package/lib/commonjs/utils/index.js +40 -0
  47. package/lib/commonjs/utils/index.js.map +1 -0
  48. package/lib/commonjs/utils/logger.js +135 -0
  49. package/lib/commonjs/utils/logger.js.map +1 -0
  50. package/lib/commonjs/utils/retry.js +160 -0
  51. package/lib/commonjs/utils/retry.js.map +1 -0
  52. package/lib/module/BotaClient.js +216 -0
  53. package/lib/module/BotaClient.js.map +1 -0
  54. package/lib/module/ble/BleManager.js +484 -0
  55. package/lib/module/ble/BleManager.js.map +1 -0
  56. package/lib/module/ble/constants.js +159 -0
  57. package/lib/module/ble/constants.js.map +1 -0
  58. package/lib/module/ble/index.js +8 -0
  59. package/lib/module/ble/index.js.map +1 -0
  60. package/lib/module/ble/parsers.js +328 -0
  61. package/lib/module/ble/parsers.js.map +1 -0
  62. package/lib/module/index.js +22 -0
  63. package/lib/module/index.js.map +1 -0
  64. package/lib/module/managers/DeviceManager.js +429 -0
  65. package/lib/module/managers/DeviceManager.js.map +1 -0
  66. package/lib/module/managers/OTAManager.js +219 -0
  67. package/lib/module/managers/OTAManager.js.map +1 -0
  68. package/lib/module/managers/RecordingManager.js +376 -0
  69. package/lib/module/managers/RecordingManager.js.map +1 -0
  70. package/lib/module/managers/index.js +8 -0
  71. package/lib/module/managers/index.js.map +1 -0
  72. package/lib/module/models/Device.js +2 -0
  73. package/lib/module/models/Device.js.map +1 -0
  74. package/lib/module/models/Recording.js +2 -0
  75. package/lib/module/models/Recording.js.map +1 -0
  76. package/lib/module/models/Status.js +2 -0
  77. package/lib/module/models/Status.js.map +1 -0
  78. package/lib/module/models/index.js +8 -0
  79. package/lib/module/models/index.js.map +1 -0
  80. package/lib/module/protocol/ProtocolHandler.js +336 -0
  81. package/lib/module/protocol/ProtocolHandler.js.map +1 -0
  82. package/lib/module/protocol/index.js +6 -0
  83. package/lib/module/protocol/index.js.map +1 -0
  84. package/lib/module/storage/StorageManager.js +324 -0
  85. package/lib/module/storage/StorageManager.js.map +1 -0
  86. package/lib/module/storage/index.js +6 -0
  87. package/lib/module/storage/index.js.map +1 -0
  88. package/lib/module/upload/S3Uploader.js +126 -0
  89. package/lib/module/upload/S3Uploader.js.map +1 -0
  90. package/lib/module/upload/UploadQueue.js +272 -0
  91. package/lib/module/upload/UploadQueue.js.map +1 -0
  92. package/lib/module/upload/index.js +7 -0
  93. package/lib/module/upload/index.js.map +1 -0
  94. package/lib/module/utils/errors.js +173 -0
  95. package/lib/module/utils/errors.js.map +1 -0
  96. package/lib/module/utils/index.js +8 -0
  97. package/lib/module/utils/index.js.map +1 -0
  98. package/lib/module/utils/logger.js +129 -0
  99. package/lib/module/utils/logger.js.map +1 -0
  100. package/lib/module/utils/retry.js +149 -0
  101. package/lib/module/utils/retry.js.map +1 -0
  102. package/lib/typescript/src/BotaClient.d.ts +77 -0
  103. package/lib/typescript/src/BotaClient.d.ts.map +1 -0
  104. package/lib/typescript/src/ble/BleManager.d.ts +111 -0
  105. package/lib/typescript/src/ble/BleManager.d.ts.map +1 -0
  106. package/lib/typescript/src/ble/constants.d.ts +111 -0
  107. package/lib/typescript/src/ble/constants.d.ts.map +1 -0
  108. package/lib/typescript/src/ble/index.d.ts +7 -0
  109. package/lib/typescript/src/ble/index.d.ts.map +1 -0
  110. package/lib/typescript/src/ble/parsers.d.ts +100 -0
  111. package/lib/typescript/src/ble/parsers.d.ts.map +1 -0
  112. package/lib/typescript/src/index.d.ts +16 -0
  113. package/lib/typescript/src/index.d.ts.map +1 -0
  114. package/lib/typescript/src/managers/DeviceManager.d.ts +84 -0
  115. package/lib/typescript/src/managers/DeviceManager.d.ts.map +1 -0
  116. package/lib/typescript/src/managers/OTAManager.d.ts +78 -0
  117. package/lib/typescript/src/managers/OTAManager.d.ts.map +1 -0
  118. package/lib/typescript/src/managers/RecordingManager.d.ts +90 -0
  119. package/lib/typescript/src/managers/RecordingManager.d.ts.map +1 -0
  120. package/lib/typescript/src/managers/index.d.ts +7 -0
  121. package/lib/typescript/src/managers/index.d.ts.map +1 -0
  122. package/lib/typescript/src/models/Device.d.ts +139 -0
  123. package/lib/typescript/src/models/Device.d.ts.map +1 -0
  124. package/lib/typescript/src/models/Recording.d.ts +110 -0
  125. package/lib/typescript/src/models/Recording.d.ts.map +1 -0
  126. package/lib/typescript/src/models/Status.d.ts +104 -0
  127. package/lib/typescript/src/models/Status.d.ts.map +1 -0
  128. package/lib/typescript/src/models/index.d.ts +7 -0
  129. package/lib/typescript/src/models/index.d.ts.map +1 -0
  130. package/lib/typescript/src/protocol/ProtocolHandler.d.ts +69 -0
  131. package/lib/typescript/src/protocol/ProtocolHandler.d.ts.map +1 -0
  132. package/lib/typescript/src/protocol/index.d.ts +5 -0
  133. package/lib/typescript/src/protocol/index.d.ts.map +1 -0
  134. package/lib/typescript/src/storage/StorageManager.d.ts +116 -0
  135. package/lib/typescript/src/storage/StorageManager.d.ts.map +1 -0
  136. package/lib/typescript/src/storage/index.d.ts +5 -0
  137. package/lib/typescript/src/storage/index.d.ts.map +1 -0
  138. package/lib/typescript/src/upload/S3Uploader.d.ts +38 -0
  139. package/lib/typescript/src/upload/S3Uploader.d.ts.map +1 -0
  140. package/lib/typescript/src/upload/UploadQueue.d.ts +95 -0
  141. package/lib/typescript/src/upload/UploadQueue.d.ts.map +1 -0
  142. package/lib/typescript/src/upload/index.d.ts +6 -0
  143. package/lib/typescript/src/upload/index.d.ts.map +1 -0
  144. package/lib/typescript/src/utils/errors.d.ts +82 -0
  145. package/lib/typescript/src/utils/errors.d.ts.map +1 -0
  146. package/lib/typescript/src/utils/index.d.ts +7 -0
  147. package/lib/typescript/src/utils/index.d.ts.map +1 -0
  148. package/lib/typescript/src/utils/logger.d.ts +68 -0
  149. package/lib/typescript/src/utils/logger.d.ts.map +1 -0
  150. package/lib/typescript/src/utils/retry.d.ts +53 -0
  151. package/lib/typescript/src/utils/retry.d.ts.map +1 -0
  152. package/package.json +95 -0
  153. package/src/BotaClient.ts +238 -0
  154. package/src/ble/BleManager.ts +573 -0
  155. package/src/ble/constants.ts +158 -0
  156. package/src/ble/index.ts +7 -0
  157. package/src/ble/parsers.ts +395 -0
  158. package/src/index.ts +64 -0
  159. package/src/managers/DeviceManager.ts +545 -0
  160. package/src/managers/OTAManager.ts +263 -0
  161. package/src/managers/RecordingManager.ts +434 -0
  162. package/src/managers/index.ts +12 -0
  163. package/src/models/Device.ts +164 -0
  164. package/src/models/Recording.ts +123 -0
  165. package/src/models/Status.ts +126 -0
  166. package/src/models/index.ts +7 -0
  167. package/src/protocol/ProtocolHandler.ts +459 -0
  168. package/src/protocol/index.ts +5 -0
  169. package/src/storage/StorageManager.ts +343 -0
  170. package/src/storage/index.ts +5 -0
  171. package/src/upload/S3Uploader.ts +164 -0
  172. package/src/upload/UploadQueue.ts +310 -0
  173. package/src/upload/index.ts +6 -0
  174. package/src/utils/errors.ts +310 -0
  175. package/src/utils/index.ts +7 -0
  176. package/src/utils/logger.ts +137 -0
  177. package/src/utils/retry.ts +177 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Status and configuration type definitions
3
+ */
4
+ import type { DeviceStatus, StorageInfo } from './Device';
5
+ import type { SyncProgress, UploadTask } from './Recording';
6
+ /**
7
+ * SDK log level
8
+ */
9
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'none';
10
+ /**
11
+ * SDK configuration options
12
+ */
13
+ export interface BotaConfig {
14
+ /** Environment for API endpoint (production or sandbox) */
15
+ environment?: 'production' | 'sandbox';
16
+ /** Enable background sync (default: true) */
17
+ backgroundSyncEnabled?: boolean;
18
+ /** Only upload on WiFi (default: false) */
19
+ wifiOnlyUpload?: boolean;
20
+ /** Logging level (default: 'warn') */
21
+ logLevel?: LogLevel;
22
+ /** Enable debug mode with verbose logging */
23
+ debug?: boolean;
24
+ }
25
+ /**
26
+ * SDK state
27
+ */
28
+ export type SdkState = 'uninitialized' | 'initializing' | 'ready' | 'error';
29
+ /**
30
+ * Bluetooth state
31
+ */
32
+ export type BluetoothState = 'unknown' | 'resetting' | 'unsupported' | 'unauthorized' | 'poweredOff' | 'poweredOn';
33
+ /**
34
+ * SDK status information
35
+ */
36
+ export interface SdkStatus {
37
+ /** Current SDK state */
38
+ state: SdkState;
39
+ /** Bluetooth state */
40
+ bluetoothState: BluetoothState;
41
+ /** Whether Bluetooth is ready for operations */
42
+ isBluetoothReady: boolean;
43
+ /** Number of connected devices */
44
+ connectedDevicesCount: number;
45
+ /** Number of pending uploads in queue */
46
+ pendingUploadsCount: number;
47
+ }
48
+ export type { DeviceStatus, StorageInfo, SyncProgress, UploadTask };
49
+ /**
50
+ * Event types emitted by DeviceManager
51
+ */
52
+ export interface DeviceManagerEvents {
53
+ /** Emitted when a device is discovered during scan */
54
+ deviceDiscovered: (device: import('./Device').DiscoveredDevice) => void;
55
+ /** Emitted when a device is connected */
56
+ deviceConnected: (device: import('./Device').ConnectedDevice) => void;
57
+ /** Emitted when a device is disconnected */
58
+ deviceDisconnected: (deviceId: string, error?: Error) => void;
59
+ /** Emitted when device status is updated */
60
+ deviceStatusUpdated: (deviceId: string, status: import('./Device').DeviceStatus) => void;
61
+ /** Emitted when scan starts */
62
+ scanStarted: () => void;
63
+ /** Emitted when scan stops */
64
+ scanStopped: () => void;
65
+ /** Emitted on scan error */
66
+ scanError: (error: Error) => void;
67
+ /** Emitted on connection state change */
68
+ connectionStateChanged: (deviceId: string, state: import('./Device').ConnectionState) => void;
69
+ }
70
+ /**
71
+ * Event types emitted by RecordingManager
72
+ */
73
+ export interface RecordingManagerEvents {
74
+ /** Emitted when sync starts for a recording */
75
+ syncStarted: (deviceRecordingUuid: string) => void;
76
+ /** Emitted on sync progress update */
77
+ syncProgress: (deviceRecordingUuid: string, progress: SyncProgress) => void;
78
+ /** Emitted when sync completes successfully */
79
+ syncCompleted: (deviceRecordingUuid: string, recordingId: string) => void;
80
+ /** Emitted when sync fails */
81
+ syncFailed: (deviceRecordingUuid: string, error: Error) => void;
82
+ /** Emitted when upload queue changes */
83
+ queueUpdated: (tasks: UploadTask[]) => void;
84
+ /** Emitted when an upload starts */
85
+ uploadStarted: (taskId: string) => void;
86
+ /** Emitted on upload progress */
87
+ uploadProgress: (taskId: string, progress: number) => void;
88
+ /** Emitted when an upload completes */
89
+ uploadCompleted: (taskId: string, recordingId: string) => void;
90
+ /** Emitted when an upload fails */
91
+ uploadFailed: (taskId: string, error: Error) => void;
92
+ }
93
+ /**
94
+ * Event types emitted by BotaClient
95
+ */
96
+ export interface BotaClientEvents {
97
+ /** Emitted when SDK state changes */
98
+ stateChanged: (state: SdkState) => void;
99
+ /** Emitted when Bluetooth state changes */
100
+ bluetoothStateChanged: (state: BluetoothState) => void;
101
+ /** Emitted on SDK error */
102
+ error: (error: Error) => void;
103
+ }
104
+ //# sourceMappingURL=Status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Status.d.ts","sourceRoot":"","sources":["../../../../src/models/Status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Models module exports
3
+ */
4
+ export * from './Device';
5
+ export * from './Recording';
6
+ export * from './Status';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/models/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Protocol Handler - Implements Device-App Protocol for recording transfer
3
+ */
4
+ import { Buffer } from 'buffer';
5
+ import type { StorageInfo } from '../models/Device';
6
+ import type { DeviceRecording } from '../models/Recording';
7
+ /**
8
+ * Transfer progress callback
9
+ */
10
+ export type TransferProgressCallback = (bytesReceived: number, totalBytes?: number) => void;
11
+ /**
12
+ * Protocol Handler class
13
+ */
14
+ export declare class ProtocolHandler {
15
+ private bleManager;
16
+ private activeTransfers;
17
+ constructor();
18
+ /**
19
+ * Get storage info from device
20
+ */
21
+ getStorageInfo(deviceId: string): Promise<StorageInfo>;
22
+ /**
23
+ * List recordings on device
24
+ */
25
+ listRecordings(deviceId: string): Promise<DeviceRecording[]>;
26
+ /**
27
+ * Transfer a recording from device
28
+ * Returns the audio data as a Buffer
29
+ */
30
+ transferRecording(deviceId: string, recordingUuid: string, onProgress?: TransferProgressCallback): Promise<Buffer>;
31
+ /**
32
+ * Handle a transfer packet from device
33
+ */
34
+ private handleTransferPacket;
35
+ /**
36
+ * Send an ACK packet to device
37
+ */
38
+ private sendAck;
39
+ /**
40
+ * Assemble audio data from received packets
41
+ */
42
+ private assembleAudioData;
43
+ /**
44
+ * Calculate CRC32 checksum
45
+ */
46
+ private calculateCrc32;
47
+ /**
48
+ * Get CRC32 lookup table (lazy initialized)
49
+ */
50
+ private crc32Table;
51
+ private getCrc32Table;
52
+ /**
53
+ * Confirm sync to device (allows device to delete local copy)
54
+ */
55
+ confirmSync(deviceId: string, recordingUuid: string): Promise<void>;
56
+ /**
57
+ * Cancel an ongoing transfer
58
+ */
59
+ cancelTransfer(deviceId: string, recordingUuid: string): Promise<void>;
60
+ /**
61
+ * Check if a transfer is in progress
62
+ */
63
+ isTransferInProgress(recordingUuid: string): boolean;
64
+ /**
65
+ * Clean up resources
66
+ */
67
+ destroy(): void;
68
+ }
69
+ //# sourceMappingURL=ProtocolHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolHandler.d.ts","sourceRoot":"","sources":["../../../../src/protocol/ProtocolHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAmBhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,qBAAqB,CAAC;AAoB3E;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAyC;;IAMhE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAc5D;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqElE;;;OAGG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,wBAAwB,GACpC,OAAO,CAAC,MAAM,CAAC;IA8GlB;;OAEG;YACW,oBAAoB;IAgDlC;;OAEG;YACW,OAAO;IAgBrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5E;;OAEG;IACH,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Protocol module exports
3
+ */
4
+ export { ProtocolHandler, type TransferProgressCallback } from './ProtocolHandler';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Storage Manager - Local persistence for recordings and upload queue
3
+ */
4
+ import { Buffer } from 'buffer';
5
+ import type { UploadTask, UploadTaskStatus } from '../models/Recording';
6
+ /**
7
+ * Storage Manager class
8
+ */
9
+ export declare class StorageManager {
10
+ private uploadQueue;
11
+ private sdkState;
12
+ private isInitialized;
13
+ /**
14
+ * Initialize storage manager
15
+ */
16
+ initialize(): Promise<void>;
17
+ /**
18
+ * Get all upload tasks
19
+ */
20
+ getUploadQueue(): UploadTask[];
21
+ /**
22
+ * Get pending upload tasks
23
+ */
24
+ getPendingUploads(): UploadTask[];
25
+ /**
26
+ * Get failed upload tasks
27
+ */
28
+ getFailedUploads(): UploadTask[];
29
+ /**
30
+ * Add a task to the upload queue
31
+ */
32
+ addUploadTask(task: UploadTask): Promise<void>;
33
+ /**
34
+ * Update an upload task
35
+ */
36
+ updateUploadTask(taskId: string, updates: Partial<UploadTask>): Promise<void>;
37
+ /**
38
+ * Update task status
39
+ */
40
+ updateTaskStatus(taskId: string, status: UploadTaskStatus, errorMessage?: string): Promise<void>;
41
+ /**
42
+ * Increment retry count for a task
43
+ */
44
+ incrementRetryCount(taskId: string): Promise<void>;
45
+ /**
46
+ * Remove a task from the queue
47
+ */
48
+ removeUploadTask(taskId: string): Promise<void>;
49
+ /**
50
+ * Clear all completed tasks
51
+ */
52
+ clearCompletedTasks(): Promise<void>;
53
+ /**
54
+ * Clear all tasks
55
+ */
56
+ clearAllTasks(): Promise<void>;
57
+ /**
58
+ * Get a specific upload task
59
+ */
60
+ getUploadTask(taskId: string): UploadTask | undefined;
61
+ /**
62
+ * Save upload queue to storage
63
+ */
64
+ private saveUploadQueue;
65
+ /**
66
+ * Get last sync time for a device
67
+ */
68
+ getLastSyncTime(deviceId: string): Date | null;
69
+ /**
70
+ * Set last sync time for a device
71
+ */
72
+ setLastSyncTime(deviceId: string, time?: Date): Promise<void>;
73
+ /**
74
+ * Get cached device info
75
+ */
76
+ getDeviceInfo(deviceId: string): {
77
+ serialNumber: string;
78
+ firmwareVersion: string;
79
+ } | undefined;
80
+ /**
81
+ * Cache device info
82
+ */
83
+ setDeviceInfo(deviceId: string, info: {
84
+ serialNumber: string;
85
+ firmwareVersion: string;
86
+ }): Promise<void>;
87
+ /**
88
+ * Save SDK state to storage
89
+ */
90
+ private saveSdkState;
91
+ /**
92
+ * Save recording data locally
93
+ */
94
+ saveRecordingData(deviceId: string, recordingUuid: string, data: Buffer): Promise<string>;
95
+ /**
96
+ * Load recording data
97
+ */
98
+ loadRecordingData(localPath: string): Promise<Buffer>;
99
+ /**
100
+ * Delete recording data
101
+ */
102
+ deleteRecordingData(localPath: string): Promise<void>;
103
+ /**
104
+ * Clear all SDK storage
105
+ */
106
+ clearAll(): Promise<void>;
107
+ /**
108
+ * Clean up resources
109
+ */
110
+ destroy(): void;
111
+ }
112
+ /**
113
+ * Generate a unique task ID
114
+ */
115
+ export declare function generateTaskId(): string;
116
+ //# sourceMappingURL=StorageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../../../src/storage/StorageManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkBxE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAGd;IACF,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCjC;;OAEG;IACH,cAAc,IAAI,UAAU,EAAE;IAI9B;;OAEG;IACH,iBAAiB,IAAI,UAAU,EAAE;IAMjC;;OAEG;IACH,gBAAgB,IAAI,UAAU,EAAE;IAIhC;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAgBhB;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIrD;;OAEG;YACW,eAAe;IAa7B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK9C;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E;;OAEG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,GACf;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAIhE;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GACtD,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;YACW,YAAY;IAY1B;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAkBlB;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa3D;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAe/B;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Storage module exports
3
+ */
4
+ export { StorageManager, generateTaskId } from './StorageManager';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * S3 Uploader - Handles uploading audio files to S3 using pre-signed URLs
3
+ */
4
+ import { Buffer } from 'buffer';
5
+ /**
6
+ * Upload progress callback
7
+ */
8
+ export type UploadProgressCallback = (progress: number) => void;
9
+ /**
10
+ * Upload options
11
+ */
12
+ export interface UploadOptions {
13
+ /** Content type (default: audio/opus) */
14
+ contentType?: string;
15
+ /** Progress callback */
16
+ onProgress?: UploadProgressCallback;
17
+ /** Abort signal for cancellation */
18
+ abortSignal?: AbortSignal;
19
+ }
20
+ /**
21
+ * S3 Uploader class
22
+ */
23
+ export declare class S3Uploader {
24
+ /**
25
+ * Upload a file to S3 using a pre-signed URL
26
+ */
27
+ upload(data: Buffer, uploadUrl: string, options?: UploadOptions): Promise<void>;
28
+ /**
29
+ * Upload a file in chunks (for larger files)
30
+ * Note: This requires multipart upload support from the pre-signed URL
31
+ */
32
+ uploadChunked(data: Buffer, uploadUrl: string, options?: UploadOptions): Promise<void>;
33
+ /**
34
+ * Notify the backend that upload is complete
35
+ */
36
+ notifyCompletion(completeUrl: string, recordingId: string, uploadToken: string): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=S3Uploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"S3Uploader.d.ts","sourceRoot":"","sources":["../../../../src/upload/S3Uploader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,oCAAoC;IACpC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAwEhB;;;OAGG;IACG,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;CA+BjB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Upload Queue - Manages persistent upload queue with retry logic
3
+ */
4
+ import EventEmitter from 'eventemitter3';
5
+ import type { UploadTask } from '../models/Recording';
6
+ import { StorageManager } from '../storage/StorageManager';
7
+ /**
8
+ * Events emitted by UploadQueue
9
+ */
10
+ interface UploadQueueEvents {
11
+ taskAdded: (task: UploadTask) => void;
12
+ taskUpdated: (task: UploadTask) => void;
13
+ taskCompleted: (taskId: string, recordingId: string) => void;
14
+ taskFailed: (taskId: string, error: Error) => void;
15
+ uploadProgress: (taskId: string, progress: number) => void;
16
+ queueEmpty: () => void;
17
+ }
18
+ /**
19
+ * Upload Queue configuration
20
+ */
21
+ export interface UploadQueueConfig {
22
+ /** Maximum concurrent uploads (default: 2) */
23
+ maxConcurrent?: number;
24
+ /** Maximum retry attempts (default: 6) */
25
+ maxRetries?: number;
26
+ /** Auto-start processing (default: true) */
27
+ autoStart?: boolean;
28
+ }
29
+ /**
30
+ * Upload Queue class
31
+ */
32
+ export declare class UploadQueue extends EventEmitter<UploadQueueEvents> {
33
+ private storage;
34
+ private uploader;
35
+ private maxConcurrent;
36
+ private maxRetries;
37
+ private activeUploads;
38
+ private isPaused;
39
+ private isProcessing;
40
+ private abortControllers;
41
+ constructor(storage: StorageManager, config?: UploadQueueConfig);
42
+ /**
43
+ * Add a new upload task to the queue
44
+ */
45
+ enqueue(params: {
46
+ recordingId: string;
47
+ deviceId: string;
48
+ localPath: string;
49
+ uploadUrl: string;
50
+ uploadToken: string;
51
+ completeUrl: string;
52
+ }): Promise<UploadTask>;
53
+ /**
54
+ * Cancel a specific upload task
55
+ */
56
+ cancel(taskId: string): Promise<void>;
57
+ /**
58
+ * Cancel all uploads
59
+ */
60
+ cancelAll(): Promise<void>;
61
+ /**
62
+ * Pause queue processing
63
+ */
64
+ pause(): void;
65
+ /**
66
+ * Resume queue processing
67
+ */
68
+ resume(): void;
69
+ /**
70
+ * Retry all failed uploads
71
+ */
72
+ retryFailed(): Promise<void>;
73
+ /**
74
+ * Get all pending tasks
75
+ */
76
+ getPendingTasks(): UploadTask[];
77
+ /**
78
+ * Get all tasks
79
+ */
80
+ getAllTasks(): UploadTask[];
81
+ /**
82
+ * Process the upload queue
83
+ */
84
+ private processQueue;
85
+ /**
86
+ * Process a single upload task
87
+ */
88
+ private processTask;
89
+ /**
90
+ * Clean up resources
91
+ */
92
+ destroy(): void;
93
+ }
94
+ export {};
95
+ //# sourceMappingURL=UploadQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadQueue.d.ts","sourceRoot":"","sources":["../../../../src/upload/UploadQueue.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAkB,MAAM,2BAA2B,CAAC;AAO3E;;GAEG;AACH,UAAU,iBAAiB;IACzB,SAAS,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACnD,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IAC9D,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAA2C;gBAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,GAAE,iBAAsB;IAYnE;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BvB;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAehC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC;;OAEG;IACH,eAAe,IAAI,UAAU,EAAE;IAI/B;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;OAEG;YACW,YAAY;IAoC1B;;OAEG;YACW,WAAW;IAoEzB;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Upload module exports
3
+ */
4
+ export { S3Uploader, type UploadProgressCallback, type UploadOptions } from './S3Uploader';
5
+ export { UploadQueue, type UploadQueueConfig } from './UploadQueue';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/upload/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,sBAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Custom error types for the Bota SDK
3
+ */
4
+ /**
5
+ * Base error class for all Bota SDK errors
6
+ */
7
+ export declare class BotaError extends Error {
8
+ readonly code: string;
9
+ readonly cause?: Error | undefined;
10
+ constructor(message: string, code: string, cause?: Error | undefined);
11
+ }
12
+ /**
13
+ * Bluetooth-related errors
14
+ */
15
+ export declare class BluetoothError extends BotaError {
16
+ constructor(message: string, code: string, cause?: Error);
17
+ static unavailable(): BluetoothError;
18
+ static unauthorized(): BluetoothError;
19
+ static poweredOff(): BluetoothError;
20
+ }
21
+ /**
22
+ * Device-related errors
23
+ */
24
+ export declare class DeviceError extends BotaError {
25
+ readonly deviceId?: string | undefined;
26
+ constructor(message: string, code: string, deviceId?: string | undefined, cause?: Error);
27
+ static notFound(deviceId: string): DeviceError;
28
+ static connectionFailed(deviceId: string, cause?: Error): DeviceError;
29
+ static connectionLost(deviceId: string, during?: string): DeviceError;
30
+ static bondingFailed(deviceId: string, cause?: Error): DeviceError;
31
+ static notConnected(deviceId: string): DeviceError;
32
+ static alreadyConnected(deviceId: string): DeviceError;
33
+ }
34
+ /**
35
+ * Provisioning-related errors
36
+ */
37
+ export declare class ProvisioningError extends BotaError {
38
+ readonly deviceId?: string | undefined;
39
+ constructor(message: string, code: string, deviceId?: string | undefined, cause?: Error);
40
+ static invalidToken(deviceId: string): ProvisioningError;
41
+ static storageError(deviceId: string): ProvisioningError;
42
+ static chunkError(deviceId: string): ProvisioningError;
43
+ static alreadyProvisioned(deviceId: string): ProvisioningError;
44
+ static timeout(deviceId: string): ProvisioningError;
45
+ }
46
+ /**
47
+ * Transfer-related errors
48
+ */
49
+ export declare class TransferError extends BotaError {
50
+ readonly recordingUuid?: string | undefined;
51
+ constructor(message: string, code: string, recordingUuid?: string | undefined, cause?: Error);
52
+ static recordingNotFound(uuid: string): TransferError;
53
+ static checksumMismatch(uuid: string): TransferError;
54
+ static interrupted(uuid: string, cause?: Error): TransferError;
55
+ static timeout(uuid: string): TransferError;
56
+ static deviceError(uuid: string, errorCode: number): TransferError;
57
+ }
58
+ /**
59
+ * Upload-related errors
60
+ */
61
+ export declare class UploadError extends BotaError {
62
+ readonly taskId?: string | undefined;
63
+ constructor(message: string, code: string, taskId?: string | undefined, cause?: Error);
64
+ static urlExpired(taskId: string): UploadError;
65
+ static networkUnavailable(): UploadError;
66
+ static uploadFailed(taskId: string, cause?: Error): UploadError;
67
+ static completionFailed(taskId: string, cause?: Error): UploadError;
68
+ }
69
+ /**
70
+ * SDK state errors
71
+ */
72
+ export declare class SdkError extends BotaError {
73
+ constructor(message: string, code: string, cause?: Error);
74
+ static notInitialized(): SdkError;
75
+ static invalidState(expected: string, actual: string): SdkError;
76
+ static timeout(operation: string): SdkError;
77
+ }
78
+ /**
79
+ * Type guard to check if an error is a BotaError
80
+ */
81
+ export declare function isBotaError(error: unknown): error is BotaError;
82
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;aAGhB,IAAI,EAAE,MAAM;aACZ,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,KAAK,YAAA;CAMhC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAMxD,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC,MAAM,CAAC,YAAY,IAAI,cAAc;IAOrC,MAAM,CAAC,UAAU,IAAI,cAAc;CAGpC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,SAAS;aAItB,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACI,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjC,KAAK,CAAC,EAAE,KAAK;IAOf,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAQ9C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW;IASrE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW;IAOrE,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW;IASlE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAQlD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;CAOvD;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;aAI5B,QAAQ,CAAC,EAAE,MAAM;gBAFjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACI,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjC,KAAK,CAAC,EAAE,KAAK;IAOf,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAQxD,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAQxD,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAQtD,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAQ9D,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;CAOpD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;aAIxB,aAAa,CAAC,EAAE,MAAM;gBAFtC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACI,aAAa,CAAC,EAAE,MAAM,YAAA,EACtC,KAAK,CAAC,EAAE,KAAK;IAOf,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAQrD,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAQpD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,aAAa;IAS9D,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAQ3C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa;CAOnE;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,SAAS;aAItB,MAAM,CAAC,EAAE,MAAM;gBAF/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACI,MAAM,CAAC,EAAE,MAAM,YAAA,EAC/B,KAAK,CAAC,EAAE,KAAK;IAOf,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAQ9C,MAAM,CAAC,kBAAkB,IAAI,WAAW;IAOxC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW;IAS/D,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW;CAQpE;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,SAAS;gBACzB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAMxD,MAAM,CAAC,cAAc,IAAI,QAAQ;IAOjC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ;IAO/D,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ;CAG5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,SAAS,CAE9D"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utils module exports
3
+ */
4
+ export * from './errors';
5
+ export { logger } from './logger';
6
+ export * from './retry';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Logger utility for the Bota SDK
3
+ */
4
+ import type { LogLevel } from '../models/Status';
5
+ /**
6
+ * Logger class with configurable log levels
7
+ */
8
+ declare class Logger {
9
+ private level;
10
+ private prefix;
11
+ /**
12
+ * Set the log level
13
+ */
14
+ setLevel(level: LogLevel): void;
15
+ /**
16
+ * Get the current log level
17
+ */
18
+ getLevel(): LogLevel;
19
+ /**
20
+ * Check if a log level should be output
21
+ */
22
+ private shouldLog;
23
+ /**
24
+ * Format a log message with optional context
25
+ */
26
+ private format;
27
+ /**
28
+ * Log a debug message
29
+ */
30
+ debug(message: string, context?: Record<string, unknown>): void;
31
+ /**
32
+ * Log an info message
33
+ */
34
+ info(message: string, context?: Record<string, unknown>): void;
35
+ /**
36
+ * Log a warning message
37
+ */
38
+ warn(message: string, context?: Record<string, unknown>): void;
39
+ /**
40
+ * Log an error message
41
+ */
42
+ error(message: string, error?: Error, context?: Record<string, unknown>): void;
43
+ /**
44
+ * Create a child logger with a specific tag
45
+ */
46
+ tag(tag: string): TaggedLogger;
47
+ }
48
+ /**
49
+ * Tagged logger for component-specific logging
50
+ */
51
+ declare class TaggedLogger {
52
+ private parent;
53
+ private tag;
54
+ constructor(parent: Logger, tag: string);
55
+ debug(message: string, context?: Record<string, unknown>): void;
56
+ info(message: string, context?: Record<string, unknown>): void;
57
+ warn(message: string, context?: Record<string, unknown>): void;
58
+ error(message: string, error?: Error, context?: Record<string, unknown>): void;
59
+ }
60
+ /**
61
+ * Singleton logger instance
62
+ */
63
+ export declare const logger: Logger;
64
+ /**
65
+ * Export types for external use
66
+ */
67
+ export type { TaggedLogger };
68
+ //# sourceMappingURL=logger.d.ts.map