@cloudflare/realtimekit-react-native 0.0.0 → 0.0.1
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/LICENSE +13 -0
- package/README.md +83 -0
- package/RealtimeKitCore.podspec +19 -0
- package/android/build.gradle +58 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradlew +185 -0
- package/android/gradlew.bat +89 -0
- package/android/src/main/AndroidManifest.xml +23 -0
- package/android/src/main/java/com/reactnativecore/BackgroundTimer/RNBackgroundTimer.java +97 -0
- package/android/src/main/java/com/reactnativecore/Constants.java +14 -0
- package/android/src/main/java/com/reactnativecore/CoreModule.java +49 -0
- package/android/src/main/java/com/reactnativecore/CorePackage.java +34 -0
- package/android/src/main/java/com/reactnativecore/DyteHelperModule.java +268 -0
- package/android/src/main/java/com/reactnativecore/DyteHolder.java +7 -0
- package/android/src/main/java/com/reactnativecore/ForegroundService.java +48 -0
- package/android/src/main/java/com/reactnativecore/NotificationHelper.java +127 -0
- package/android/src/main/java/com/reactnativecore/RNPermissionsModule.java +226 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/AppRTCBluetoothManager.java +637 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/AppRTCProximitySensor.java +133 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/AppRTCUtils.java +41 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/InCallManagerModule.java +1881 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/InCallProximityManager.java +162 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/InCallWakeLockUtils.java +116 -0
- package/android/src/main/java/com/reactnativecore/incallmanager/ThreadUtils.java +39 -0
- package/app.plugin.js +1 -0
- package/ios/BroadcastEventEmitter.h +11 -0
- package/ios/BroadcastEventEmitter.m +72 -0
- package/ios/Core.h +5 -0
- package/ios/Core.m +28 -0
- package/ios/Core.xcodeproj/project.pbxproj +287 -0
- package/ios/DyteRNBackgroundTimer.h +22 -0
- package/ios/DyteRNBackgroundTimer.m +90 -0
- package/ios/DyteRNPermissionHandlerNotifications.h +17 -0
- package/ios/DyteRNPermissionHandlerNotifications.m +127 -0
- package/ios/DyteRNPermissions.h +50 -0
- package/ios/DyteRNPermissions.m +275 -0
- package/ios/DyteScreensharePickerView.h +8 -0
- package/ios/DyteScreensharePickerView.m +27 -0
- package/ios/PrivacyInfo.xcprivacy +60 -0
- package/ios/RNInCallManager.h +16 -0
- package/ios/RNInCallManager.m +1354 -0
- package/ios/permissions/DyteRNPermissionHandlerBluetoothPeripheral.h +4 -0
- package/ios/permissions/DyteRNPermissionHandlerBluetoothPeripheral.m +87 -0
- package/ios/permissions/DyteRNPermissionHandlerCamera.h +5 -0
- package/ios/permissions/DyteRNPermissionHandlerCamera.m +38 -0
- package/ios/permissions/DyteRNPermissionHandlerMicrophone.h +5 -0
- package/ios/permissions/DyteRNPermissionHandlerMicrophone.m +34 -0
- package/ios/permissions/DyteRNPermissionHandlerPhotoLibrary.h +8 -0
- package/ios/permissions/DyteRNPermissionHandlerPhotoLibrary.m +70 -0
- package/ios/screenshare/DyteDarwinNotificationCenter.swift +21 -0
- package/ios/screenshare/DyteScreenshareAtomic.swift +29 -0
- package/ios/screenshare/DyteScreenshareHandler.swift +103 -0
- package/ios/screenshare/DyteScreenshareUploader.swift +139 -0
- package/ios/screenshare/DyteSocketConnection.swift +190 -0
- package/lib/BackgroundHandler.d.ts +20 -0
- package/lib/BackgroundHandler.js +87 -0
- package/lib/LocalMediaError.d.ts +4 -0
- package/lib/LocalMediaError.js +6 -0
- package/lib/LocalMediaHandler.d.ts +118 -0
- package/lib/LocalMediaHandler.js +853 -0
- package/lib/LocalMediaInterfaces.d.ts +76 -0
- package/lib/LocalMediaInterfaces.js +1 -0
- package/lib/LocalMediaUtils.d.ts +93 -0
- package/lib/LocalMediaUtils.js +276 -0
- package/lib/NativeAudioManager.d.ts +16 -0
- package/lib/NativeAudioManager.js +93 -0
- package/lib/PermissionHandler.d.ts +34 -0
- package/lib/PermissionHandler.js +179 -0
- package/lib/ReactContext.d.ts +42 -0
- package/lib/ReactContext.js +96 -0
- package/lib/ReactHooks.d.ts +11 -0
- package/lib/ReactHooks.js +73 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +40 -0
- package/lib/utils/crypto.d.ts +17 -0
- package/lib/utils/crypto.js +82 -0
- package/package.json +51 -4
- package/plugin/build/withDyte.d.ts +25 -0
- package/plugin/build/withDyte.js +100 -0
- package/plugin/src/withDyte.ts +150 -0
- package/plugin/tsconfig.json +10 -0
- package/plugin/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
4
|
+
const MICROPHONE = 'Allow $(PRODUCT_NAME) to access the microphone';
|
|
5
|
+
const CAMERA = 'Allow $(PRODUCT_NAME) to access the camera';
|
|
6
|
+
const BLUETOOTH = 'Allow $(PRODUCT_NAME) to access the bluetooth';
|
|
7
|
+
const BLUETOOTH_ALWAYS = 'Allow $(PRODUCT_NAME) to access the bluetooth';
|
|
8
|
+
const LIBRARY = 'Allow $(PRODUCT_NAME) to access the files';
|
|
9
|
+
/**
|
|
10
|
+
* Adds `NSMicrophoneUsageDescription` and `NSSpeechRecognitionUsageDescription` to the `Info.plist`.
|
|
11
|
+
*
|
|
12
|
+
* @param props.speechRecognitionPermission speech recognition message
|
|
13
|
+
* @param props.microphonePermission microphone permission message
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
const withIosPermissions = (c, { microphonePermission, cameraPermission, libraryPermission, bluetoothPermission, bluetoothAlwaysPermission, } = {}) => {
|
|
17
|
+
return (0, config_plugins_1.withInfoPlist)(c, (config) => {
|
|
18
|
+
if (microphonePermission !== false) {
|
|
19
|
+
config.modResults.NSMicrophoneUsageDescription =
|
|
20
|
+
microphonePermission ||
|
|
21
|
+
config.modResults.NSMicrophoneUsageDescription ||
|
|
22
|
+
MICROPHONE;
|
|
23
|
+
}
|
|
24
|
+
if (cameraPermission !== false) {
|
|
25
|
+
config.modResults.NSCameraUsageDescription =
|
|
26
|
+
cameraPermission ||
|
|
27
|
+
config.modResults.NSCameraUsageDescription ||
|
|
28
|
+
CAMERA;
|
|
29
|
+
}
|
|
30
|
+
if (bluetoothPermission !== false) {
|
|
31
|
+
config.modResults.NSBluetoothPeripheralUsageDescription =
|
|
32
|
+
bluetoothPermission ||
|
|
33
|
+
config.modResults.NSBluetoothPeripheralUsageDescription ||
|
|
34
|
+
BLUETOOTH;
|
|
35
|
+
}
|
|
36
|
+
if (bluetoothAlwaysPermission !== false) {
|
|
37
|
+
config.modResults.NSBluetoothAlwaysUsageDescription =
|
|
38
|
+
bluetoothAlwaysPermission ||
|
|
39
|
+
config.modResults.NSBluetoothAlwaysUsageDescription ||
|
|
40
|
+
BLUETOOTH_ALWAYS;
|
|
41
|
+
}
|
|
42
|
+
if (libraryPermission !== false) {
|
|
43
|
+
config.modResults.NSPhotoLibraryUsageDescription =
|
|
44
|
+
libraryPermission ||
|
|
45
|
+
config.modResults.NSPhotoLibraryUsageDescription ||
|
|
46
|
+
LIBRARY;
|
|
47
|
+
}
|
|
48
|
+
if (config.modResults.UIBackgroundModes === undefined) {
|
|
49
|
+
config.modResults.UIBackgroundModes = ['audio', 'voip'];
|
|
50
|
+
}
|
|
51
|
+
return config;
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Adds the following to the `AndroidManifest.xml`:
|
|
56
|
+
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
57
|
+
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
|
58
|
+
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
|
|
59
|
+
<uses-permission android:name="android.permission.CAMERA"/>
|
|
60
|
+
<uses-permission android:name="android.permission.INTERNET"/>
|
|
61
|
+
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
|
62
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
|
63
|
+
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
|
64
|
+
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
|
65
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
66
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
|
|
67
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
|
68
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
|
|
69
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
70
|
+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
71
|
+
<uses-permission android:name="android.permission.MICROPHONE" />
|
|
72
|
+
*/
|
|
73
|
+
const withAndroidPermissions = (config) => {
|
|
74
|
+
return config_plugins_1.AndroidConfig.Permissions.withPermissions(config, [
|
|
75
|
+
'android.permission.ACCESS_NETWORK_STATE',
|
|
76
|
+
'android.permission.BLUETOOTH',
|
|
77
|
+
'android.permission.CAMERA',
|
|
78
|
+
'android.permission.INTERNET',
|
|
79
|
+
'android.permission.MODIFY_AUDIO_SETTINGS',
|
|
80
|
+
'android.permission.RECORD_AUDIO',
|
|
81
|
+
'android.permission.SYSTEM_ALERT_WINDOW',
|
|
82
|
+
'android.permission.WAKE_LOCK',
|
|
83
|
+
'android.permission.FOREGROUND_SERVICE',
|
|
84
|
+
'android.permission.FOREGROUND_SERVICE_CAMERA',
|
|
85
|
+
'android.permission.FOREGROUND_SERVICE_MICROPHONE',
|
|
86
|
+
'android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION',
|
|
87
|
+
'android.permission.WRITE_EXTERNAL_STORAGE',
|
|
88
|
+
'android.permission.READ_EXTERNAL_STORAGE',
|
|
89
|
+
'android.permission.MICROPHONE',
|
|
90
|
+
]);
|
|
91
|
+
};
|
|
92
|
+
const withVoice = (config, props = {}) => {
|
|
93
|
+
const _props = props ? props : {};
|
|
94
|
+
config = withIosPermissions(config, _props);
|
|
95
|
+
if (_props.microphonePermission !== false) {
|
|
96
|
+
config = withAndroidPermissions(config);
|
|
97
|
+
}
|
|
98
|
+
return config;
|
|
99
|
+
};
|
|
100
|
+
exports.default = (0, config_plugins_1.createRunOncePlugin)(withVoice, '@dytesdk/react-native-core');
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AndroidConfig,
|
|
3
|
+
ConfigPlugin,
|
|
4
|
+
createRunOncePlugin,
|
|
5
|
+
withInfoPlist,
|
|
6
|
+
} from '@expo/config-plugins';
|
|
7
|
+
|
|
8
|
+
const MICROPHONE = 'Allow $(PRODUCT_NAME) to access the microphone';
|
|
9
|
+
const CAMERA = 'Allow $(PRODUCT_NAME) to access the camera';
|
|
10
|
+
const BLUETOOTH = 'Allow $(PRODUCT_NAME) to access the bluetooth';
|
|
11
|
+
const BLUETOOTH_ALWAYS = 'Allow $(PRODUCT_NAME) to access the bluetooth';
|
|
12
|
+
const LIBRARY = 'Allow $(PRODUCT_NAME) to access the files';
|
|
13
|
+
|
|
14
|
+
export type Props = {
|
|
15
|
+
/**
|
|
16
|
+
* `NSMicrophoneUsageDescription` message.
|
|
17
|
+
*/
|
|
18
|
+
microphonePermission?: string | false;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* `NSCameraUsageDescription` message.
|
|
22
|
+
*/
|
|
23
|
+
cameraPermission?: string | false;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* `NSBluetoothPeripheralUsageDescription` message.
|
|
27
|
+
*/
|
|
28
|
+
bluetoothPermission?: string | false;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* `NSBluetoothPeripheralUsageDescription` message.
|
|
32
|
+
*/
|
|
33
|
+
bluetoothAlwaysPermission?: string | false;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* `NSPhotoLibraryUsageDescription` message.
|
|
37
|
+
*/
|
|
38
|
+
libraryPermission?: string | false;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Adds `NSMicrophoneUsageDescription` and `NSSpeechRecognitionUsageDescription` to the `Info.plist`.
|
|
43
|
+
*
|
|
44
|
+
* @param props.speechRecognitionPermission speech recognition message
|
|
45
|
+
* @param props.microphonePermission microphone permission message
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
const withIosPermissions: ConfigPlugin<Props> = (
|
|
49
|
+
c,
|
|
50
|
+
{
|
|
51
|
+
microphonePermission,
|
|
52
|
+
cameraPermission,
|
|
53
|
+
libraryPermission,
|
|
54
|
+
bluetoothPermission,
|
|
55
|
+
bluetoothAlwaysPermission,
|
|
56
|
+
} = {}
|
|
57
|
+
) => {
|
|
58
|
+
return withInfoPlist(c, (config) => {
|
|
59
|
+
if (microphonePermission !== false) {
|
|
60
|
+
config.modResults.NSMicrophoneUsageDescription =
|
|
61
|
+
microphonePermission ||
|
|
62
|
+
config.modResults.NSMicrophoneUsageDescription ||
|
|
63
|
+
MICROPHONE;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (cameraPermission !== false) {
|
|
67
|
+
config.modResults.NSCameraUsageDescription =
|
|
68
|
+
cameraPermission ||
|
|
69
|
+
config.modResults.NSCameraUsageDescription ||
|
|
70
|
+
CAMERA;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (bluetoothPermission !== false) {
|
|
74
|
+
config.modResults.NSBluetoothPeripheralUsageDescription =
|
|
75
|
+
bluetoothPermission ||
|
|
76
|
+
config.modResults.NSBluetoothPeripheralUsageDescription ||
|
|
77
|
+
BLUETOOTH;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (bluetoothAlwaysPermission !== false) {
|
|
81
|
+
config.modResults.NSBluetoothAlwaysUsageDescription =
|
|
82
|
+
bluetoothAlwaysPermission ||
|
|
83
|
+
config.modResults.NSBluetoothAlwaysUsageDescription ||
|
|
84
|
+
BLUETOOTH_ALWAYS;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (libraryPermission !== false) {
|
|
88
|
+
config.modResults.NSPhotoLibraryUsageDescription =
|
|
89
|
+
libraryPermission ||
|
|
90
|
+
config.modResults.NSPhotoLibraryUsageDescription ||
|
|
91
|
+
LIBRARY;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (config.modResults.UIBackgroundModes === undefined) {
|
|
95
|
+
config.modResults.UIBackgroundModes = ['audio', 'voip'];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return config;
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Adds the following to the `AndroidManifest.xml`:
|
|
104
|
+
* <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
105
|
+
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
|
106
|
+
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
|
|
107
|
+
<uses-permission android:name="android.permission.CAMERA"/>
|
|
108
|
+
<uses-permission android:name="android.permission.INTERNET"/>
|
|
109
|
+
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
|
110
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
|
111
|
+
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
|
112
|
+
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
|
113
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
114
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
|
|
115
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
|
|
116
|
+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
|
|
117
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
118
|
+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
|
119
|
+
<uses-permission android:name="android.permission.MICROPHONE" />
|
|
120
|
+
*/
|
|
121
|
+
const withAndroidPermissions: ConfigPlugin = (config) => {
|
|
122
|
+
return AndroidConfig.Permissions.withPermissions(config, [
|
|
123
|
+
'android.permission.ACCESS_NETWORK_STATE',
|
|
124
|
+
'android.permission.BLUETOOTH',
|
|
125
|
+
'android.permission.CAMERA',
|
|
126
|
+
'android.permission.INTERNET',
|
|
127
|
+
'android.permission.MODIFY_AUDIO_SETTINGS',
|
|
128
|
+
'android.permission.RECORD_AUDIO',
|
|
129
|
+
'android.permission.SYSTEM_ALERT_WINDOW',
|
|
130
|
+
'android.permission.WAKE_LOCK',
|
|
131
|
+
'android.permission.FOREGROUND_SERVICE',
|
|
132
|
+
'android.permission.FOREGROUND_SERVICE_CAMERA',
|
|
133
|
+
'android.permission.FOREGROUND_SERVICE_MICROPHONE',
|
|
134
|
+
'android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION',
|
|
135
|
+
'android.permission.WRITE_EXTERNAL_STORAGE',
|
|
136
|
+
'android.permission.READ_EXTERNAL_STORAGE',
|
|
137
|
+
'android.permission.MICROPHONE',
|
|
138
|
+
]);
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const withVoice: ConfigPlugin<Props | void> = (config, props = {}) => {
|
|
142
|
+
const _props = props ? props : {};
|
|
143
|
+
config = withIosPermissions(config, _props);
|
|
144
|
+
if (_props.microphonePermission !== false) {
|
|
145
|
+
config = withAndroidPermissions(config);
|
|
146
|
+
}
|
|
147
|
+
return config;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export default createRunOncePlugin(withVoice, '@dytesdk/react-native-core');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/withDyte.ts"],"version":"5.8.3"}
|