@bota.dev/react-native-app-sdk 2.0.0-beta.0

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 (173) hide show
  1. package/BotaDeviceSDK.podspec +55 -0
  2. package/LICENSE +21 -0
  3. package/README.md +101 -0
  4. package/android/build.gradle +76 -0
  5. package/android/src/main/AndroidManifest.xml +1 -0
  6. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevices.kt +172 -0
  7. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLifecycle.kt +100 -0
  8. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogs.kt +82 -0
  9. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidModels.kt +476 -0
  10. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidOTA.kt +58 -0
  11. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploads.kt +180 -0
  12. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordings.kt +751 -0
  13. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidSecurity.kt +509 -0
  14. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidWiFi.kt +125 -0
  15. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKEncryptedUploadV2Materials.kt +46 -0
  16. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKModule.kt +723 -0
  17. package/android/src/main/java/dev/bota/sdk/reactnative/BotaDeviceSDKPackage.kt +33 -0
  18. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidDevicesTest.kt +211 -0
  19. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLifecycleTest.kt +132 -0
  20. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidLogsTest.kt +57 -0
  21. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidOTATest.kt +75 -0
  22. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingUploadsTest.kt +147 -0
  23. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidRecordingsTest.kt +355 -0
  24. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidSecurityTest.kt +523 -0
  25. package/android/src/test/java/dev/bota/sdk/reactnative/BotaDeviceSDKAndroidWiFiTest.kt +100 -0
  26. package/generated/codegen-contract.json +3593 -0
  27. package/ios/BotaDeviceSDK.mm +1300 -0
  28. package/ios/BotaDeviceSDKAppleBridge.swift +2260 -0
  29. package/ios/BotaDeviceSDKAppleDevices.swift +191 -0
  30. package/ios/BotaDeviceSDKAppleLifecycle.swift +167 -0
  31. package/ios/BotaDeviceSDKAppleLogs.swift +79 -0
  32. package/ios/BotaDeviceSDKAppleOTA.swift +73 -0
  33. package/ios/BotaDeviceSDKAppleRecordingUploads.swift +178 -0
  34. package/ios/BotaDeviceSDKAppleRecordings.swift +670 -0
  35. package/ios/BotaDeviceSDKAppleSecurity.swift +586 -0
  36. package/ios/BotaDeviceSDKAppleWiFi.swift +128 -0
  37. package/ios/BotaDeviceSDKEncryptedUploadV2Materials.swift +99 -0
  38. package/lib/commonjs/BotaClient.js +194 -0
  39. package/lib/commonjs/BotaClient.js.map +1 -0
  40. package/lib/commonjs/ble/constants.js +10 -0
  41. package/lib/commonjs/ble/constants.js.map +1 -0
  42. package/lib/commonjs/ble/deviceLogs.js +50 -0
  43. package/lib/commonjs/ble/deviceLogs.js.map +1 -0
  44. package/lib/commonjs/cache/DeviceStateCache.js +6 -0
  45. package/lib/commonjs/cache/DeviceStateCache.js.map +1 -0
  46. package/lib/commonjs/client.js +746 -0
  47. package/lib/commonjs/client.js.map +1 -0
  48. package/lib/commonjs/compatibility/runtime.js +44 -0
  49. package/lib/commonjs/compatibility/runtime.js.map +1 -0
  50. package/lib/commonjs/index.js +123 -0
  51. package/lib/commonjs/index.js.map +1 -0
  52. package/lib/commonjs/managers/DeviceManager.js +647 -0
  53. package/lib/commonjs/managers/DeviceManager.js.map +1 -0
  54. package/lib/commonjs/managers/OTAManager.js +140 -0
  55. package/lib/commonjs/managers/OTAManager.js.map +1 -0
  56. package/lib/commonjs/managers/RecordingManager.js +444 -0
  57. package/lib/commonjs/managers/RecordingManager.js.map +1 -0
  58. package/lib/commonjs/managers/StreamingSession.js +175 -0
  59. package/lib/commonjs/managers/StreamingSession.js.map +1 -0
  60. package/lib/commonjs/managers/types.js +6 -0
  61. package/lib/commonjs/managers/types.js.map +1 -0
  62. package/lib/commonjs/models/Device.js +2 -0
  63. package/lib/commonjs/models/Device.js.map +1 -0
  64. package/lib/commonjs/models/Recording.js +2 -0
  65. package/lib/commonjs/models/Recording.js.map +1 -0
  66. package/lib/commonjs/models/Status.js +6 -0
  67. package/lib/commonjs/models/Status.js.map +1 -0
  68. package/lib/commonjs/package.json +1 -0
  69. package/lib/commonjs/specs/NativeBotaDeviceSDK.js +9 -0
  70. package/lib/commonjs/specs/NativeBotaDeviceSDK.js.map +1 -0
  71. package/lib/commonjs/sync/syncStatus.js +178 -0
  72. package/lib/commonjs/sync/syncStatus.js.map +1 -0
  73. package/lib/commonjs/utils/errors.js +194 -0
  74. package/lib/commonjs/utils/errors.js.map +1 -0
  75. package/lib/commonjs/utils/logger.js +84 -0
  76. package/lib/commonjs/utils/logger.js.map +1 -0
  77. package/lib/module/BotaClient.js +189 -0
  78. package/lib/module/BotaClient.js.map +1 -0
  79. package/lib/module/ble/constants.js +6 -0
  80. package/lib/module/ble/constants.js.map +1 -0
  81. package/lib/module/ble/deviceLogs.js +45 -0
  82. package/lib/module/ble/deviceLogs.js.map +1 -0
  83. package/lib/module/cache/DeviceStateCache.js +4 -0
  84. package/lib/module/cache/DeviceStateCache.js.map +1 -0
  85. package/lib/module/client.js +740 -0
  86. package/lib/module/client.js.map +1 -0
  87. package/lib/module/compatibility/runtime.js +35 -0
  88. package/lib/module/compatibility/runtime.js.map +1 -0
  89. package/lib/module/index.js +17 -0
  90. package/lib/module/index.js.map +1 -0
  91. package/lib/module/managers/DeviceManager.js +641 -0
  92. package/lib/module/managers/DeviceManager.js.map +1 -0
  93. package/lib/module/managers/OTAManager.js +134 -0
  94. package/lib/module/managers/OTAManager.js.map +1 -0
  95. package/lib/module/managers/RecordingManager.js +438 -0
  96. package/lib/module/managers/RecordingManager.js.map +1 -0
  97. package/lib/module/managers/StreamingSession.js +168 -0
  98. package/lib/module/managers/StreamingSession.js.map +1 -0
  99. package/lib/module/managers/types.js +4 -0
  100. package/lib/module/managers/types.js.map +1 -0
  101. package/lib/module/models/Device.js +2 -0
  102. package/lib/module/models/Device.js.map +1 -0
  103. package/lib/module/models/Recording.js +2 -0
  104. package/lib/module/models/Recording.js.map +1 -0
  105. package/lib/module/models/Status.js +4 -0
  106. package/lib/module/models/Status.js.map +1 -0
  107. package/lib/module/specs/NativeBotaDeviceSDK.js +5 -0
  108. package/lib/module/specs/NativeBotaDeviceSDK.js.map +1 -0
  109. package/lib/module/sync/syncStatus.js +174 -0
  110. package/lib/module/sync/syncStatus.js.map +1 -0
  111. package/lib/module/utils/errors.js +183 -0
  112. package/lib/module/utils/errors.js.map +1 -0
  113. package/lib/module/utils/logger.js +80 -0
  114. package/lib/module/utils/logger.js.map +1 -0
  115. package/lib/typescript/BotaClient.d.ts +40 -0
  116. package/lib/typescript/BotaClient.d.ts.map +1 -0
  117. package/lib/typescript/ble/constants.d.ts +4 -0
  118. package/lib/typescript/ble/constants.d.ts.map +1 -0
  119. package/lib/typescript/ble/deviceLogs.d.ts +10 -0
  120. package/lib/typescript/ble/deviceLogs.d.ts.map +1 -0
  121. package/lib/typescript/cache/DeviceStateCache.d.ts +14 -0
  122. package/lib/typescript/cache/DeviceStateCache.d.ts.map +1 -0
  123. package/lib/typescript/client.d.ts +208 -0
  124. package/lib/typescript/client.d.ts.map +1 -0
  125. package/lib/typescript/compatibility/runtime.d.ts +11 -0
  126. package/lib/typescript/compatibility/runtime.d.ts.map +1 -0
  127. package/lib/typescript/index.d.ts +19 -0
  128. package/lib/typescript/index.d.ts.map +1 -0
  129. package/lib/typescript/managers/DeviceManager.d.ts +117 -0
  130. package/lib/typescript/managers/DeviceManager.d.ts.map +1 -0
  131. package/lib/typescript/managers/OTAManager.d.ts +25 -0
  132. package/lib/typescript/managers/OTAManager.d.ts.map +1 -0
  133. package/lib/typescript/managers/RecordingManager.d.ts +54 -0
  134. package/lib/typescript/managers/RecordingManager.d.ts.map +1 -0
  135. package/lib/typescript/managers/StreamingSession.d.ts +35 -0
  136. package/lib/typescript/managers/StreamingSession.d.ts.map +1 -0
  137. package/lib/typescript/managers/types.d.ts +19 -0
  138. package/lib/typescript/managers/types.d.ts.map +1 -0
  139. package/lib/typescript/models/Device.d.ts +392 -0
  140. package/lib/typescript/models/Device.d.ts.map +1 -0
  141. package/lib/typescript/models/Recording.d.ts +259 -0
  142. package/lib/typescript/models/Recording.d.ts.map +1 -0
  143. package/lib/typescript/models/Status.d.ts +106 -0
  144. package/lib/typescript/models/Status.d.ts.map +1 -0
  145. package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts +393 -0
  146. package/lib/typescript/specs/NativeBotaDeviceSDK.d.ts.map +1 -0
  147. package/lib/typescript/sync/syncStatus.d.ts +123 -0
  148. package/lib/typescript/sync/syncStatus.d.ts.map +1 -0
  149. package/lib/typescript/utils/errors.d.ts +83 -0
  150. package/lib/typescript/utils/errors.d.ts.map +1 -0
  151. package/lib/typescript/utils/logger.d.ts +36 -0
  152. package/lib/typescript/utils/logger.d.ts.map +1 -0
  153. package/package.json +100 -0
  154. package/scripts/bota_device_sdk_spm_workaround.rb +53 -0
  155. package/src/BotaClient.ts +231 -0
  156. package/src/ble/constants.ts +3 -0
  157. package/src/ble/deviceLogs.ts +61 -0
  158. package/src/cache/DeviceStateCache.ts +20 -0
  159. package/src/client.ts +1410 -0
  160. package/src/compatibility/runtime.ts +55 -0
  161. package/src/index.ts +146 -0
  162. package/src/managers/DeviceManager.ts +927 -0
  163. package/src/managers/OTAManager.ts +195 -0
  164. package/src/managers/RecordingManager.ts +578 -0
  165. package/src/managers/StreamingSession.ts +212 -0
  166. package/src/managers/types.ts +36 -0
  167. package/src/models/Device.ts +484 -0
  168. package/src/models/Recording.ts +281 -0
  169. package/src/models/Status.ts +128 -0
  170. package/src/specs/NativeBotaDeviceSDK.ts +542 -0
  171. package/src/sync/syncStatus.ts +243 -0
  172. package/src/utils/errors.ts +327 -0
  173. package/src/utils/logger.ts +122 -0
