@bota-dev/react-native-sdk 0.0.7 → 0.0.9

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 (46) hide show
  1. package/README.md +30 -2
  2. package/lib/commonjs/ble/constants.js +28 -2
  3. package/lib/commonjs/ble/constants.js.map +1 -1
  4. package/lib/commonjs/ble/parsers.js +128 -0
  5. package/lib/commonjs/ble/parsers.js.map +1 -1
  6. package/lib/commonjs/managers/DeviceManager.js +179 -0
  7. package/lib/commonjs/managers/DeviceManager.js.map +1 -1
  8. package/lib/commonjs/protocol/ProtocolHandler.js +6 -0
  9. package/lib/commonjs/protocol/ProtocolHandler.js.map +1 -1
  10. package/lib/commonjs/utils/crypto.js +169 -0
  11. package/lib/commonjs/utils/crypto.js.map +1 -0
  12. package/lib/commonjs/utils/index.js +12 -0
  13. package/lib/commonjs/utils/index.js.map +1 -1
  14. package/lib/module/ble/constants.js +26 -0
  15. package/lib/module/ble/constants.js.map +1 -1
  16. package/lib/module/ble/parsers.js +124 -1
  17. package/lib/module/ble/parsers.js.map +1 -1
  18. package/lib/module/managers/DeviceManager.js +181 -2
  19. package/lib/module/managers/DeviceManager.js.map +1 -1
  20. package/lib/module/protocol/ProtocolHandler.js +6 -0
  21. package/lib/module/protocol/ProtocolHandler.js.map +1 -1
  22. package/lib/module/utils/crypto.js +160 -0
  23. package/lib/module/utils/crypto.js.map +1 -0
  24. package/lib/module/utils/index.js +1 -0
  25. package/lib/module/utils/index.js.map +1 -1
  26. package/lib/typescript/src/ble/constants.d.ts +18 -0
  27. package/lib/typescript/src/ble/constants.d.ts.map +1 -1
  28. package/lib/typescript/src/ble/parsers.d.ts +34 -1
  29. package/lib/typescript/src/ble/parsers.d.ts.map +1 -1
  30. package/lib/typescript/src/managers/DeviceManager.d.ts +73 -1
  31. package/lib/typescript/src/managers/DeviceManager.d.ts.map +1 -1
  32. package/lib/typescript/src/models/Device.d.ts +65 -0
  33. package/lib/typescript/src/models/Device.d.ts.map +1 -1
  34. package/lib/typescript/src/protocol/ProtocolHandler.d.ts.map +1 -1
  35. package/lib/typescript/src/utils/crypto.d.ts +83 -0
  36. package/lib/typescript/src/utils/crypto.d.ts.map +1 -0
  37. package/lib/typescript/src/utils/index.d.ts +1 -0
  38. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  39. package/package.json +6 -2
  40. package/src/ble/constants.ts +26 -0
  41. package/src/ble/parsers.ts +131 -0
  42. package/src/managers/DeviceManager.ts +244 -0
  43. package/src/models/Device.ts +76 -0
  44. package/src/protocol/ProtocolHandler.ts +6 -0
  45. package/src/utils/crypto.ts +221 -0
  46. package/src/utils/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","DEVICE_TYPE_PIN","DEVICE_TYPE_PIN_4G","DEVICE_TYPE_NOTE","PAIRING_STATE_UNPAIRED","PAIRING_STATE_PAIRING","PAIRING_STATE_PAIRED","PAIRING_STATE_ERROR","DEVICE_STATE_IDLE","DEVICE_STATE_RECORDING","DEVICE_STATE_SYNCING","DEVICE_STATE_UPLOADING","DEVICE_STATE_CHARGING","DEVICE_STATE_LOW_BATTERY","DEVICE_STATE_STORAGE_FULL","DEVICE_STATE_ERROR","FLAG_CHARGING","FLAG_USB_CONNECTED","FLAG_LOW_BATTERY","FLAG_CRITICAL_BATTERY","FLAG_STORAGE_WARNING","FLAG_STORAGE_FULL","FLAG_CELLULAR_AVAILABLE","FLAG_CELLULAR_ROAMING","FLAG_WIFI_CONNECTED","FLAG_RECORDING_ACTIVE","FLAG_SYNC_REQUIRED","FLAG_UPDATE_AVAILABLE","CODEC_PCM_16K","CODEC_PCM_8K","CODEC_OPUS_16K","CODEC_OPUS_8K","PACKET_TYPE_DATA","PACKET_TYPE_EOF","PACKET_TYPE_ERROR","parseDeviceType","byte","parsePairingState","parseFirmwareVersion","major","minor","parseDeviceState","parseDeviceFlags","value","charging","usbConnected","lowBattery","criticalBattery","storageWarning","storageFull","cellularAvailable","cellularRoaming","wifiConnected","recordingActive","syncRequired","updateAvailable","parseDeviceStatus","data","length","Error","timestamp","readUInt32LE","batteryLevel","readUInt8","state","storageUsedPercent","signalStrength","pendingRecordings","readUInt16LE","lastSyncTimestamp","flagsValue","flags","lastSyncAt","Date","parseStorageInfo","totalKb","usedKb","totalRecordings","pendingSyncCount","parseAudioCodec","parseRecordingList","recordings","entrySize","offset","uuid","formatUuid","slice","durationSeconds","sizeKb","push","startedAt","durationMs","fileSizeBytes","codec","hex","toString","parseTransferPacket","type","sequenceNumber","checksum","errorCode","createTimeSyncData","date","buffer","alloc","unixSeconds","Math","floor","getTime","milliseconds","getMilliseconds","timezoneOffset","getTimezoneOffset","writeUInt32LE","writeUInt16LE","writeInt16LE","createAckPacket","ackType","writeUInt8","createTransferCommand","command","recordingUuid","cmdByte","uuidBuffer","from","replace","copy"],"sourceRoot":"../../../src","sources":["ble/parsers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","DEVICE_TYPE_PIN","DEVICE_TYPE_PIN_4G","DEVICE_TYPE_NOTE","PAIRING_STATE_UNPAIRED","PAIRING_STATE_PAIRING","PAIRING_STATE_PAIRED","PAIRING_STATE_ERROR","DEVICE_STATE_IDLE","DEVICE_STATE_RECORDING","DEVICE_STATE_SYNCING","DEVICE_STATE_UPLOADING","DEVICE_STATE_CHARGING","DEVICE_STATE_LOW_BATTERY","DEVICE_STATE_STORAGE_FULL","DEVICE_STATE_ERROR","FLAG_CHARGING","FLAG_USB_CONNECTED","FLAG_LOW_BATTERY","FLAG_CRITICAL_BATTERY","FLAG_STORAGE_WARNING","FLAG_STORAGE_FULL","FLAG_CELLULAR_AVAILABLE","FLAG_CELLULAR_ROAMING","FLAG_WIFI_CONNECTED","FLAG_RECORDING_ACTIVE","FLAG_SYNC_REQUIRED","FLAG_UPDATE_AVAILABLE","CODEC_PCM_16K","CODEC_PCM_8K","CODEC_OPUS_16K","CODEC_OPUS_8K","PACKET_TYPE_DATA","PACKET_TYPE_EOF","PACKET_TYPE_ERROR","CAP_BLE_SYNC","CAP_WIFI_UPLOAD","CAP_LTE_UPLOAD","CAP_REMOTE_RECORD","WIFI_STATUS_IDLE","WIFI_STATUS_CONNECTING","WIFI_STATUS_CONNECTED","WIFI_STATUS_FAILED","WIFI_STATUS_DISCONNECTED","WIFI_CONFIG_SUCCESS","WIFI_CONFIG_INVALID_GRANT","WIFI_CONFIG_GRANT_EXPIRED","WIFI_CONFIG_DECRYPTION_ERROR","WIFI_CONFIG_STORAGE_ERROR","parseDeviceType","byte","parsePairingState","parseFirmwareVersion","major","minor","parseDeviceState","parseDeviceFlags","value","charging","usbConnected","lowBattery","criticalBattery","storageWarning","storageFull","cellularAvailable","cellularRoaming","wifiConnected","recordingActive","syncRequired","updateAvailable","parseDeviceStatus","data","length","Error","timestamp","readUInt32LE","batteryLevel","readUInt8","state","storageUsedPercent","signalStrength","pendingRecordings","readUInt16LE","lastSyncTimestamp","flagsValue","flags","lastSyncAt","Date","parseStorageInfo","totalKb","usedKb","totalRecordings","pendingSyncCount","parseAudioCodec","parseRecordingList","recordings","entrySize","offset","uuid","formatUuid","slice","durationSeconds","sizeKb","push","startedAt","durationMs","fileSizeBytes","codec","hex","toString","parseTransferPacket","type","sequenceNumber","checksum","errorCode","createTimeSyncData","date","buffer","alloc","unixSeconds","Math","floor","getTime","milliseconds","getMilliseconds","timezoneOffset","getTimezoneOffset","writeUInt32LE","writeUInt16LE","writeInt16LE","createAckPacket","ackType","writeUInt8","createTransferCommand","command","recordingUuid","cmdByte","uuidBuffer","from","replace","copy","parseDeviceCapabilities","bleSync","wifiUpload","lteUpload","remoteRecord","parseWiFiStatus","parseWiFiStatusInfo","status","ssidLength","ssid","lastError","undefined","parseWiFiConfigResult","code","success","error","createWiFiGrantPacket","grantBlob"],"sourceRoot":"../../../src","sources":["ble/parsers.ts"],"mappings":"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","ignoreList":[]}
