@cloudflare/realtimekit-react-native 1.2.0-staging.4 → 1.2.0-staging.5
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/RealtimeKitCore.podspec +1 -1
- package/ios/scripts/screenshare_sources.rb +74 -0
- package/lib/commonjs/AudioSampleHandler.js +1 -7
- package/lib/commonjs/AudioSampleHandler.js.map +1 -1
- package/lib/commonjs/BackgroundHandler.js +0 -7
- package/lib/commonjs/BackgroundHandler.js.map +1 -1
- package/lib/commonjs/DeviceInfo.js +0 -4
- package/lib/commonjs/DeviceInfo.js.map +1 -1
- package/lib/commonjs/LocalMediaError.js +0 -4
- package/lib/commonjs/LocalMediaError.js.map +1 -1
- package/lib/commonjs/LocalMediaHandler.js +129 -183
- package/lib/commonjs/LocalMediaHandler.js.map +1 -1
- package/lib/commonjs/LocalMediaInterfaces.js.map +1 -1
- package/lib/commonjs/LocalMediaUtils.js +19 -27
- package/lib/commonjs/LocalMediaUtils.js.map +1 -1
- package/lib/commonjs/NativeAudioManager.js +3 -3
- package/lib/commonjs/NativeAudioManager.js.map +1 -1
- package/lib/commonjs/PermissionHandler.js.map +1 -1
- package/lib/commonjs/ReactContext.js +39 -43
- package/lib/commonjs/ReactContext.js.map +1 -1
- package/lib/commonjs/ReactHooks.js +7 -9
- package/lib/commonjs/ReactHooks.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/utils/crypto.js.map +1 -1
- package/lib/commonjs/utils/version.js +1 -1
- package/lib/commonjs/utils/version.js.map +1 -1
- package/lib/module/AudioSampleHandler.js +3 -7
- package/lib/module/AudioSampleHandler.js.map +1 -1
- package/lib/module/BackgroundHandler.js +2 -7
- package/lib/module/BackgroundHandler.js.map +1 -1
- package/lib/module/DeviceInfo.js +2 -4
- package/lib/module/DeviceInfo.js.map +1 -1
- package/lib/module/LocalMediaError.js +2 -4
- package/lib/module/LocalMediaError.js.map +1 -1
- package/lib/module/LocalMediaHandler.js +129 -183
- package/lib/module/LocalMediaHandler.js.map +1 -1
- package/lib/module/LocalMediaInterfaces.js +1 -1
- package/lib/module/LocalMediaInterfaces.js.map +1 -1
- package/lib/module/LocalMediaUtils.js +21 -27
- package/lib/module/LocalMediaUtils.js.map +1 -1
- package/lib/module/NativeAudioManager.js +5 -3
- package/lib/module/NativeAudioManager.js.map +1 -1
- package/lib/module/PermissionHandler.js +2 -0
- package/lib/module/PermissionHandler.js.map +1 -1
- package/lib/module/ReactContext.js +39 -43
- package/lib/module/ReactContext.js.map +1 -1
- package/lib/module/ReactHooks.js +9 -9
- package/lib/module/ReactHooks.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/crypto.js +2 -0
- package/lib/module/utils/crypto.js.map +1 -1
- package/lib/module/utils/version.js +3 -1
- package/lib/module/utils/version.js.map +1 -1
- package/lib/typescript/AudioSampleHandler.d.ts +1 -0
- package/lib/typescript/AudioSampleHandler.d.ts.map +1 -0
- package/lib/typescript/BackgroundHandler.d.ts +1 -0
- package/lib/typescript/BackgroundHandler.d.ts.map +1 -0
- package/lib/typescript/DeviceInfo.d.ts +1 -0
- package/lib/typescript/DeviceInfo.d.ts.map +1 -0
- package/lib/typescript/LocalMediaError.d.ts +1 -0
- package/lib/typescript/LocalMediaError.d.ts.map +1 -0
- package/lib/typescript/LocalMediaHandler.d.ts +1 -0
- package/lib/typescript/LocalMediaHandler.d.ts.map +1 -0
- package/lib/typescript/LocalMediaInterfaces.d.ts +1 -0
- package/lib/typescript/LocalMediaInterfaces.d.ts.map +1 -0
- package/lib/typescript/LocalMediaUtils.d.ts +1 -0
- package/lib/typescript/LocalMediaUtils.d.ts.map +1 -0
- package/lib/typescript/NativeAudioManager.d.ts +1 -0
- package/lib/typescript/NativeAudioManager.d.ts.map +1 -0
- package/lib/typescript/PermissionHandler.d.ts +1 -0
- package/lib/typescript/PermissionHandler.d.ts.map +1 -0
- package/lib/typescript/ReactContext.d.ts +1 -0
- package/lib/typescript/ReactContext.d.ts.map +1 -0
- package/lib/typescript/ReactHooks.d.ts +1 -0
- package/lib/typescript/ReactHooks.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/utils/crypto.d.ts +1 -0
- package/lib/typescript/utils/crypto.d.ts.map +1 -0
- package/lib/typescript/utils/version.d.ts +2 -1
- package/lib/typescript/utils/version.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_LocalMediaUtils","_interopRequireDefault","_reactNative","_BackgroundHandler","_NativeAudioManager","_PermissionHandler","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","set","has","_classPrivateFieldSet","s","_assertClassBrand","_classPrivateFieldGet","get","n","arguments","length","RTKHelper","BroadcastEventEmitter","NativeModules","broadcastEmitter","exports","NativeEventEmitter","_meetingServiceConfig","enabled","title","text","channelId","channelName","MediaEvents","checkIfAudioTrackIsSilent","track","_localMediaUtils","WeakMap","_appState","_appStateSubscription","_interval","_screenShareState","_deviceRemovalTimeout","_broadcastEmitter","_broadcastStartedSubscription","_broadcastStoppedSubscription","LocalMediaHandler","EventEmitter","constructor","localMediaUtils","nextAppState","prevAppState","match","BackgroundTimer","clearInterval","videoTrack","setTimeout","setInterval","emit","audioEnabled","videoEnabled","screenShareEnabled","permissions","audio","video","screenShareTracks","undefined","currentDevices","speaker","onDeviceChange","changedDevices","Platform","OS","addListener","oniOSBroadcastStart","oniOSBroadcastStop","NativeAudioManager","start","media","conditionallyRestartAudio","Promise","race","resolve","_this$audioTrack","audioTrack","addEventListener","reacquireTrack","shouldReacquireTrack","_this$currentDevices$","removeMediaStreamTrackListeners","setupAudioStream","deviceId","addMediaStreamTrackListeners","conditionallyRestartVideo","_this$videoTrack","setupVideoStream","kind","workaroundWebKitBug1208516","mediaStreamTrack","wasEnabled","rawAudioTrack","rawVideoTrack","isStopped","readyState","isInadvertentlyStopped","isSilentAudio","muted","removeDocumentEventListeners","onUnmute","ev","conditionallyRestart","removeEventListener","forceStopTrack","_this$currentDevices$2","audioDevices","getAudioDevices","audioDeviceId","getOperationalMicDeviceId","getDeviceById","_this$audioTrack2","_this$rawAudioTrack","stop","LocalMediaUtils","getAudioTrack","err","console","warn","setAudioTrack","setDevice","repopulateAvailableDevices","forceUpdateAudioDevices","device","onVisibilityChange","_this$currentDevices$3","videoDevices","getVideoDevices","videoDeviceId","getOperationalWebcamDeviceId","videoConstraints","getVideoConstraints","getVideoTrack","setVideoTrack","_this$videoTrack2","_this$rawVideoTrack","setupSpeaker","_this$currentDevices$5","speakerDevices","getSpeakerDevices","speakerDeviceId","currentDeviceStillAvailable","find","d","_this$currentDevices$4","bluetoothDevice","wiredDevice","speakerDevice","isOperational","reverse","operationalDeviceId","deviceIndex","isSilent","release","setupStreams","permResult","setupPermissions","camera","microphone","val","message","constraints","AppState","_handleAppStateChange","startMeetingService","stopScreenShareTracks","tracks","_this$screenShareTrac","_this$screenShareTrac2","_this$screenShareTrac3","_this$screenShareTrac4","removeScreenShareTracks","_this$screenShareTrac5","onScreenShareEnded","_this$rawAudioTrack2","_this$rawAudioTrack3","_this$rawVideoTrack2","_this$rawVideoTrack3","setScreenShareTracks","_this$screenShareTrac6","disableAudio","toggleAudio","enableAudio","_this$currentDevices$6","ex","enableVideo","toggleVideo","disableVideo","_this$currentDevices$7","_this$rawVideoTrack4","_this$rawVideoTrack5","setAudioDevice","setVideoDevice","_this$rawVideoTrack6","_this$rawVideoTrack7","setSpeakerDevice","route","chooseAudioRoute","getScreenShareTracks","enableScreenShare","_pendingScreenShare","RTKScreensharePickerView","showScreenSharePickerView","reject","timeoutId","time","disableScreenShare","getAllDevices","availableDevices","getCurrentDevices","devices","currentDeviceId","getCurrentAudioDevice","currentDevice","forceDeviceChange","addedDevice","removedDevice","added","removed","selectedDevice","selectedDeviceInfo","clearTimeout","isBluetoothRemoved","handleRemoval","hasDeviceListChanged","hasSelectedDeviceInfo","configure","config","init","_","Version","PermissionsAndroid","request","PERMISSIONS","POST_NOTIFICATIONS","event","args","on","listener","destruct","_classPrivateFieldGet2","stopAudioTrack","stopVideoTrack","remove","_this$rawAudioTrack4","_this$audioTrack3","_this$rawAudioTrack5","_this$audioTrack4","_this$rawVideoTrack8","_this$videoTrack3","_this$rawVideoTrack9","_this$videoTrack4"],"sources":["LocalMediaHandler.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { EventEmitter } from 'events';\nimport LocalMediaUtils from './LocalMediaUtils';\nimport {\n RealtimeKitMediaStreamConstraints,\n MediaPermission,\n} from './LocalMediaInterfaces';\nimport type { MediaStreamTrack } from '@cloudflare/react-native-webrtc';\nimport type { MediaDeviceInfo } from './LocalMediaInterfaces';\nimport {\n AppState,\n AppStateStatus,\n NativeEventEmitter,\n NativeEventSubscription,\n NativeModules,\n PermissionsAndroid,\n Platform,\n} from 'react-native';\nimport BackgroundTimer from './BackgroundHandler';\nimport NativeAudioManager from './NativeAudioManager';\nimport { setupPermissions } from './PermissionHandler';\n\nconst { RTKHelper, BroadcastEventEmitter } = NativeModules;\n\nexport const broadcastEmitter = new NativeEventEmitter(BroadcastEventEmitter);\n\n// ---------------------------------------------------------------------------\n// Meeting foreground service config\n// Set by LocalMediaHandler.configure() before the first init() call.\n// ---------------------------------------------------------------------------\n\nexport interface MeetingServiceConfig {\n /** Whether to start the Android meeting foreground service. Default: true. */\n enabled: boolean;\n /** Notification title. Default: \"In a call\". */\n title?: string;\n /** Notification body text. Default: \"Tap to return to your meeting\". */\n text?: string;\n channelId?: string;\n channelName?: string;\n}\n\nlet _meetingServiceConfig: MeetingServiceConfig = {\n enabled: true,\n title: 'In a call',\n text: 'Tap to return to your meeting',\n channelId: 'rtk_meeting',\n channelName: 'Ongoing Meeting',\n};\n\n// eslint-disable-next-line no-shadow\nexport enum MediaEvents {\n AUDIO_TRACK_CHANGE,\n VIDEO_TRACK_CHANGE,\n SCREENSHARE_TRACK_CHANGE,\n SCREENSHARE_ENDED,\n DEVICE_CHANGE,\n SCREENSHARE_STARTED,\n MEDIA_PERMISSION_UPDATE,\n DEVICE_LIST_UPDATED,\n}\n\nfunction checkIfAudioTrackIsSilent(track: MediaStreamTrack) {\n //TODO\n return !!track;\n}\n\nexport default class LocalMediaHandler extends EventEmitter {\n #localMediaUtils: LocalMediaUtils;\n\n #appState: string;\n\n #appStateSubscription: NativeEventSubscription | undefined;\n\n #interval: number;\n\n #screenShareState: 'STARTED' | 'STOPPED' | 'PENDING' | 'NOT_STARTED';\n\n public audioTrack: MediaStreamTrack;\n\n public rawAudioTrack: MediaStreamTrack;\n\n public videoTrack: MediaStreamTrack;\n\n public rawVideoTrack: MediaStreamTrack;\n\n public screenShareTracks: {\n audio?: MediaStreamTrack;\n video?: MediaStreamTrack;\n };\n\n public audioEnabled: boolean;\n\n public videoEnabled: boolean;\n\n public screenShareEnabled: boolean;\n\n private _pendingScreenShare = false;\n\n public currentDevices: {\n audio?: MediaDeviceInfo;\n video?: MediaDeviceInfo;\n speaker?: MediaDeviceInfo;\n };\n\n public permissions: {\n audio?: MediaPermission;\n video?: MediaPermission;\n };\n\n #deviceRemovalTimeout: NodeJS.Timeout | null = null;\n\n #broadcastEmitter: NativeEventEmitter;\n\n #broadcastStartedSubscription: NativeEventSubscription;\n\n #broadcastStoppedSubscription: NativeEventSubscription;\n\n _handleAppStateChange = (nextAppState: AppStateStatus) => {\n const prevAppState = this.#appState;\n this.#appState = nextAppState;\n\n if (\n prevAppState.match(/inactive|background/) &&\n nextAppState === 'active'\n ) {\n // App returned to foreground — stop the background keep-alive timer\n // and kick the video track to recover the camera feed.\n if (this.#interval !== null) {\n BackgroundTimer.clearInterval(this.#interval);\n this.#interval = null;\n }\n if (this.videoTrack) {\n this.videoTrack.enabled = false;\n setTimeout(() => {\n if (this.videoTrack) {\n this.videoTrack.enabled = true;\n }\n }, 100);\n }\n } else if (nextAppState.match(/inactive|background/)) {\n // App moved to background — start a recurring no-op timer to keep the\n // JS thread alive so WebRTC/native events continue to be processed.\n // Clear any existing interval first to avoid accumulation.\n if (this.#interval !== null) {\n BackgroundTimer.clearInterval(this.#interval);\n }\n this.#interval = BackgroundTimer.setInterval(() => {}, 1000);\n }\n };\n\n public constructor(localMediaUtils: LocalMediaUtils) {\n super();\n this.#localMediaUtils = localMediaUtils;\n this.#broadcastEmitter = broadcastEmitter;\n this.#appState = '';\n this.audioEnabled = true;\n this.videoEnabled = true;\n this.screenShareEnabled = false;\n this.permissions = { audio: 'NOT_REQUESTED', video: 'NOT_REQUESTED' };\n this.screenShareTracks = {\n audio: undefined,\n video: undefined,\n };\n this.currentDevices = {\n audio: undefined,\n video: undefined,\n speaker: undefined,\n };\n // LocalMediaUtils onDeviceChange with callback from native onAudioDeviceChanged events\n this.#localMediaUtils.onDeviceChange(async (changedDevices) => {\n await this.onDeviceChange(changedDevices, false);\n });\n if (Platform.OS === 'ios') {\n this.#broadcastStartedSubscription = this.#broadcastEmitter.addListener(\n 'iOS_BroadcastStarted',\n () => {\n this.oniOSBroadcastStart();\n }\n );\n this.#broadcastStoppedSubscription = this.#broadcastEmitter.addListener(\n 'iOS_BroadcastStopped',\n () => {\n this.oniOSBroadcastStop();\n }\n );\n }\n NativeAudioManager.start({ media: 'video' });\n }\n\n private async conditionallyRestartAudio() {\n if (!this.currentDevices.audio || !this.audioEnabled) {\n return;\n }\n await Promise.race([\n new Promise((resolve) =>\n this.audioTrack?.addEventListener('unmute', (e) => {\n resolve(e);\n })\n ),\n new Promise((resolve) => setTimeout(resolve, 50)),\n ]);\n const reacquireTrack = await this.shouldReacquireTrack('audio');\n\n if (reacquireTrack) {\n this.removeMediaStreamTrackListeners(this.audioTrack);\n await this.setupAudioStream(this.currentDevices.audio?.deviceId);\n this.addMediaStreamTrackListeners(this.audioTrack);\n this.emit('AUDIO_TRACK_CHANGE');\n }\n }\n\n private async conditionallyRestartVideo() {\n if (!this.currentDevices.video || !this.videoEnabled) return;\n\n await Promise.race([\n new Promise((resolve) =>\n this.videoTrack?.addEventListener('unmute', resolve)\n ),\n new Promise((resolve) => setTimeout(resolve, 50)),\n ]);\n\n const reacquireTrack = await this.shouldReacquireTrack('video');\n\n if (reacquireTrack) {\n this.removeMediaStreamTrackListeners(this.videoTrack);\n await this.setupVideoStream(this.currentDevices.video.deviceId);\n this.addMediaStreamTrackListeners(this.videoTrack);\n this.emit('VIDEO_TRACK_CHANGE');\n }\n }\n\n private async shouldReacquireTrack(kind: 'audio' | 'video') {\n const workaroundWebKitBug1208516 = false;\n let mediaStreamTrack: MediaStreamTrack;\n let wasEnabled = false;\n\n if (kind === 'audio') {\n mediaStreamTrack = this.audioTrack;\n wasEnabled = this.audioEnabled;\n } else if (kind === 'video') {\n mediaStreamTrack = this.videoTrack;\n wasEnabled = this.videoEnabled;\n }\n\n if (!mediaStreamTrack) return false;\n if (!this.rawAudioTrack || !this.audioTrack) return true;\n if (!this.rawVideoTrack || !this.videoTrack) return true;\n const isStopped = mediaStreamTrack.readyState === 'ended';\n\n const isInadvertentlyStopped =\n isStopped && wasEnabled && workaroundWebKitBug1208516;\n\n let isSilentAudio = false;\n if (kind === 'audio') {\n isSilentAudio = await checkIfAudioTrackIsSilent(this.audioTrack);\n }\n\n return mediaStreamTrack.muted || isInadvertentlyStopped || isSilentAudio;\n }\n\n public async removeDocumentEventListeners() {}\n\n private onUnmute(ev) {\n // log.info('Track unmuted', ev);\n }\n\n private removeMediaStreamTrackListeners(mediaStreamTrack: MediaStreamTrack) {\n if (!mediaStreamTrack) {\n return undefined;\n }\n\n const conditionallyRestart =\n mediaStreamTrack.kind === 'audio'\n ? this.conditionallyRestartAudio\n : this.conditionallyRestartVideo;\n mediaStreamTrack.removeEventListener('ended', conditionallyRestart);\n mediaStreamTrack.removeEventListener('mute', conditionallyRestart);\n mediaStreamTrack.removeEventListener('unmute', this.onUnmute);\n return mediaStreamTrack;\n }\n\n private addMediaStreamTrackListeners(mediaStreamTrack: MediaStreamTrack) {\n if (!mediaStreamTrack) {\n return null;\n }\n const conditionallyRestart =\n mediaStreamTrack.kind === 'audio'\n ? this.conditionallyRestartAudio\n : this.conditionallyRestartVideo;\n mediaStreamTrack.addEventListener('ended', conditionallyRestart);\n mediaStreamTrack.addEventListener('mute', conditionallyRestart);\n mediaStreamTrack.addEventListener('unmute', this.onUnmute);\n\n return mediaStreamTrack;\n }\n\n public async setupAudioStream(\n deviceId?: string,\n forceStopTrack: boolean = false\n ) {\n const audioDevices = await this.#localMediaUtils.getAudioDevices();\n\n if (!audioDevices.length) {\n return;\n }\n\n let audioDeviceId = deviceId;\n\n if (!audioDeviceId) {\n audioDeviceId = (await this.getOperationalMicDeviceId()).deviceId;\n }\n\n if (this.currentDevices.audio?.deviceId !== audioDeviceId) {\n this.currentDevices.audio = this.#localMediaUtils.getDeviceById(\n audioDeviceId,\n 'audioinput'\n );\n }\n if (forceStopTrack) {\n this.audioTrack?.stop();\n this.rawAudioTrack?.stop();\n }\n try {\n this.rawAudioTrack = await LocalMediaUtils.getAudioTrack();\n } catch (err) {\n console.warn('Failed to acquire audio track: ', err);\n this.rawAudioTrack = undefined;\n }\n this.setAudioTrack(this.rawAudioTrack);\n this.addMediaStreamTrackListeners(this.audioTrack);\n this.emit('AUDIO_TRACK_CHANGE');\n this.setDevice(this.currentDevices.audio);\n\n /**\n * NOTE(roerohan): Firefox does not show device labels until permissions are granted.\n * So, we need to repopulate the devices once permission is granted.\n */\n if (this.audioTrack && this.permissions.audio === 'NOT_REQUESTED') {\n await this.#localMediaUtils.repopulateAvailableDevices();\n }\n\n // Force update audio devices on iOS after audio session is active\n // This ensures route change notifications start firing\n NativeAudioManager.forceUpdateAudioDevices();\n\n this.emit('DEVICE_CHANGE', {\n device: this.currentDevices.audio,\n });\n }\n\n private onVisibilityChange() {\n // pass\n }\n\n public async setupVideoStream(\n deviceId?: string,\n forceStopTrack: boolean = false\n ) {\n const videoDevices = await this.#localMediaUtils.getVideoDevices();\n if (!videoDevices.length) {\n return;\n }\n\n let videoDeviceId = deviceId;\n if (!videoDeviceId) {\n videoDeviceId = (await this.getOperationalWebcamDeviceId()).deviceId;\n }\n\n if (this.currentDevices.video?.deviceId !== videoDeviceId) {\n this.currentDevices.video = this.#localMediaUtils.getDeviceById(\n videoDeviceId,\n 'videoinput'\n );\n }\n\n /**\n * NOTE(roerohan): this.videoEnabled is checked, so that upon device change,\n * the video track is not set when the user has turned off his camera.\n */\n if (this.videoEnabled) {\n const videoConstraints = LocalMediaUtils.getVideoConstraints({\n videoDeviceId,\n });\n if (!this.rawVideoTrack) {\n try {\n this.rawVideoTrack = await LocalMediaUtils.getVideoTrack(\n videoConstraints\n );\n } catch (err) {\n console.warn('Failed to acquire video track: ', err);\n this.rawVideoTrack = undefined;\n }\n }\n this.setVideoTrack(this.rawVideoTrack);\n this.addMediaStreamTrackListeners(this.videoTrack);\n this.emit('VIDEO_TRACK_CHANGE');\n }\n\n if (forceStopTrack) {\n this.videoTrack?.stop();\n this.rawVideoTrack?.stop();\n }\n /**\n * NOTE(roerohan): Firefox does not show device labels until permissions are granted.\n * So, we need to repopulate the devices once permission is granted.\n */\n if (this.videoTrack && this.permissions.video === 'NOT_REQUESTED') {\n await this.#localMediaUtils.repopulateAvailableDevices();\n }\n this.emit('DEVICE_CHANGE', {\n device: this.currentDevices.video,\n });\n }\n\n public async setupSpeaker(deviceId?: string) {\n const speakerDevices = await this.#localMediaUtils.getSpeakerDevices();\n if (!speakerDevices.length) {\n return;\n }\n\n let speakerDeviceId: string;\n\n if (deviceId) {\n // If explicit deviceId provided, use it\n speakerDeviceId = deviceId;\n } else {\n // Prefer current device if it's still available\n const currentDeviceStillAvailable = speakerDevices.find(\n (d) => d.deviceId === this.currentDevices.speaker?.deviceId\n );\n\n if (currentDeviceStillAvailable) {\n // Keep current device if it's still connected\n speakerDeviceId = this.currentDevices.speaker.deviceId;\n } else {\n // Otherwise, prefer Bluetooth > Wired > Speaker > Earpiece\n const bluetoothDevice = speakerDevices.find(\n (d) => d.deviceId === 'bluetooth'\n );\n const wiredDevice = speakerDevices.find((d) => d.deviceId === 'wired');\n const speakerDevice = speakerDevices.find(\n (d) => d.deviceId === 'speaker'\n );\n\n speakerDeviceId =\n bluetoothDevice?.deviceId ??\n wiredDevice?.deviceId ??\n speakerDevice?.deviceId ??\n speakerDevices[0].deviceId;\n }\n }\n\n if (this.currentDevices.speaker?.deviceId !== speakerDeviceId) {\n // Audio Input devices are same as output devices in mobile\n this.currentDevices.audio = this.#localMediaUtils.getDeviceById(\n speakerDeviceId,\n 'audioinput'\n );\n this.currentDevices.speaker = this.currentDevices.audio;\n }\n await this.setDevice(this.currentDevices.audio);\n this.emit('DEVICE_CHANGE', {\n device: this.currentDevices.speaker,\n });\n }\n\n public async getOperationalWebcamDeviceId(): Promise<{\n isOperational: boolean;\n deviceId: string;\n }> {\n let videoDevices = await this.#localMediaUtils.getVideoDevices();\n if (!videoDevices.length) {\n return { isOperational: false, deviceId: null };\n }\n\n /*\n NOTE(ravindra-dyte): Usually external devices come at the bottom,\n By reversing the deviceList and breaking on first operational device\n We are giving preference to external device\n */\n\n videoDevices = [...videoDevices].reverse();\n\n let operationalDeviceId = null;\n for (\n let deviceIndex = 0;\n deviceIndex < videoDevices.length;\n deviceIndex += 1\n ) {\n try {\n operationalDeviceId = videoDevices[deviceIndex].deviceId;\n break;\n } catch (err) {}\n }\n\n return operationalDeviceId\n ? { isOperational: true, deviceId: operationalDeviceId }\n : { isOperational: false, deviceId: videoDevices[0].deviceId };\n }\n\n public async getOperationalMicDeviceId(): Promise<{\n isOperational: boolean;\n deviceId: string;\n }> {\n let audioDevices = await this.#localMediaUtils.getAudioDevices();\n if (!audioDevices.length) {\n return { isOperational: false, deviceId: null };\n }\n /*\n NOTE(ravindra-dyte): Usually external devices come at the bottom,\n By reversing the deviceList and breaking on first operational device\n We are giving preference to external device\n */\n\n audioDevices = [...audioDevices].reverse();\n let operationalDeviceId = null;\n\n for (\n let deviceIndex = 0;\n deviceIndex < audioDevices.length;\n deviceIndex += 1\n ) {\n try {\n const audioTrack = await LocalMediaUtils.getAudioTrack();\n\n const isSilent = await checkIfAudioTrackIsSilent(audioTrack);\n audioTrack.stop();\n audioTrack.release();\n if (!isSilent) {\n operationalDeviceId = audioDevices[deviceIndex].deviceId;\n break;\n }\n } catch (err) {\n console.warn('Failed to acquire audio track: ', err);\n }\n }\n\n return operationalDeviceId\n ? { isOperational: true, deviceId: operationalDeviceId }\n : { isOperational: false, deviceId: audioDevices[0].deviceId };\n }\n\n public async setupStreams({\n audio,\n video,\n }: {\n audio: boolean;\n video: boolean;\n }) {\n try {\n const permResult = await setupPermissions(audio, video);\n this.permissions.video = permResult.camera;\n this.permissions.audio = permResult.microphone;\n } catch (val) {\n this.permissions.video = val.camera ?? false;\n this.permissions.audio = val.microphone ?? false;\n }\n this.emit('MEDIA_PERMISSION_UPDATE', {\n kind: 'audio',\n message: this.permissions.audio,\n });\n\n this.emit('MEDIA_PERMISSION_UPDATE', {\n kind: 'video',\n message: this.permissions.video,\n });\n const constraints: RealtimeKitMediaStreamConstraints = {};\n if (!this.currentDevices) {\n this.currentDevices = {\n audio: undefined,\n video: undefined,\n speaker: undefined,\n };\n }\n if (audio) {\n const audioDevices = await this.#localMediaUtils.getAudioDevices();\n if (audioDevices.length !== 0) {\n const audioDeviceId = (await this.getOperationalMicDeviceId()).deviceId;\n this.currentDevices.audio = this.#localMediaUtils.getDeviceById(\n audioDeviceId,\n 'audioinput'\n );\n constraints.audio = true;\n }\n }\n\n if (video) {\n const videoDevices = await this.#localMediaUtils.getVideoDevices();\n if (videoDevices.length !== 0) {\n const videoDeviceId = (await this.getOperationalWebcamDeviceId())\n .deviceId;\n this.currentDevices.video = this.#localMediaUtils.getDeviceById(\n videoDeviceId,\n 'videoinput'\n );\n\n const videoConstraints = LocalMediaUtils.getVideoConstraints({\n videoDeviceId,\n });\n constraints.video = videoConstraints.video;\n }\n }\n\n if (audio) await this.setupAudioStream();\n if (video) await this.setupVideoStream();\n\n if (this.audioTrack) this.audioEnabled = true;\n else this.audioEnabled = false;\n\n if (this.videoTrack) this.videoEnabled = true;\n else this.videoEnabled = false;\n\n this.screenShareEnabled = false;\n\n // Setting default audio output to speaker\n await this.setupSpeaker();\n\n // Setup Foreground Service after handling permissions\n if (Platform.OS === 'android') {\n this.#appStateSubscription = AppState.addEventListener(\n 'change',\n this._handleAppStateChange\n );\n }\n\n // Start the meeting foreground service so Android keeps the app alive\n // in the background during a call. The app is guaranteed to be in the\n // foreground at this point (user just tapped join / setup screen).\n await this.startMeetingService();\n }\n\n private stopScreenShareTracks(\n tracks: { audio?: boolean; video?: boolean } = {}\n ) {\n const { audio = true, video = true } = tracks;\n if (audio) {\n this.screenShareTracks?.audio?.stop();\n this.screenShareTracks?.audio?.release();\n }\n\n if (video) {\n this.screenShareTracks?.video?.stop();\n this.screenShareTracks?.video?.release();\n }\n\n if (audio && video) {\n this.screenShareEnabled = false;\n }\n }\n\n public removeScreenShareTracks(tracks?: {\n audio?: boolean;\n video?: boolean;\n }) {\n this.screenShareTracks.video?.removeEventListener(\n 'ended',\n this.onScreenShareEnded\n );\n this.stopScreenShareTracks(tracks);\n this.screenShareTracks = {\n audio: undefined,\n video: undefined,\n };\n }\n\n private setAudioTrack(audioTrack: MediaStreamTrack) {\n if (audioTrack === this.audioTrack) {\n return;\n }\n\n if (audioTrack === undefined) {\n this.rawAudioTrack?.stop();\n this.rawAudioTrack?.release();\n this.rawAudioTrack = undefined;\n }\n\n this.audioTrack = audioTrack;\n }\n\n private setVideoTrack(videoTrack: MediaStreamTrack) {\n if (videoTrack === this.videoTrack) {\n return;\n }\n\n if (videoTrack === undefined) {\n this.rawVideoTrack?.stop();\n this.rawVideoTrack?.release();\n this.rawVideoTrack = undefined;\n }\n\n this.videoTrack = videoTrack;\n }\n\n private setScreenShareTracks(tracks: {\n audio?: MediaStreamTrack;\n video?: MediaStreamTrack;\n }) {\n const { audio, video } = tracks;\n if (!audio || !video) {\n this.stopScreenShareTracks({ audio: !!audio, video: !!video });\n }\n\n this.screenShareTracks = tracks;\n this.screenShareTracks.video?.addEventListener(\n 'ended',\n this.onScreenShareEnded\n );\n }\n\n // Arrow function so `this` is stable — the same reference is used in both\n // addEventListener (setScreenShareTracks) and removeEventListener\n // (removeScreenShareTracks). A regular method + .bind(this) creates a new\n // function object on every call, making removeEventListener a no-op.\n private onScreenShareEnded = () => {\n this.emit('SCREENSHARE_ENDED');\n };\n\n public async disableAudio() {\n await this.toggleAudio();\n }\n\n public async enableAudio() {\n await this.toggleAudio();\n }\n\n public async toggleAudio() {\n if (this.permissions.audio !== 'ACCEPTED') {\n try {\n const permResult = await setupPermissions(true, false);\n this.permissions.audio = permResult.microphone;\n } catch (val) {\n this.permissions.audio = val.microphone ?? false;\n }\n }\n this.emit('MEDIA_PERMISSION_UPDATE', {\n kind: 'audio',\n message: this.permissions.audio,\n });\n if (\n this.permissions.audio === 'DENIED' ||\n this.permissions.audio === 'NOT_REQUESTED'\n ) {\n this.audioEnabled = false;\n return;\n }\n if (this.audioEnabled) {\n this.audioEnabled = false;\n\n if (this.audioTrack) {\n this.audioTrack.enabled = this.audioEnabled;\n }\n return;\n }\n try {\n /**\n * NOTE: audioEnabled is set to true BEFORE setupAudioStream so that the\n * AUDIO_TRACK_CHANGE event (emitted inside setupAudioStream) sees the\n * correct enabled state and the Self.ts handler calls shareMic()\n * immediately.\n * If track acquisition fails, audioEnabled is rolled back to false below.\n */\n this.audioEnabled = true;\n if (!this.audioTrack || this.audioTrack.readyState === 'ended') {\n await this.setupAudioStream(this.currentDevices.audio?.deviceId);\n }\n // if we still can't get a track after setting up audio stream\n // do not toggle the audio state\n if (!this.audioTrack) {\n this.audioEnabled = false;\n return;\n }\n } catch (ex) {\n this.audioEnabled = false;\n this.audioTrack = undefined;\n this.rawAudioTrack = undefined;\n }\n if (this.audioTrack) {\n this.audioTrack.enabled = true;\n }\n }\n\n public async enableVideo() {\n await this.toggleVideo();\n }\n\n public async disableVideo() {\n await this.toggleVideo();\n }\n\n public async toggleVideo() {\n if (this.permissions.video !== 'ACCEPTED') {\n try {\n const permResult = await setupPermissions(false, true);\n this.permissions.video = permResult.camera;\n } catch (val) {\n this.permissions.video = val.camera ?? false;\n }\n }\n this.emit('MEDIA_PERMISSION_UPDATE', {\n kind: 'video',\n message: this.permissions.video,\n });\n if (\n this.permissions.video === 'DENIED' ||\n this.permissions.video === 'NOT_REQUESTED'\n ) {\n this.videoEnabled = false;\n return;\n }\n if (this.videoEnabled) {\n this.rawVideoTrack?.stop();\n this.rawVideoTrack?.release();\n this.rawVideoTrack = undefined;\n this.videoEnabled = false;\n return;\n }\n /**\n * NOTE(roerohan): The videoEnabled flag is used inside the setupVideoStream method\n * hence it must be set to true first.\n */\n this.videoEnabled = true;\n await this.setupVideoStream(this.currentDevices.video?.deviceId);\n }\n\n public async setAudioDevice(device: MediaDeviceInfo) {\n await this.setupAudioStream(device.deviceId);\n }\n\n public async setVideoDevice(device: MediaDeviceInfo) {\n if (this.videoEnabled) {\n this.rawVideoTrack?.stop();\n this.rawVideoTrack?.release();\n this.rawVideoTrack = undefined;\n }\n await this.setupVideoStream(device.deviceId);\n }\n\n public async setSpeakerDevice(device?: MediaDeviceInfo) {\n await this.setupSpeaker(device.deviceId);\n }\n\n public async setDevice(route: MediaDeviceInfo) {\n await this.#localMediaUtils.chooseAudioRoute(route.deviceId);\n }\n\n private async oniOSBroadcastStart() {\n this.setScreenShareTracks(await LocalMediaUtils.getScreenShareTracks());\n this.screenShareEnabled = true;\n this.#screenShareState = 'STARTED';\n }\n\n private async oniOSBroadcastStop() {\n this.#screenShareState = 'STOPPED';\n if (this.screenShareEnabled) {\n this.removeScreenShareTracks();\n return;\n }\n }\n\n public async enableScreenShare() {\n // Guard: do nothing if already sharing or a consent dialog is in flight.\n if (this.screenShareEnabled || this._pendingScreenShare) return;\n\n if (Platform.OS === 'android') {\n this._pendingScreenShare = true;\n try {\n // getScreenShareTracks() manages the full flow:\n // consent dialog → start MediaProjectionService → create MediaStream\n this.setScreenShareTracks(await LocalMediaUtils.getScreenShareTracks());\n this.screenShareEnabled = true;\n } catch (e) {\n console.warn('Failed to start screenshare', e);\n this.screenShareEnabled = false;\n } finally {\n this._pendingScreenShare = false;\n }\n }\n\n if (Platform.OS === 'ios') {\n this.#screenShareState = 'PENDING';\n NativeModules.RTKScreensharePickerView.showScreenSharePickerView();\n await new Promise<void>((resolve, reject) => {\n let timeoutId: NodeJS.Timeout;\n let time: number = 0;\n timeoutId = setInterval(() => {\n if (this.#screenShareState === 'STARTED') {\n clearInterval(timeoutId);\n resolve();\n }\n time = time + 100;\n if (time > 20000) {\n clearInterval(timeoutId);\n reject('Timeout exceeded for enableScreenShare()');\n }\n }, 100);\n });\n }\n }\n\n public async disableScreenShare() {\n // Guard: nothing to stop if not sharing and no consent dialog is pending.\n if (!this.screenShareEnabled && !this._pendingScreenShare) return;\n\n if (Platform.OS !== 'ios') {\n this.removeScreenShareTracks();\n return;\n }\n\n // iOS: trigger the broadcast picker to stop the extension.\n NativeModules.RTKScreensharePickerView.showScreenSharePickerView();\n this.#screenShareState = 'PENDING';\n await new Promise<void>((resolve, reject) => {\n let timeoutId: NodeJS.Timeout;\n let time: number = 0;\n timeoutId = setInterval(() => {\n if (this.#screenShareState === 'STOPPED') {\n clearInterval(timeoutId);\n resolve();\n }\n time = time + 100;\n if (time > 20000) {\n clearInterval(timeoutId);\n reject('Timeout exceeded for disableScreenShare()');\n }\n }, 100);\n });\n }\n\n public getAllDevices() {\n return this.#localMediaUtils.availableDevices;\n }\n\n public getCurrentDevices() {\n return this.currentDevices;\n }\n\n public getDeviceById(\n deviceId: string,\n kind: 'audioinput' | 'audiooutput' | 'videoinput'\n ) {\n return this.#localMediaUtils.getDeviceById(deviceId, kind);\n }\n\n public async getAudioDevices() {\n const devices = await this.#localMediaUtils.getAudioDevices();\n\n // Update current audio device from native layer\n try {\n const currentDeviceId = await NativeAudioManager.getCurrentAudioDevice();\n if (currentDeviceId) {\n const currentDevice = this.#localMediaUtils.getDeviceById(\n currentDeviceId,\n 'audioinput'\n );\n if (currentDevice) {\n this.currentDevices.audio = currentDevice;\n }\n }\n } catch (e) {\n console.warn('Failed to update current audio device:', e);\n }\n\n return devices;\n }\n\n public async getVideoDevices() {\n return await this.#localMediaUtils.getVideoDevices();\n }\n\n public async getSpeakerDevices() {\n const devices = await this.#localMediaUtils.getSpeakerDevices();\n\n // Update current speaker device from native layer\n try {\n const currentDeviceId = await NativeAudioManager.getCurrentAudioDevice();\n if (currentDeviceId) {\n const currentDevice = this.#localMediaUtils.getDeviceById(\n currentDeviceId,\n 'audioinput'\n );\n if (currentDevice) {\n this.currentDevices.speaker = currentDevice;\n this.currentDevices.audio = currentDevice;\n }\n }\n } catch (e) {\n console.warn('Failed to update current speaker device:', e);\n }\n\n return devices;\n }\n\n public async onDeviceChange(\n changedDevices: {\n added: MediaDeviceInfo[];\n removed: MediaDeviceInfo[];\n selectedDevice?: string;\n },\n forceDeviceChange: boolean\n ) {\n let addedDevice: MediaDeviceInfo;\n let removedDevice: MediaDeviceInfo;\n if (changedDevices.added.length) [addedDevice] = changedDevices.added;\n\n if (changedDevices.removed.length) [removedDevice] = changedDevices.removed;\n\n // Update currentDevices.speaker when platform reports selected device change\n if (changedDevices.selectedDevice) {\n const selectedDeviceInfo = this.#localMediaUtils.getDeviceById(\n changedDevices.selectedDevice,\n 'audioinput'\n );\n\n if (selectedDeviceInfo) {\n this.currentDevices.speaker = selectedDeviceInfo;\n this.currentDevices.audio = selectedDeviceInfo;\n }\n }\n\n /**\n * NOTE(roerohan): forceStopTrack is set required to be set to true for firefox.\n * https://stackoverflow.com/questions/59068146/navigator-mediadevices-getusermedia-api-rejecting-with-error-notreadableerror\n * forceStopTrack is the second argument of setupAudioStream and setupVideoStream.\n */\n if (addedDevice) {\n // Clear any pending device removal timeout when a device is added\n if (this.#deviceRemovalTimeout) {\n clearTimeout(this.#deviceRemovalTimeout);\n this.#deviceRemovalTimeout = null;\n }\n\n if (addedDevice.kind === 'audioinput') {\n if (\n this.permissions.audio === 'DENIED' ||\n this.permissions.audio === 'NOT_REQUESTED'\n ) {\n await this.setupSpeaker(addedDevice.deviceId);\n } else {\n await this.setupAudioStream(addedDevice.deviceId);\n }\n } else if (addedDevice.kind === 'videoinput') {\n await this.setupVideoStream(addedDevice.deviceId);\n } else if (addedDevice.kind === 'audiooutput') {\n await this.setupSpeaker(addedDevice.deviceId);\n }\n this.emit('AUDIO_TRACK_CHANGE');\n }\n\n // Only handle device removal if no device was added\n // This prevents switching away from newly connected devices (e.g., Bluetooth)\n if (removedDevice && !addedDevice) {\n // For Bluetooth devices, add a delay to handle rapid reconnections\n // (e.g., when AirPods are put in ears, they briefly disconnect then reconnect)\n const isBluetoothRemoved = removedDevice.deviceId === 'bluetooth';\n\n const handleRemoval = async () => {\n if (removedDevice.kind === 'audioinput') {\n if (\n this.permissions.audio === 'DENIED' ||\n this.permissions.audio === 'NOT_REQUESTED'\n ) {\n await this.setupSpeaker();\n } else {\n await this.setupAudioStream();\n }\n } else if (removedDevice.kind === 'videoinput') {\n await this.setupVideoStream();\n } else if (removedDevice.kind === 'audiooutput') {\n await this.setupSpeaker();\n }\n this.emit('AUDIO_TRACK_CHANGE');\n };\n\n if (isBluetoothRemoved) {\n // Wait 500ms before switching away from Bluetooth to allow for reconnection\n this.#deviceRemovalTimeout = setTimeout(handleRemoval, 500);\n } else {\n // For other devices, handle removal immediately\n await handleRemoval();\n }\n }\n\n // Emit DEVICE_LIST_UPDATED if:\n // 1. Devices were added or removed, OR\n // 2. Selected device changed (platform routed to a different device)\n const hasDeviceListChanged =\n changedDevices.added.length || changedDevices.removed.length;\n const hasSelectedDeviceInfo = changedDevices.selectedDevice.length > 0;\n\n if (hasDeviceListChanged || hasSelectedDeviceInfo) {\n this.emit('DEVICE_LIST_UPDATED', changedDevices);\n }\n }\n\n /**\n * Override the meeting foreground service config before the first meeting\n * session. Called by useRealtimeKitClient when keepAliveService is set.\n */\n public static configure(config: Partial<MeetingServiceConfig>) {\n _meetingServiceConfig = { ..._meetingServiceConfig, ...config };\n }\n\n public static async init(_) {\n const localMediaUtils = await LocalMediaUtils.init();\n return new LocalMediaHandler(localMediaUtils);\n }\n\n private async startMeetingService() {\n if (Platform.OS !== 'android') return;\n if (!_meetingServiceConfig.enabled) return;\n\n // Android 13+ (API 33): request POST_NOTIFICATIONS so the foreground-service\n // notification appears in the shade.\n if (Number(Platform.Version) >= 33) {\n try {\n await PermissionsAndroid.request(\n PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS\n );\n } catch (e) {\n console.warn('Failed to request POST_NOTIFICATIONS permission', e);\n }\n }\n\n try {\n await RTKHelper.startMeetingService({\n title: _meetingServiceConfig.title,\n text: _meetingServiceConfig.text,\n channelId: _meetingServiceConfig.channelId,\n channelName: _meetingServiceConfig.channelName,\n });\n } catch (e) {\n console.warn('Failed to start KeepAliveService', e);\n }\n }\n\n public emit(event: keyof typeof MediaEvents, ...args: any[]) {\n return super.emit(event, ...args);\n }\n\n public on(\n event: keyof typeof MediaEvents,\n listener: (...args: any[]) => void\n ) {\n return super.on(event, listener);\n }\n\n public destruct() {\n this.stopAudioTrack();\n this.stopVideoTrack();\n this.stopScreenShareTracks();\n if (Platform.OS === 'android') this.#appStateSubscription?.remove();\n }\n\n private stopAudioTrack() {\n this.rawAudioTrack?.stop();\n this.audioTrack?.stop();\n this.rawAudioTrack?.release();\n this.audioTrack?.release();\n this.audioEnabled = false;\n this.audioTrack = undefined;\n this.rawAudioTrack = undefined;\n }\n\n private stopVideoTrack() {\n this.rawVideoTrack?.stop();\n this.videoTrack?.stop();\n this.rawVideoTrack?.release();\n this.videoTrack?.release();\n this.videoTrack = undefined;\n this.rawVideoTrack = undefined;\n }\n}\n\nexport interface RNLocalMediaHandler {\n new (): LocalMediaHandler;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_events","require","_LocalMediaUtils","_interopRequireDefault","_reactNative","_BackgroundHandler","_NativeAudioManager","_PermissionHandler","e","__esModule","default","RTKHelper","BroadcastEventEmitter","NativeModules","broadcastEmitter","exports","NativeEventEmitter","_meetingServiceConfig","enabled","title","text","channelId","channelName","MediaEvents","checkIfAudioTrackIsSilent","track","LocalMediaHandler","EventEmitter","localMediaUtils","appState","appStateSubscription","interval","screenShareState","_pendingScreenShare","deviceRemovalTimeout","broadcastStartedSubscription","broadcastStoppedSubscription","_handleAppStateChange","nextAppState","prevAppState","match","BackgroundTimer","clearInterval","videoTrack","setTimeout","setInterval","constructor","audioEnabled","videoEnabled","screenShareEnabled","permissions","audio","video","screenShareTracks","undefined","currentDevices","speaker","onDeviceChange","changedDevices","Platform","OS","addListener","oniOSBroadcastStart","oniOSBroadcastStop","NativeAudioManager","start","media","conditionallyRestartAudio","Promise","race","resolve","audioTrack","addEventListener","reacquireTrack","shouldReacquireTrack","removeMediaStreamTrackListeners","setupAudioStream","deviceId","addMediaStreamTrackListeners","emit","conditionallyRestartVideo","setupVideoStream","kind","workaroundWebKitBug1208516","mediaStreamTrack","wasEnabled","rawAudioTrack","rawVideoTrack","isStopped","readyState","isInadvertentlyStopped","isSilentAudio","muted","removeDocumentEventListeners","onUnmute","ev","conditionallyRestart","removeEventListener","forceStopTrack","audioDevices","getAudioDevices","length","audioDeviceId","getOperationalMicDeviceId","getDeviceById","stop","LocalMediaUtils","getAudioTrack","err","console","warn","setAudioTrack","setDevice","repopulateAvailableDevices","forceUpdateAudioDevices","device","onVisibilityChange","videoDevices","getVideoDevices","videoDeviceId","getOperationalWebcamDeviceId","videoConstraints","getVideoConstraints","getVideoTrack","setVideoTrack","setupSpeaker","speakerDevices","getSpeakerDevices","speakerDeviceId","currentDeviceStillAvailable","find","d","bluetoothDevice","wiredDevice","speakerDevice","isOperational","reverse","operationalDeviceId","deviceIndex","isSilent","release","setupStreams","permResult","setupPermissions","camera","microphone","val","message","constraints","AppState","startMeetingService","stopScreenShareTracks","tracks","removeScreenShareTracks","onScreenShareEnded","setScreenShareTracks","disableAudio","toggleAudio","enableAudio","ex","enableVideo","toggleVideo","disableVideo","setAudioDevice","setVideoDevice","setSpeakerDevice","route","chooseAudioRoute","getScreenShareTracks","enableScreenShare","RTKScreensharePickerView","showScreenSharePickerView","reject","timeoutId","time","disableScreenShare","getAllDevices","availableDevices","getCurrentDevices","devices","currentDeviceId","getCurrentAudioDevice","currentDevice","forceDeviceChange","addedDevice","removedDevice","added","removed","selectedDevice","selectedDeviceInfo","clearTimeout","isBluetoothRemoved","handleRemoval","hasDeviceListChanged","hasSelectedDeviceInfo","configure","config","init","_","Number","Version","PermissionsAndroid","request","PERMISSIONS","POST_NOTIFICATIONS","event","args","on","listener","destruct","stopAudioTrack","stopVideoTrack","remove"],"sourceRoot":"../../src","sources":["LocalMediaHandler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["LocalMediaInterfaces.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -9,11 +9,6 @@ var _reactNativeWebrtc = require("@cloudflare/react-native-webrtc");
|
|
|
9
9
|
var _LocalMediaError = _interopRequireDefault(require("./LocalMediaError"));
|
|
10
10
|
var _NativeAudioManager = _interopRequireDefault(require("./NativeAudioManager"));
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
13
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
14
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
15
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
16
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
17
12
|
_reactNative.LogBox.ignoreLogs(['new NativeEventEmitter']);
|
|
18
13
|
const VIDEO_CONSTRAINTS = exports.VIDEO_CONSTRAINTS = {
|
|
19
14
|
qvga: {
|
|
@@ -55,16 +50,13 @@ const deviceChangeListener = exports.deviceChangeListener = new _reactNative.Nat
|
|
|
55
50
|
* To initialize an instance of this class, use the
|
|
56
51
|
* `.init()` static method.
|
|
57
52
|
*/
|
|
58
|
-
var _availableDevices = /*#__PURE__*/new WeakMap();
|
|
59
|
-
var _nativeEventEmitter = /*#__PURE__*/new WeakMap();
|
|
60
|
-
var _previouslySelectedDevice = /*#__PURE__*/new WeakMap();
|
|
61
53
|
class LocalMediaUtils {
|
|
54
|
+
#availableDevices;
|
|
55
|
+
#nativeEventEmitter;
|
|
56
|
+
#previouslySelectedDevice = null;
|
|
62
57
|
constructor(availableDevices) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
_classPrivateFieldInitSpec(this, _previouslySelectedDevice, null);
|
|
66
|
-
_classPrivateFieldSet(_availableDevices, this, availableDevices);
|
|
67
|
-
_classPrivateFieldSet(_nativeEventEmitter, this, deviceChangeListener);
|
|
58
|
+
this.#availableDevices = availableDevices;
|
|
59
|
+
this.#nativeEventEmitter = deviceChangeListener;
|
|
68
60
|
}
|
|
69
61
|
static async init() {
|
|
70
62
|
const availableVideoDevices = await LocalMediaUtils.enumerateVideoDevices();
|
|
@@ -72,7 +64,7 @@ class LocalMediaUtils {
|
|
|
72
64
|
return new LocalMediaUtils(availableAudioDevices.concat(availableVideoDevices));
|
|
73
65
|
}
|
|
74
66
|
async destruct() {
|
|
75
|
-
|
|
67
|
+
this.#nativeEventEmitter.removeAllListeners('onAudioDeviceChanged');
|
|
76
68
|
}
|
|
77
69
|
static isDeviceListAvailable() {
|
|
78
70
|
return true;
|
|
@@ -88,7 +80,7 @@ class LocalMediaUtils {
|
|
|
88
80
|
}
|
|
89
81
|
return false;
|
|
90
82
|
});
|
|
91
|
-
} catch
|
|
83
|
+
} catch {
|
|
92
84
|
return [];
|
|
93
85
|
}
|
|
94
86
|
}
|
|
@@ -218,17 +210,17 @@ class LocalMediaUtils {
|
|
|
218
210
|
|
|
219
211
|
// Extract selected device from event
|
|
220
212
|
const selectedDevice = deviceData.selectedAudioDevice;
|
|
221
|
-
const hasSelectedDeviceChanged = selectedDevice &&
|
|
213
|
+
const hasSelectedDeviceChanged = selectedDevice && this.#previouslySelectedDevice !== null && selectedDevice !== this.#previouslySelectedDevice;
|
|
222
214
|
|
|
223
215
|
// On first event, we need to initialize previouslySelectedDevice and fire callback
|
|
224
|
-
const isFirstDeviceEvent = selectedDevice &&
|
|
216
|
+
const isFirstDeviceEvent = selectedDevice && this.#previouslySelectedDevice === null;
|
|
225
217
|
|
|
226
218
|
// Update previouslySelectedDevice IMMEDIATELY after detection to avoid race conditions
|
|
227
219
|
// This must happen BEFORE any async operations
|
|
228
220
|
if (selectedDevice) {
|
|
229
|
-
|
|
221
|
+
this.#previouslySelectedDevice = selectedDevice;
|
|
230
222
|
}
|
|
231
|
-
const previouslyAvailableDevices =
|
|
223
|
+
const previouslyAvailableDevices = this.#availableDevices.filter(device => device.kind === 'audioinput' || device.kind === 'audiooutput');
|
|
232
224
|
const previouslyAvailableDeviceIds = previouslyAvailableDevices.map(device => checkDeviceId(device.deviceId));
|
|
233
225
|
|
|
234
226
|
// Parse available device list from event to detect list changes
|
|
@@ -237,7 +229,7 @@ class LocalMediaUtils {
|
|
|
237
229
|
if (typeof deviceData.availableAudioDeviceList === 'string') {
|
|
238
230
|
try {
|
|
239
231
|
availableDeviceListFromEvent = JSON.parse(deviceData.availableAudioDeviceList);
|
|
240
|
-
} catch
|
|
232
|
+
} catch {
|
|
241
233
|
// If parsing fails, fall back to empty array
|
|
242
234
|
availableDeviceListFromEvent = [];
|
|
243
235
|
}
|
|
@@ -279,27 +271,27 @@ class LocalMediaUtils {
|
|
|
279
271
|
});
|
|
280
272
|
}
|
|
281
273
|
};
|
|
282
|
-
if (
|
|
283
|
-
|
|
274
|
+
if (this.#nativeEventEmitter.listenerCount('onAudioDeviceChanged') === 0) {
|
|
275
|
+
this.#nativeEventEmitter.addListener('onAudioDeviceChanged', onChange);
|
|
284
276
|
}
|
|
285
277
|
}
|
|
286
278
|
async repopulateAvailableDevices() {
|
|
287
279
|
const videoDevices = await LocalMediaUtils.enumerateVideoDevices();
|
|
288
280
|
const audioDevices = await LocalMediaUtils.enumerateAudioDevices();
|
|
289
|
-
|
|
281
|
+
this.#availableDevices = videoDevices.concat(audioDevices);
|
|
290
282
|
}
|
|
291
283
|
async chooseAudioRoute(route) {
|
|
292
284
|
return await _NativeAudioManager.default.chooseAudioRoute(route);
|
|
293
285
|
}
|
|
294
286
|
get availableDevices() {
|
|
295
|
-
return
|
|
287
|
+
return this.#availableDevices;
|
|
296
288
|
}
|
|
297
289
|
getAvailableDevicesByKind(kind) {
|
|
298
|
-
return
|
|
290
|
+
return this.#availableDevices.filter(device => device.kind === kind);
|
|
299
291
|
}
|
|
300
292
|
getDeviceById(deviceId, kind) {
|
|
301
293
|
const normalizedDeviceId = deviceId.toLowerCase();
|
|
302
|
-
return
|
|
294
|
+
return this.#availableDevices.find(device => {
|
|
303
295
|
if (device.kind !== kind) return false;
|
|
304
296
|
const deviceIdLower = device.deviceId.toLowerCase();
|
|
305
297
|
|
|
@@ -341,7 +333,7 @@ class LocalMediaUtils {
|
|
|
341
333
|
*/
|
|
342
334
|
async getSpeakerDevices() {
|
|
343
335
|
await this.repopulateAvailableDevices();
|
|
344
|
-
const speakerDevices =
|
|
336
|
+
const speakerDevices = this.#availableDevices;
|
|
345
337
|
// In Mobile, speaker devices are the same as audio input devices
|
|
346
338
|
return speakerDevices.filter(device => device.kind === 'audioinput').map(device => ({
|
|
347
339
|
...device,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeWebrtc","_LocalMediaError","_interopRequireDefault","_NativeAudioManager","e","__esModule","default","_classPrivateFieldInitSpec","t","a","_checkPrivateRedeclaration","set","has","TypeError","_classPrivateFieldGet","s","get","_assertClassBrand","_classPrivateFieldSet","r","n","arguments","length","LogBox","ignoreLogs","VIDEO_CONSTRAINTS","exports","qvga","width","ideal","height","vga","hd","hd_cropped","deviceChangeListener","NativeEventEmitter","NativeModules","InCallManager","_availableDevices","WeakMap","_nativeEventEmitter","_previouslySelectedDevice","LocalMediaUtils","constructor","availableDevices","init","availableVideoDevices","enumerateVideoDevices","availableAudioDevices","enumerateAudioDevices","concat","destruct","removeAllListeners","isDeviceListAvailable","deviceMem","videoDevices","mediaDevices","enumerateDevices","filter","d","kind","facing","error","audioDevices","earpiece","connected","haveMic","speaker","bluetooth","wired","isWiredHeadphonesConnected","NativeAudioManager","getIsWiredHeadsetPluggedIn","isBluetoothHeadsetConnected","resp","Object","keys","map","audioDevice","audioDeviceProps","deviceId","label","getVideoConstraints","options","constraints","videoDeviceId","videoTrackConstraints","facingMode","frameRate","max","video","getUserMediaWithTimeout","timeout","getUserMedia","Promise","race","_resolve","reject","setTimeout","LocalMediaError","err","getAudioTrack","mediaStream","audio","getAudioTracks","getVideoTrack","getVideoTracks","getScreenShareTracks","stream","getDisplayMedia","getAudioAndVideoTrack","audioTrack","videoTrack","onDeviceChange","callback","onChange","deviceData","checkDeviceId","_id","toLowerCase","includes","selectedDevice","selectedAudioDevice","hasSelectedDeviceChanged","isFirstDeviceEvent","previouslyAvailableDevices","device","previouslyAvailableDeviceIds","availableDeviceListFromEvent","len","availableAudioDeviceList","JSON","parse","currentlyAvailableDevices","currentlyAvailableDeviceIds","changedDevices","added","removed","hasAvailableListChanged","every","repopulateAvailableDevices","then","shouldFireCallback","listenerCount","addListener","chooseAudioRoute","route","getAvailableDevicesByKind","getDeviceById","normalizedDeviceId","find","deviceIdLower","getAudioDevices","getVideoDevices","getSpeakerDevices","speakerDevices"],"sources":["LocalMediaUtils.ts"],"sourcesContent":["import { NativeEventEmitter, NativeModules, LogBox } from 'react-native';\nimport { mediaDevices, MediaStream } from '@cloudflare/react-native-webrtc';\nimport LocalMediaError from './LocalMediaError';\nimport {\n ConstrainDouble,\n RealtimeKitMediaStreamConstraints,\n RealtimeKitMediaTrackConstraints,\n MediaDeviceInfo,\n} from './LocalMediaInterfaces';\nimport NativeAudioManager from './NativeAudioManager';\nLogBox.ignoreLogs(['new NativeEventEmitter']);\nexport interface LocalAudioOptions {\n // Disables all audio processing\n disableAP?: boolean;\n\n // Disables Acoustic Echo Cancellation\n disableAEC?: boolean;\n\n // Disables Noise Suppression\n disableNS?: boolean;\n\n // Disables Automatic Gain Control\n disableAGC?: boolean;\n\n // Disables Highpass Filter\n disableHPF?: boolean;\n}\n\nexport const VIDEO_CONSTRAINTS = {\n qvga: { width: { ideal: 320 }, height: { ideal: 240 } },\n vga: { width: { ideal: 640 }, height: { ideal: 480 } },\n hd: { width: { ideal: 1280 }, height: { ideal: 720 } },\n hd_cropped: { width: { ideal: 900 }, height: { ideal: 720 } },\n};\n\nexport const deviceChangeListener = new NativeEventEmitter(\n NativeModules.InCallManager\n);\n\n/**\n * To initialize an instance of this class, use the\n * `.init()` static method.\n */\nexport default class LocalMediaUtils {\n #availableDevices: MediaDeviceInfo[];\n\n #nativeEventEmitter: NativeEventEmitter;\n\n #previouslySelectedDevice: string | null = null;\n\n private constructor(availableDevices: MediaDeviceInfo[]) {\n this.#availableDevices = availableDevices;\n this.#nativeEventEmitter = deviceChangeListener;\n }\n\n public static async init() {\n const availableVideoDevices = await LocalMediaUtils.enumerateVideoDevices();\n const availableAudioDevices = await LocalMediaUtils.enumerateAudioDevices();\n return new LocalMediaUtils(\n availableAudioDevices.concat(availableVideoDevices)\n );\n }\n\n public async destruct() {\n this.#nativeEventEmitter.removeAllListeners('onAudioDeviceChanged');\n }\n\n public static isDeviceListAvailable() {\n return true;\n }\n\n private static async enumerateVideoDevices(): Promise<MediaDeviceInfo[]> {\n try {\n const deviceMem = {};\n const videoDevices =\n (await mediaDevices.enumerateDevices()) as MediaDeviceInfo[];\n return videoDevices.filter((d) => {\n if (d.kind === 'videoinput' && !deviceMem[d.facing]) {\n deviceMem[d.facing] = true;\n return d;\n }\n return false;\n });\n } catch (error) {\n return [];\n }\n }\n\n private static async enumerateAudioDevices(): Promise<MediaDeviceInfo[]> {\n let audioDevices = {\n earpiece: {\n connected: true,\n haveMic: true,\n },\n speaker: {\n connected: true,\n haveMic: true,\n },\n bluetooth: {\n connected: false,\n haveMic: false,\n },\n wired: {\n connected: false,\n haveMic: false,\n },\n };\n const isWiredHeadphonesConnected =\n await NativeAudioManager.getIsWiredHeadsetPluggedIn();\n audioDevices.wired = isWiredHeadphonesConnected\n ? {\n connected: true,\n haveMic: true,\n }\n : {\n connected: false,\n haveMic: false,\n };\n const isBluetoothHeadsetConnected =\n await NativeAudioManager.isBluetoothHeadsetConnected();\n audioDevices.bluetooth = isBluetoothHeadsetConnected\n ? {\n connected: true,\n haveMic: true,\n }\n : {\n connected: false,\n haveMic: false,\n };\n const resp = Object.keys(audioDevices)\n .map((audioDevice) => {\n const audioDeviceProps = audioDevices[audioDevice];\n return {\n ...audioDeviceProps,\n deviceId: audioDevice,\n label: audioDevice,\n kind: 'audioinput',\n };\n })\n .filter((audioDevice) => audioDevice.connected);\n return resp as MediaDeviceInfo[];\n }\n\n public static getVideoConstraints(options?: {\n videoDeviceId?: string;\n videoTrackConstraints?: boolean | RealtimeKitMediaTrackConstraints;\n facingMode?: string;\n frameRate?: ConstrainDouble;\n }) {\n const constraints: RealtimeKitMediaStreamConstraints = {};\n const {\n videoDeviceId,\n videoTrackConstraints,\n facingMode = 'user',\n frameRate = { ideal: 24, max: 30 },\n } = options;\n\n constraints.video = videoTrackConstraints || VIDEO_CONSTRAINTS.vga;\n if (typeof constraints.video === 'boolean') {\n return constraints;\n }\n\n constraints.video.deviceId = videoDeviceId;\n constraints.video.facingMode = facingMode;\n constraints.video.frameRate = frameRate;\n return constraints;\n }\n\n private static async getUserMediaWithTimeout(\n constraints: RealtimeKitMediaStreamConstraints = {},\n timeout: number = 0\n ) {\n try {\n if (!timeout) {\n return await mediaDevices.getUserMedia(constraints);\n }\n\n // NOTE(roerohan): The await is required to catch errors (if any).\n return Promise.race<Promise<unknown>>([\n mediaDevices.getUserMedia(constraints),\n\n new Promise<MediaStream>((_resolve, reject) => {\n setTimeout(\n () =>\n reject(\n new LocalMediaError(\n 'Get user media timed out',\n 'ERR_GUM_TIMEOUT'\n )\n ),\n timeout\n );\n }),\n ]);\n } catch (err) {\n throw err;\n }\n }\n\n public static async getAudioTrack() {\n const mediaStream = (await LocalMediaUtils.getUserMediaWithTimeout({\n audio: true,\n timeout: 5000,\n })) as MediaStream;\n return mediaStream.getAudioTracks()[0];\n }\n\n public static async getVideoTrack(\n constraints: RealtimeKitMediaStreamConstraints\n ) {\n const mediaStream = (await LocalMediaUtils.getUserMediaWithTimeout({\n ...constraints,\n timeout: 5000,\n })) as MediaStream;\n return mediaStream.getVideoTracks()[0];\n }\n\n public static async getScreenShareTracks() {\n // getDisplayMedia() handles all platform differences internally —\n // Android 14+ service management, consent dialog, and stream creation;\n // iOS broadcast extension — the caller gets a uniform Promise<MediaStream>.\n const stream: MediaStream =\n (await mediaDevices.getDisplayMedia()) as MediaStream;\n return {\n video: stream.getVideoTracks()[0],\n audio: stream.getAudioTracks()[0],\n };\n }\n\n public static async getAudioAndVideoTrack(\n constraints: RealtimeKitMediaStreamConstraints\n ) {\n try {\n const mediaStream = (await LocalMediaUtils.getUserMediaWithTimeout({\n ...constraints,\n timeout: 5000,\n })) as MediaStream;\n return {\n audioTrack: mediaStream.getAudioTracks()[0],\n videoTrack: mediaStream.getVideoTracks()[0],\n };\n } catch (err) {\n throw err;\n }\n }\n\n public onDeviceChange(\n callback: (\n changedDevices: {\n added: MediaDeviceInfo[];\n removed: MediaDeviceInfo[];\n selectedDevice?: string;\n },\n forceDeviceChange?: boolean\n ) => void\n ) {\n const onChange = async (deviceData) => {\n const checkDeviceId = (_id: string) => {\n if (_id.toLowerCase().includes('speaker')) return 'speaker';\n else return _id;\n };\n\n // Extract selected device from event\n const selectedDevice = deviceData.selectedAudioDevice;\n const hasSelectedDeviceChanged =\n selectedDevice &&\n this.#previouslySelectedDevice !== null &&\n selectedDevice !== this.#previouslySelectedDevice;\n\n // On first event, we need to initialize previouslySelectedDevice and fire callback\n const isFirstDeviceEvent =\n selectedDevice && this.#previouslySelectedDevice === null;\n\n // Update previouslySelectedDevice IMMEDIATELY after detection to avoid race conditions\n // This must happen BEFORE any async operations\n if (selectedDevice) {\n this.#previouslySelectedDevice = selectedDevice;\n }\n\n const previouslyAvailableDevices = this.#availableDevices.filter(\n (device) =>\n device.kind === 'audioinput' || device.kind === 'audiooutput'\n );\n const previouslyAvailableDeviceIds = previouslyAvailableDevices.map(\n (device) => checkDeviceId(device.deviceId)\n );\n\n // Parse available device list from event to detect list changes\n let availableDeviceListFromEvent: string[] = [];\n const len = deviceData.availableAudioDeviceList.length;\n if (typeof deviceData.availableAudioDeviceList === 'string') {\n try {\n availableDeviceListFromEvent = JSON.parse(\n deviceData.availableAudioDeviceList\n );\n } catch (e) {\n // If parsing fails, fall back to empty array\n availableDeviceListFromEvent = [];\n }\n }\n if (len === 0) {\n const currentlyAvailableDevices =\n await LocalMediaUtils.enumerateAudioDevices();\n const currentlyAvailableDeviceIds = currentlyAvailableDevices.map(\n (device) => checkDeviceId(device.deviceId)\n );\n\n const changedDevices = {\n added: currentlyAvailableDevices.filter(\n (device) =>\n !previouslyAvailableDeviceIds.includes(\n checkDeviceId(device.deviceId)\n )\n ),\n removed: previouslyAvailableDevices.filter(\n (device) => !currentlyAvailableDeviceIds.includes(device.deviceId)\n ),\n selectedDevice: selectedDevice,\n };\n\n // Check if available device list changed\n const hasAvailableListChanged =\n availableDeviceListFromEvent.length > 0 &&\n (availableDeviceListFromEvent.length !==\n previouslyAvailableDeviceIds.length ||\n !availableDeviceListFromEvent.every((device) =>\n previouslyAvailableDeviceIds.includes(device)\n ));\n\n this.repopulateAvailableDevices().then(() => {\n const shouldFireCallback =\n changedDevices.added.length ||\n changedDevices.removed.length ||\n hasSelectedDeviceChanged ||\n isFirstDeviceEvent ||\n hasAvailableListChanged;\n\n if (shouldFireCallback) {\n callback(changedDevices, false);\n }\n });\n } else {\n const currentlyAvailableDevices =\n await LocalMediaUtils.enumerateAudioDevices();\n const currentlyAvailableDeviceIds = currentlyAvailableDevices.map(\n (device) => checkDeviceId(device.deviceId)\n );\n const availableAudioDevices =\n await LocalMediaUtils.enumerateAudioDevices();\n\n const changedDevices = {\n added: availableAudioDevices.filter(\n (device) =>\n !previouslyAvailableDeviceIds.includes(\n checkDeviceId(device.deviceId)\n )\n ),\n removed: previouslyAvailableDevices.filter(\n (device) => !currentlyAvailableDeviceIds.includes(device.deviceId)\n ),\n selectedDevice: selectedDevice,\n };\n\n // Check if available device list changed\n const hasAvailableListChanged =\n availableDeviceListFromEvent.length > 0 &&\n (availableDeviceListFromEvent.length !==\n previouslyAvailableDeviceIds.length ||\n !availableDeviceListFromEvent.every((device) =>\n previouslyAvailableDeviceIds.includes(device)\n ));\n\n this.repopulateAvailableDevices().then(() => {\n const shouldFireCallback =\n changedDevices.added.length ||\n changedDevices.removed.length ||\n hasSelectedDeviceChanged ||\n isFirstDeviceEvent ||\n hasAvailableListChanged;\n\n if (shouldFireCallback) {\n callback(changedDevices, false);\n }\n });\n }\n };\n if (this.#nativeEventEmitter.listenerCount('onAudioDeviceChanged') === 0) {\n this.#nativeEventEmitter.addListener('onAudioDeviceChanged', onChange);\n }\n }\n\n public async repopulateAvailableDevices() {\n const videoDevices = await LocalMediaUtils.enumerateVideoDevices();\n const audioDevices = await LocalMediaUtils.enumerateAudioDevices();\n this.#availableDevices = videoDevices.concat(audioDevices);\n }\n\n public async chooseAudioRoute(route: String) {\n return await NativeAudioManager.chooseAudioRoute(route);\n }\n\n public get availableDevices() {\n return this.#availableDevices;\n }\n\n public getAvailableDevicesByKind(kind: string) {\n return this.#availableDevices.filter((device) => device.kind === kind);\n }\n\n public getDeviceById(\n deviceId: string,\n kind: 'audioinput' | 'audiooutput' | 'videoinput'\n ) {\n const normalizedDeviceId = deviceId.toLowerCase();\n\n return this.#availableDevices.find((device) => {\n if (device.kind !== kind) return false;\n\n const deviceIdLower = device.deviceId.toLowerCase();\n\n // Exact match first\n if (device.deviceId === deviceId) return true;\n\n // iOS special cases\n if (\n normalizedDeviceId === 'speaker' &&\n deviceIdLower.includes('speaker')\n ) {\n return true;\n }\n if (\n normalizedDeviceId === 'bluetooth' &&\n deviceIdLower.includes('bluetooth')\n ) {\n return true;\n }\n if (\n normalizedDeviceId === 'earpiece' &&\n deviceIdLower.includes('earpiece')\n ) {\n return true;\n }\n\n return false;\n });\n }\n\n /**\n * Returns all audio input devices (microphone devices).\n */\n public async getAudioDevices() {\n await this.repopulateAvailableDevices();\n return this.getAvailableDevicesByKind('audioinput');\n }\n\n /**\n * Returns all video input devices.\n */\n public async getVideoDevices() {\n await this.repopulateAvailableDevices();\n return this.getAvailableDevicesByKind('videoinput');\n }\n\n /**\n * Returns all audio output devices (speaker devices).\n */\n public async getSpeakerDevices() {\n await this.repopulateAvailableDevices();\n const speakerDevices = this.#availableDevices;\n // In Mobile, speaker devices are the same as audio input devices\n return speakerDevices\n .filter((device) => device.kind === 'audioinput')\n .map((device) => ({\n ...device,\n deviceId: device.deviceId,\n label: device.label,\n kind: 'audiooutput',\n }));\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeWebrtc","_LocalMediaError","_interopRequireDefault","_NativeAudioManager","e","__esModule","default","LogBox","ignoreLogs","VIDEO_CONSTRAINTS","exports","qvga","width","ideal","height","vga","hd","hd_cropped","deviceChangeListener","NativeEventEmitter","NativeModules","InCallManager","LocalMediaUtils","availableDevices","nativeEventEmitter","previouslySelectedDevice","constructor","init","availableVideoDevices","enumerateVideoDevices","availableAudioDevices","enumerateAudioDevices","concat","destruct","removeAllListeners","isDeviceListAvailable","deviceMem","videoDevices","mediaDevices","enumerateDevices","filter","d","kind","facing","audioDevices","earpiece","connected","haveMic","speaker","bluetooth","wired","isWiredHeadphonesConnected","NativeAudioManager","getIsWiredHeadsetPluggedIn","isBluetoothHeadsetConnected","resp","Object","keys","map","audioDevice","audioDeviceProps","deviceId","label","getVideoConstraints","options","constraints","videoDeviceId","videoTrackConstraints","facingMode","frameRate","max","video","getUserMediaWithTimeout","timeout","getUserMedia","Promise","race","_resolve","reject","setTimeout","LocalMediaError","err","getAudioTrack","mediaStream","audio","getAudioTracks","getVideoTrack","getVideoTracks","getScreenShareTracks","stream","getDisplayMedia","getAudioAndVideoTrack","audioTrack","videoTrack","onDeviceChange","callback","onChange","deviceData","checkDeviceId","_id","toLowerCase","includes","selectedDevice","selectedAudioDevice","hasSelectedDeviceChanged","isFirstDeviceEvent","previouslyAvailableDevices","device","previouslyAvailableDeviceIds","availableDeviceListFromEvent","len","availableAudioDeviceList","length","JSON","parse","currentlyAvailableDevices","currentlyAvailableDeviceIds","changedDevices","added","removed","hasAvailableListChanged","every","repopulateAvailableDevices","then","shouldFireCallback","listenerCount","addListener","chooseAudioRoute","route","getAvailableDevicesByKind","getDeviceById","normalizedDeviceId","find","deviceIdLower","getAudioDevices","getVideoDevices","getSpeakerDevices","speakerDevices"],"sourceRoot":"../../src","sources":["LocalMediaUtils.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAOA,IAAAI,mBAAA,GAAAD,sBAAA,CAAAH,OAAA;AAAsD,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AACtDG,mBAAM,CAACC,UAAU,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAkBtC,MAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,IAAI,EAAE;IAAEC,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IAAEC,MAAM,EAAE;MAAED,KAAK,EAAE;IAAI;EAAE,CAAC;EACvDE,GAAG,EAAE;IAAEH,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IAAEC,MAAM,EAAE;MAAED,KAAK,EAAE;IAAI;EAAE,CAAC;EACtDG,EAAE,EAAE;IAAEJ,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAK,CAAC;IAAEC,MAAM,EAAE;MAAED,KAAK,EAAE;IAAI;EAAE,CAAC;EACtDI,UAAU,EAAE;IAAEL,KAAK,EAAE;MAAEC,KAAK,EAAE;IAAI,CAAC;IAAEC,MAAM,EAAE;MAAED,KAAK,EAAE;IAAI;EAAE;AAC9D,CAAC;AAEM,MAAMK,oBAAoB,GAAAR,OAAA,CAAAQ,oBAAA,GAAG,IAAIC,+BAAkB,CACxDC,0BAAa,CAACC,aAChB,CAAC;;AAED;AACA;AACA;AACA;AACe,MAAMC,eAAe,CAAC;EACnC,CAACC,gBAAgB;EAEjB,CAACC,kBAAkB;EAEnB,CAACC,wBAAwB,GAAkB,IAAI;EAEvCC,WAAWA,CAACH,gBAAmC,EAAE;IACvD,IAAI,CAAC,CAACA,gBAAgB,GAAGA,gBAAgB;IACzC,IAAI,CAAC,CAACC,kBAAkB,GAAGN,oBAAoB;EACjD;EAEA,aAAoBS,IAAIA,CAAA,EAAG;IACzB,MAAMC,qBAAqB,GAAG,MAAMN,eAAe,CAACO,qBAAqB,CAAC,CAAC;IAC3E,MAAMC,qBAAqB,GAAG,MAAMR,eAAe,CAACS,qBAAqB,CAAC,CAAC;IAC3E,OAAO,IAAIT,eAAe,CACxBQ,qBAAqB,CAACE,MAAM,CAACJ,qBAAqB,CACpD,CAAC;EACH;EAEA,MAAaK,QAAQA,CAAA,EAAG;IACtB,IAAI,CAAC,CAACT,kBAAkB,CAACU,kBAAkB,CAAC,sBAAsB,CAAC;EACrE;EAEA,OAAcC,qBAAqBA,CAAA,EAAG;IACpC,OAAO,IAAI;EACb;EAEA,aAAqBN,qBAAqBA,CAAA,EAA+B;IACvE,IAAI;MACF,MAAMO,SAAS,GAAG,CAAC,CAAC;MACpB,MAAMC,YAAY,GACf,MAAMC,+BAAY,CAACC,gBAAgB,CAAC,CAAuB;MAC9D,OAAOF,YAAY,CAACG,MAAM,CAAEC,CAAC,IAAK;QAChC,IAAIA,CAAC,CAACC,IAAI,KAAK,YAAY,IAAI,CAACN,SAAS,CAACK,CAAC,CAACE,MAAM,CAAC,EAAE;UACnDP,SAAS,CAACK,CAAC,CAACE,MAAM,CAAC,GAAG,IAAI;UAC1B,OAAOF,CAAC;QACV;QACA,OAAO,KAAK;MACd,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN,OAAO,EAAE;IACX;EACF;EAEA,aAAqBV,qBAAqBA,CAAA,EAA+B;IACvE,IAAIa,YAAY,GAAG;MACjBC,QAAQ,EAAE;QACRC,SAAS,EAAE,IAAI;QACfC,OAAO,EAAE;MACX,CAAC;MACDC,OAAO,EAAE;QACPF,SAAS,EAAE,IAAI;QACfC,OAAO,EAAE;MACX,CAAC;MACDE,SAAS,EAAE;QACTH,SAAS,EAAE,KAAK;QAChBC,OAAO,EAAE;MACX,CAAC;MACDG,KAAK,EAAE;QACLJ,SAAS,EAAE,KAAK;QAChBC,OAAO,EAAE;MACX;IACF,CAAC;IACD,MAAMI,0BAA0B,GAC9B,MAAMC,2BAAkB,CAACC,0BAA0B,CAAC,CAAC;IACvDT,YAAY,CAACM,KAAK,GAAGC,0BAA0B,GAC3C;MACEL,SAAS,EAAE,IAAI;MACfC,OAAO,EAAE;IACX,CAAC,GACD;MACED,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE;IACX,CAAC;IACL,MAAMO,2BAA2B,GAC/B,MAAMF,2BAAkB,CAACE,2BAA2B,CAAC,CAAC;IACxDV,YAAY,CAACK,SAAS,GAAGK,2BAA2B,GAChD;MACER,SAAS,EAAE,IAAI;MACfC,OAAO,EAAE;IACX,CAAC,GACD;MACED,SAAS,EAAE,KAAK;MAChBC,OAAO,EAAE;IACX,CAAC;IACL,MAAMQ,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACb,YAAY,CAAC,CACnCc,GAAG,CAAEC,WAAW,IAAK;MACpB,MAAMC,gBAAgB,GAAGhB,YAAY,CAACe,WAAW,CAAC;MAClD,OAAO;QACL,GAAGC,gBAAgB;QACnBC,QAAQ,EAAEF,WAAW;QACrBG,KAAK,EAAEH,WAAW;QAClBjB,IAAI,EAAE;MACR,CAAC;IACH,CAAC,CAAC,CACDF,MAAM,CAAEmB,WAAW,IAAKA,WAAW,CAACb,SAAS,CAAC;IACjD,OAAOS,IAAI;EACb;EAEA,OAAcQ,mBAAmBA,CAACC,OAKjC,EAAE;IACD,MAAMC,WAA8C,GAAG,CAAC,CAAC;IACzD,MAAM;MACJC,aAAa;MACbC,qBAAqB;MACrBC,UAAU,GAAG,MAAM;MACnBC,SAAS,GAAG;QAAExD,KAAK,EAAE,EAAE;QAAEyD,GAAG,EAAE;MAAG;IACnC,CAAC,GAAGN,OAAO;IAEXC,WAAW,CAACM,KAAK,GAAGJ,qBAAqB,IAAI1D,iBAAiB,CAACM,GAAG;IAClE,IAAI,OAAOkD,WAAW,CAACM,KAAK,KAAK,SAAS,EAAE;MAC1C,OAAON,WAAW;IACpB;IAEAA,WAAW,CAACM,KAAK,CAACV,QAAQ,GAAGK,aAAa;IAC1CD,WAAW,CAACM,KAAK,CAACH,UAAU,GAAGA,UAAU;IACzCH,WAAW,CAACM,KAAK,CAACF,SAAS,GAAGA,SAAS;IACvC,OAAOJ,WAAW;EACpB;EAEA,aAAqBO,uBAAuBA,CAC1CP,WAA8C,GAAG,CAAC,CAAC,EACnDQ,OAAe,GAAG,CAAC,EACnB;IACA,IAAI;MACF,IAAI,CAACA,OAAO,EAAE;QACZ,OAAO,MAAMnC,+BAAY,CAACoC,YAAY,CAACT,WAAW,CAAC;MACrD;;MAEA;MACA,OAAOU,OAAO,CAACC,IAAI,CAAmB,CACpCtC,+BAAY,CAACoC,YAAY,CAACT,WAAW,CAAC,EAEtC,IAAIU,OAAO,CAAc,CAACE,QAAQ,EAAEC,MAAM,KAAK;QAC7CC,UAAU,CACR,MACED,MAAM,CACJ,IAAIE,wBAAe,CACjB,0BAA0B,EAC1B,iBACF,CACF,CAAC,EACHP,OACF,CAAC;MACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,OAAOQ,GAAG,EAAE;MACZ,MAAMA,GAAG;IACX;EACF;EAEA,aAAoBC,aAAaA,CAAA,EAAG;IAClC,MAAMC,WAAW,GAAI,MAAM7D,eAAe,CAACkD,uBAAuB,CAAC;MACjEY,KAAK,EAAE,IAAI;MACXX,OAAO,EAAE;IACX,CAAC,CAAiB;IAClB,OAAOU,WAAW,CAACE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACxC;EAEA,aAAoBC,aAAaA,CAC/BrB,WAA8C,EAC9C;IACA,MAAMkB,WAAW,GAAI,MAAM7D,eAAe,CAACkD,uBAAuB,CAAC;MACjE,GAAGP,WAAW;MACdQ,OAAO,EAAE;IACX,CAAC,CAAiB;IAClB,OAAOU,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;EACxC;EAEA,aAAoBC,oBAAoBA,CAAA,EAAG;IACzC;IACA;IACA;IACA,MAAMC,MAAmB,GACtB,MAAMnD,+BAAY,CAACoD,eAAe,CAAC,CAAiB;IACvD,OAAO;MACLnB,KAAK,EAAEkB,MAAM,CAACF,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;MACjCH,KAAK,EAAEK,MAAM,CAACJ,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;EACH;EAEA,aAAoBM,qBAAqBA,CACvC1B,WAA8C,EAC9C;IACA,IAAI;MACF,MAAMkB,WAAW,GAAI,MAAM7D,eAAe,CAACkD,uBAAuB,CAAC;QACjE,GAAGP,WAAW;QACdQ,OAAO,EAAE;MACX,CAAC,CAAiB;MAClB,OAAO;QACLmB,UAAU,EAAET,WAAW,CAACE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3CQ,UAAU,EAAEV,WAAW,CAACI,cAAc,CAAC,CAAC,CAAC,CAAC;MAC5C,CAAC;IACH,CAAC,CAAC,OAAON,GAAG,EAAE;MACZ,MAAMA,GAAG;IACX;EACF;EAEOa,cAAcA,CACnBC,QAOS,EACT;IACA,MAAMC,QAAQ,GAAG,MAAOC,UAAU,IAAK;MACrC,MAAMC,aAAa,GAAIC,GAAW,IAAK;QACrC,IAAIA,GAAG,CAACC,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC,KACvD,OAAOF,GAAG;MACjB,CAAC;;MAED;MACA,MAAMG,cAAc,GAAGL,UAAU,CAACM,mBAAmB;MACrD,MAAMC,wBAAwB,GAC5BF,cAAc,IACd,IAAI,CAAC,CAAC7E,wBAAwB,KAAK,IAAI,IACvC6E,cAAc,KAAK,IAAI,CAAC,CAAC7E,wBAAwB;;MAEnD;MACA,MAAMgF,kBAAkB,GACtBH,cAAc,IAAI,IAAI,CAAC,CAAC7E,wBAAwB,KAAK,IAAI;;MAE3D;MACA;MACA,IAAI6E,cAAc,EAAE;QAClB,IAAI,CAAC,CAAC7E,wBAAwB,GAAG6E,cAAc;MACjD;MAEA,MAAMI,0BAA0B,GAAG,IAAI,CAAC,CAACnF,gBAAgB,CAACiB,MAAM,CAC7DmE,MAAM,IACLA,MAAM,CAACjE,IAAI,KAAK,YAAY,IAAIiE,MAAM,CAACjE,IAAI,KAAK,aACpD,CAAC;MACD,MAAMkE,4BAA4B,GAAGF,0BAA0B,CAAChD,GAAG,CAChEiD,MAAM,IAAKT,aAAa,CAACS,MAAM,CAAC9C,QAAQ,CAC3C,CAAC;;MAED;MACA,IAAIgD,4BAAsC,GAAG,EAAE;MAC/C,MAAMC,GAAG,GAAGb,UAAU,CAACc,wBAAwB,CAACC,MAAM;MACtD,IAAI,OAAOf,UAAU,CAACc,wBAAwB,KAAK,QAAQ,EAAE;QAC3D,IAAI;UACFF,4BAA4B,GAAGI,IAAI,CAACC,KAAK,CACvCjB,UAAU,CAACc,wBACb,CAAC;QACH,CAAC,CAAC,MAAM;UACN;UACAF,4BAA4B,GAAG,EAAE;QACnC;MACF;MACA,IAAIC,GAAG,KAAK,CAAC,EAAE;QACb,MAAMK,yBAAyB,GAC7B,MAAM7F,eAAe,CAACS,qBAAqB,CAAC,CAAC;QAC/C,MAAMqF,2BAA2B,GAAGD,yBAAyB,CAACzD,GAAG,CAC9DiD,MAAM,IAAKT,aAAa,CAACS,MAAM,CAAC9C,QAAQ,CAC3C,CAAC;QAED,MAAMwD,cAAc,GAAG;UACrBC,KAAK,EAAEH,yBAAyB,CAAC3E,MAAM,CACpCmE,MAAM,IACL,CAACC,4BAA4B,CAACP,QAAQ,CACpCH,aAAa,CAACS,MAAM,CAAC9C,QAAQ,CAC/B,CACJ,CAAC;UACD0D,OAAO,EAAEb,0BAA0B,CAAClE,MAAM,CACvCmE,MAAM,IAAK,CAACS,2BAA2B,CAACf,QAAQ,CAACM,MAAM,CAAC9C,QAAQ,CACnE,CAAC;UACDyC,cAAc,EAAEA;QAClB,CAAC;;QAED;QACA,MAAMkB,uBAAuB,GAC3BX,4BAA4B,CAACG,MAAM,GAAG,CAAC,KACtCH,4BAA4B,CAACG,MAAM,KAClCJ,4BAA4B,CAACI,MAAM,IACnC,CAACH,4BAA4B,CAACY,KAAK,CAAEd,MAAM,IACzCC,4BAA4B,CAACP,QAAQ,CAACM,MAAM,CAC9C,CAAC,CAAC;QAEN,IAAI,CAACe,0BAA0B,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;UAC3C,MAAMC,kBAAkB,GACtBP,cAAc,CAACC,KAAK,CAACN,MAAM,IAC3BK,cAAc,CAACE,OAAO,CAACP,MAAM,IAC7BR,wBAAwB,IACxBC,kBAAkB,IAClBe,uBAAuB;UAEzB,IAAII,kBAAkB,EAAE;YACtB7B,QAAQ,CAACsB,cAAc,EAAE,KAAK,CAAC;UACjC;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAMF,yBAAyB,GAC7B,MAAM7F,eAAe,CAACS,qBAAqB,CAAC,CAAC;QAC/C,MAAMqF,2BAA2B,GAAGD,yBAAyB,CAACzD,GAAG,CAC9DiD,MAAM,IAAKT,aAAa,CAACS,MAAM,CAAC9C,QAAQ,CAC3C,CAAC;QACD,MAAM/B,qBAAqB,GACzB,MAAMR,eAAe,CAACS,qBAAqB,CAAC,CAAC;QAE/C,MAAMsF,cAAc,GAAG;UACrBC,KAAK,EAAExF,qBAAqB,CAACU,MAAM,CAChCmE,MAAM,IACL,CAACC,4BAA4B,CAACP,QAAQ,CACpCH,aAAa,CAACS,MAAM,CAAC9C,QAAQ,CAC/B,CACJ,CAAC;UACD0D,OAAO,EAAEb,0BAA0B,CAAClE,MAAM,CACvCmE,MAAM,IAAK,CAACS,2BAA2B,CAACf,QAAQ,CAACM,MAAM,CAAC9C,QAAQ,CACnE,CAAC;UACDyC,cAAc,EAAEA;QAClB,CAAC;;QAED;QACA,MAAMkB,uBAAuB,GAC3BX,4BAA4B,CAACG,MAAM,GAAG,CAAC,KACtCH,4BAA4B,CAACG,MAAM,KAClCJ,4BAA4B,CAACI,MAAM,IACnC,CAACH,4BAA4B,CAACY,KAAK,CAAEd,MAAM,IACzCC,4BAA4B,CAACP,QAAQ,CAACM,MAAM,CAC9C,CAAC,CAAC;QAEN,IAAI,CAACe,0BAA0B,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;UAC3C,MAAMC,kBAAkB,GACtBP,cAAc,CAACC,KAAK,CAACN,MAAM,IAC3BK,cAAc,CAACE,OAAO,CAACP,MAAM,IAC7BR,wBAAwB,IACxBC,kBAAkB,IAClBe,uBAAuB;UAEzB,IAAII,kBAAkB,EAAE;YACtB7B,QAAQ,CAACsB,cAAc,EAAE,KAAK,CAAC;UACjC;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IACD,IAAI,IAAI,CAAC,CAAC7F,kBAAkB,CAACqG,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE;MACxE,IAAI,CAAC,CAACrG,kBAAkB,CAACsG,WAAW,CAAC,sBAAsB,EAAE9B,QAAQ,CAAC;IACxE;EACF;EAEA,MAAa0B,0BAA0BA,CAAA,EAAG;IACxC,MAAMrF,YAAY,GAAG,MAAMf,eAAe,CAACO,qBAAqB,CAAC,CAAC;IAClE,MAAMe,YAAY,GAAG,MAAMtB,eAAe,CAACS,qBAAqB,CAAC,CAAC;IAClE,IAAI,CAAC,CAACR,gBAAgB,GAAGc,YAAY,CAACL,MAAM,CAACY,YAAY,CAAC;EAC5D;EAEA,MAAamF,gBAAgBA,CAACC,KAAa,EAAE;IAC3C,OAAO,MAAM5E,2BAAkB,CAAC2E,gBAAgB,CAACC,KAAK,CAAC;EACzD;EAEA,IAAWzG,gBAAgBA,CAAA,EAAG;IAC5B,OAAO,IAAI,CAAC,CAACA,gBAAgB;EAC/B;EAEO0G,yBAAyBA,CAACvF,IAAY,EAAE;IAC7C,OAAO,IAAI,CAAC,CAACnB,gBAAgB,CAACiB,MAAM,CAAEmE,MAAM,IAAKA,MAAM,CAACjE,IAAI,KAAKA,IAAI,CAAC;EACxE;EAEOwF,aAAaA,CAClBrE,QAAgB,EAChBnB,IAAiD,EACjD;IACA,MAAMyF,kBAAkB,GAAGtE,QAAQ,CAACuC,WAAW,CAAC,CAAC;IAEjD,OAAO,IAAI,CAAC,CAAC7E,gBAAgB,CAAC6G,IAAI,CAAEzB,MAAM,IAAK;MAC7C,IAAIA,MAAM,CAACjE,IAAI,KAAKA,IAAI,EAAE,OAAO,KAAK;MAEtC,MAAM2F,aAAa,GAAG1B,MAAM,CAAC9C,QAAQ,CAACuC,WAAW,CAAC,CAAC;;MAEnD;MACA,IAAIO,MAAM,CAAC9C,QAAQ,KAAKA,QAAQ,EAAE,OAAO,IAAI;;MAE7C;MACA,IACEsE,kBAAkB,KAAK,SAAS,IAChCE,aAAa,CAAChC,QAAQ,CAAC,SAAS,CAAC,EACjC;QACA,OAAO,IAAI;MACb;MACA,IACE8B,kBAAkB,KAAK,WAAW,IAClCE,aAAa,CAAChC,QAAQ,CAAC,WAAW,CAAC,EACnC;QACA,OAAO,IAAI;MACb;MACA,IACE8B,kBAAkB,KAAK,UAAU,IACjCE,aAAa,CAAChC,QAAQ,CAAC,UAAU,CAAC,EAClC;QACA,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,MAAaiC,eAAeA,CAAA,EAAG;IAC7B,MAAM,IAAI,CAACZ,0BAA0B,CAAC,CAAC;IACvC,OAAO,IAAI,CAACO,yBAAyB,CAAC,YAAY,CAAC;EACrD;;EAEA;AACF;AACA;EACE,MAAaM,eAAeA,CAAA,EAAG;IAC7B,MAAM,IAAI,CAACb,0BAA0B,CAAC,CAAC;IACvC,OAAO,IAAI,CAACO,yBAAyB,CAAC,YAAY,CAAC;EACrD;;EAEA;AACF;AACA;EACE,MAAaO,iBAAiBA,CAAA,EAAG;IAC/B,MAAM,IAAI,CAACd,0BAA0B,CAAC,CAAC;IACvC,MAAMe,cAAc,GAAG,IAAI,CAAC,CAAClH,gBAAgB;IAC7C;IACA,OAAOkH,cAAc,CAClBjG,MAAM,CAAEmE,MAAM,IAAKA,MAAM,CAACjE,IAAI,KAAK,YAAY,CAAC,CAChDgB,GAAG,CAAEiD,MAAM,KAAM;MAChB,GAAGA,MAAM;MACT9C,QAAQ,EAAE8C,MAAM,CAAC9C,QAAQ;MACzBC,KAAK,EAAE6C,MAAM,CAAC7C,KAAK;MACnBpB,IAAI,EAAE;IACR,CAAC,CAAC,CAAC;EACP;AACF;AAAChC,OAAA,CAAAJ,OAAA,GAAAgB,eAAA","ignoreList":[]}
|
|
@@ -24,14 +24,14 @@ class NativeAudioManager {
|
|
|
24
24
|
async getIsWiredHeadsetPluggedIn() {
|
|
25
25
|
try {
|
|
26
26
|
return await _InCallManager.getIsWiredHeadsetPluggedIn();
|
|
27
|
-
} catch
|
|
27
|
+
} catch {
|
|
28
28
|
return {};
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
async isBluetoothHeadsetConnected() {
|
|
32
32
|
try {
|
|
33
33
|
return await _InCallManager.isBluetoothHeadsetConnected();
|
|
34
|
-
} catch
|
|
34
|
+
} catch {
|
|
35
35
|
return {};
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -86,7 +86,7 @@ class NativeAudioManager {
|
|
|
86
86
|
|
|
87
87
|
// iOS returns string directly
|
|
88
88
|
return result || null;
|
|
89
|
-
} catch
|
|
89
|
+
} catch {
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_InCallManager","NativeModules","InCallManager","NativeAudioManager","constructor","vibrate","start","setup","undefined","media","setVoiceCallMode","stop","Platform","OS","getIsWiredHeadsetPluggedIn","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_InCallManager","NativeModules","InCallManager","NativeAudioManager","constructor","vibrate","start","setup","undefined","media","setVoiceCallMode","stop","Platform","OS","getIsWiredHeadsetPluggedIn","isBluetoothHeadsetConnected","setKeepScreenOn","enable","setSpeakerphoneOn","setForceSpeakerphoneOn","_flag","flag","setMicrophoneMute","chooseAudioRoute","route","requestAudioFocus","requestAudioFocusJS","abandonAudioFocus","abandonAudioFocusJS","forceUpdateAudioDevices","getCurrentAudioDevice","result","currentDevice","deviceMap","SPEAKER_PHONE","BLUETOOTH","WIRED_HEADSET","EARPIECE","NONE","_default","exports","default"],"sourceRoot":"../../src","sources":["NativeAudioManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","ANDROID","Object","freeze","CAMERA","BLUETOOTH","RECORD_AUDIO","LOCATION","IOS","APP_TRACKING_TRANSPARENCY","BLUETOOTH_PERIPHERAL","MICROPHONE","PERMISSIONS","exports","RESULTS","UNAVAILABLE","BLOCKED","DENIED","GRANTED","LIMITED","PROMPTED","RTKRNPermissions","NativeModules","request","permission","available","includes","check","uniq","array","filter","item","index","indexOf","requestMultiplePermissions","permissions","Platform","OS","output","dedup","length","checkMultiplePermissions","getPlatformEquiPermission","reverse","android","camera","microphone","bluetooth","location","ios","androidReverse","keys","forEach","key","iosReverse","timeout","processPermissionResult","systemPermissionRequired","audio","video","status","permissionState","normalPermission","isBluetoothGranted","clearInterval","checkResponse","setupPermissions","Promise","resolve","reject","statusCheck","isIOS","permissionsRequired","concat","systemPermissionEquivalent","push","checkPermLoop","id","requestResponse","undefined","timeout_sample","setInterval","setTimeout"],"sources":["PermissionHandler.ts"],"sourcesContent":["import { Platform, NativeModules } from 'react-native';\nimport { MediaPermission } from './LocalMediaInterfaces';\n\nconst ANDROID = Object.freeze({\n CAMERA: 'android.permission.CAMERA',\n BLUETOOTH: 'android.permission.BLUETOOTH_CONNECT',\n RECORD_AUDIO: 'android.permission.RECORD_AUDIO',\n LOCATION: 'android.permission.ACCESS_FINE_LOCATION',\n} as const);\n\ntype AndroidPermissionMap = typeof ANDROID;\n\nconst IOS = Object.freeze({\n APP_TRACKING_TRANSPARENCY: 'ios.permission.APP_TRACKING_TRANSPARENCY',\n BLUETOOTH_PERIPHERAL: 'ios.permission.BLUETOOTH_PERIPHERAL',\n CAMERA: 'ios.permission.CAMERA',\n MICROPHONE: 'ios.permission.MICROPHONE',\n} as const);\n\ntype IOSPermissionMap = typeof IOS;\n\nexport const PERMISSIONS = Object.freeze({\n ANDROID: ANDROID as AndroidPermissionMap,\n IOS: IOS as IOSPermissionMap,\n} as const);\n\nexport const RESULTS = Object.freeze({\n UNAVAILABLE: 'unavailable',\n BLOCKED: 'blocked',\n DENIED: 'denied',\n GRANTED: 'granted',\n LIMITED: 'limited',\n PROMPTED: 'prompted',\n} as const);\n\nconst { RTKRNPermissions } = NativeModules;\n\nasync function request(permission) {\n return RTKRNPermissions.available.includes(permission)\n ? await RTKRNPermissions.request(permission)\n : RESULTS.UNAVAILABLE;\n}\n\nasync function check(permission) {\n return RTKRNPermissions.available.includes(permission)\n ? await RTKRNPermissions.check(permission)\n : RESULTS.UNAVAILABLE;\n}\n\nexport function uniq(array) {\n return array.filter(\n (item, index) => item != null && array.indexOf(item) === index\n );\n}\n\nasync function requestMultiplePermissions(permissions) {\n if (Platform.OS === 'ios') {\n const output = {};\n const dedup = uniq(permissions);\n\n for (let index = 0; index < dedup.length; index += 1) {\n const permission = dedup[index];\n output[permission] = await request(permission);\n }\n return output;\n }\n const output = await RTKRNPermissions.requestMultiplePermissions(\n permissions,\n true\n );\n return output;\n}\n\nasync function checkMultiplePermissions(permissions) {\n if (Platform.OS === 'ios') {\n const output = {};\n const dedup = uniq(permissions);\n\n for (let index = 0; index < dedup.length; index += 1) {\n const permission = dedup[index];\n output[permission] = await check(permission);\n }\n return output;\n }\n const output = await RTKRNPermissions.checkMultiplePermissions(permissions);\n return output;\n}\n\nexport type DynamicPermissions = Array<'camera' | 'microphone'>;\n\nconst getPlatformEquiPermission = (permission, reverse = false) => {\n const android = {\n camera: PERMISSIONS.ANDROID.CAMERA,\n microphone: PERMISSIONS.ANDROID.RECORD_AUDIO,\n bluetooth: PERMISSIONS.ANDROID.BLUETOOTH,\n location: PERMISSIONS.ANDROID.LOCATION,\n };\n const ios = {\n camera: PERMISSIONS.IOS.CAMERA,\n microphone: PERMISSIONS.IOS.MICROPHONE,\n bluetooth: PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL,\n };\n if (!reverse) {\n if (Platform.OS === 'android') {\n return android[permission];\n }\n return ios[permission];\n }\n if (Platform.OS === 'android') {\n const androidReverse = {};\n Object.keys(android).forEach((key) => {\n androidReverse[android[key]] = key;\n });\n return androidReverse[permission];\n }\n const iosReverse = {};\n Object.keys(ios).forEach((key) => {\n iosReverse[ios[key]] = key;\n });\n return iosReverse[permission];\n};\n\nlet timeout: any;\n\nconst processPermissionResult =\n (systemPermissionRequired, audio, video) => async (status) => {\n const permissionState: { [key: string]: MediaPermission } = {\n camera: 'NOT_REQUESTED',\n microphone: 'NOT_REQUESTED',\n bluetooth: 'NOT_REQUESTED',\n location: 'NOT_REQUESTED',\n };\n systemPermissionRequired.forEach((permission) => {\n const normalPermission = getPlatformEquiPermission(permission, true);\n if (status[permission] === RESULTS.GRANTED) {\n permissionState[normalPermission] = 'ACCEPTED';\n } else if (status[permission] !== RESULTS.PROMPTED) {\n permissionState[normalPermission] = 'DENIED';\n }\n });\n const isBluetoothGranted =\n Platform.OS === 'ios' || permissionState.bluetooth !== 'NOT_REQUESTED';\n if (\n (permissionState.camera !== 'NOT_REQUESTED' || !video) &&\n (permissionState.microphone !== 'NOT_REQUESTED' || !audio) &&\n isBluetoothGranted &&\n timeout\n )\n clearInterval(timeout);\n else {\n await requestMultiplePermissions(systemPermissionRequired);\n const checkResponse = await checkMultiplePermissions(\n systemPermissionRequired\n );\n await processPermissionResult(\n systemPermissionRequired,\n audio,\n video\n )(checkResponse);\n }\n return permissionState;\n };\n\nexport const setupPermissions = async (\n audio: boolean,\n video: boolean\n): Promise<{\n [key: string]: MediaPermission;\n}> => {\n return new Promise<{\n [key: string]: MediaPermission;\n }>(async (resolve, reject) => {\n let statusCheck: {\n [key: string]: MediaPermission;\n };\n const systemPermissionRequired = [];\n const isIOS = Platform.OS === 'ios';\n const permissionsRequired = []\n .concat(audio ? ['microphone'] : [])\n .concat(isIOS ? [] : ['bluetooth'])\n .concat(video ? ['camera'] : []);\n permissionsRequired.forEach((permission) => {\n const systemPermissionEquivalent = getPlatformEquiPermission(permission);\n if (systemPermissionEquivalent) {\n systemPermissionRequired.push(systemPermissionEquivalent);\n }\n });\n\n const checkPermLoop = async (id) => {\n timeout = id;\n statusCheck = await processPermissionResult(\n systemPermissionRequired,\n audio,\n video\n )(requestResponse);\n if (statusCheck !== undefined) resolve(statusCheck);\n };\n // Requesting permission status\n const requestResponse = await requestMultiplePermissions(\n systemPermissionRequired\n );\n const timeout_sample = setInterval(\n () => checkPermLoop(timeout_sample),\n 1000\n );\n\n if (timeout)\n statusCheck = await processPermissionResult(\n systemPermissionRequired,\n audio,\n video\n )(requestResponse);\n\n if (timeout) {\n clearInterval(timeout);\n }\n\n if (statusCheck) resolve(statusCheck);\n\n setTimeout(() => {\n reject(statusCheck);\n }, 20000);\n });\n};\n\nexport type ResultMap = typeof RESULTS;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","ANDROID","Object","freeze","CAMERA","BLUETOOTH","RECORD_AUDIO","LOCATION","IOS","APP_TRACKING_TRANSPARENCY","BLUETOOTH_PERIPHERAL","MICROPHONE","PERMISSIONS","exports","RESULTS","UNAVAILABLE","BLOCKED","DENIED","GRANTED","LIMITED","PROMPTED","RTKRNPermissions","NativeModules","request","permission","available","includes","check","uniq","array","filter","item","index","indexOf","requestMultiplePermissions","permissions","Platform","OS","output","dedup","length","checkMultiplePermissions","getPlatformEquiPermission","reverse","android","camera","microphone","bluetooth","location","ios","androidReverse","keys","forEach","key","iosReverse","timeout","processPermissionResult","systemPermissionRequired","audio","video","status","permissionState","normalPermission","isBluetoothGranted","clearInterval","checkResponse","setupPermissions","Promise","resolve","reject","statusCheck","isIOS","permissionsRequired","concat","systemPermissionEquivalent","push","checkPermLoop","id","requestResponse","undefined","timeout_sample","setInterval","setTimeout"],"sourceRoot":"../../src","sources":["PermissionHandler.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,MAAMC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC;EAC5BC,MAAM,EAAE,2BAA2B;EACnCC,SAAS,EAAE,sCAAsC;EACjDC,YAAY,EAAE,iCAAiC;EAC/CC,QAAQ,EAAE;AACZ,CAAU,CAAC;AAIX,MAAMC,GAAG,GAAGN,MAAM,CAACC,MAAM,CAAC;EACxBM,yBAAyB,EAAE,0CAA0C;EACrEC,oBAAoB,EAAE,qCAAqC;EAC3DN,MAAM,EAAE,uBAAuB;EAC/BO,UAAU,EAAE;AACd,CAAU,CAAC;AAIJ,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGV,MAAM,CAACC,MAAM,CAAC;EACvCF,OAAO,EAAEA,OAA+B;EACxCO,GAAG,EAAEA;AACP,CAAU,CAAC;AAEJ,MAAMM,OAAO,GAAAD,OAAA,CAAAC,OAAA,GAAGZ,MAAM,CAACC,MAAM,CAAC;EACnCY,WAAW,EAAE,aAAa;EAC1BC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE;AACZ,CAAU,CAAC;AAEX,MAAM;EAAEC;AAAiB,CAAC,GAAGC,0BAAa;AAE1C,eAAeC,OAAOA,CAACC,UAAU,EAAE;EACjC,OAAOH,gBAAgB,CAACI,SAAS,CAACC,QAAQ,CAACF,UAAU,CAAC,GAClD,MAAMH,gBAAgB,CAACE,OAAO,CAACC,UAAU,CAAC,GAC1CV,OAAO,CAACC,WAAW;AACzB;AAEA,eAAeY,KAAKA,CAACH,UAAU,EAAE;EAC/B,OAAOH,gBAAgB,CAACI,SAAS,CAACC,QAAQ,CAACF,UAAU,CAAC,GAClD,MAAMH,gBAAgB,CAACM,KAAK,CAACH,UAAU,CAAC,GACxCV,OAAO,CAACC,WAAW;AACzB;AAEO,SAASa,IAAIA,CAACC,KAAK,EAAE;EAC1B,OAAOA,KAAK,CAACC,MAAM,CACjB,CAACC,IAAI,EAAEC,KAAK,KAAKD,IAAI,IAAI,IAAI,IAAIF,KAAK,CAACI,OAAO,CAACF,IAAI,CAAC,KAAKC,KAC3D,CAAC;AACH;AAEA,eAAeE,0BAA0BA,CAACC,WAAW,EAAE;EACrD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMC,MAAM,GAAG,CAAC,CAAC;IACjB,MAAMC,KAAK,GAAGX,IAAI,CAACO,WAAW,CAAC;IAE/B,KAAK,IAAIH,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGO,KAAK,CAACC,MAAM,EAAER,KAAK,IAAI,CAAC,EAAE;MACpD,MAAMR,UAAU,GAAGe,KAAK,CAACP,KAAK,CAAC;MAC/BM,MAAM,CAACd,UAAU,CAAC,GAAG,MAAMD,OAAO,CAACC,UAAU,CAAC;IAChD;IACA,OAAOc,MAAM;EACf;EACA,MAAMA,MAAM,GAAG,MAAMjB,gBAAgB,CAACa,0BAA0B,CAC9DC,WAAW,EACX,IACF,CAAC;EACD,OAAOG,MAAM;AACf;AAEA,eAAeG,wBAAwBA,CAACN,WAAW,EAAE;EACnD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMC,MAAM,GAAG,CAAC,CAAC;IACjB,MAAMC,KAAK,GAAGX,IAAI,CAACO,WAAW,CAAC;IAE/B,KAAK,IAAIH,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGO,KAAK,CAACC,MAAM,EAAER,KAAK,IAAI,CAAC,EAAE;MACpD,MAAMR,UAAU,GAAGe,KAAK,CAACP,KAAK,CAAC;MAC/BM,MAAM,CAACd,UAAU,CAAC,GAAG,MAAMG,KAAK,CAACH,UAAU,CAAC;IAC9C;IACA,OAAOc,MAAM;EACf;EACA,MAAMA,MAAM,GAAG,MAAMjB,gBAAgB,CAACoB,wBAAwB,CAACN,WAAW,CAAC;EAC3E,OAAOG,MAAM;AACf;AAIA,MAAMI,yBAAyB,GAAGA,CAAClB,UAAU,EAAEmB,OAAO,GAAG,KAAK,KAAK;EACjE,MAAMC,OAAO,GAAG;IACdC,MAAM,EAAEjC,WAAW,CAACX,OAAO,CAACG,MAAM;IAClC0C,UAAU,EAAElC,WAAW,CAACX,OAAO,CAACK,YAAY;IAC5CyC,SAAS,EAAEnC,WAAW,CAACX,OAAO,CAACI,SAAS;IACxC2C,QAAQ,EAAEpC,WAAW,CAACX,OAAO,CAACM;EAChC,CAAC;EACD,MAAM0C,GAAG,GAAG;IACVJ,MAAM,EAAEjC,WAAW,CAACJ,GAAG,CAACJ,MAAM;IAC9B0C,UAAU,EAAElC,WAAW,CAACJ,GAAG,CAACG,UAAU;IACtCoC,SAAS,EAAEnC,WAAW,CAACJ,GAAG,CAACE;EAC7B,CAAC;EACD,IAAI,CAACiC,OAAO,EAAE;IACZ,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAOO,OAAO,CAACpB,UAAU,CAAC;IAC5B;IACA,OAAOyB,GAAG,CAACzB,UAAU,CAAC;EACxB;EACA,IAAIY,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,MAAMa,cAAc,GAAG,CAAC,CAAC;IACzBhD,MAAM,CAACiD,IAAI,CAACP,OAAO,CAAC,CAACQ,OAAO,CAAEC,GAAG,IAAK;MACpCH,cAAc,CAACN,OAAO,CAACS,GAAG,CAAC,CAAC,GAAGA,GAAG;IACpC,CAAC,CAAC;IACF,OAAOH,cAAc,CAAC1B,UAAU,CAAC;EACnC;EACA,MAAM8B,UAAU,GAAG,CAAC,CAAC;EACrBpD,MAAM,CAACiD,IAAI,CAACF,GAAG,CAAC,CAACG,OAAO,CAAEC,GAAG,IAAK;IAChCC,UAAU,CAACL,GAAG,CAACI,GAAG,CAAC,CAAC,GAAGA,GAAG;EAC5B,CAAC,CAAC;EACF,OAAOC,UAAU,CAAC9B,UAAU,CAAC;AAC/B,CAAC;AAED,IAAI+B,OAAY;AAEhB,MAAMC,uBAAuB,GAC3BA,CAACC,wBAAwB,EAAEC,KAAK,EAAEC,KAAK,KAAK,MAAOC,MAAM,IAAK;EAC5D,MAAMC,eAAmD,GAAG;IAC1DhB,MAAM,EAAE,eAAe;IACvBC,UAAU,EAAE,eAAe;IAC3BC,SAAS,EAAE,eAAe;IAC1BC,QAAQ,EAAE;EACZ,CAAC;EACDS,wBAAwB,CAACL,OAAO,CAAE5B,UAAU,IAAK;IAC/C,MAAMsC,gBAAgB,GAAGpB,yBAAyB,CAAClB,UAAU,EAAE,IAAI,CAAC;IACpE,IAAIoC,MAAM,CAACpC,UAAU,CAAC,KAAKV,OAAO,CAACI,OAAO,EAAE;MAC1C2C,eAAe,CAACC,gBAAgB,CAAC,GAAG,UAAU;IAChD,CAAC,MAAM,IAAIF,MAAM,CAACpC,UAAU,CAAC,KAAKV,OAAO,CAACM,QAAQ,EAAE;MAClDyC,eAAe,CAACC,gBAAgB,CAAC,GAAG,QAAQ;IAC9C;EACF,CAAC,CAAC;EACF,MAAMC,kBAAkB,GACtB3B,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAIwB,eAAe,CAACd,SAAS,KAAK,eAAe;EACxE,IACE,CAACc,eAAe,CAAChB,MAAM,KAAK,eAAe,IAAI,CAACc,KAAK,MACpDE,eAAe,CAACf,UAAU,KAAK,eAAe,IAAI,CAACY,KAAK,CAAC,IAC1DK,kBAAkB,IAClBR,OAAO,EAEPS,aAAa,CAACT,OAAO,CAAC,CAAC,KACpB;IACH,MAAMrB,0BAA0B,CAACuB,wBAAwB,CAAC;IAC1D,MAAMQ,aAAa,GAAG,MAAMxB,wBAAwB,CAClDgB,wBACF,CAAC;IACD,MAAMD,uBAAuB,CAC3BC,wBAAwB,EACxBC,KAAK,EACLC,KACF,CAAC,CAACM,aAAa,CAAC;EAClB;EACA,OAAOJ,eAAe;AACxB,CAAC;AAEI,MAAMK,gBAAgB,GAAG,MAAAA,CAC9BR,KAAc,EACdC,KAAc,KAGV;EACJ,OAAO,IAAIQ,OAAO,CAEf,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAC5B,IAAIC,WAEH;IACD,MAAMb,wBAAwB,GAAG,EAAE;IACnC,MAAMc,KAAK,GAAGnC,qBAAQ,CAACC,EAAE,KAAK,KAAK;IACnC,MAAMmC,mBAAmB,GAAG,EAAE,CAC3BC,MAAM,CAACf,KAAK,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CACnCe,MAAM,CAACF,KAAK,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAClCE,MAAM,CAACd,KAAK,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAClCa,mBAAmB,CAACpB,OAAO,CAAE5B,UAAU,IAAK;MAC1C,MAAMkD,0BAA0B,GAAGhC,yBAAyB,CAAClB,UAAU,CAAC;MACxE,IAAIkD,0BAA0B,EAAE;QAC9BjB,wBAAwB,CAACkB,IAAI,CAACD,0BAA0B,CAAC;MAC3D;IACF,CAAC,CAAC;IAEF,MAAME,aAAa,GAAG,MAAOC,EAAE,IAAK;MAClCtB,OAAO,GAAGsB,EAAE;MACZP,WAAW,GAAG,MAAMd,uBAAuB,CACzCC,wBAAwB,EACxBC,KAAK,EACLC,KACF,CAAC,CAACmB,eAAe,CAAC;MAClB,IAAIR,WAAW,KAAKS,SAAS,EAAEX,OAAO,CAACE,WAAW,CAAC;IACrD,CAAC;IACD;IACA,MAAMQ,eAAe,GAAG,MAAM5C,0BAA0B,CACtDuB,wBACF,CAAC;IACD,MAAMuB,cAAc,GAAGC,WAAW,CAChC,MAAML,aAAa,CAACI,cAAc,CAAC,EACnC,IACF,CAAC;IAED,IAAIzB,OAAO,EACTe,WAAW,GAAG,MAAMd,uBAAuB,CACzCC,wBAAwB,EACxBC,KAAK,EACLC,KACF,CAAC,CAACmB,eAAe,CAAC;IAEpB,IAAIvB,OAAO,EAAE;MACXS,aAAa,CAACT,OAAO,CAAC;IACxB;IAEA,IAAIe,WAAW,EAAEF,OAAO,CAACE,WAAW,CAAC;IAErCY,UAAU,CAAC,MAAM;MACfb,MAAM,CAACC,WAAW,CAAC;IACrB,CAAC,EAAE,KAAK,CAAC;EACX,CAAC,CAAC;AACJ,CAAC;AAACzD,OAAA,CAAAqD,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|