@bota-dev/react-native-sdk 0.0.6 → 0.0.8
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.
- package/README.md +30 -2
- package/lib/commonjs/ble/constants.js +28 -2
- package/lib/commonjs/ble/constants.js.map +1 -1
- package/lib/commonjs/ble/parsers.js +128 -0
- package/lib/commonjs/ble/parsers.js.map +1 -1
- package/lib/commonjs/managers/DeviceManager.js +179 -0
- package/lib/commonjs/managers/DeviceManager.js.map +1 -1
- package/lib/commonjs/upload/UploadQueue.js +9 -2
- package/lib/commonjs/upload/UploadQueue.js.map +1 -1
- package/lib/commonjs/utils/crypto.js +169 -0
- package/lib/commonjs/utils/crypto.js.map +1 -0
- package/lib/commonjs/utils/index.js +12 -0
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/ble/constants.js +26 -0
- package/lib/module/ble/constants.js.map +1 -1
- package/lib/module/ble/parsers.js +124 -1
- package/lib/module/ble/parsers.js.map +1 -1
- package/lib/module/managers/DeviceManager.js +181 -2
- package/lib/module/managers/DeviceManager.js.map +1 -1
- package/lib/module/upload/UploadQueue.js +9 -2
- package/lib/module/upload/UploadQueue.js.map +1 -1
- package/lib/module/utils/crypto.js +160 -0
- package/lib/module/utils/crypto.js.map +1 -0
- package/lib/module/utils/index.js +1 -0
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/src/ble/constants.d.ts +18 -0
- package/lib/typescript/src/ble/constants.d.ts.map +1 -1
- package/lib/typescript/src/ble/parsers.d.ts +34 -1
- package/lib/typescript/src/ble/parsers.d.ts.map +1 -1
- package/lib/typescript/src/managers/DeviceManager.d.ts +73 -1
- package/lib/typescript/src/managers/DeviceManager.d.ts.map +1 -1
- package/lib/typescript/src/models/Device.d.ts +65 -0
- package/lib/typescript/src/models/Device.d.ts.map +1 -1
- package/lib/typescript/src/models/Recording.d.ts +9 -9
- package/lib/typescript/src/models/Recording.d.ts.map +1 -1
- package/lib/typescript/src/upload/UploadQueue.d.ts +2 -2
- package/lib/typescript/src/upload/UploadQueue.d.ts.map +1 -1
- package/lib/typescript/src/utils/crypto.d.ts +83 -0
- package/lib/typescript/src/utils/crypto.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +1 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -1
- package/package.json +6 -2
- package/src/ble/constants.ts +26 -0
- package/src/ble/parsers.ts +131 -0
- package/src/managers/DeviceManager.ts +244 -0
- package/src/models/Device.ts +76 -0
- package/src/models/Recording.ts +9 -9
- package/src/upload/UploadQueue.ts +15 -8
- package/src/utils/crypto.ts +221 -0
- 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":"AAAA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,QAAQ;AAE/B,OAAOC,YAAY,MAAM,eAAe;AAExC,SAASC,aAAa,QAAoB,mBAAmB;AAC7D,SACEC,mBAAmB,EACnBC,yBAAyB,EACzBC,oBAAoB,EACpBC,wBAAwB,EACxBC,kBAAkB,EAClBC,sBAAsB,EACtBC,sBAAsB,EACtBC,kBAAkB,EAClBC,iBAAiB,EACjBC,iBAAiB,EACjBC,wBAAwB,EACxBC,kBAAkB,EAClBC,sBAAsB,EACtBC,qBAAqB,EACrBC,cAAc,EACdC,eAAe,EACfC,oBAAoB,EACpBC,gBAAgB,EAChBC,uBAAuB,EACvBC,oBAAoB,EACpBC,oBAAoB,EACpBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,wBAAwB,EACxBC,iBAAiB,EACjBC,yBAAyB,EACzBC,wBAAwB,EACxBC,wBAAwB,EACxBC,kCAAkC,EAClCC,8BAA8B,EAC9BC,8BAA8B,EAC9BC,8BAA8B,QACzB,kBAAkB;AACzB,SACEC,iBAAiB,EACjBC,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,EACnBC,qBAAqB,EACrBC,qBAAqB,QAChB,gBAAgB;AAkBvB,SACEC,WAAW,EACXC,iBAAiB,QACZ,iBAAiB;AACxB,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,0BAA0B,QACrB,iBAAiB;AAExB,MAAMC,GAAG,GAAGJ,MAAM,CAACK,GAAG,CAAC,eAAe,CAAC;;AAEvC;AACA;AACA;AACA,OAAO,MAAMC,aAAa,SAAShD,YAAY,CAAsB;EAE3DiD,gBAAgB,GAAiC,IAAIC,GAAG,CAAC,CAAC;EAC1DC,mBAAmB,GAA8B,IAAID,GAAG,CAAC,CAAC;EAC1DE,aAAa,GAAG,KAAK;EAE7BC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,UAAU,GAAGrD,aAAa,CAAC,CAAC;IACjC,IAAI,CAACsD,iBAAiB,CAAC,CAAC;EAC1B;;EAEA;AACF;AACA;EACEC,UAAUA,CAAA,EAAS;IACjB,IAAI,IAAI,CAACJ,aAAa,EAAE;MACtB;IACF;IACA,IAAI,CAACA,aAAa,GAAG,IAAI;IACzBN,GAAG,CAACW,IAAI,CAAC,2BAA2B,CAAC;EACvC;;EAEA;AACF;AACA;EACUF,iBAAiBA,CAAA,EAAS;IAChC,IAAI,CAACD,UAAU,CAACI,EAAE,CAAC,kBAAkB,EAAGC,MAAM,IAAK;MACjD,IAAI,CAACC,IAAI,CAAC,kBAAkB,EAAED,MAAM,CAAC;IACvC,CAAC,CAAC;IAEF,IAAI,CAACL,UAAU,CAACI,EAAE,CAAC,iBAAiB,EAAGG,QAAQ,IAAK;MAClD,MAAMF,MAAM,GAAG,IAAI,CAACV,gBAAgB,CAACa,GAAG,CAACD,QAAQ,CAAC;MAClD,IAAIF,MAAM,EAAE;QACV,IAAI,CAACC,IAAI,CAAC,iBAAiB,EAAED,MAAM,CAAC;MACtC;IACF,CAAC,CAAC;IAEF,IAAI,CAACL,UAAU,CAACI,EAAE,CAAC,oBAAoB,EAAE,CAACG,QAAQ,EAAEE,KAAK,KAAK;MAC5D,MAAMJ,MAAM,GAAG,IAAI,CAACV,gBAAgB,CAACa,GAAG,CAACD,QAAQ,CAAC;MAClD,IAAIF,MAAM,EAAE;QACV;QACAA,MAAM,CAACK,eAAe,GAAG,cAAc;MACzC;MACA,IAAI,CAACf,gBAAgB,CAACgB,MAAM,CAACJ,QAAQ,CAAC;;MAEtC;MACA,IAAI,CAACV,mBAAmB,CAACW,GAAG,CAACD,QAAQ,CAAC,EAAEK,MAAM,CAAC,CAAC;MAChD,IAAI,CAACf,mBAAmB,CAACc,MAAM,CAACJ,QAAQ,CAAC;MAEzC,IAAI,CAACD,IAAI,CAAC,oBAAoB,EAAEC,QAAQ,EAAEE,KAAK,CAAC;IAClD,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,MAAMI,SAASA,CAACC,OAAoB,GAAG,CAAC,CAAC,EAAiB;IACxDtB,GAAG,CAACW,IAAI,CAAC,sBAAsB,EAAEW,OAAkC,CAAC;IACpE,IAAI,CAACR,IAAI,CAAC,aAAa,CAAC;IAExB,IAAI;MACF,MAAM,IAAI,CAACN,UAAU,CAACa,SAAS,CAACC,OAAO,CAAC;IAC1C,CAAC,CAAC,OAAOL,KAAK,EAAE;MACd,IAAI,CAACH,IAAI,CAAC,WAAW,EAAEG,KAAc,CAAC;MACtC,MAAMA,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACEM,QAAQA,CAAA,EAAS;IACfvB,GAAG,CAACW,IAAI,CAAC,sBAAsB,CAAC;IAChC,IAAI,CAACH,UAAU,CAACe,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAACT,IAAI,CAAC,aAAa,CAAC;EAC1B;;EAEA;AACF;AACA;EACEU,oBAAoBA,CAAA,EAAuB;IACzC,OAAO,IAAI,CAAChB,UAAU,CAACgB,oBAAoB,CAAC,CAAC;EAC/C;;EAEA;AACF;AACA;EACEC,mBAAmBA,CAAA,EAAsB;IACvC,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACxB,gBAAgB,CAACyB,MAAM,CAAC,CAAC,CAAC;EACnD;;EAEA;AACF;AACA;EACE,MAAMC,OAAOA,CAAChB,MAAwB,EAA4B;IAChEb,GAAG,CAACW,IAAI,CAAC,sBAAsB,EAAE;MAAEI,QAAQ,EAAEF,MAAM,CAACiB,EAAE;MAAEC,IAAI,EAAElB,MAAM,CAACkB;IAAK,CAAC,CAAC;;IAE5E;IACA,MAAMC,QAAQ,GAAG,IAAI,CAAC7B,gBAAgB,CAACa,GAAG,CAACH,MAAM,CAACiB,EAAE,CAAC;IACrD,IAAIE,QAAQ,IAAIA,QAAQ,CAACd,eAAe,KAAK,WAAW,EAAE;MACxDlB,GAAG,CAACiC,KAAK,CAAC,0BAA0B,EAAE;QAAElB,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;MAC9D,OAAOE,QAAQ;IACjB;;IAEA;IACA,IAAI,CAAClB,IAAI,CAAC,wBAAwB,EAAED,MAAM,CAACiB,EAAE,EAAE,YAAY,CAAC;IAE5D,IAAI;MACF;MACA,MAAM,IAAI,CAACtB,UAAU,CAACqB,OAAO,CAAChB,MAAM,CAACiB,EAAE,CAAC;;MAExC;MACA,MAAMI,YAAY,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAACtB,MAAM,CAACiB,EAAE,CAAC;MAC3D,MAAMM,eAAe,GAAG,MAAM,IAAI,CAACC,mBAAmB,CAACxB,MAAM,CAACiB,EAAE,CAAC;MACjE,MAAMQ,gBAAgB,GAAG,MAAM,IAAI,CAACC,oBAAoB,CAAC1B,MAAM,CAACiB,EAAE,CAAC;MACnE,MAAMU,YAAY,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAAC5B,MAAM,CAACiB,EAAE,CAAC;MAC3D,MAAMY,GAAG,GAAG,MAAM,IAAI,CAAClC,UAAU,CAACmC,MAAM,CAAC9B,MAAM,CAACiB,EAAE,CAAC;MAEnD,MAAMc,eAAgC,GAAG;QACvCd,EAAE,EAAEjB,MAAM,CAACiB,EAAE;QACbI,YAAY;QACZW,UAAU,EAAEhC,MAAM,CAACgC,UAAU;QAC7BT,eAAe;QACfE,gBAAgB;QAChBQ,aAAa,EAAEN,YAAY,KAAK,QAAQ;QACxCtB,eAAe,EAAE,WAAW;QAC5BwB;MACF,CAAC;MAED,IAAI,CAACvC,gBAAgB,CAAC4C,GAAG,CAAClC,MAAM,CAACiB,EAAE,EAAEc,eAAe,CAAC;MAErD5C,GAAG,CAACW,IAAI,CAAC,+BAA+B,EAAE;QACxCI,QAAQ,EAAEF,MAAM,CAACiB,EAAE;QACnBI,YAAY;QACZY,aAAa,EAAEF,eAAe,CAACE;MACjC,CAAC,CAAC;MAEF,IAAI,CAAChC,IAAI,CAAC,wBAAwB,EAAED,MAAM,CAACiB,EAAE,EAAE,WAAW,CAAC;MAE3D,OAAOc,eAAe;IACxB,CAAC,CAAC,OAAO3B,KAAK,EAAE;MACd,IAAI,CAACH,IAAI,CAAC,wBAAwB,EAAED,MAAM,CAACiB,EAAE,EAAE,cAAc,CAAC;MAC9D,MAAMb,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAM+B,UAAUA,CAACnC,MAAuB,EAAiB;IACvDb,GAAG,CAACW,IAAI,CAAC,2BAA2B,EAAE;MAAEI,QAAQ,EAAEF,MAAM,CAACiB;IAAG,CAAC,CAAC;IAE9D,IAAI,CAAChB,IAAI,CAAC,wBAAwB,EAAED,MAAM,CAACiB,EAAE,EAAE,eAAe,CAAC;;IAE/D;IACA,IAAI,CAACzB,mBAAmB,CAACW,GAAG,CAACH,MAAM,CAACiB,EAAE,CAAC,EAAEV,MAAM,CAAC,CAAC;IACjD,IAAI,CAACf,mBAAmB,CAACc,MAAM,CAACN,MAAM,CAACiB,EAAE,CAAC;IAE1C,MAAM,IAAI,CAACtB,UAAU,CAACwC,UAAU,CAACnC,MAAM,CAACiB,EAAE,CAAC;IAC3C,IAAI,CAAC3B,gBAAgB,CAACgB,MAAM,CAACN,MAAM,CAACiB,EAAE,CAAC;IAEvC,IAAI,CAAChB,IAAI,CAAC,wBAAwB,EAAED,MAAM,CAACiB,EAAE,EAAE,cAAc,CAAC;EAChE;;EAEA;AACF;AACA;EACEmB,WAAWA,CAAClC,QAAgB,EAAW;IACrC,OAAO,IAAI,CAACP,UAAU,CAACyC,WAAW,CAAClC,QAAQ,CAAC;EAC9C;;EAEA;AACF;AACA;EACE,MAAMmC,SAASA,CACbrC,MAAuB,EACvBsC,WAAmB,EACnBC,WAAwB,GAAG,YAAY,EACxB;IACfpD,GAAG,CAACW,IAAI,CAAC,qBAAqB,EAAE;MAC9BI,QAAQ,EAAEF,MAAM,CAACiB,EAAE;MACnBsB;IACF,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAACH,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;;IAEA;IACA,MAAMU,YAAY,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAAC5B,MAAM,CAACiB,EAAE,CAAC;IAC3D,IAAIU,YAAY,KAAK,QAAQ,EAAE;MAC7BxC,GAAG,CAACsD,IAAI,CAAC,+BAA+B,EAAE;QAAEvC,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;MAClE,MAAMnC,iBAAiB,CAAC4D,kBAAkB,CAAC1C,MAAM,CAACiB,EAAE,CAAC;IACvD;;IAEA;IACA,MAAM0B,aAAa,GAAG,IAAI,CAACC,yBAAyB,CAAC5C,MAAM,CAACiB,EAAE,CAAC;IAE/D,IAAI;MACF;MACA,MAAM,IAAI,CAAC4B,gBAAgB,CAAC7C,MAAM,CAACiB,EAAE,EAAEsB,WAAW,CAAC;;MAEnD;MACA,MAAM,IAAI,CAACO,gBAAgB,CAAC9C,MAAM,CAACiB,EAAE,EAAEqB,WAAW,CAAC;;MAEnD;MACA,MAAMS,MAAM,GAAG,MAAMJ,aAAa;MAElC,IAAI,CAACI,MAAM,CAACC,OAAO,EAAE;QACnB,QAAQD,MAAM,CAAC3C,KAAK;UAClB,KAAK,eAAe;YAClB,MAAMtB,iBAAiB,CAACmE,YAAY,CAACjD,MAAM,CAACiB,EAAE,CAAC;UACjD,KAAK,eAAe;YAClB,MAAMnC,iBAAiB,CAACoE,YAAY,CAAClD,MAAM,CAACiB,EAAE,CAAC;UACjD,KAAK,aAAa;YAChB,MAAMnC,iBAAiB,CAACqE,UAAU,CAACnD,MAAM,CAACiB,EAAE,CAAC;UAC/C;YACE,MAAM,IAAInC,iBAAiB,CACzB,qBAAqB,EACrB,qBAAqB,EACrBkB,MAAM,CAACiB,EACT,CAAC;QACL;MACF;;MAEA;MACA,MAAM,IAAI,CAACmC,QAAQ,CAACpD,MAAM,CAACiB,EAAE,CAAC;;MAE9B;MACAjB,MAAM,CAACiC,aAAa,GAAG,IAAI;MAE3B9C,GAAG,CAACW,IAAI,CAAC,iCAAiC,EAAE;QAAEI,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;IACtE,CAAC,CAAC,OAAOb,KAAK,EAAE;MACdjB,GAAG,CAACiB,KAAK,CAAC,qBAAqB,EAAEA,KAAK,EAAW;QAAEF,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;MACzE,MAAMb,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAM6B,aAAaA,CAACjC,MAAuB,EAAoB;IAC7D,MAAM2B,YAAY,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAAC5B,MAAM,CAACiB,EAAE,CAAC;IAC3D,OAAOU,YAAY,KAAK,QAAQ;EAClC;;EAEA;AACF;AACA;EACE,MAAM0B,SAASA,CAACrD,MAAuB,EAAyB;IAC9D,IAAI,CAAC,IAAI,CAACoC,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;IAEA,MAAMqC,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDvD,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBS,kBACF,CAAC;IAED,OAAOsB,iBAAiB,CAAC8E,IAAI,CAAC;EAChC;;EAEA;AACF;AACA;EACEE,iBAAiBA,CACfxD,MAAuB,EACvByD,QAAwC,EAC5B;IACZ,IAAI,CAAC,IAAI,CAACrB,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;;IAEA;IACA,IAAI,CAACzB,mBAAmB,CAACW,GAAG,CAACH,MAAM,CAACiB,EAAE,CAAC,EAAEV,MAAM,CAAC,CAAC;IAEjD,MAAMmD,YAAY,GAAG,IAAI,CAAC/D,UAAU,CAACgE,yBAAyB,CAC5D3D,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBS,kBAAkB,EACjBoG,IAAI,IAAK;MACR,IAAI;QACF,MAAMM,MAAM,GAAGpF,iBAAiB,CAAC8E,IAAI,CAAC;QACtC,IAAI,CAACrD,IAAI,CAAC,qBAAqB,EAAED,MAAM,CAACiB,EAAE,EAAE2C,MAAM,CAAC;QACnDH,QAAQ,CAACG,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOxD,KAAK,EAAE;QACdjB,GAAG,CAACiB,KAAK,CAAC,+BAA+B,EAAEA,KAAc,CAAC;MAC5D;IACF,CAAC,EACAA,KAAK,IAAK;MACTjB,GAAG,CAACiB,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IAC/C,CACF,CAAC;IAED,IAAI,CAACZ,mBAAmB,CAAC0C,GAAG,CAAClC,MAAM,CAACiB,EAAE,EAAEyC,YAAY,CAAC;IAErD,OAAO,MAAM;MACXA,YAAY,CAACnD,MAAM,CAAC,CAAC;MACrB,IAAI,CAACf,mBAAmB,CAACc,MAAM,CAACN,MAAM,CAACiB,EAAE,CAAC;IAC5C,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAMmC,QAAQA,CAAClD,QAAgB,EAAiB;IAC9Cf,GAAG,CAACiC,KAAK,CAAC,wBAAwB,EAAE;MAAElB;IAAS,CAAC,CAAC;IAEjD,MAAM2D,YAAY,GAAGpF,kBAAkB,CAAC,CAAC;IAEzC,MAAM,IAAI,CAACkB,UAAU,CAACmE,mBAAmB,CACvC5D,QAAQ,EACRzD,oBAAoB,EACpBY,cAAc,EACdwG,YACF,CAAC;EACH;;EAEA;;EAEA,MAAcvC,gBAAgBA,CAACpB,QAAgB,EAAmB;IAChE,MAAMoD,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDrD,QAAQ,EACR3D,mBAAmB,EACnBI,kBACF,CAAC;IACD,OAAO2G,IAAI,CAACS,QAAQ,CAAC,MAAM,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EACjD;EAEA,MAAcxC,mBAAmBA,CAACtB,QAAgB,EAAmB;IACnE,MAAMoD,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDrD,QAAQ,EACR3D,mBAAmB,EACnBK,sBACF,CAAC;IACD,OAAO0G,IAAI,CAACS,QAAQ,CAAC,MAAM,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EACjD;EAEA,MAActC,oBAAoBA,CAACxB,QAAgB,EAA+B;IAChF,IAAI;MACF,MAAMoD,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDrD,QAAQ,EACR3D,mBAAmB,EACnBM,sBACF,CAAC;MACD,OAAOyG,IAAI,CAACS,QAAQ,CAAC,MAAM,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACjD,CAAC,CAAC,MAAM;MACN,OAAOC,SAAS;IAClB;EACF;EAEA,MAAcrC,gBAAgBA,CAAC1B,QAAgB,EAAwD;IACrG,MAAMoD,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDrD,QAAQ,EACR1D,yBAAyB,EACzBM,kBACF,CAAC;IAED,IAAIwG,IAAI,CAACY,MAAM,GAAG,CAAC,EAAE;MACnB,OAAO,UAAU;IACnB;IAEA,OAAO3F,iBAAiB,CAAC+E,IAAI,CAAC,CAAC,CAAC,CAAC;EACnC;EAEA,MAAcT,gBAAgBA,CAC5B3C,QAAgB,EAChBqC,WAAwB,EACT;IACf,MAAM4B,YAAY,GAChB5B,WAAW,KAAK,YAAY,GAAG9E,uBAAuB,GAAGC,oBAAoB;IAE/E,MAAM,IAAI,CAACiC,UAAU,CAACmE,mBAAmB,CACvC5D,QAAQ,EACR1D,yBAAyB,EACzBQ,iBAAiB,EACjBZ,MAAM,CAAC0E,IAAI,CAAC,CAACqD,YAAY,CAAC,CAC5B,CAAC;EACH;EAEA,MAAcrB,gBAAgBA,CAC5B5C,QAAgB,EAChBkE,KAAa,EACE;IACf,MAAMvC,GAAG,GAAG,MAAM,IAAI,CAAClC,UAAU,CAACmC,MAAM,CAAC5B,QAAQ,CAAC;IAClD,MAAMmE,YAAY,GAAGxC,GAAG,GAAG,CAAC,CAAC,CAAC;;IAE9B,MAAMyC,WAAW,GAAGlI,MAAM,CAAC0E,IAAI,CAACsD,KAAK,EAAE,MAAM,CAAC;IAC9C,MAAMG,WAAW,GAAGC,IAAI,CAACC,IAAI,CAACH,WAAW,CAACJ,MAAM,IAAIG,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtElF,GAAG,CAACiC,KAAK,CAAC,sBAAsB,EAAE;MAChClB,QAAQ;MACRwE,WAAW,EAAEN,KAAK,CAACF,MAAM;MACzBK,WAAW;MACX1C;IACF,CAAC,CAAC;IAEF,KAAK,IAAI8C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,WAAW,EAAEI,CAAC,EAAE,EAAE;MACpC,MAAMC,KAAK,GAAGD,CAAC,IAAIN,YAAY,GAAG,CAAC,CAAC;MACpC,MAAMQ,GAAG,GAAGL,IAAI,CAACM,GAAG,CAACF,KAAK,IAAIP,YAAY,GAAG,CAAC,CAAC,EAAEC,WAAW,CAACJ,MAAM,CAAC;MACpE,MAAMa,SAAS,GAAGT,WAAW,CAACU,KAAK,CAACJ,KAAK,EAAEC,GAAG,CAAC;;MAE/C;MACA,MAAMI,KAAK,GAAG7I,MAAM,CAAC8I,KAAK,CAAC,CAAC,GAAGH,SAAS,CAACb,MAAM,CAAC;MAChDe,KAAK,CAACE,UAAU,CAACR,CAAC,EAAE,CAAC,CAAC;MACtBM,KAAK,CAACE,UAAU,CAACZ,WAAW,EAAE,CAAC,CAAC;MAChCQ,SAAS,CAACK,IAAI,CAACH,KAAK,EAAE,CAAC,CAAC;MAExB,MAAM,IAAI,CAACtF,UAAU,CAACmE,mBAAmB,CACvC5D,QAAQ,EACR1D,yBAAyB,EACzBO,iBAAiB,EACjBkI,KACF,CAAC;MAED9F,GAAG,CAACiC,KAAK,CAAC,mBAAmB,EAAE;QAAE6D,KAAK,EAAEN,CAAC,GAAG,CAAC;QAAEU,KAAK,EAAEd;MAAY,CAAC,CAAC;IACtE;EACF;EAEQ3B,yBAAyBA,CAAC1C,QAAgB,EAA+B;IAC/E,OAAO,IAAIoF,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;QAC/BhC,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBiF,MAAM,CAAC1G,iBAAiB,CAAC2G,OAAO,CAACvF,QAAQ,CAAC,CAAC;MAC7C,CAAC,EAAEnC,iBAAiB,CAAC;MAErB,MAAM2F,YAAY,GAAG,IAAI,CAAC/D,UAAU,CAACgE,yBAAyB,CAC5DzD,QAAQ,EACR1D,yBAAyB,EACzBS,wBAAwB,EACvBqG,IAAI,IAAK;QACRqC,YAAY,CAACF,OAAO,CAAC;QACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;QAErB,IAAI+C,IAAI,CAACY,MAAM,GAAG,CAAC,EAAE;UACnBqB,OAAO,CAAC;YAAEvC,OAAO,EAAE,KAAK;YAAE5C,KAAK,EAAE;UAAU,CAAC,CAAC;UAC7C;QACF;QAEA,MAAMwF,UAAU,GAAGtC,IAAI,CAAC,CAAC,CAAC;QAC1B,QAAQsC,UAAU;UAChB,KAAKjI,oBAAoB;YACvB4H,OAAO,CAAC;cAAEvC,OAAO,EAAE;YAAK,CAAC,CAAC;YAC1B;UACF,KAAKpF,0BAA0B;YAC7B2H,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAgB,CAAC,CAAC;YACnD;UACF,KAAKvC,0BAA0B;YAC7B0H,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAgB,CAAC,CAAC;YACnD;UACF,KAAKtC,wBAAwB;YAC3ByH,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAc,CAAC,CAAC;YACjD;UACF;YACEmF,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAU,CAAC,CAAC;QACjD;MACF,CAAC,EACAA,KAAK,IAAK;QACTuF,YAAY,CAACF,OAAO,CAAC;QACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBiF,MAAM,CAAC,IAAI1G,iBAAiB,CAC1B,oCAAoCsB,KAAK,CAACyF,OAAO,EAAE,EACnD,oBAAoB,EACpB3F,QAAQ,EACRE,KACF,CAAC,CAAC;MACJ,CACF,CAAC;IACH,CAAC,CAAC;EACJ;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM0F,qBAAqBA,CACzB9F,MAAuB,EACvB+F,UAAkB,EAClBC,QAAgC,EACe;IAC/C7G,GAAG,CAACW,IAAI,CAAC,4BAA4B,EAAE;MAAEI,QAAQ,EAAEF,MAAM,CAACiB;IAAG,CAAC,CAAC;IAE/D,IAAI,CAAC,IAAI,CAACmB,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;IAEA,IAAI;MACF;MACA,MAAMqD,WAAW,GAAGlI,MAAM,CAAC0E,IAAI,CAACiF,UAAU,EAAE,MAAM,CAAC;MACnD,MAAME,OAAO,GAAG7J,MAAM,CAAC8I,KAAK,CAAC,CAAC,GAAGZ,WAAW,CAACJ,MAAM,CAAC;MACpD+B,OAAO,CAACd,UAAU,CAACnH,yBAAyB,EAAE,CAAC,CAAC;MAChDsG,WAAW,CAACc,IAAI,CAACa,OAAO,EAAE,CAAC,CAAC;;MAE5B;MACA,MAAMtD,aAAa,GAAG,IAAI,CAACuD,sBAAsB,CAAClG,MAAM,CAACiB,EAAE,CAAC;;MAE5D;MACA,MAAM,IAAI,CAACtB,UAAU,CAACmE,mBAAmB,CACvC9D,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBU,sBAAsB,EACtB8I,OACF,CAAC;;MAED;MACA,MAAMlD,MAAM,GAAG,MAAMJ,aAAa;MAElCxD,GAAG,CAACW,IAAI,CAAC,wBAAwB,EAAE;QAAEI,QAAQ,EAAEF,MAAM,CAACiB,EAAE;QAAE8B;MAAO,CAAC,CAAC;MAEnE,OAAOA,MAAM;IACf,CAAC,CAAC,OAAO3C,KAAK,EAAE;MACdjB,GAAG,CAACiB,KAAK,CAAC,2BAA2B,EAAEA,KAAK,EAAW;QAAEF,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;MAC/E,MAAMb,KAAK;IACb;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM+F,oBAAoBA,CACxBnG,MAAuB,EACvB+F,UAAkB,EAClBC,QAA+B,EACgB;IAC/C7G,GAAG,CAACW,IAAI,CAAC,2BAA2B,EAAE;MAAEI,QAAQ,EAAEF,MAAM,CAACiB;IAAG,CAAC,CAAC;IAE9D,IAAI,CAAC,IAAI,CAACmB,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;IAEA,IAAI;MACF;MACA,MAAMqD,WAAW,GAAGlI,MAAM,CAAC0E,IAAI,CAACiF,UAAU,EAAE,MAAM,CAAC;MACnD,MAAME,OAAO,GAAG7J,MAAM,CAAC8I,KAAK,CAAC,CAAC,GAAGZ,WAAW,CAACJ,MAAM,CAAC;MACpD+B,OAAO,CAACd,UAAU,CAAClH,wBAAwB,EAAE,CAAC,CAAC;MAC/CqG,WAAW,CAACc,IAAI,CAACa,OAAO,EAAE,CAAC,CAAC;;MAE5B;MACA,MAAMtD,aAAa,GAAG,IAAI,CAACuD,sBAAsB,CAAClG,MAAM,CAACiB,EAAE,CAAC;;MAE5D;MACA,MAAM,IAAI,CAACtB,UAAU,CAACmE,mBAAmB,CACvC9D,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBU,sBAAsB,EACtB8I,OACF,CAAC;;MAED;MACA,MAAMlD,MAAM,GAAG,MAAMJ,aAAa;MAElCxD,GAAG,CAACW,IAAI,CAAC,uBAAuB,EAAE;QAAEI,QAAQ,EAAEF,MAAM,CAACiB,EAAE;QAAE8B;MAAO,CAAC,CAAC;MAElE,OAAOA,MAAM;IACf,CAAC,CAAC,OAAO3C,KAAK,EAAE;MACdjB,GAAG,CAACiB,KAAK,CAAC,0BAA0B,EAAEA,KAAK,EAAW;QAAEF,QAAQ,EAAEF,MAAM,CAACiB;MAAG,CAAC,CAAC;MAC9E,MAAMb,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMgG,iBAAiBA,CAACpG,MAAuB,EAA2B;IACxE,IAAI,CAAC,IAAI,CAACoC,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;IAEA,MAAMqC,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDvD,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBW,qBACF,CAAC;IAED,OAAO,IAAI,CAACiJ,mBAAmB,CAAC/C,IAAI,CAAC;EACvC;;EAEA;AACF;AACA;EACEgD,yBAAyBA,CACvBtG,MAAuB,EACvByD,QAAyC,EAC7B;IACZ,IAAI,CAAC,IAAI,CAACrB,WAAW,CAACpC,MAAM,CAACiB,EAAE,CAAC,EAAE;MAChC,MAAMpC,WAAW,CAAC2D,YAAY,CAACxC,MAAM,CAACiB,EAAE,CAAC;IAC3C;IAEA,MAAMyC,YAAY,GAAG,IAAI,CAAC/D,UAAU,CAACgE,yBAAyB,CAC5D3D,MAAM,CAACiB,EAAE,EACTxE,oBAAoB,EACpBW,qBAAqB,EACpBkG,IAAI,IAAK;MACR,IAAI;QACF,MAAMiD,KAAK,GAAG,IAAI,CAACF,mBAAmB,CAAC/C,IAAI,CAAC;QAC5CG,QAAQ,CAAC8C,KAAK,CAAC;MACjB,CAAC,CAAC,OAAOnG,KAAK,EAAE;QACdjB,GAAG,CAACiB,KAAK,CAAC,iCAAiC,EAAEA,KAAc,CAAC;MAC9D;IACF,CAAC,EACAA,KAAK,IAAK;MACTjB,GAAG,CAACiB,KAAK,CAAC,oCAAoC,EAAEA,KAAK,CAAC;IACxD,CACF,CAAC;IAED,OAAO,MAAM;MACXsD,YAAY,CAACnD,MAAM,CAAC,CAAC;IACvB,CAAC;EACH;;EAEA;AACF;AACA;EACU2F,sBAAsBA,CAC5BhG,QAAgB,EAC+B;IAC/C,OAAO,IAAIoF,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;QAC/BhC,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBgF,OAAO,CAAC;UAAEvC,OAAO,EAAE,KAAK;UAAE5C,KAAK,EAAE;QAAU,CAAC,CAAC;MAC/C,CAAC,EAAErC,iBAAiB,CAAC;MAErB,MAAM2F,YAAY,GAAG,IAAI,CAAC/D,UAAU,CAACgE,yBAAyB,CAC5DzD,QAAQ,EACRzD,oBAAoB,EACpBW,qBAAqB,EACpBkG,IAAI,IAAK;QACRqC,YAAY,CAACF,OAAO,CAAC;QACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;QAErB,IAAI+C,IAAI,CAACY,MAAM,GAAG,CAAC,EAAE;UACnBqB,OAAO,CAAC;YAAEvC,OAAO,EAAE,KAAK;YAAE5C,KAAK,EAAE;UAAmB,CAAC,CAAC;UACtD;QACF;;QAEA;QACA,MAAMwF,UAAU,GAAGtC,IAAI,CAACY,MAAM,IAAI,CAAC,GAAGZ,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC;QAEvD,QAAQsC,UAAU;UAChB,KAAK1H,wBAAwB;YAC3BqH,OAAO,CAAC;cAAEvC,OAAO,EAAE;YAAK,CAAC,CAAC;YAC1B;UACF,KAAK7E,kCAAkC;YACrCoH,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAoB,CAAC,CAAC;YACvD;UACF,KAAKhC,8BAA8B;YACjCmH,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAgB,CAAC,CAAC;YACnD;UACF,KAAK/B,8BAA8B;YACjCkH,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAgB,CAAC,CAAC;YACnD;UACF,KAAK9B,8BAA8B;YACjCiH,OAAO,CAAC;cAAEvC,OAAO,EAAE,KAAK;cAAE5C,KAAK,EAAE;YAAgB,CAAC,CAAC;YACnD;UACF;YACE;YACA,IAAIkD,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;cACxCiC,OAAO,CAAC;gBAAEvC,OAAO,EAAE;cAAK,CAAC,CAAC;YAC5B,CAAC,MAAM;cACLuC,OAAO,CAAC;gBAAEvC,OAAO,EAAE,KAAK;gBAAE5C,KAAK,EAAE;cAAgB,CAAC,CAAC;YACrD;QACJ;MACF,CAAC,EACAA,KAAK,IAAK;QACTuF,YAAY,CAACF,OAAO,CAAC;QACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBiF,MAAM,CAAC,IAAI3G,WAAW,CACpB,4BAA4BuB,KAAK,CAACyF,OAAO,EAAE,EAC3C,yBAAyB,EACzB3F,QAAQ,EACRE,KACF,CAAC,CAAC;MACJ,CACF,CAAC;IACH,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACUiG,mBAAmBA,CAAC/C,IAAY,EAAkB;IACxD;IACA,MAAMiD,KAAK,GAAGjD,IAAI,CAACY,MAAM,IAAI,CAAC,GAAGZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5C,MAAMkD,SAAS,GAAGlD,IAAI,CAACY,MAAM,IAAI,CAAC,GAAGZ,IAAI,CAACmD,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,MAAMC,MAAM,GAAGpD,IAAI,CAACY,MAAM,IAAI,CAAC,GAAGZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAE7C,OAAO;MACLqD,MAAM,EAAEJ,KAAK,KAAK,IAAI;MACtBK,SAAS,EAAEJ,SAAS,GAAG,CAAC,GAAG,IAAIK,IAAI,CAACL,SAAS,GAAG,IAAI,CAAC,GAAGvC,SAAS;MACjE6C,WAAW,EAAEJ,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG;IAC5C,CAAC;EACH;;EAEA;EACA;EACA;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMK,aAAaA,CACjB7G,QAAgB,EAChB8G,WAA4B,EAC5BC,KAAsB,EACK;IAC3B9H,GAAG,CAACW,IAAI,CAAC,4BAA4B,EAAE;MAAEI,QAAQ;MAAEgH,IAAI,EAAEF,WAAW,CAACE;IAAK,CAAC,CAAC;IAE5E,IAAI;MACF;MACA,MAAMC,WAAW,GAAGvI,qBAAqB,CAACqI,KAAK,CAACG,SAAS,CAAC;MAC1D,MAAM,IAAI,CAACzH,UAAU,CAACmE,mBAAmB,CACvC5D,QAAQ,EACRxD,wBAAwB,EACxBY,eAAe,EACf6J,WACF,CAAC;MAEDhI,GAAG,CAACiC,KAAK,CAAC,sBAAsB,CAAC;;MAEjC;MACA,MAAMiG,UAAU,GAAGrI,gBAAgB,CAACiI,KAAK,CAACG,SAAS,CAAC;;MAEpD;MACA,MAAME,SAAS,GAAGrI,sBAAsB,CACtC+H,WAAW,CAACE,IAAI,EAChBF,WAAW,CAACO,QAAQ,EACpBF,UACF,CAAC;;MAED;MACA,MAAMG,gBAAgB,GAAGtI,0BAA0B,CAACoI,SAAS,CAAC;MAE9DnI,GAAG,CAACiC,KAAK,CAAC,oCAAoC,EAAE;QAC9CqG,UAAU,EAAED,gBAAgB,CAACtD;MAC/B,CAAC,CAAC;;MAEF;MACA,MAAM,IAAI,CAACvE,UAAU,CAACmE,mBAAmB,CACvC5D,QAAQ,EACRxD,wBAAwB,EACxBa,oBAAoB,EACpBiK,gBACF,CAAC;;MAED;MACA,MAAMzE,MAAM,GAAG,MAAM,IAAI,CAAC2E,uBAAuB,CAACxH,QAAQ,CAAC;MAE3D,IAAI6C,MAAM,CAACC,OAAO,EAAE;QAClB7D,GAAG,CAACW,IAAI,CAAC,+BAA+B,EAAE;UAAEI;QAAS,CAAC,CAAC;MACzD,CAAC,MAAM;QACLf,GAAG,CAACsD,IAAI,CAAC,2BAA2B,EAAE;UAAEvC,QAAQ;UAAEE,KAAK,EAAE2C,MAAM,CAAC3C;QAAM,CAAC,CAAC;MAC1E;MAEA,OAAO2C,MAAM;IACf,CAAC,CAAC,OAAO3C,KAAK,EAAE;MACdjB,GAAG,CAACiB,KAAK,CAAC,0BAA0B,EAAEA,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,GAAG6D,SAAS,CAAC;MACjF,MAAM,IAAIpF,WAAW,CACnB,6BAA6BuB,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,CAACyF,OAAO,GAAG,eAAe,EAAE,EACvF,mBAAmB,EACnB3F,QAAQ,EACRE,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,GAAG6D,SACnC,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAM2D,aAAaA,CAAC1H,QAAgB,EAA2B;IAC7Df,GAAG,CAACiC,KAAK,CAAC,qBAAqB,EAAE;MAAElB;IAAS,CAAC,CAAC;IAE9C,IAAI;MACF,MAAMoD,IAAI,GAAG,MAAM,IAAI,CAAC3D,UAAU,CAAC4D,kBAAkB,CACnDrD,QAAQ,EACRxD,wBAAwB,EACxBc,gBACF,CAAC;MAED,MAAMoG,MAAM,GAAGlF,mBAAmB,CAAC4E,IAAI,CAAC;MAExCnE,GAAG,CAACiC,KAAK,CAAC,aAAa,EAAE;QAAElB,QAAQ;QAAE0D,MAAM,EAAEA,MAAM,CAACA,MAAM;QAAEsD,IAAI,EAAEtD,MAAM,CAACsD;MAAK,CAAC,CAAC;MAEhF,OAAOtD,MAAM;IACf,CAAC,CAAC,OAAOxD,KAAK,EAAE;MACdjB,GAAG,CAACiB,KAAK,CAAC,4BAA4B,EAAEA,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,GAAG6D,SAAS,CAAC;MACnF,MAAM,IAAIpF,WAAW,CACnB,+BAA+BuB,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,CAACyF,OAAO,GAAG,eAAe,EAAE,EACzF,mBAAmB,EACnB3F,QAAQ,EACRE,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,GAAG6D,SACnC,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE4D,qBAAqBA,CACnB3H,QAAgB,EAChBuD,QAA0C,EAC5B;IACdtE,GAAG,CAACiC,KAAK,CAAC,4BAA4B,EAAE;MAAElB;IAAS,CAAC,CAAC;IAErD,OAAO,IAAI,CAACP,UAAU,CAACgE,yBAAyB,CAC9CzD,QAAQ,EACRxD,wBAAwB,EACxBc,gBAAgB,EACf8F,IAAI,IAAK;MACR,IAAI;QACF,MAAMM,MAAM,GAAGlF,mBAAmB,CAAC4E,IAAI,CAAC;QACxCG,QAAQ,CAACG,MAAM,CAAC;MAClB,CAAC,CAAC,OAAOxD,KAAK,EAAE;QACdjB,GAAG,CAACiB,KAAK,CAAC,6BAA6B,EAAEA,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,GAAG6D,SAAS,CAAC;MACtF;IACF,CAAC,EACA7D,KAAK,IAAK;MACTjB,GAAG,CAACiB,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;IACpD,CACF,CAAC;EACH;;EAEA;AACF;AACA;EACUsH,uBAAuBA,CAACxH,QAAgB,EAA6B;IAC3E,OAAO,IAAIoF,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;QAC/BhC,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBiF,MAAM,CAAC,IAAI3G,WAAW,CACpB,4BAA4B,EAC5B,qBAAqB,EACrBqB,QACF,CAAC,CAAC;MACJ,CAAC,EAAEnC,iBAAiB,CAAC;MAErB,MAAM2F,YAAY,GAAG,IAAI,CAAC/D,UAAU,CAACgE,yBAAyB,CAC5DzD,QAAQ,EACRxD,wBAAwB,EACxBc,gBAAgB,EACf8F,IAAI,IAAK;QACR,IAAI;UACF;UACA,MAAMP,MAAM,GAAGpE,qBAAqB,CAAC2E,IAAI,CAAC;UAE1CqC,YAAY,CAACF,OAAO,CAAC;UACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;UACrBgF,OAAO,CAACxC,MAAM,CAAC;QACjB,CAAC,CAAC,OAAO3C,KAAK,EAAE;UACd;UACAjB,GAAG,CAACiC,KAAK,CAAC,qCAAqC,EAAE;YAAEhB,KAAK,EAAEA,KAAK,YAAYuH,KAAK,GAAGvH,KAAK,CAACyF,OAAO,GAAGiC,MAAM,CAAC1H,KAAK;UAAE,CAAC,CAAC;QACrH;MACF,CAAC,EACAA,KAAK,IAAK;QACTuF,YAAY,CAACF,OAAO,CAAC;QACrB/B,YAAY,CAACnD,MAAM,CAAC,CAAC;QACrBiF,MAAM,CAAC,IAAI3G,WAAW,CACpB,6BAA6BuB,KAAK,CAACyF,OAAO,EAAE,EAC5C,0BAA0B,EAC1B3F,QAAQ,EACRE,KACF,CAAC,CAAC;MACJ,CACF,CAAC;IACH,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE2H,OAAOA,CAAA,EAAS;IACd5I,GAAG,CAACW,IAAI,CAAC,0BAA0B,CAAC;;IAEpC;IACA,KAAK,MAAMkI,GAAG,IAAI,IAAI,CAACxI,mBAAmB,CAACuB,MAAM,CAAC,CAAC,EAAE;MACnDiH,GAAG,CAACzH,MAAM,CAAC,CAAC;IACd;IACA,IAAI,CAACf,mBAAmB,CAACyI,KAAK,CAAC,CAAC;IAEhC,IAAI,CAAC3I,gBAAgB,CAAC2I,KAAK,CAAC,CAAC;IAC7B,IAAI,CAACC,kBAAkB,CAAC,CAAC;IACzB,IAAI,CAACzI,aAAa,GAAG,KAAK;EAC5B;AACF","ignoreList":[]}
|
|
@@ -216,8 +216,15 @@ export class UploadQueue extends EventEmitter {
|
|
|
216
216
|
abortSignal: abortController.signal
|
|
217
217
|
});
|
|
218
218
|
|
|
219
|
-
// Notify completion
|
|
220
|
-
|
|
219
|
+
// Notify completion (only if completeUrl and uploadToken are provided)
|
|
220
|
+
if (task.completeUrl && task.uploadToken) {
|
|
221
|
+
await this.uploader.notifyCompletion(task.completeUrl, task.recordingId, task.uploadToken);
|
|
222
|
+
} else {
|
|
223
|
+
log.debug('Skipping completion notification (custom completion flow)', {
|
|
224
|
+
taskId: task.id,
|
|
225
|
+
recordingId: task.recordingId
|
|
226
|
+
});
|
|
227
|
+
}
|
|
221
228
|
|
|
222
229
|
// Mark as completed
|
|
223
230
|
await this.storage.updateTaskStatus(task.id, 'completed');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventEmitter","generateTaskId","S3Uploader","shouldContinueRetrying","logger","log","tag","UploadQueue","activeUploads","Set","isPaused","isProcessing","abortControllers","Map","constructor","storage","config","uploader","maxConcurrent","maxRetries","autoStart","processQueue","enqueue","params","task","id","recordingId","deviceId","localPath","uploadUrl","uploadToken","completeUrl","contentType","status","retryCount","createdAt","Date","updatedAt","addUploadTask","emit","info","taskId","cancel","controller","get","abort","delete","removeUploadTask","cancelAll","values","clear","clearAllTasks","pause","resume","retryFailed","failedTasks","getFailedUploads","updateTaskStatus","getPendingTasks","getPendingUploads","getAllTasks","getUploadQueue","size","pendingTasks","nextTask","find","t","has","processTask","add","abortController","AbortController","set","audioData","loadRecordingData","upload","onProgress","progress","abortSignal","signal","notifyCompletion","deleteRecordingData","error","err","incrementRetryCount","message","destroy","removeAllListeners"],"sourceRoot":"../../../src","sources":["upload/UploadQueue.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["EventEmitter","generateTaskId","S3Uploader","shouldContinueRetrying","logger","log","tag","UploadQueue","activeUploads","Set","isPaused","isProcessing","abortControllers","Map","constructor","storage","config","uploader","maxConcurrent","maxRetries","autoStart","processQueue","enqueue","params","task","id","recordingId","deviceId","localPath","uploadUrl","uploadToken","completeUrl","contentType","status","retryCount","createdAt","Date","updatedAt","addUploadTask","emit","info","taskId","cancel","controller","get","abort","delete","removeUploadTask","cancelAll","values","clear","clearAllTasks","pause","resume","retryFailed","failedTasks","getFailedUploads","updateTaskStatus","getPendingTasks","getPendingUploads","getAllTasks","getUploadQueue","size","pendingTasks","nextTask","find","t","has","processTask","add","abortController","AbortController","set","audioData","loadRecordingData","upload","onProgress","progress","abortSignal","signal","notifyCompletion","debug","deleteRecordingData","error","err","incrementRetryCount","message","destroy","removeAllListeners"],"sourceRoot":"../../../src","sources":["upload/UploadQueue.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":[]}
|
|
@@ -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":[]}
|