@@ -0,0 +1,99 @@
1
+ import BotaAppSDK
2
+ import Foundation
3
+
4
+ /// Holds v2 application material entirely in native memory. JavaScript receives only
5
+ /// the returned opaque identifier and cannot inspect the registered material.
6
+ public enum BotaDeviceSDKEncryptedUploadV2Materials {
7
+ private static let storage = BotaDeviceSDKEncryptedUploadV2MaterialStorage()
8
+
9
+ public static func register(_ material: EncryptedUploadV2Material) -> String {
10
+ storage.register(material)
11
+ }
12
+
13
+ @discardableResult
14
+ public static func remove(_ registrationID: String) -> EncryptedUploadV2Material? {
15
+ storage.remove(registrationID)
16
+ }
17
+
18
+ static func consume(
19
+ _ registrationID: String,
20
+ recording: EncryptedUploadV2Recording,
21
+ uploadSessionID: UUID,
22
+ ownerRevision: UInt32,
23
+ securityPolicy: String
24
+ ) throws -> EncryptedUploadV2Material {
25
+ try storage.consume(
26
+ registrationID,
27
+ recording: recording,
28
+ uploadSessionID: uploadSessionID,
29
+ ownerRevision: ownerRevision,
30
+ securityPolicy: securityPolicy
31
+ )
32
+ }
33
+ }
34
+
35
+ private final class BotaDeviceSDKEncryptedUploadV2MaterialStorage: @unchecked Sendable {
36
+ private enum RegistrationError: LocalizedError {
37
+ case invalidSelection
38
+ case unknownRegistration
39
+
40
+ var errorDescription: String? {
41
+ switch self {
42
+ case .invalidSelection:
43
+ "encrypted upload v2 material does not match the selected profile"
44
+ case .unknownRegistration:
45
+ "encrypted upload v2 material registration is unavailable"
46
+ }
47
+ }
48
+ }
49
+
50
+ private let lock = NSLock()
51
+ private var materials: [String: EncryptedUploadV2Material] = [:]
52
+
53
+ func register(_ material: EncryptedUploadV2Material) -> String {
54
+ let registrationID = UUID().uuidString.lowercased()
55
+ lock.withLock { materials[registrationID] = material }
56
+ return registrationID
57
+ }
58
+
59
+ func remove(_ registrationID: String) -> EncryptedUploadV2Material? {
60
+ lock.withLock { materials.removeValue(forKey: registrationID) }
61
+ }
62
+
63
+ func consume(
64
+ _ registrationID: String,
65
+ recording: EncryptedUploadV2Recording,
66
+ uploadSessionID: UUID,
67
+ ownerRevision: UInt32,
68
+ securityPolicy: String
69
+ ) throws -> EncryptedUploadV2Material {
70
+ try lock.withLock {
71
+ guard let material = materials[registrationID] else {
72
+ throw RegistrationError.unknownRegistration
73
+ }
74
+ guard material.recordingID == recording.uuid,
75
+ material.uploadSessionID == uploadSessionID,
76
+ material.ownerRevision == ownerRevision,
77
+ matches(material.policy, securityPolicy)
78
+ else {
79
+ throw RegistrationError.invalidSelection
80
+ }
81
+ materials.removeValue(forKey: registrationID)
82
+ return material
83
+ }
84
+ }
85
+
86
+ private func matches(
87
+ _ policy: EncryptedUploadV2SecurityPolicy,
88
+ _ value: String
89
+ ) -> Bool {
90
+ switch (policy, value) {
91
+ case (.legacyAllowed, "legacy_allowed"),
92
+ (.v2Preferred, "v2_preferred"),
93
+ (.v2Required, "v2_required"):
94
+ true
95
+ default:
96
+ false
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BotaClient = void 0;
7
+ var _eventemitter = _interopRequireDefault(require("eventemitter3"));
8
+ var _runtime = require("./compatibility/runtime");
9
+ var _DeviceManager = require("./managers/DeviceManager");
10
+ var _OTAManager = require("./managers/OTAManager");
11
+ var _RecordingManager = require("./managers/RecordingManager");
12
+ var _errors = require("./utils/errors");
13
+ var _logger = require("./utils/logger");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const log = _logger.logger.tag('BotaClient');
16
+ const normalizeConfig = config => ({
17
+ environment: config.environment ?? 'production',
18
+ backgroundSyncEnabled: config.backgroundSyncEnabled ?? true,
19
+ wifiOnlyUpload: config.wifiOnlyUpload ?? false,
20
+ logLevel: config.logLevel ?? 'warn',
21
+ debug: config.debug ?? false
22
+ });
23
+ class BotaClientImpl extends _eventemitter.default {
24
+ _config = null;
25
+ _state = 'uninitialized';
26
+ _bluetoothState = 'unknown';
27
+ _client = null;
28
+ _deviceManager = null;
29
+ _recordingManager = null;
30
+ _otaManager = null;
31
+ _nativeOwned = false;
32
+ _operation = Promise.resolve();
33
+ _configurePromise = null;
34
+ _destroyPromise = null;
35
+ get state() {
36
+ return this._state;
37
+ }
38
+ get bluetoothState() {
39
+ return this._bluetoothState;
40
+ }
41
+ get isBluetoothReady() {
42
+ return this._bluetoothState === 'poweredOn';
43
+ }
44
+ get isInitialized() {
45
+ return this._state === 'ready';
46
+ }
47
+ get config() {
48
+ return this._config;
49
+ }
50
+ get devices() {
51
+ if (!this._deviceManager) throw _errors.SdkError.notInitialized();
52
+ return this._deviceManager;
53
+ }
54
+ get recordings() {
55
+ if (!this._recordingManager) throw _errors.SdkError.notInitialized();
56
+ return this._recordingManager;
57
+ }
58
+ get ota() {
59
+ if (!this._otaManager) throw _errors.SdkError.notInitialized();
60
+ return this._otaManager;
61
+ }
62
+ configure(config = {}) {
63
+ if (this._configurePromise && !this._destroyPromise) {
64
+ return this._configurePromise;
65
+ }
66
+ const normalized = normalizeConfig(config);
67
+ const operation = this.enqueue(() => this.performConfigure(normalized));
68
+ this._configurePromise = operation;
69
+ void operation.finally(() => {
70
+ if (this._configurePromise === operation) this._configurePromise = null;
71
+ }).catch(() => undefined);
72
+ return operation;
73
+ }
74
+ async waitForBluetooth(timeoutMs = 10000) {
75
+ if (!this._client || !this._nativeOwned) throw _errors.SdkError.notInitialized();
76
+ if (this._bluetoothState === 'poweredOn') return;
77
+ if (this._bluetoothState === 'unsupported') {
78
+ throw _errors.BluetoothError.unavailable();
79
+ }
80
+ const deadline = Date.now() + timeoutMs;
81
+ while (Date.now() < deadline) {
82
+ await new Promise(resolve => setTimeout(() => resolve(), 50));
83
+ const capabilities = await this._client.getCapabilities();
84
+ const state = capabilities.bluetooth ? 'poweredOn' : 'unsupported';
85
+ this.setBluetoothState(state);
86
+ if (state === 'poweredOn') return;
87
+ if (state === 'unsupported') {
88
+ throw _errors.BluetoothError.unavailable();
89
+ }
90
+ }
91
+ throw _errors.SdkError.timeout('Bluetooth ready');
92
+ }
93
+ setLogLevel(level) {
94
+ _logger.logger.setLevel(level);
95
+ if (this._config) this._config.logLevel = level;
96
+ }
97
+ setLogHandler(handler) {
98
+ _logger.logger.setHandler(handler);
99
+ }
100
+ destroy() {
101
+ if (this._destroyPromise) return this._destroyPromise;
102
+ const operation = this.enqueue(async () => {
103
+ await this.releaseOwnerGraph();
104
+ this.removeAllListeners();
105
+ });
106
+ this._destroyPromise = operation;
107
+ void operation.finally(() => {
108
+ if (this._destroyPromise === operation) this._destroyPromise = null;
109
+ }).catch(() => undefined);
110
+ return operation;
111
+ }
112
+ enqueue(operation) {
113
+ const queued = this._operation.catch(() => undefined).then(operation);
114
+ this._operation = queued.catch(() => undefined);
115
+ return queued;
116
+ }
117
+ async performConfigure(config) {
118
+ if (this._state !== 'uninitialized' || this._nativeOwned) {
119
+ log.warn('SDK already configured, reconfiguring');
120
+ await this.releaseOwnerGraph();
121
+ }
122
+ this._config = config;
123
+ _logger.logger.setLevel(config.logLevel);
124
+ this.setState('initializing');
125
+ const client = (0, _runtime.getCompatibilityClient)();
126
+ this._client = client;
127
+ this._nativeOwned = true;
128
+ let deviceManager = null;
129
+ let recordingManager = null;
130
+ let otaManager = null;
131
+ try {
132
+ await client.configure({
133
+ logLevel: config.logLevel
134
+ });
135
+ const nativeState = await client.getState();
136
+ if (nativeState !== 'ready') {
137
+ throw _errors.SdkError.invalidState('ready', nativeState);
138
+ }
139
+ const capabilities = await client.getCapabilities();
140
+ this.setBluetoothState(capabilities.bluetooth ? 'poweredOn' : 'unsupported');
141
+ deviceManager = new _DeviceManager.DeviceManager();
142
+ await deviceManager.initialize();
143
+ recordingManager = new _RecordingManager.RecordingManager();
144
+ await recordingManager.initialize();
145
+ otaManager = new _OTAManager.OTAManager(deviceManager);
146
+ this._deviceManager = deviceManager;
147
+ this._recordingManager = recordingManager;
148
+ this._otaManager = otaManager;
149
+ this.setState(nativeState);
150
+ log.info('SDK configured successfully', {
151
+ environment: config.environment,
152
+ bluetoothState: this._bluetoothState
153
+ });
154
+ } catch (error) {
155
+ deviceManager?.destroy();
156
+ recordingManager?.destroy();
157
+ otaManager?.destroy();
158
+ await client.destroy().catch(() => undefined);
159
+ this._nativeOwned = false;
160
+ this._client = null;
161
+ this.setState('error');
162
+ const failure = error instanceof Error ? error : new Error(String(error));
163
+ log.error('Failed to configure SDK', failure);
164
+ this.emit('error', failure);
165
+ throw error;
166
+ }
167
+ }
168
+ async releaseOwnerGraph() {
169
+ this._deviceManager?.destroy();
170
+ this._recordingManager?.destroy();
171
+ this._otaManager?.destroy();
172
+ this._deviceManager = null;
173
+ this._recordingManager = null;
174
+ this._otaManager = null;
175
+ const client = this._client;
176
+ this._client = null;
177
+ if (client && this._nativeOwned) await client.destroy();
178
+ this._nativeOwned = false;
179
+ this._config = null;
180
+ this.setState('uninitialized');
181
+ }
182
+ setState(state) {
183
+ if (state === this._state) return;
184
+ this._state = state;
185
+ this.emit('stateChanged', state);
186
+ }
187
+ setBluetoothState(state) {
188
+ if (state === this._bluetoothState) return;
189
+ this._bluetoothState = state;
190
+ this.emit('bluetoothStateChanged', state);
191
+ }
192
+ }
193
+ const BotaClient = exports.BotaClient = new BotaClientImpl();
194
+ //# sourceMappingURL=BotaClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_eventemitter","_interopRequireDefault","require","_runtime","_DeviceManager","_OTAManager","_RecordingManager","_errors","_logger","e","__esModule","default","log","logger","tag","normalizeConfig","config","environment","backgroundSyncEnabled","wifiOnlyUpload","logLevel","debug","BotaClientImpl","EventEmitter","_config","_state","_bluetoothState","_client","_deviceManager","_recordingManager","_otaManager","_nativeOwned","_operation","Promise","resolve","_configurePromise","_destroyPromise","state","bluetoothState","isBluetoothReady","isInitialized","devices","SdkError","notInitialized","recordings","ota","configure","normalized","operation","enqueue","performConfigure","finally","catch","undefined","waitForBluetooth","timeoutMs","BluetoothError","unavailable","deadline","Date","now","setTimeout","capabilities","getCapabilities","bluetooth","setBluetoothState","timeout","setLogLevel","level","setLevel","setLogHandler","handler","setHandler","destroy","releaseOwnerGraph","removeAllListeners","queued","then","warn","setState","client","getCompatibilityClient","deviceManager","recordingManager","otaManager","nativeState","getState","invalidState","DeviceManager","initialize","RecordingManager","OTAManager","info","error","failure","Error","String","emit","BotaClient","exports"],"sourceRoot":"../../src","sources":["BotaClient.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEVICE_LOG_FLAG_DROPPED = exports.DEVICE_LOG_FLAG_BACKLOG = exports.BLE_ERROR_STORAGE_KEY_UNAVAILABLE = void 0;
7
+ const DEVICE_LOG_FLAG_BACKLOG = exports.DEVICE_LOG_FLAG_BACKLOG = 0x01;
8
+ const DEVICE_LOG_FLAG_DROPPED = exports.DEVICE_LOG_FLAG_DROPPED = 0x02;
9
+ const BLE_ERROR_STORAGE_KEY_UNAVAILABLE = exports.BLE_ERROR_STORAGE_KEY_UNAVAILABLE = 0x14;
10
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEVICE_LOG_FLAG_BACKLOG","exports","DEVICE_LOG_FLAG_DROPPED","BLE_ERROR_STORAGE_KEY_UNAVAILABLE"],"sourceRoot":"../../../src","sources":["ble/constants.ts"],"mappings":";;;;;;AAAO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,IAAI;AACpC,MAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,IAAI;AACpC,MAAMC,iCAAiC,GAAAF,OAAA,CAAAE,iCAAA,GAAG,IAAI","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DeviceLogDecoder = void 0;
7
+ var _buffer = require("buffer");
8
+ var _constants = require("./constants");
9
+ const PACKET_HEADER_SIZE = 3;
10
+ class DeviceLogDecoder {
11
+ lineBuffer = _buffer.Buffer.alloc(0);
12
+ expectedSequence = null;
13
+ push(packet) {
14
+ if (packet.length < PACKET_HEADER_SIZE) {
15
+ return [];
16
+ }
17
+ const sequence = packet.readUInt16LE(0);
18
+ const flags = packet[2];
19
+ const hasSequenceGap = this.expectedSequence !== null && sequence !== this.expectedSequence;
20
+ const hasDroppedBytes = (flags & _constants.DEVICE_LOG_FLAG_DROPPED) !== 0;
21
+ const events = [];
22
+ if (hasSequenceGap || hasDroppedBytes) {
23
+ this.lineBuffer = _buffer.Buffer.alloc(0);
24
+ }
25
+ this.expectedSequence = sequence + 1 & 0xffff;
26
+ this.lineBuffer = _buffer.Buffer.concat([this.lineBuffer, packet.subarray(PACKET_HEADER_SIZE)]);
27
+ const isBacklog = (flags & _constants.DEVICE_LOG_FLAG_BACKLOG) !== 0;
28
+ let newlineIndex = this.lineBuffer.indexOf(0x0a);
29
+ while (newlineIndex !== -1) {
30
+ let line = this.lineBuffer.subarray(0, newlineIndex);
31
+ if (line.length > 0 && line[line.length - 1] === 0x0d) {
32
+ line = line.subarray(0, line.length - 1);
33
+ }
34
+ events.push({
35
+ level: 'debug',
36
+ message: _buffer.Buffer.from(line).toString('utf8'),
37
+ isBacklog
38
+ });
39
+ this.lineBuffer = _buffer.Buffer.from(this.lineBuffer.subarray(newlineIndex + 1));
40
+ newlineIndex = this.lineBuffer.indexOf(0x0a);
41
+ }
42
+ return events;
43
+ }
44
+ reset() {
45
+ this.lineBuffer = _buffer.Buffer.alloc(0);
46
+ this.expectedSequence = null;
47
+ }
48
+ }
49
+ exports.DeviceLogDecoder = DeviceLogDecoder;
50
+ //# sourceMappingURL=deviceLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_buffer","require","_constants","PACKET_HEADER_SIZE","DeviceLogDecoder","lineBuffer","Buffer","alloc","expectedSequence","push","packet","length","sequence","readUInt16LE","flags","hasSequenceGap","hasDroppedBytes","DEVICE_LOG_FLAG_DROPPED","events","concat","subarray","isBacklog","DEVICE_LOG_FLAG_BACKLOG","newlineIndex","indexOf","line","level","message","from","toString","reset","exports"],"sourceRoot":"../../../src","sources":["ble/deviceLogs.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAQA,MAAME,kBAAkB,GAAG,CAAC;AAErB,MAAMC,gBAAgB,CAAC;EACpBC,UAAU,GAAGC,cAAM,CAACC,KAAK,CAAC,CAAC,CAAC;EAC5BC,gBAAgB,GAAkB,IAAI;EAE9CC,IAAIA,CAACC,MAAc,EAAoB;IACrC,IAAIA,MAAM,CAACC,MAAM,GAAGR,kBAAkB,EAAE;MACtC,OAAO,EAAE;IACX;IAEA,MAAMS,QAAQ,GAAGF,MAAM,CAACG,YAAY,CAAC,CAAC,CAAC;IACvC,MAAMC,KAAK,GAAGJ,MAAM,CAAC,CAAC,CAAC;IACvB,MAAMK,cAAc,GAAG,IAAI,CAACP,gBAAgB,KAAK,IAAI,IAChDI,QAAQ,KAAK,IAAI,CAACJ,gBAAgB;IACvC,MAAMQ,eAAe,GAAG,CAACF,KAAK,GAAGG,kCAAuB,MAAM,CAAC;IAC/D,MAAMC,MAAwB,GAAG,EAAE;IAEnC,IAAIH,cAAc,IAAIC,eAAe,EAAE;MACrC,IAAI,CAACX,UAAU,GAAGC,cAAM,CAACC,KAAK,CAAC,CAAC,CAAC;IACnC;IAEA,IAAI,CAACC,gBAAgB,GAAII,QAAQ,GAAG,CAAC,GAAI,MAAM;IAC/C,IAAI,CAACP,UAAU,GAAGC,cAAM,CAACa,MAAM,CAAC,CAAC,IAAI,CAACd,UAAU,EAAEK,MAAM,CAACU,QAAQ,CAACjB,kBAAkB,CAAC,CAAC,CAAC;IAEvF,MAAMkB,SAAS,GAAG,CAACP,KAAK,GAAGQ,kCAAuB,MAAM,CAAC;IACzD,IAAIC,YAAY,GAAG,IAAI,CAAClB,UAAU,CAACmB,OAAO,CAAC,IAAI,CAAC;IAChD,OAAOD,YAAY,KAAK,CAAC,CAAC,EAAE;MAC1B,IAAIE,IAAI,GAAG,IAAI,CAACpB,UAAU,CAACe,QAAQ,CAAC,CAAC,EAAEG,YAAY,CAAC;MACpD,IAAIE,IAAI,CAACd,MAAM,GAAG,CAAC,IAAIc,IAAI,CAACA,IAAI,CAACd,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QACrDc,IAAI,GAAGA,IAAI,CAACL,QAAQ,CAAC,CAAC,EAAEK,IAAI,CAACd,MAAM,GAAG,CAAC,CAAC;MAC1C;MACAO,MAAM,CAACT,IAAI,CAAC;QACViB,KAAK,EAAE,OAAO;QACdC,OAAO,EAAErB,cAAM,CAACsB,IAAI,CAACH,IAAI,CAAC,CAACI,QAAQ,CAAC,MAAM,CAAC;QAC3CR;MACF,CAAC,CAAC;MACF,IAAI,CAAChB,UAAU,GAAGC,cAAM,CAACsB,IAAI,CAC3B,IAAI,CAACvB,UAAU,CAACe,QAAQ,CAACG,YAAY,GAAG,CAAC,CAC3C,CAAC;MACDA,YAAY,GAAG,IAAI,CAAClB,UAAU,CAACmB,OAAO,CAAC,IAAI,CAAC;IAC9C;IAEA,OAAON,MAAM;EACf;EAEAY,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACzB,UAAU,GAAGC,cAAM,CAACC,KAAK,CAAC,CAAC,CAAC;IACjC,IAAI,CAACC,gBAAgB,GAAG,IAAI;EAC9B;AACF;AAACuB,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=DeviceStateCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["cache/DeviceStateCache.ts"],"mappings":"","ignoreList":[]}