@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,55 @@
1
+ import type { BotaDeviceSDKClient } from '../client';
2
+
3
+ let defaultClient: BotaDeviceSDKClient | null = null;
4
+ let testClient: BotaDeviceSDKClient | null = null;
5
+
6
+ type CompatibilityDisconnectionListener = (error?: Error) => void;
7
+
8
+ const disconnectionListeners = new WeakMap<
9
+ BotaDeviceSDKClient,
10
+ Set<CompatibilityDisconnectionListener>
11
+ >();
12
+
13
+ export const setDefaultCompatibilityClient = (
14
+ client: BotaDeviceSDKClient
15
+ ): void => {
16
+ defaultClient = client;
17
+ };
18
+
19
+ export const getCompatibilityClient = (): BotaDeviceSDKClient => {
20
+ const client = testClient ?? defaultClient;
21
+ if (!client) {
22
+ throw new Error('BotaDeviceSDK compatibility runtime is not initialized');
23
+ }
24
+ return client;
25
+ };
26
+
27
+ export const setCompatibilityClientForTesting = (
28
+ client: BotaDeviceSDKClient | null
29
+ ): void => {
30
+ testClient = client;
31
+ };
32
+
33
+ export const subscribeToCompatibilityDisconnections = (
34
+ client: BotaDeviceSDKClient,
35
+ listener: CompatibilityDisconnectionListener
36
+ ): { remove: () => void } => {
37
+ const listeners = disconnectionListeners.get(client) ?? new Set();
38
+ listeners.add(listener);
39
+ disconnectionListeners.set(client, listeners);
40
+ return {
41
+ remove: () => {
42
+ listeners.delete(listener);
43
+ if (listeners.size === 0) disconnectionListeners.delete(client);
44
+ },
45
+ };
46
+ };
47
+
48
+ export const reportCompatibilityDisconnection = (
49
+ client: BotaDeviceSDKClient,
50
+ error?: Error
51
+ ): void => {
52
+ for (const listener of disconnectionListeners.get(client) ?? []) {
53
+ listener(error);
54
+ }
55
+ };
package/src/index.ts ADDED
@@ -0,0 +1,146 @@
1
+ import NativeBotaDeviceSDK from './specs/NativeBotaDeviceSDK';
2
+ import { createBotaDeviceSDK } from './client';
3
+ import { setDefaultCompatibilityClient } from './compatibility/runtime';
4
+
5
+ export {
6
+ BotaNativeModuleError,
7
+ createBotaDeviceSDK,
8
+ } from './client';
9
+ export type {
10
+ BotaAsyncEventSubscription,
11
+ BotaDeviceSDKCapabilities,
12
+ BotaDeviceSDKClient,
13
+ BotaDeviceSDKConfiguration,
14
+ BotaEncryptedUploadV2Capability,
15
+ BotaEncryptedUploadV2Checkpoint,
16
+ BotaEncryptedUploadV2ProfileDecision,
17
+ BotaEncryptedUploadV2ProfileProvider,
18
+ BotaEncryptedUploadV2Progress,
19
+ BotaEncryptedUploadV2ProgressPhase,
20
+ BotaEncryptedUploadV2ProviderContext,
21
+ BotaEncryptedUploadV2Recording,
22
+ BotaEncryptedUploadV2SecurityPolicy,
23
+ BotaDeprovisionResult,
24
+ BotaDeviceSDKDeviceClient,
25
+ BotaDeviceSDKFactoryResetClient,
26
+ BotaDeviceSDKLogClient,
27
+ BotaDeviceSDKWiFiClient,
28
+ BotaDeviceSDKProvisioningClient,
29
+ BotaDeviceSDKRecordingClient,
30
+ BotaDeviceSDKStreamingClient,
31
+ BotaDeviceSDKState,
32
+ BotaEventSubscription,
33
+ BotaFactoryResetCompletion,
34
+ BotaFactoryResetGrantProvider,
35
+ BotaFactoryResetGrantRequest,
36
+ BotaFactoryResetOptions,
37
+ BotaFirmwareImage,
38
+ BotaFirmwareUpdatePhase,
39
+ BotaFirmwareUpdateProgress,
40
+ BotaLogLevel,
41
+ BotaDeviceSDKOTAClient,
42
+ BotaProvisioningMaterial,
43
+ BotaProvisioningMaterialProvider,
44
+ BotaProvisioningMaterialRequest,
45
+ BotaRecordingTransferProgress,
46
+ BotaUploadOwnershipRequest,
47
+ BotaUploadOwnershipResult,
48
+ } from './client';
49
+
50
+ export const BotaDeviceSDK = createBotaDeviceSDK(NativeBotaDeviceSDK);
51
+ setDefaultCompatibilityClient(BotaDeviceSDK);
52
+
53
+ export { BotaClient } from './BotaClient';
54
+
55
+ export type {
56
+ BleFactoryResetResult,
57
+ BleFactoryResetResultPersister,
58
+ ConnectedDevice,
59
+ ConnectionState,
60
+ ConnectionType,
61
+ DeviceCapabilities,
62
+ DeviceConnectionSettings,
63
+ DeviceFlags,
64
+ DeviceLogEvent,
65
+ DeviceState,
66
+ DeviceStatus,
67
+ DeviceType,
68
+ DeviceWiFiScanResult,
69
+ DiscoveredDevice,
70
+ Environment,
71
+ LteStatus,
72
+ ModemInfo,
73
+ PairingState,
74
+ ProvisioningResult,
75
+ ReconnectOptions,
76
+ ScanOptions,
77
+ StorageInfo,
78
+ WiFiConfigGrant,
79
+ WiFiConfigResult,
80
+ WiFiCredentials,
81
+ WiFiScanNetwork,
82
+ WiFiSecurityType,
83
+ WiFiStatus,
84
+ WiFiStatusInfo,
85
+ WifiStatus,
86
+ } from './models/Device';
87
+ export type {
88
+ AudioCodec,
89
+ DeviceRecording,
90
+ StreamingSessionEvents,
91
+ StreamingState,
92
+ StreamingSyncOptions,
93
+ StreamingSyncProgress,
94
+ SyncProgress,
95
+ SyncStage,
96
+ TransferPacket,
97
+ UploadInfo,
98
+ UploadTask,
99
+ UploadTaskStatus,
100
+ } from './models/Recording';
101
+ export type {
102
+ BluetoothState,
103
+ BotaClientEvents,
104
+ BotaConfig,
105
+ DeviceManagerEvents,
106
+ LogLevel,
107
+ RecordingManagerEvents,
108
+ SdkState,
109
+ SdkStatus,
110
+ } from './models/Status';
111
+ export type {
112
+ CachedDeviceState,
113
+ DeviceStateCacheEvents,
114
+ DeviceStatePatch,
115
+ } from './cache/DeviceStateCache';
116
+ export type {
117
+ FirmwareDownloadProgressCallback,
118
+ FirmwareInfo,
119
+ OtaProgress,
120
+ OtaStage,
121
+ UploadInfoProvider,
122
+ } from './managers/types';
123
+
124
+ export { DeviceLogDecoder } from './ble/deviceLogs';
125
+ export { DeviceManager } from './managers/DeviceManager';
126
+ export { OTAManager } from './managers/OTAManager';
127
+ export { RecordingManager } from './managers/RecordingManager';
128
+ export { StreamingSession } from './managers/StreamingSession';
129
+ export {
130
+ BotaError,
131
+ BluetoothError,
132
+ DeviceError,
133
+ ProvisioningError,
134
+ SdkError,
135
+ TransferError,
136
+ UploadError,
137
+ isBotaError,
138
+ } from './utils/errors';
139
+ export type { LogHandler, SdkLogEntry, SdkLogLevel } from './utils/logger';
140
+ export { deriveSyncStatus } from './sync/syncStatus';
141
+ export type {
142
+ SyncChannel,
143
+ SyncKind,
144
+ SyncStatus,
145
+ SyncStatusInputs,
146
+ } from './sync/syncStatus';