@@ -5,10 +5,11 @@
5
5
  import { Buffer } from 'buffer';
6
6
  import EventEmitter from 'eventemitter3';
7
7
  import { getBleManager } from '../ble/BleManager';
8
- import { SERVICE_DEVICE_INFO, SERVICE_BOTA_PROVISIONING, SERVICE_BOTA_CONTROL, CHAR_SERIAL_NUMBER, CHAR_FIRMWARE_REVISION, CHAR_HARDWARE_REVISION, CHAR_PAIRING_STATE, CHAR_DEVICE_TOKEN, CHAR_API_ENDPOINT, CHAR_PROVISIONING_RESULT, CHAR_DEVICE_STATUS, CHAR_RECORDING_CONTROL, CHAR_RECORDING_STATUS, CHAR_TIME_SYNC, API_ENDPOINT_PRODUCTION, API_ENDPOINT_SANDBOX, PROVISIONING_SUCCESS, PROVISIONING_INVALID_TOKEN, PROVISIONING_STORAGE_ERROR, PROVISIONING_CHUNK_ERROR, OPERATION_TIMEOUT, RECORDING_CMD_GRANT_START, RECORDING_CMD_GRANT_STOP, RECORDING_RESULT_SUCCESS, RECORDING_RESULT_ALREADY_RECORDING, RECORDING_RESULT_NOT_RECORDING, RECORDING_RESULT_INVALID_GRANT, RECORDING_RESULT_GRANT_EXPIRED } from '../ble/constants';
9
- import { parsePairingState, parseDeviceStatus, createTimeSyncData } from '../ble/parsers';
8
+ import { SERVICE_DEVICE_INFO, SERVICE_BOTA_PROVISIONING, SERVICE_BOTA_CONTROL, SERVICE_BOTA_WIFI_CONFIG, CHAR_SERIAL_NUMBER, CHAR_FIRMWARE_REVISION, CHAR_HARDWARE_REVISION, CHAR_PAIRING_STATE, CHAR_DEVICE_TOKEN, CHAR_API_ENDPOINT, CHAR_PROVISIONING_RESULT, CHAR_DEVICE_STATUS, CHAR_RECORDING_CONTROL, CHAR_RECORDING_STATUS, CHAR_TIME_SYNC, CHAR_WIFI_GRANT, CHAR_WIFI_CREDENTIAL, CHAR_WIFI_STATUS, API_ENDPOINT_PRODUCTION, API_ENDPOINT_SANDBOX, PROVISIONING_SUCCESS, PROVISIONING_INVALID_TOKEN, PROVISIONING_STORAGE_ERROR, PROVISIONING_CHUNK_ERROR, OPERATION_TIMEOUT, RECORDING_CMD_GRANT_START, RECORDING_CMD_GRANT_STOP, RECORDING_RESULT_SUCCESS, RECORDING_RESULT_ALREADY_RECORDING, RECORDING_RESULT_NOT_RECORDING, RECORDING_RESULT_INVALID_GRANT, RECORDING_RESULT_GRANT_EXPIRED } from '../ble/constants';
9
+ import { parsePairingState, parseDeviceStatus, createTimeSyncData, parseWiFiStatusInfo, parseWiFiConfigResult, createWiFiGrantPacket } from '../ble/parsers';
10
10
  import { DeviceError, ProvisioningError } from '../utils/errors';
11
11
  import { logger } from '../utils/logger';
12
+ import { deriveSessionKey, encryptWiFiCredentials, formatWiFiCredentialPacket } from '../utils/crypto';
12
13
  const log = logger.tag('DeviceManager');
13
14
 
14
15
  /**
@@ -626,6 +627,184 @@ export class DeviceManager extends EventEmitter {
626
627
  };
627
628
  }
628
629
 
630
+ // ============================================================================
631
+ // WiFi Upload Configuration
632
+ // ============================================================================
633
+
634
+ /**
635
+ * Configure WiFi credentials on device via BLE.
636
+ * Requires a WiFi configuration grant from backend.
637
+ *
638
+ * @param deviceId - Connected device ID
639
+ * @param credentials - WiFi network credentials
640
+ * @param grant - WiFi config grant from backend
641
+ * @returns Configuration result
642
+ *
643
+ * @example
644
+ * ```typescript
645
+ * // 1. Get grant from backend
646
+ * const grant = await api.createWiFiConfigGrant(deviceId);
647
+ *
648
+ * // 2. Configure device via BLE
649
+ * const result = await deviceManager.configureWiFi(
650
+ * deviceId,
651
+ * { ssid: 'MyNetwork', password: 'password123', securityType: 'WPA2' },
652
+ * grant
653
+ * );
654
+ *
655
+ * if (result.success) {
656
+ * console.log('WiFi configured successfully');
657
+ * }
658
+ * ```
659
+ */
660
+ async configureWiFi(deviceId, credentials, grant) {
661
+ log.info('Configuring WiFi on device', {
662
+ deviceId,
663
+ ssid: credentials.ssid
664
+ });
665
+ try {
666
+ // Step 1: Submit WiFi config grant to device
667
+ const grantPacket = createWiFiGrantPacket(grant.grantBlob);
668
+ await this.bleManager.writeCharacteristic(deviceId, SERVICE_BOTA_WIFI_CONFIG, CHAR_WIFI_GRANT, grantPacket);
669
+ log.debug('WiFi grant submitted');
670
+
671
+ // Step 2: Derive K_session from grant
672
+ const sessionKey = deriveSessionKey(grant.grantBlob);
673
+
674
+ // Step 3: Encrypt WiFi credentials with K_session
675
+ const encrypted = encryptWiFiCredentials(credentials.ssid, credentials.password, sessionKey);
676
+
677
+ // Step 4: Format credential packet for BLE transmission
678
+ const credentialPacket = formatWiFiCredentialPacket(encrypted);
679
+ log.debug('Sending encrypted WiFi credentials', {
680
+ packetSize: credentialPacket.length
681
+ });
682
+
683
+ // Step 5: Write encrypted credentials to device
684
+ await this.bleManager.writeCharacteristic(deviceId, SERVICE_BOTA_WIFI_CONFIG, CHAR_WIFI_CREDENTIAL, credentialPacket);
685
+
686
+ // Step 6: Wait for configuration result
687
+ const result = await this.waitForWiFiConfigResult(deviceId);
688
+ if (result.success) {
689
+ log.info('WiFi configuration successful', {
690
+ deviceId
691
+ });
692
+ } else {
693
+ log.warn('WiFi configuration failed', {
694
+ deviceId,
695
+ error: result.error
696
+ });
697
+ }
698
+ return result;
699
+ } catch (error) {
700
+ log.error('WiFi configuration error', error instanceof Error ? error : undefined);
701
+ throw new DeviceError(`Failed to configure WiFi: ${error instanceof Error ? error.message : 'Unknown error'}`, 'WIFI_CONFIG_ERROR', deviceId, error instanceof Error ? error : undefined);
702
+ }
703
+ }
704
+
705
+ /**
706
+ * Get WiFi connection status from device.
707
+ *
708
+ * @param deviceId - Connected device ID
709
+ * @returns WiFi status information
710
+ *
711
+ * @example
712
+ * ```typescript
713
+ * const status = await deviceManager.getWiFiStatus(deviceId);
714
+ * console.log('WiFi status:', status.status);
715
+ * if (status.status === 'connected') {
716
+ * console.log('Connected to:', status.ssid);
717
+ * console.log('Signal strength:', status.signalStrength);
718
+ * }
719
+ * ```
720
+ */
721
+ async getWiFiStatus(deviceId) {
722
+ log.debug('Reading WiFi status', {
723
+ deviceId
724
+ });
725
+ try {
726
+ const data = await this.bleManager.readCharacteristic(deviceId, SERVICE_BOTA_WIFI_CONFIG, CHAR_WIFI_STATUS);
727
+ const status = parseWiFiStatusInfo(data);
728
+ log.debug('WiFi status', {
729
+ deviceId,
730
+ status: status.status,
731
+ ssid: status.ssid
732
+ });
733
+ return status;
734
+ } catch (error) {
735
+ log.error('Failed to read WiFi status', error instanceof Error ? error : undefined);
736
+ throw new DeviceError(`Failed to read WiFi status: ${error instanceof Error ? error.message : 'Unknown error'}`, 'WIFI_STATUS_ERROR', deviceId, error instanceof Error ? error : undefined);
737
+ }
738
+ }
739
+
740
+ /**
741
+ * Subscribe to WiFi status updates from device.
742
+ *
743
+ * @param deviceId - Connected device ID
744
+ * @param callback - Callback function for status updates
745
+ * @returns Subscription object (call .remove() to unsubscribe)
746
+ *
747
+ * @example
748
+ * ```typescript
749
+ * const subscription = deviceManager.subscribeToWiFiStatus(deviceId, (status) => {
750
+ * console.log('WiFi status update:', status.status);
751
+ * if (status.status === 'connected') {
752
+ * console.log('Connected to:', status.ssid);
753
+ * } else if (status.status === 'failed') {
754
+ * console.error('Connection failed:', status.lastError);
755
+ * }
756
+ * });
757
+ *
758
+ * // Later: unsubscribe
759
+ * subscription.remove();
760
+ * ```
761
+ */
762
+ subscribeToWiFiStatus(deviceId, callback) {
763
+ log.debug('Subscribing to WiFi status', {
764
+ deviceId
765
+ });
766
+ return this.bleManager.subscribeToCharacteristic(deviceId, SERVICE_BOTA_WIFI_CONFIG, CHAR_WIFI_STATUS, data => {
767
+ try {
768
+ const status = parseWiFiStatusInfo(data);
769
+ callback(status);
770
+ } catch (error) {
771
+ log.error('Failed to parse WiFi status', error instanceof Error ? error : undefined);
772
+ }
773
+ }, error => {
774
+ log.error('WiFi status subscription error', error);
775
+ });
776
+ }
777
+
778
+ /**
779
+ * Wait for WiFi configuration result from device.
780
+ */
781
+ waitForWiFiConfigResult(deviceId) {
782
+ return new Promise((resolve, reject) => {
783
+ const timeout = setTimeout(() => {
784
+ subscription.remove();
785
+ reject(new DeviceError('WiFi configuration timeout', 'WIFI_CONFIG_TIMEOUT', deviceId));
786
+ }, OPERATION_TIMEOUT);
787
+ const subscription = this.bleManager.subscribeToCharacteristic(deviceId, SERVICE_BOTA_WIFI_CONFIG, CHAR_WIFI_STATUS, data => {
788
+ try {
789
+ // Configuration result comes via status updates
790
+ const result = parseWiFiConfigResult(data);
791
+ clearTimeout(timeout);
792
+ subscription.remove();
793
+ resolve(result);
794
+ } catch (error) {
795
+ // Ignore parse errors, wait for valid result
796
+ log.debug('Ignoring invalid WiFi config result', {
797
+ error: error instanceof Error ? error.message : String(error)
798
+ });
799
+ }
800
+ }, error => {
801
+ clearTimeout(timeout);
802
+ subscription.remove();
803
+ reject(new DeviceError(`WiFi config result error: ${error.message}`, 'WIFI_CONFIG_RESULT_ERROR', deviceId, error));
804
+ });
805
+ });
806
+ }
807
+
629
808
  /**
630
809
  * Clean up resources
631
810
  */
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","EventEmitter","getBleManager","SERVICE_DEVICE_INFO","SERVICE_BOTA_PROVISIONING","SERVICE_BOTA_CONTROL","CHAR_SERIAL_NUMBER","CHAR_FIRMWARE_REVISION","CHAR_HARDWARE_REVISION","CHAR_PAIRING_STATE","CHAR_DEVICE_TOKEN","CHAR_API_ENDPOINT","CHAR_PROVISIONING_RESULT","CHAR_DEVICE_STATUS","CHAR_RECORDING_CONTROL","CHAR_RECORDING_STATUS","CHAR_TIME_SYNC","API_ENDPOINT_PRODUCTION","API_ENDPOINT_SANDBOX","PROVISIONING_SUCCESS","PROVISIONING_INVALID_TOKEN","PROVISIONING_STORAGE_ERROR","PROVISIONING_CHUNK_ERROR","OPERATION_TIMEOUT","RECORDING_CMD_GRANT_START","RECORDING_CMD_GRANT_STOP","RECORDING_RESULT_SUCCESS","RECORDING_RESULT_ALREADY_RECORDING","RECORDING_RESULT_NOT_RECORDING","RECORDING_RESULT_INVALID_GRANT","RECORDING_RESULT_GRANT_EXPIRED","parsePairingState","parseDeviceStatus","createTimeSyncData","DeviceError","ProvisioningError","logger","log","tag","DeviceManager","connectedDevices","Map","statusSubscriptions","isInitialized","constructor","bleManager","setupBleListeners","initialize","info","on","device","emit","deviceId","get","error","connectionState","delete","remove","startScan","options","stopScan","getDiscoveredDevices","getConnectedDevices","Array","from","values","connect","id","name","existing","debug","serialNumber","readSerialNumber","firmwareVersion","readFirmwareVersion","hardwareRevision","readHardwareRevision","pairingState","readPairingState","mtu","getMtu","connectedDevice","deviceType","isProvisioned","set","disconnect","isConnected","provision","deviceToken","environment","notConnected","warn","alreadyProvisioned","resultPromise","waitForProvisioningResult","writeApiEndpoint","writeDeviceToken","result","success","invalidToken","storageError","chunkError","syncTime","getStatus","data","readCharacteristic","subscribeToStatus","callback","subscription","subscribeToCharacteristic","status","timeSyncData","writeCharacteristic","toString","replace","undefined","length","endpointByte","token","maxChunkSize","tokenBuffer","totalChunks","Math","ceil","tokenLength","i","start","end","min","chunkData","slice","chunk","alloc","writeUInt8","copy","total","Promise","resolve","reject","timeout","setTimeout","clearTimeout","resultCode","message","requestStartRecording","grantToken","_options","payload","waitForRecordingResult","requestStopRecording","getRecordingState","parseRecordingState","subscribeToRecordingState","state","timestamp","readUInt32LE","source","active","startedAt","Date","initiatedBy","destroy","sub","clear","removeAllListeners"],"sourceRoot":"../../../src","sources":["managers/DeviceManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","EventEmitter","getBleManager","SERVICE_DEVICE_INFO","SERVICE_BOTA_PROVISIONING","SERVICE_BOTA_CONTROL","SERVICE_BOTA_WIFI_CONFIG","CHAR_SERIAL_NUMBER","CHAR_FIRMWARE_REVISION","CHAR_HARDWARE_REVISION","CHAR_PAIRING_STATE","CHAR_DEVICE_TOKEN","CHAR_API_ENDPOINT","CHAR_PROVISIONING_RESULT","CHAR_DEVICE_STATUS","CHAR_RECORDING_CONTROL","CHAR_RECORDING_STATUS","CHAR_TIME_SYNC","CHAR_WIFI_GRANT","CHAR_WIFI_CREDENTIAL","CHAR_WIFI_STATUS","API_ENDPOINT_PRODUCTION","API_ENDPOINT_SANDBOX","PROVISIONING_SUCCESS","PROVISIONING_INVALID_TOKEN","PROVISIONING_STORAGE_ERROR","PROVISIONING_CHUNK_ERROR","OPERATION_TIMEOUT","RECORDING_CMD_GRANT_START","RECORDING_CMD_GRANT_STOP","RECORDING_RESULT_SUCCESS","RECORDING_RESULT_ALREADY_RECORDING","RECORDING_RESULT_NOT_RECORDING","RECORDING_RESULT_INVALID_GRANT","RECORDING_RESULT_GRANT_EXPIRED","parsePairingState","parseDeviceStatus","createTimeSyncData","parseWiFiStatusInfo","parseWiFiConfigResult","createWiFiGrantPacket","DeviceError","ProvisioningError","logger","deriveSessionKey","encryptWiFiCredentials","formatWiFiCredentialPacket","log","tag","DeviceManager","connectedDevices","Map","statusSubscriptions","isInitialized","constructor","bleManager","setupBleListeners","initialize","info","on","device","emit","deviceId","get","error","connectionState","delete","remove","startScan","options","stopScan","getDiscoveredDevices","getConnectedDevices","Array","from","values","connect","id","name","existing","debug","serialNumber","readSerialNumber","firmwareVersion","readFirmwareVersion","hardwareRevision","readHardwareRevision","pairingState","readPairingState","mtu","getMtu","connectedDevice","deviceType","isProvisioned","set","disconnect","isConnected","provision","deviceToken","environment","notConnected","warn","alreadyProvisioned","resultPromise","waitForProvisioningResult","writeApiEndpoint","writeDeviceToken","result","success","invalidToken","storageError","chunkError","syncTime","getStatus","data","readCharacteristic","subscribeToStatus","callback","subscription","subscribeToCharacteristic","status","timeSyncData","writeCharacteristic","toString","replace","undefined","length","endpointByte","token","maxChunkSize","tokenBuffer","totalChunks","Math","ceil","tokenLength","i","start","end","min","chunkData","slice","chunk","alloc","writeUInt8","copy","total","Promise","resolve","reject","timeout","setTimeout","clearTimeout","resultCode","message","requestStartRecording","grantToken","_options","payload","waitForRecordingResult","requestStopRecording","getRecordingState","parseRecordingState","subscribeToRecordingState","state","timestamp","readUInt32LE","source","active","startedAt","Date","initiatedBy","configureWiFi","credentials","grant","ssid","grantPacket","grantBlob","sessionKey","encrypted","password","credentialPacket","packetSize","waitForWiFiConfigResult","Error","getWiFiStatus","subscribeToWiFiStatus","String","destroy","sub","clear","removeAllListeners"],"sourceRoot":"../../../src","sources":["managers/DeviceManager.ts"],"mappings":"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","ignoreList":[]}
@@ -136,6 +136,12 @@ export class ProtocolHandler {
136
136
  state.subscription = this.bleManager.subscribeToCharacteristic(deviceId, SERVICE_BOTA_STORAGE, CHAR_RECORDING_TRANSFER, async data => {
137
137
  try {
138
138
  resetTimeout();
139
+
140
+ // Skip ACK echo-back packets (App→Device only, may be echoed by BLE stack)
141
+ const firstByte = data.readUInt8(0);
142
+ if (firstByte >= 0x10 && firstByte <= 0x12) {
143
+ return;
144
+ }
139
145
  const packet = parseTransferPacket(data);
140
146
  await this.handleTransferPacket(deviceId, state, packet, onProgress);
141
147
  if (state.isComplete) {
@@ -1 +1 @@
1
- {"version":3,"names":["Buffer","getBleManager","SERVICE_BOTA_STORAGE","CHAR_STORAGE_INFO","CHAR_RECORDING_LIST","CHAR_RECORDING_TRANSFER","CHAR_TRANSFER_CONTROL","TRANSFER_PACKET_TIMEOUT","parseStorageInfo","parseRecordingList","parseTransferPacket","createAckPacket","createTransferCommand","TransferError","DeviceError","logger","log","tag","ProtocolHandler","activeTransfers","Map","constructor","bleManager","getStorageInfo","deviceId","isConnected","notConnected","data","readCharacteristic","listRecordings","debug","Promise","resolve","reject","recordings","subscription","timeoutId","cleanup","clearTimeout","remove","setTimeout","length","subscribeToCharacteristic","parsed","concat","error","command","writeCharacteristic","catch","transferRecording","recordingUuid","onProgress","has","info","state","expectedSequence","receivedPackets","totalBytes","isComplete","set","delete","resetTimeout","timeout","packet","handleTransferPacket","audioData","assembleAudioData","checksum","undefined","calculatedChecksum","calculateCrc32","checksumMismatch","size","interrupted","then","type","sequenceNumber","from","sendAck","seq","total","deviceError","errorCode","ackPacket","sortedSequences","Array","keys","sort","a","b","chunks","get","push","crc","table","getCrc32Table","i","crc32Table","j","confirmSync","cancelTransfer","isTransferInProgress","destroy","clear"],"sourceRoot":"../../../src","sources":["protocol/ProtocolHandler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Buffer","getBleManager","SERVICE_BOTA_STORAGE","CHAR_STORAGE_INFO","CHAR_RECORDING_LIST","CHAR_RECORDING_TRANSFER","CHAR_TRANSFER_CONTROL","TRANSFER_PACKET_TIMEOUT","parseStorageInfo","parseRecordingList","parseTransferPacket","createAckPacket","createTransferCommand","TransferError","DeviceError","logger","log","tag","ProtocolHandler","activeTransfers","Map","constructor","bleManager","getStorageInfo","deviceId","isConnected","notConnected","data","readCharacteristic","listRecordings","debug","Promise","resolve","reject","recordings","subscription","timeoutId","cleanup","clearTimeout","remove","setTimeout","length","subscribeToCharacteristic","parsed","concat","error","command","writeCharacteristic","catch","transferRecording","recordingUuid","onProgress","has","info","state","expectedSequence","receivedPackets","totalBytes","isComplete","set","delete","resetTimeout","timeout","firstByte","readUInt8","packet","handleTransferPacket","audioData","assembleAudioData","checksum","undefined","calculatedChecksum","calculateCrc32","checksumMismatch","size","interrupted","then","type","sequenceNumber","from","sendAck","seq","total","deviceError","errorCode","ackPacket","sortedSequences","Array","keys","sort","a","b","chunks","get","push","crc","table","getCrc32Table","i","crc32Table","j","confirmSync","cancelTransfer","isTransferInProgress","destroy","clear"],"sourceRoot":"../../../src","sources":["protocol/ProtocolHandler.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Cryptographic utilities for WiFi Upload configuration
3
+ *
4
+ * NOTE: This module requires react-native-quick-crypto to be installed.
5
+ * Add to your app: npm install react-native-quick-crypto
6
+ */
7
+
8
+ import { Buffer } from 'buffer';
9
+
10
+ // Type-only import to avoid runtime errors if crypto is not installed
11
+
12
+ /**
13
+ * Get crypto module (lazy loaded to avoid errors if not installed)
14
+ */
15
+ function getCrypto() {
16
+ try {
17
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
18
+ return require('react-native-quick-crypto');
19
+ } catch {
20
+ throw new Error('WiFi Upload requires react-native-quick-crypto. ' + 'Install it with: npm install react-native-quick-crypto');
21
+ }
22
+ }
23
+
24
+ /**
25
+ * Derive K_session from WiFi config grant.
26
+ * K_session is used by device and app to encrypt/decrypt WiFi credentials in transit.
27
+ *
28
+ * Derivation: K_session = HMAC-SHA256(grant_blob, "BOTA_WIFI_SESSION_V1")
29
+ *
30
+ * @param grantBlob - Base64-encoded JWT grant from backend
31
+ * @returns 32-byte K_session as hex string
32
+ */
33
+ export function deriveSessionKey(grantBlob) {
34
+ const crypto = getCrypto();
35
+ return crypto.createHmac('sha256', grantBlob).update('BOTA_WIFI_SESSION_V1').digest('hex');
36
+ }
37
+
38
+ /**
39
+ * Encrypt WiFi credentials for BLE transmission using ChaCha20-Poly1305.
40
+ *
41
+ * Format sent to device:
42
+ * - 12 bytes: nonce (random)
43
+ * - N bytes: encrypted SSID
44
+ * - 16 bytes: auth tag for SSID
45
+ * - M bytes: encrypted password
46
+ * - 16 bytes: auth tag for password
47
+ *
48
+ * @param ssid - WiFi network SSID
49
+ * @param password - WiFi password
50
+ * @param sessionKey - K_session derived from grant (hex string)
51
+ * @returns Encrypted payload ready for BLE transmission
52
+ */
53
+ export function encryptWiFiCredentials(ssid, password, sessionKey) {
54
+ const crypto = getCrypto();
55
+
56
+ // Convert session key from hex to Buffer
57
+ const keyBuffer = Buffer.from(sessionKey, 'hex');
58
+
59
+ // Generate random nonce (12 bytes for ChaCha20-Poly1305)
60
+ const nonce = crypto.randomBytes(12);
61
+
62
+ // Encrypt SSID
63
+ const ssidCipher = crypto.createCipheriv('chacha20-poly1305', keyBuffer, nonce, {
64
+ authTagLength: 16
65
+ });
66
+ const ssidEncrypted = Buffer.concat([ssidCipher.update(ssid, 'utf-8'), ssidCipher.final()]);
67
+ const ssidAuthTag = ssidCipher.getAuthTag();
68
+
69
+ // Encrypt password (reuse same nonce with different additional data)
70
+ const passwordCipher = crypto.createCipheriv('chacha20-poly1305', keyBuffer, nonce, {
71
+ authTagLength: 16
72
+ });
73
+ // Use different AAD to prevent nonce reuse issues
74
+ passwordCipher.setAAD(Buffer.from('password'), {
75
+ plaintextLength: Buffer.byteLength(password, 'utf-8')
76
+ });
77
+ const passwordEncrypted = Buffer.concat([passwordCipher.update(password, 'utf-8'), passwordCipher.final()]);
78
+ const passwordAuthTag = passwordCipher.getAuthTag();
79
+ return {
80
+ nonce,
81
+ ssidEncrypted,
82
+ ssidAuthTag,
83
+ passwordEncrypted,
84
+ passwordAuthTag
85
+ };
86
+ }
87
+
88
+ /**
89
+ * Decrypt WiFi credentials received from device (if needed for verification).
90
+ *
91
+ * @param encrypted - Encrypted SSID or password
92
+ * @param nonce - 12-byte nonce
93
+ * @param authTag - 16-byte authentication tag
94
+ * @param sessionKey - K_session derived from grant (hex string)
95
+ * @param aad - Additional authenticated data (optional, use 'password' for password field)
96
+ * @returns Decrypted plaintext
97
+ */
98
+ export function decryptWiFiCredential(encrypted, nonce, authTag, sessionKey, aad) {
99
+ const crypto = getCrypto();
100
+
101
+ // Convert session key from hex to Buffer
102
+ const keyBuffer = Buffer.from(sessionKey, 'hex');
103
+
104
+ // Decrypt with ChaCha20-Poly1305
105
+ const decipher = crypto.createDecipheriv('chacha20-poly1305', keyBuffer, nonce, {
106
+ authTagLength: 16
107
+ });
108
+ decipher.setAuthTag(authTag);
109
+ if (aad) {
110
+ decipher.setAAD(Buffer.from(aad), {
111
+ plaintextLength: encrypted.length
112
+ });
113
+ }
114
+ const decrypted = Buffer.concat([decipher.update(encrypted), decipher.final()]);
115
+ return decrypted.toString('utf-8');
116
+ }
117
+
118
+ /**
119
+ * Format encrypted WiFi credentials for BLE transmission.
120
+ *
121
+ * Packet format:
122
+ * [nonce (12 bytes)][ssid_encrypted (N bytes)][ssid_tag (16 bytes)]
123
+ * [password_encrypted (M bytes)][password_tag (16 bytes)]
124
+ *
125
+ * @param encrypted - Result from encryptWiFiCredentials
126
+ * @returns Single buffer ready for BLE write
127
+ */
128
+ export function formatWiFiCredentialPacket(encrypted) {
129
+ return Buffer.concat([encrypted.nonce, encrypted.ssidEncrypted, encrypted.ssidAuthTag, encrypted.passwordEncrypted, encrypted.passwordAuthTag]);
130
+ }
131
+
132
+ /**
133
+ * Parse encrypted WiFi credential packet received from device.
134
+ *
135
+ * @param packet - Buffer received from BLE
136
+ * @param ssidLength - Expected SSID encrypted length
137
+ * @param passwordLength - Expected password encrypted length
138
+ * @returns Parsed components
139
+ */
140
+ export function parseWiFiCredentialPacket(packet, ssidLength, passwordLength) {
141
+ let offset = 0;
142
+ const nonce = packet.subarray(offset, offset + 12);
143
+ offset += 12;
144
+ const ssidEncrypted = packet.subarray(offset, offset + ssidLength);
145
+ offset += ssidLength;
146
+ const ssidAuthTag = packet.subarray(offset, offset + 16);
147
+ offset += 16;
148
+ const passwordEncrypted = packet.subarray(offset, offset + passwordLength);
149
+ offset += passwordLength;
150
+ const passwordAuthTag = packet.subarray(offset, offset + 16);
151
+ offset += 16;
152
+ return {
153
+ nonce,
154
+ ssidEncrypted,
155
+ ssidAuthTag,
156
+ passwordEncrypted,
157
+ passwordAuthTag
158
+ };
159
+ }
160
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Buffer","getCrypto","require","Error","deriveSessionKey","grantBlob","crypto","createHmac","update","digest","encryptWiFiCredentials","ssid","password","sessionKey","keyBuffer","from","nonce","randomBytes","ssidCipher","createCipheriv","authTagLength","ssidEncrypted","concat","final","ssidAuthTag","getAuthTag","passwordCipher","setAAD","plaintextLength","byteLength","passwordEncrypted","passwordAuthTag","decryptWiFiCredential","encrypted","authTag","aad","decipher","createDecipheriv","setAuthTag","length","decrypted","toString","formatWiFiCredentialPacket","parseWiFiCredentialPacket","packet","ssidLength","passwordLength","offset","subarray"],"sourceRoot":"../../../src","sources":["utils/crypto.ts"],"mappings":"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","ignoreList":[]}
@@ -5,4 +5,5 @@
5
5
  export * from './errors';
6
6
  export { logger } from './logger';
7
7
  export * from './retry';
8
+ export * from './crypto';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["logger"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,cAAc,UAAU;AACxB,SAASA,MAAM,QAAQ,UAAU;AACjC,cAAc,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["logger"],"sourceRoot":"../../../src","sources":["utils/index.ts"],"mappings":"AAAA;AACA;AACA;;AAEA,cAAc,UAAU;AACxB,SAASA,MAAM,QAAQ,UAAU;AACjC,cAAc,SAAS;AACvB,cAAc,UAAU","ignoreList":[]}