@arfuhad/react-native-smart-camera 0.1.2 → 0.1.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/CHANGELOG.md +75 -3
- package/README.md +259 -206
- package/android/build.gradle +14 -39
- package/android/src/main/java/com/smartcamera/FaceDetectorFrameProcessorPlugin.kt +324 -0
- package/android/src/main/java/com/smartcamera/SmartCameraPackage.kt +28 -0
- package/build/detection/blinkProcessor.js +2 -1
- package/build/detection/blinkProcessor.js.map +1 -1
- package/build/detection/faceDetector.d.ts +4 -4
- package/build/detection/faceDetector.d.ts.map +1 -1
- package/build/detection/faceDetector.js +31 -11
- package/build/detection/faceDetector.js.map +1 -1
- package/build/detection/index.d.ts +1 -1
- package/build/detection/index.d.ts.map +1 -1
- package/build/detection/index.js +1 -1
- package/build/detection/index.js.map +1 -1
- package/build/detection/staticImageDetector.d.ts +11 -11
- package/build/detection/staticImageDetector.d.ts.map +1 -1
- package/build/detection/staticImageDetector.js +19 -23
- package/build/detection/staticImageDetector.js.map +1 -1
- package/build/hooks/index.d.ts +6 -0
- package/build/hooks/index.d.ts.map +1 -1
- package/build/hooks/index.js +8 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/useBlinkDetection.d.ts +27 -16
- package/build/hooks/useBlinkDetection.d.ts.map +1 -1
- package/build/hooks/useBlinkDetection.js +63 -37
- package/build/hooks/useBlinkDetection.js.map +1 -1
- package/build/hooks/useFaceDetection.js +3 -2
- package/build/hooks/useFaceDetection.js.map +1 -1
- package/build/hooks/useFaceDetector.d.ts +123 -0
- package/build/hooks/useFaceDetector.d.ts.map +1 -0
- package/build/hooks/useFaceDetector.js +133 -0
- package/build/hooks/useFaceDetector.js.map +1 -0
- package/build/hooks/useSmartCamera.js.map +1 -1
- package/build/hooks/useSmartCameraWebRTC.d.ts +3 -5
- package/build/hooks/useSmartCameraWebRTC.d.ts.map +1 -1
- package/build/hooks/useSmartCameraWebRTC.js +19 -87
- package/build/hooks/useSmartCameraWebRTC.js.map +1 -1
- package/build/hooks/useWebRTC.d.ts +88 -0
- package/build/hooks/useWebRTC.d.ts.map +1 -0
- package/build/hooks/useWebRTC.js +394 -0
- package/build/hooks/useWebRTC.js.map +1 -0
- package/build/hooks/useWebRTCWithDetection.d.ts +89 -0
- package/build/hooks/useWebRTCWithDetection.d.ts.map +1 -0
- package/build/hooks/useWebRTCWithDetection.js +131 -0
- package/build/hooks/useWebRTCWithDetection.js.map +1 -0
- package/build/index.d.ts +24 -10
- package/build/index.d.ts.map +1 -1
- package/build/index.js +38 -13
- package/build/index.js.map +1 -1
- package/build/types.d.ts +28 -12
- package/build/types.d.ts.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils/index.js.map +1 -1
- package/build/webrtc/WebRTCBridge.d.ts +3 -0
- package/build/webrtc/WebRTCBridge.d.ts.map +1 -1
- package/build/webrtc/WebRTCBridge.js +12 -15
- package/build/webrtc/WebRTCBridge.js.map +1 -1
- package/build/webrtc/WebRTCManager.d.ts +148 -0
- package/build/webrtc/WebRTCManager.d.ts.map +1 -0
- package/build/webrtc/WebRTCManager.js +383 -0
- package/build/webrtc/WebRTCManager.js.map +1 -0
- package/build/webrtc/index.d.ts +3 -1
- package/build/webrtc/index.d.ts.map +1 -1
- package/build/webrtc/index.js +5 -0
- package/build/webrtc/index.js.map +1 -1
- package/build/webrtc/types.d.ts +212 -4
- package/build/webrtc/types.d.ts.map +1 -1
- package/build/webrtc/types.js +34 -1
- package/build/webrtc/types.js.map +1 -1
- package/ios/FaceDetectorFrameProcessorPlugin.m +11 -0
- package/ios/FaceDetectorFrameProcessorPlugin.swift +304 -0
- package/package.json +11 -11
- package/react-native-smart-camera.podspec +32 -0
- package/src/detection/blinkProcessor.ts +127 -0
- package/src/detection/faceDetector.ts +78 -0
- package/src/detection/index.ts +3 -0
- package/src/detection/staticImageDetector.ts +53 -0
- package/src/hooks/index.ts +26 -0
- package/src/hooks/useBlinkDetection.ts +127 -0
- package/src/hooks/useFaceDetection.ts +105 -0
- package/src/hooks/useFaceDetector.ts +191 -0
- package/src/hooks/useSmartCamera.ts +83 -0
- package/src/hooks/useSmartCameraWebRTC.ts +120 -0
- package/src/hooks/useWebRTC.ts +453 -0
- package/src/hooks/useWebRTCWithDetection.ts +181 -0
- package/src/index.ts +170 -0
- package/src/types.ts +636 -0
- package/src/utils/index.ts +355 -0
- package/src/webrtc/WebRTCBridge.ts +127 -0
- package/src/webrtc/WebRTCManager.ts +453 -0
- package/src/webrtc/index.ts +50 -0
- package/src/webrtc/types.ts +361 -0
- package/android/build/.transforms/e0a0b120a9ccc3a8de4f5784bc36b161/results.bin +0 -1
- package/android/build/.transforms/e0a0b120a9ccc3a8de4f5784bc36b161/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/generated/source/buildConfig/debug/expo/modules/smartcamera/BuildConfig.java +0 -10
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -7
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +0 -18
- package/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +0 -6
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
- package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
- package/android/build/intermediates/java_res/debug/out/META-INF/arfuhad-react-native-smart-camera_debug.kotlin_module +0 -0
- package/android/build/intermediates/javac/debug/classes/expo/modules/smartcamera/BuildConfig.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +0 -2
- package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +0 -7
- package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +0 -7
- package/android/build/intermediates/navigation_json/debug/navigation.json +0 -1
- package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +0 -1
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -16
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/arfuhad-react-native-smart-camera_debug.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/DetectedFace.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/FaceBounds.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/FaceContoursData.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/FaceDetectionOptions.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/FaceLandmarksData.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/ImageLoader$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/ImageLoader$loadImage$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/ImageLoader.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/MLKitFaceDetector$detectFaces$2$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/MLKitFaceDetector$detectFaces$2$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/MLKitFaceDetector.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/MLKitFaceDetectorKt$sam$com_google_android_gms_tasks_OnSuccessListener$0.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/MLKitFaceDetectorKt.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/PointData.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$1$1$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$1$3$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$1$4$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunctionWithPromise$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunctionWithPromise$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$AsyncFunctionWithPromise$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$Function$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$Function$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$Function$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$Function$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$FunctionWithoutArgs$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$FunctionWithoutArgs$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$OnActivityEntersBackground$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$OnActivityEntersForeground$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule$definition$lambda$10$$inlined$OnDestroy$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraModule.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/SmartCameraView.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/WebRTCFrameBridge$Companion.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/smartcamera/WebRTCFrameBridge.class +0 -0
- package/android/src/main/java/expo/modules/smartcamera/ImageLoader.kt +0 -106
- package/android/src/main/java/expo/modules/smartcamera/MLKitFaceDetector.kt +0 -273
- package/android/src/main/java/expo/modules/smartcamera/SmartCameraModule.kt +0 -205
- package/android/src/main/java/expo/modules/smartcamera/SmartCameraView.kt +0 -153
- package/android/src/main/java/expo/modules/smartcamera/WebRTCFrameBridge.kt +0 -184
- package/build/SmartCamera.d.ts +0 -17
- package/build/SmartCamera.d.ts.map +0 -1
- package/build/SmartCamera.js +0 -270
- package/build/SmartCamera.js.map +0 -1
- package/build/SmartCameraModule.d.ts +0 -112
- package/build/SmartCameraModule.d.ts.map +0 -1
- package/build/SmartCameraModule.js +0 -121
- package/build/SmartCameraModule.js.map +0 -1
- package/build/SmartCameraView.d.ts +0 -8
- package/build/SmartCameraView.d.ts.map +0 -1
- package/build/SmartCameraView.js +0 -7
- package/build/SmartCameraView.js.map +0 -1
- package/expo-module.config.json +0 -9
- package/ios/MLKitFaceDetector.swift +0 -310
- package/ios/SmartCamera.podspec +0 -33
- package/ios/SmartCameraModule.swift +0 -225
- package/ios/SmartCameraView.swift +0 -146
- package/ios/WebRTCFrameBridge.swift +0 -150
package/build/index.d.ts
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
1
|
+
/**
|
|
2
|
+
* @arfuhad/react-native-smart-camera
|
|
3
|
+
*
|
|
4
|
+
* VisionCamera frame processor plugin for face detection, blink detection, and WebRTC streaming.
|
|
5
|
+
* API designed to match react-native-vision-camera-face-detector.
|
|
6
|
+
*/
|
|
7
|
+
export { detectFaces, isFaceDetectorAvailable } from './detection/faceDetector';
|
|
8
|
+
export { useFaceDetector, useFaceDetectorWithCallback, type UseFaceDetectorOptions, type UseFaceDetectorResult, type UseFaceDetectorWithCallbackOptions, type FaceDetectionCallback, } from './hooks/useFaceDetector';
|
|
9
|
+
export type { PerformanceMode, LandmarkMode, ContourMode, ClassificationMode, CameraFacing, FaceDetectionOptions, FrameProcessorOptions, StaticImageOptions, FaceDetectionConfig, Point, Bounds, FaceLandmarks, ContourType, FaceContours, Face, BlinkEvent, EyeStatus, EyeStatusResult, WebRTCMode, VideoConstraints as WebRTCVideoConstraintsLegacy, WebRTCConfig, SmartCameraProps, SmartCameraErrorCode, SmartCameraError, UseSmartCameraWebRTCResult, UseFaceDetectionResult, UseBlinkDetectionResult, UseSmartCameraResult, CameraDevice, Orientation, OutputOrientation, } from './types';
|
|
10
|
+
export { useBlinkDetection, type UseBlinkDetectionOptions } from './hooks/useBlinkDetection';
|
|
10
11
|
export { processBlinkFromFaces, resetBlinkStates, getEyeState } from './detection/blinkProcessor';
|
|
11
|
-
export {
|
|
12
|
+
export { useSmartCamera, getAvailableCameras } from './hooks/useSmartCamera';
|
|
13
|
+
export { useFaceDetection, type UseFaceDetectionOptions } from './hooks/useFaceDetection';
|
|
14
|
+
export { detectFacesInImage } from './detection/staticImageDetector';
|
|
12
15
|
export { createFpsLimiter, debounce, throttle, createObjectPool, createSmartCameraError, safeExecute, validateFaceDetectionOptions, createPerformanceMonitor, } from './utils';
|
|
16
|
+
export { useWebRTC } from './hooks/useWebRTC';
|
|
17
|
+
export type { UseWebRTCOptions, UseWebRTCResult } from './hooks/useWebRTC';
|
|
18
|
+
export { useWebRTCWithDetection } from './hooks/useWebRTCWithDetection';
|
|
19
|
+
export type { UseWebRTCWithDetectionOptions } from './hooks/useWebRTCWithDetection';
|
|
20
|
+
export type { UseWebRTCWithDetectionResult } from './hooks/useWebRTCWithDetection';
|
|
21
|
+
export { WebRTCManager, getWebRTCManager, createWebRTCManager, isWebRTCAvailable, } from './webrtc/WebRTCManager';
|
|
22
|
+
export type { ICEServer, PeerConnectionConfig, VideoConstraints, AudioConstraints, MediaConstraints, CallState, WebRTCConnectionState, ICEConnectionState, ICEGatheringState, SignalingState, VideoFrameFormat, WebRTCVideoSourceConfig, WebRTCStreamStats, WebRTCQualitySettings, WebRTCStreamEvent, ICECandidateEvent, SessionDescription, } from './webrtc/types';
|
|
23
|
+
export { DEFAULT_ICE_SERVERS, DEFAULT_PEER_CONNECTION_CONFIG, DEFAULT_MEDIA_CONSTRAINTS, } from './webrtc/types';
|
|
24
|
+
/** @deprecated Use useWebRTC instead */
|
|
25
|
+
export { useSmartCameraWebRTC, type UseSmartCameraWebRTCOptions } from './hooks/useSmartCameraWebRTC';
|
|
26
|
+
/** @deprecated Use WebRTCManager instead */
|
|
13
27
|
export { WebRTCBridge, getWebRTCBridge } from './webrtc';
|
|
14
28
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,kCAAkC,EACvC,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AAMjC,YAAY,EAEV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EAGnB,KAAK,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,YAAY,EACZ,IAAI,EAGJ,UAAU,EACV,SAAS,EACT,eAAe,EAGf,UAAU,EACV,gBAAgB,IAAI,4BAA4B,EAChD,YAAY,EAGZ,gBAAgB,EAGhB,oBAAoB,EACpB,gBAAgB,EAGhB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EAGpB,YAAY,EAGZ,WAAW,EACX,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGlG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,SAAS,CAAC;AAOjB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACpF,YAAY,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAGnF,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EAEV,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAGhB,SAAS,EACT,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EAGd,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EAGrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAMxB,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAE,KAAK,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AACtG,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,20 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @arfuhad/react-native-smart-camera
|
|
3
|
+
*
|
|
4
|
+
* VisionCamera frame processor plugin for face detection, blink detection, and WebRTC streaming.
|
|
5
|
+
* API designed to match react-native-vision-camera-face-detector.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// PRIMARY EXPORTS (matching react-native-vision-camera-face-detector API)
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Frame processor function - use directly in useFrameProcessor
|
|
11
|
+
export { detectFaces, isFaceDetectorAvailable } from './detection/faceDetector';
|
|
12
|
+
// Hook for face detection (matches reference package API)
|
|
13
|
+
export { useFaceDetector, useFaceDetectorWithCallback, } from './hooks/useFaceDetector';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// ADDITIONAL FEATURES (our package only)
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// Blink/Eye detection
|
|
9
18
|
export { useBlinkDetection } from './hooks/useBlinkDetection';
|
|
10
|
-
export { useSmartCameraWebRTC } from './hooks/useSmartCameraWebRTC';
|
|
11
|
-
// Frame processors
|
|
12
|
-
export { detectFaces } from './detection/faceDetector';
|
|
13
19
|
export { processBlinkFromFaces, resetBlinkStates, getEyeState } from './detection/blinkProcessor';
|
|
20
|
+
// Camera management hooks
|
|
21
|
+
export { useSmartCamera, getAvailableCameras } from './hooks/useSmartCamera';
|
|
22
|
+
export { useFaceDetection } from './hooks/useFaceDetection';
|
|
14
23
|
// Static image detection
|
|
15
|
-
export { detectFacesInImage
|
|
24
|
+
export { detectFacesInImage } from './detection/staticImageDetector';
|
|
16
25
|
// Utilities
|
|
17
26
|
export { createFpsLimiter, debounce, throttle, createObjectPool, createSmartCameraError, safeExecute, validateFaceDetectionOptions, createPerformanceMonitor, } from './utils';
|
|
18
|
-
//
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// WEBRTC VIDEO CALLING (requires react-native-webrtc)
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Main WebRTC hook
|
|
31
|
+
export { useWebRTC } from './hooks/useWebRTC';
|
|
32
|
+
// Combined WebRTC + Face Detection hook
|
|
33
|
+
export { useWebRTCWithDetection } from './hooks/useWebRTCWithDetection';
|
|
34
|
+
// WebRTC Manager class
|
|
35
|
+
export { WebRTCManager, getWebRTCManager, createWebRTCManager, isWebRTCAvailable, } from './webrtc/WebRTCManager';
|
|
36
|
+
// Default configurations
|
|
37
|
+
export { DEFAULT_ICE_SERVERS, DEFAULT_PEER_CONNECTION_CONFIG, DEFAULT_MEDIA_CONSTRAINTS, } from './webrtc/types';
|
|
38
|
+
// =============================================================================
|
|
39
|
+
// LEGACY EXPORTS (deprecated - kept for backwards compatibility)
|
|
40
|
+
// =============================================================================
|
|
41
|
+
/** @deprecated Use useWebRTC instead */
|
|
42
|
+
export { useSmartCameraWebRTC } from './hooks/useSmartCameraWebRTC';
|
|
43
|
+
/** @deprecated Use WebRTCManager instead */
|
|
19
44
|
export { WebRTCBridge, getWebRTCBridge } from './webrtc';
|
|
20
45
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAEhF,+DAA+D;AAC/D,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,0DAA0D;AAC1D,OAAO,EACL,eAAe,EACf,2BAA2B,GAK5B,MAAM,yBAAyB,CAAC;AAyDjC,gFAAgF;AAChF,yCAAyC;AACzC,gFAAgF;AAEhF,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAiC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAElG,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAgC,MAAM,0BAA0B,CAAC;AAE1F,yBAAyB;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,YAAY;AACZ,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,SAAS,CAAC;AAEjB,gFAAgF;AAChF,sDAAsD;AACtD,gFAAgF;AAEhF,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,wCAAwC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAIxE,uBAAuB;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AA8BhC,yBAAyB;AACzB,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAEhF,wCAAwC;AACxC,OAAO,EAAE,oBAAoB,EAAoC,MAAM,8BAA8B,CAAC;AACtG,4CAA4C;AAC5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
|
package/build/types.d.ts
CHANGED
|
@@ -396,22 +396,38 @@ export interface UseFaceDetectionResult {
|
|
|
396
396
|
*/
|
|
397
397
|
isDetecting: boolean;
|
|
398
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Eye status for a single eye
|
|
401
|
+
*/
|
|
402
|
+
export interface EyeStatus {
|
|
403
|
+
/** Eye open probability (0-1, where 0 = closed, 1 = fully open) */
|
|
404
|
+
openProbability: number;
|
|
405
|
+
/** Whether the eye is considered closed based on the threshold */
|
|
406
|
+
isClosed: boolean;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Current eye status for both eyes
|
|
410
|
+
*/
|
|
411
|
+
export interface EyeStatusResult {
|
|
412
|
+
/** Left eye status */
|
|
413
|
+
leftEye: EyeStatus;
|
|
414
|
+
/** Right eye status */
|
|
415
|
+
rightEye: EyeStatus;
|
|
416
|
+
/** Face tracking ID */
|
|
417
|
+
faceId?: number;
|
|
418
|
+
/** Timestamp when this status was captured */
|
|
419
|
+
timestamp: number;
|
|
420
|
+
}
|
|
399
421
|
/**
|
|
400
422
|
* Return type for useBlinkDetection hook
|
|
401
423
|
*/
|
|
402
424
|
export interface UseBlinkDetectionResult {
|
|
403
|
-
/**
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
/**
|
|
408
|
-
|
|
409
|
-
*/
|
|
410
|
-
blinkCount: number;
|
|
411
|
-
/**
|
|
412
|
-
* Reset blink count
|
|
413
|
-
*/
|
|
414
|
-
resetCount: () => void;
|
|
425
|
+
/** Current eye status (null if no face detected) */
|
|
426
|
+
eyeStatus: EyeStatusResult | null;
|
|
427
|
+
/** Process faces to get eye status - call this with detected faces */
|
|
428
|
+
processEyeStatus: (faces: Face[]) => void;
|
|
429
|
+
/** Reset eye status */
|
|
430
|
+
reset: () => void;
|
|
415
431
|
}
|
|
416
432
|
/**
|
|
417
433
|
* Camera device information
|
package/build/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/build/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ViewStyle } from 'react-native';\n\n// ============================================================================\n// Face Detection Options\n// ============================================================================\n\n/**\n * Performance mode for face detection\n * - 'fast': Favor speed over accuracy\n * - 'accurate': Favor accuracy over speed\n */\nexport type PerformanceMode = 'fast' | 'accurate';\n\n/**\n * Mode for detecting facial landmarks\n * - 'none': Don't detect landmarks\n * - 'all': Detect all landmarks (eyes, ears, nose, cheeks, mouth)\n */\nexport type LandmarkMode = 'none' | 'all';\n\n/**\n * Mode for detecting facial contours\n * - 'none': Don't detect contours\n * - 'all': Detect contours (only for most prominent face)\n */\nexport type ContourMode = 'none' | 'all';\n\n/**\n * Mode for face classification\n * - 'none': Don't classify faces\n * - 'all': Classify faces (smiling, eyes open)\n */\nexport type ClassificationMode = 'none' | 'all';\n\n/**\n * Camera facing direction\n */\nexport type CameraFacing = 'front' | 'back';\n\n/**\n * Common face detection options shared between frame processor and static images\n */\nexport interface FaceDetectionOptions {\n /**\n * Favor speed or accuracy when detecting faces\n * @default 'fast'\n */\n performanceMode?: PerformanceMode;\n\n /**\n * Whether to identify facial landmarks: eyes, ears, nose, cheeks, mouth\n * @default 'none'\n */\n landmarkMode?: LandmarkMode;\n\n /**\n * Whether to detect contours of facial features.\n * Contours are detected for only the most prominent face in an image.\n * @default 'none'\n */\n contourMode?: ContourMode;\n\n /**\n * Whether to classify faces into categories such as 'smiling' and 'eyes open'\n * @default 'none'\n */\n classificationMode?: ClassificationMode;\n\n /**\n * Sets the smallest desired face size, expressed as the ratio\n * of the width of the head to width of the image.\n * @default 0.15\n */\n minFaceSize?: number;\n\n /**\n * Whether to assign faces an ID to track faces across images.\n * Note: When contour detection is enabled, only one face is detected,\n * so face tracking doesn't produce useful results. Don't enable both\n * contour detection and face tracking for best performance.\n * @default false\n */\n trackingEnabled?: boolean;\n}\n\n/**\n * Frame processor specific options\n */\nexport interface FrameProcessorOptions extends FaceDetectionOptions {\n /**\n * Current active camera\n * @default 'front'\n */\n cameraFacing?: CameraFacing;\n\n /**\n * Should handle auto scale (face bounds, contour and landmarks) and rotation\n * on native side? If disabled, all detection results will be relative to frame\n * coordinates, not to screen/preview.\n * You shouldn't use this option if you want to draw on screen using Skia Frame Processor.\n * @default false\n */\n autoMode?: boolean;\n\n /**\n * Required if you want to use autoMode. Screen width for coordinate scaling.\n * You must handle your own logic to get screen sizes, with or without statusbar size, etc.\n * @default 1.0\n */\n windowWidth?: number;\n\n /**\n * Required if you want to use autoMode. Screen height for coordinate scaling.\n * You must handle your own logic to get screen sizes, with or without statusbar size, etc.\n * @default 1.0\n */\n windowHeight?: number;\n}\n\n/**\n * Static image face detection options\n */\nexport interface StaticImageOptions extends FaceDetectionOptions {\n /**\n * Image source for static face detection.\n * Can be a require() result (number), a URI string, or an object with uri.\n */\n image: number | string | { uri: string };\n}\n\n// ============================================================================\n// Face Detection Results\n// ============================================================================\n\n/**\n * 2D point coordinates\n */\nexport interface Point {\n x: number;\n y: number;\n}\n\n/**\n * Bounding rectangle\n */\nexport interface Bounds {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/**\n * Facial landmarks detected by ML Kit\n */\nexport interface FaceLandmarks {\n leftEye?: Point;\n rightEye?: Point;\n leftEar?: Point;\n rightEar?: Point;\n leftCheek?: Point;\n rightCheek?: Point;\n noseBase?: Point;\n leftMouth?: Point;\n rightMouth?: Point;\n bottomMouth?: Point;\n}\n\n/**\n * Face contour types\n */\nexport type ContourType =\n | 'face'\n | 'leftEyebrowTop'\n | 'leftEyebrowBottom'\n | 'rightEyebrowTop'\n | 'rightEyebrowBottom'\n | 'leftEye'\n | 'rightEye'\n | 'upperLipTop'\n | 'upperLipBottom'\n | 'lowerLipTop'\n | 'lowerLipBottom'\n | 'noseBridge'\n | 'noseBottom'\n | 'leftCheek'\n | 'rightCheek';\n\n/**\n * Facial contours detected by ML Kit\n */\nexport interface FaceContours {\n [key: string]: Point[];\n}\n\n/**\n * Detected face data\n */\nexport interface Face {\n /**\n * Bounding box of the detected face\n */\n bounds: Bounds;\n\n /**\n * Roll angle of the face (rotation around front-to-back axis)\n */\n rollAngle?: number;\n\n /**\n * Pitch angle of the face (rotation around left-to-right axis)\n */\n pitchAngle?: number;\n\n /**\n * Yaw angle of the face (rotation around top-to-bottom axis)\n */\n yawAngle?: number;\n\n /**\n * Facial landmarks (when landmarkMode is 'all')\n */\n landmarks?: FaceLandmarks;\n\n /**\n * Facial contours (when contourMode is 'all')\n */\n contours?: FaceContours;\n\n /**\n * Probability that the face is smiling (0.0 - 1.0)\n * Only available when classificationMode is 'all'\n */\n smilingProbability?: number;\n\n /**\n * Probability that the left eye is open (0.0 - 1.0)\n * Only available when classificationMode is 'all'\n */\n leftEyeOpenProbability?: number;\n\n /**\n * Probability that the right eye is open (0.0 - 1.0)\n * Only available when classificationMode is 'all'\n */\n rightEyeOpenProbability?: number;\n\n /**\n * Tracking ID for this face (when trackingEnabled is true)\n */\n trackingId?: number;\n}\n\n// ============================================================================\n// Blink Detection\n// ============================================================================\n\n/**\n * Blink detection event\n */\nexport interface BlinkEvent {\n /**\n * Timestamp when the blink was detected\n */\n timestamp: number;\n\n /**\n * Left eye open probability (0.0 - 1.0)\n */\n leftEyeOpen: number;\n\n /**\n * Right eye open probability (0.0 - 1.0)\n */\n rightEyeOpen: number;\n\n /**\n * Whether a blink was detected\n */\n isBlink: boolean;\n\n /**\n * Face tracking ID (when trackingEnabled is true)\n */\n faceId?: number;\n}\n\n// ============================================================================\n// WebRTC Configuration\n// ============================================================================\n\n/**\n * WebRTC mode\n * - 'call': Video calling (1:1 or group)\n * - 'stream': Live streaming to a server\n */\nexport type WebRTCMode = 'call' | 'stream';\n\n/**\n * WebRTC video constraints\n */\nexport interface VideoConstraints {\n width?: number;\n height?: number;\n frameRate?: number;\n}\n\n/**\n * WebRTC configuration\n */\nexport interface WebRTCConfig {\n /**\n * Whether WebRTC is enabled\n */\n enabled: boolean;\n\n /**\n * RTCPeerConnection instance\n */\n peerConnection?: RTCPeerConnection;\n\n /**\n * WebRTC mode (call or stream)\n * @default 'call'\n */\n mode?: WebRTCMode;\n\n /**\n * Video constraints for the stream\n */\n videoConstraints?: VideoConstraints;\n}\n\n// ============================================================================\n// Face Detection Configuration (for SmartCamera component)\n// ============================================================================\n\n/**\n * Face detection configuration for SmartCamera component\n */\nexport interface FaceDetectionConfig extends FaceDetectionOptions {\n /**\n * Whether face detection is enabled\n * @default false\n */\n enabled?: boolean;\n\n /**\n * Handle auto scale on native side\n * @default false\n */\n autoMode?: boolean;\n\n /**\n * Screen width for coordinate scaling (required when autoMode is true)\n * @default 1.0\n */\n windowWidth?: number;\n\n /**\n * Screen height for coordinate scaling (required when autoMode is true)\n * @default 1.0\n */\n windowHeight?: number;\n}\n\n// ============================================================================\n// SmartCamera Component Props\n// ============================================================================\n\n/**\n * SmartCamera component props\n */\nexport interface SmartCameraProps {\n /**\n * Camera facing direction\n * @default 'front'\n */\n camera?: CameraFacing;\n\n /**\n * Target frame rate for the camera\n * @default 30\n */\n fps?: number;\n\n /**\n * Style for the camera view\n */\n style?: ViewStyle;\n\n /**\n * Face detection configuration\n */\n faceDetection?: FaceDetectionConfig;\n\n /**\n * Whether blink detection is enabled\n * @default false\n */\n blinkDetection?: boolean;\n\n /**\n * Callback when a blink is detected\n */\n onBlinkDetected?: (event: BlinkEvent) => void;\n\n /**\n * Callback when faces are detected\n */\n onFaceDetected?: (faces: Face[]) => void;\n\n /**\n * WebRTC configuration for streaming\n */\n webrtc?: WebRTCConfig;\n\n /**\n * Whether the camera is active\n * @default true\n */\n isActive?: boolean;\n\n /**\n * Callback when camera is ready\n */\n onReady?: () => void;\n\n /**\n * Callback when an error occurs\n */\n onError?: (error: SmartCameraError) => void;\n}\n\n// ============================================================================\n// Error Handling\n// ============================================================================\n\n/**\n * Error codes for SmartCamera\n */\nexport type SmartCameraErrorCode =\n | 'CAMERA_UNAVAILABLE'\n | 'PERMISSION_DENIED'\n | 'WEBRTC_ERROR'\n | 'ML_KIT_ERROR'\n | 'FRAME_PROCESSOR_ERROR'\n | 'UNKNOWN_ERROR';\n\n/**\n * SmartCamera error\n */\nexport interface SmartCameraError {\n /**\n * Error code\n */\n code: SmartCameraErrorCode;\n\n /**\n * Human-readable error message\n */\n message: string;\n\n /**\n * Original native error (if available)\n */\n nativeError?: Error;\n}\n\n// ============================================================================\n// Hook Return Types\n// ============================================================================\n\n/**\n * Return type for useSmartCameraWebRTC hook\n */\nexport interface UseSmartCameraWebRTCResult {\n /**\n * The video track for WebRTC\n */\n videoTrack: MediaStreamTrack | null;\n\n /**\n * Start streaming to the peer connection\n */\n startStreaming: () => void;\n\n /**\n * Stop streaming\n */\n stopStreaming: () => void;\n\n /**\n * Switch between front and back camera\n */\n switchCamera: () => void;\n\n /**\n * Whether streaming is active\n */\n isStreaming: boolean;\n}\n\n/**\n * Return type for useFaceDetection hook\n */\nexport interface UseFaceDetectionResult {\n /**\n * Currently detected faces\n */\n faces: Face[];\n\n /**\n * Whether face detection is active/detecting\n */\n isDetecting: boolean;\n}\n\n/**\n * Return type for useBlinkDetection hook\n */\nexport interface UseBlinkDetectionResult {\n /**\n * Last blink event\n */\n lastBlink: BlinkEvent | null;\n\n /**\n * Total blink count\n */\n blinkCount: number;\n\n /**\n * Reset blink count\n */\n resetCount: () => void;\n}\n\n// ============================================================================\n// Camera Device Types\n// ============================================================================\n\n/**\n * Camera device information\n */\nexport interface CameraDevice {\n /**\n * Unique identifier for the camera device\n */\n id: string;\n\n /**\n * Human-readable name of the camera\n */\n name: string;\n\n /**\n * Camera position (front or back)\n */\n position: CameraFacing;\n\n /**\n * Whether the camera has a flash\n */\n hasFlash: boolean;\n\n /**\n * Whether the camera has a torch (flashlight)\n */\n hasTorch: boolean;\n\n /**\n * Whether the camera supports low-light boost\n */\n supportsLowLightBoost: boolean;\n}\n\n/**\n * Return type for useSmartCamera hook\n */\nexport interface UseSmartCameraResult {\n /**\n * Whether camera permission has been granted\n */\n hasPermission: boolean;\n\n /**\n * Request camera permission\n */\n requestPermission: () => Promise<boolean>;\n\n /**\n * Current camera device\n */\n device: CameraDevice | undefined;\n\n /**\n * Switch between front and back camera\n */\n switchCamera: () => void;\n\n /**\n * Current camera facing direction\n */\n currentCamera: CameraFacing;\n}\n\n// ============================================================================\n// Orientation Types\n// ============================================================================\n\n/**\n * Device orientation\n */\nexport type Orientation = 'portrait' | 'portrait-upside-down' | 'landscape-left' | 'landscape-right';\n\n/**\n * Camera output orientation\n */\nexport type OutputOrientation = Orientation | 'device';\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/build/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SmartCamera utility functions\n */\n\n// ============================================================================\n// FPS Limiter\n// ============================================================================\n\n/**\n * Creates an FPS limiter for frame processing\n * \n * @param targetFps - Target frames per second\n * @returns Object with shouldProcess function\n * \n * @example\n * ```ts\n * const limiter = createFpsLimiter(15);\n * \n * const frameProcessor = useFrameProcessor((frame) => {\n * if (!limiter.shouldProcess()) return;\n * // Process frame...\n * }, []);\n * ```\n */\nexport function createFpsLimiter(targetFps: number) {\n const frameInterval = 1000 / targetFps;\n let lastFrameTime = 0;\n\n return {\n shouldProcess: (): boolean => {\n const now = Date.now();\n if (now - lastFrameTime >= frameInterval) {\n lastFrameTime = now;\n return true;\n }\n return false;\n },\n reset: () => {\n lastFrameTime = 0;\n },\n setTargetFps: (fps: number) => {\n // Note: This creates a new interval but doesn't update the closure\n // Consider using a ref if dynamic FPS changes are needed\n },\n };\n}\n\n// ============================================================================\n// Debounce\n// ============================================================================\n\n/**\n * Creates a debounced function\n * \n * @param fn - Function to debounce\n * @param delay - Delay in milliseconds\n * @returns Debounced function\n */\nexport function debounce<T extends (...args: unknown[]) => unknown>(\n fn: T,\n delay: number\n): (...args: Parameters<T>) => void {\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n return (...args: Parameters<T>) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n fn(...args);\n timeoutId = null;\n }, delay);\n };\n}\n\n// ============================================================================\n// Throttle\n// ============================================================================\n\n/**\n * Creates a throttled function\n * \n * @param fn - Function to throttle\n * @param limit - Minimum time between calls in milliseconds\n * @returns Throttled function\n */\nexport function throttle<T extends (...args: unknown[]) => unknown>(\n fn: T,\n limit: number\n): (...args: Parameters<T>) => void {\n let lastCall = 0;\n\n return (...args: Parameters<T>) => {\n const now = Date.now();\n if (now - lastCall >= limit) {\n lastCall = now;\n fn(...args);\n }\n };\n}\n\n// ============================================================================\n// Memory Pool for Face Objects\n// ============================================================================\n\ninterface PooledObject<T> {\n data: T;\n inUse: boolean;\n}\n\n/**\n * Creates an object pool for reducing garbage collection\n * \n * @param factory - Factory function to create new objects\n * @param initialSize - Initial pool size\n * @param maxSize - Maximum pool size\n */\nexport function createObjectPool<T>(\n factory: () => T,\n initialSize: number = 10,\n maxSize: number = 100\n) {\n const pool: PooledObject<T>[] = [];\n\n // Pre-populate pool\n for (let i = 0; i < initialSize; i++) {\n pool.push({ data: factory(), inUse: false });\n }\n\n return {\n acquire: (): T => {\n // Find an available object\n const available = pool.find((obj) => !obj.inUse);\n if (available) {\n available.inUse = true;\n return available.data;\n }\n\n // Create new if pool not at max\n if (pool.length < maxSize) {\n const newObj = { data: factory(), inUse: true };\n pool.push(newObj);\n return newObj.data;\n }\n\n // Pool exhausted, create temporary object\n return factory();\n },\n\n release: (obj: T): void => {\n const pooledObj = pool.find((p) => p.data === obj);\n if (pooledObj) {\n pooledObj.inUse = false;\n }\n },\n\n clear: (): void => {\n pool.length = 0;\n },\n\n getStats: () => ({\n size: pool.length,\n inUse: pool.filter((p) => p.inUse).length,\n available: pool.filter((p) => !p.inUse).length,\n }),\n };\n}\n\n// ============================================================================\n// Error Utilities\n// ============================================================================\n\nimport type { SmartCameraError, SmartCameraErrorCode } from '../types';\n\n/**\n * Creates a SmartCameraError from an unknown error\n * \n * @param error - The original error\n * @param defaultCode - Default error code if not determinable\n * @returns SmartCameraError\n */\nexport function createSmartCameraError(\n error: unknown,\n defaultCode: SmartCameraErrorCode = 'UNKNOWN_ERROR'\n): SmartCameraError {\n if (error instanceof Error) {\n // Check for specific error types\n const message = error.message.toLowerCase();\n\n let code: SmartCameraErrorCode = defaultCode;\n if (message.includes('permission')) {\n code = 'PERMISSION_DENIED';\n } else if (message.includes('camera') && message.includes('unavailable')) {\n code = 'CAMERA_UNAVAILABLE';\n } else if (message.includes('webrtc')) {\n code = 'WEBRTC_ERROR';\n } else if (message.includes('mlkit') || message.includes('face detection')) {\n code = 'ML_KIT_ERROR';\n } else if (message.includes('frame processor')) {\n code = 'FRAME_PROCESSOR_ERROR';\n }\n\n return {\n code,\n message: error.message,\n nativeError: error,\n };\n }\n\n return {\n code: defaultCode,\n message: String(error),\n };\n}\n\n/**\n * Safely execute a function and return a SmartCameraError on failure\n */\nexport async function safeExecute<T>(\n fn: () => Promise<T>,\n errorCode: SmartCameraErrorCode = 'UNKNOWN_ERROR'\n): Promise<{ data: T; error: null } | { data: null; error: SmartCameraError }> {\n try {\n const data = await fn();\n return { data, error: null };\n } catch (error) {\n return { data: null, error: createSmartCameraError(error, errorCode) };\n }\n}\n\n// ============================================================================\n// Validation Utilities\n// ============================================================================\n\n/**\n * Validates face detection options\n */\nexport function validateFaceDetectionOptions(options: Record<string, unknown>): string[] {\n const errors: string[] = [];\n\n if (options.minFaceSize !== undefined) {\n const minFaceSize = options.minFaceSize as number;\n if (typeof minFaceSize !== 'number' || minFaceSize < 0 || minFaceSize > 1) {\n errors.push('minFaceSize must be a number between 0 and 1');\n }\n }\n\n if (options.performanceMode !== undefined) {\n const mode = options.performanceMode as string;\n if (mode !== 'fast' && mode !== 'accurate') {\n errors.push('performanceMode must be \"fast\" or \"accurate\"');\n }\n }\n\n if (options.landmarkMode !== undefined) {\n const mode = options.landmarkMode as string;\n if (mode !== 'none' && mode !== 'all') {\n errors.push('landmarkMode must be \"none\" or \"all\"');\n }\n }\n\n if (options.contourMode !== undefined) {\n const mode = options.contourMode as string;\n if (mode !== 'none' && mode !== 'all') {\n errors.push('contourMode must be \"none\" or \"all\"');\n }\n }\n\n if (options.classificationMode !== undefined) {\n const mode = options.classificationMode as string;\n if (mode !== 'none' && mode !== 'all') {\n errors.push('classificationMode must be \"none\" or \"all\"');\n }\n }\n\n // Warn about contourMode + trackingEnabled combination\n if (options.contourMode === 'all' && options.trackingEnabled === true) {\n errors.push(\n 'Warning: Using contourMode=\"all\" with trackingEnabled=true is not recommended. ' +\n 'Contour detection only works on the most prominent face, making tracking less useful.'\n );\n }\n\n return errors;\n}\n\n// ============================================================================\n// Performance Monitoring\n// ============================================================================\n\ninterface PerformanceMetrics {\n frameCount: number;\n averageProcessingTime: number;\n minProcessingTime: number;\n maxProcessingTime: number;\n droppedFrames: number;\n}\n\n/**\n * Creates a performance monitor for frame processing\n */\nexport function createPerformanceMonitor(windowSize: number = 30) {\n const processingTimes: number[] = [];\n let frameCount = 0;\n let droppedFrames = 0;\n let lastFrameTime = 0;\n const targetFrameTime = 1000 / 30; // 30 FPS target\n\n return {\n startFrame: (): number => {\n return Date.now();\n },\n\n endFrame: (startTime: number): void => {\n const processingTime = Date.now() - startTime;\n processingTimes.push(processingTime);\n \n // Keep only last N samples\n if (processingTimes.length > windowSize) {\n processingTimes.shift();\n }\n\n frameCount++;\n\n // Check for dropped frames\n const now = Date.now();\n if (lastFrameTime > 0) {\n const frameGap = now - lastFrameTime;\n if (frameGap > targetFrameTime * 2) {\n droppedFrames += Math.floor(frameGap / targetFrameTime) - 1;\n }\n }\n lastFrameTime = now;\n },\n\n getMetrics: (): PerformanceMetrics => {\n const times = processingTimes.length > 0 ? processingTimes : [0];\n return {\n frameCount,\n averageProcessingTime: times.reduce((a, b) => a + b, 0) / times.length,\n minProcessingTime: Math.min(...times),\n maxProcessingTime: Math.max(...times),\n droppedFrames,\n };\n },\n\n reset: (): void => {\n processingTimes.length = 0;\n frameCount = 0;\n droppedFrames = 0;\n lastFrameTime = 0;\n },\n };\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import type { WebRTCVideoSourceConfig, WebRTCStreamStats, WebRTCQualitySettings
|
|
|
2
2
|
/**
|
|
3
3
|
* WebRTC Bridge for SmartCamera
|
|
4
4
|
*
|
|
5
|
+
* NOTE: This is a stub implementation. WebRTC functionality is not yet implemented.
|
|
6
|
+
* This class provides the interface for future WebRTC integration.
|
|
7
|
+
*
|
|
5
8
|
* This class provides a bridge between VisionCamera frames and WebRTC,
|
|
6
9
|
* allowing camera frames to be streamed via WebRTC peer connections.
|
|
7
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebRTCBridge.d.ts","sourceRoot":"","sources":["../../src/webrtc/WebRTCBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebRTCBridge.d.ts","sourceRoot":"","sources":["../../src/webrtc/WebRTCBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAwC;IAEtD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAepE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,SAAS,IAAI,uBAAuB,GAAG,IAAI;IAI3C;;;;OAIG;IACG,aAAa,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAcnD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI/B;AAKD;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import SmartCameraModule from '../SmartCameraModule';
|
|
2
1
|
/**
|
|
3
2
|
* WebRTC Bridge for SmartCamera
|
|
4
3
|
*
|
|
4
|
+
* NOTE: This is a stub implementation. WebRTC functionality is not yet implemented.
|
|
5
|
+
* This class provides the interface for future WebRTC integration.
|
|
6
|
+
*
|
|
5
7
|
* This class provides a bridge between VisionCamera frames and WebRTC,
|
|
6
8
|
* allowing camera frames to be streamed via WebRTC peer connections.
|
|
7
9
|
*/
|
|
8
10
|
export class WebRTCBridge {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
constructor() {
|
|
12
|
+
this.isInitialized = false;
|
|
13
|
+
this.isStreaming = false;
|
|
14
|
+
this.config = null;
|
|
15
|
+
}
|
|
12
16
|
/**
|
|
13
17
|
* Initialize the WebRTC bridge
|
|
14
18
|
*
|
|
@@ -18,7 +22,7 @@ export class WebRTCBridge {
|
|
|
18
22
|
if (this.isInitialized) {
|
|
19
23
|
return;
|
|
20
24
|
}
|
|
21
|
-
|
|
25
|
+
console.warn('[WebRTCBridge] WebRTC is not yet implemented');
|
|
22
26
|
this.isInitialized = true;
|
|
23
27
|
}
|
|
24
28
|
/**
|
|
@@ -34,12 +38,8 @@ export class WebRTCBridge {
|
|
|
34
38
|
console.warn('[WebRTCBridge] Already streaming, stopping first');
|
|
35
39
|
await this.stopStreaming();
|
|
36
40
|
}
|
|
41
|
+
console.warn('[WebRTCBridge] WebRTC streaming is not yet implemented');
|
|
37
42
|
this.config = config;
|
|
38
|
-
await SmartCameraModule.startWebRTCStream({
|
|
39
|
-
width: config.width,
|
|
40
|
-
height: config.height,
|
|
41
|
-
frameRate: config.frameRate,
|
|
42
|
-
});
|
|
43
43
|
this.isStreaming = true;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -49,7 +49,6 @@ export class WebRTCBridge {
|
|
|
49
49
|
if (!this.isStreaming) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
|
-
await SmartCameraModule.stopWebRTCStream();
|
|
53
52
|
this.isStreaming = false;
|
|
54
53
|
this.config = null;
|
|
55
54
|
}
|
|
@@ -71,20 +70,18 @@ export class WebRTCBridge {
|
|
|
71
70
|
* @param settings - Quality settings to apply
|
|
72
71
|
*/
|
|
73
72
|
async updateQuality(settings) {
|
|
74
|
-
// This would call a native method to adjust encoder settings
|
|
75
73
|
console.log('[WebRTCBridge] Updating quality:', settings);
|
|
76
74
|
}
|
|
77
75
|
/**
|
|
78
76
|
* Get current stream statistics
|
|
79
77
|
*/
|
|
80
78
|
async getStats() {
|
|
79
|
+
var _a, _b;
|
|
81
80
|
if (!this.isStreaming) {
|
|
82
81
|
return null;
|
|
83
82
|
}
|
|
84
|
-
// This would call a native method to get stats
|
|
85
|
-
// For now, return placeholder
|
|
86
83
|
return {
|
|
87
|
-
frameRate: this.config
|
|
84
|
+
frameRate: (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.frameRate) !== null && _b !== void 0 ? _b : 0,
|
|
88
85
|
framesSent: 0,
|
|
89
86
|
framesDropped: 0,
|
|
90
87
|
bytesSent: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebRTCBridge.js","sourceRoot":"","sources":["../../src/webrtc/WebRTCBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebRTCBridge.js","sourceRoot":"","sources":["../../src/webrtc/WebRTCBridge.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,kBAAa,GAAG,KAAK,CAAC;QACtB,gBAAW,GAAG,KAAK,CAAC;QACpB,WAAM,GAAmC,IAAI,CAAC;IA+FxD,CAAC;IA7FC;;;;OAIG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,MAA+B;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,QAA+B;QACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,SAAS,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS,mCAAI,CAAC;YACtC,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;CACF;AAED,qCAAqC;AACrC,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebRTC Manager for SmartCamera
|
|
3
|
+
*
|
|
4
|
+
* This class provides utilities for managing WebRTC peer connections,
|
|
5
|
+
* media streams, and video calling functionality.
|
|
6
|
+
*
|
|
7
|
+
* Requires react-native-webrtc to be installed in the app.
|
|
8
|
+
*/
|
|
9
|
+
import type { PeerConnectionConfig, MediaConstraints, SessionDescription, ICECandidateEvent, WebRTCConnectionState, ICEConnectionState } from './types';
|
|
10
|
+
/**
|
|
11
|
+
* Check if WebRTC is available
|
|
12
|
+
*/
|
|
13
|
+
export declare function isWebRTCAvailable(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* WebRTC Manager class for handling peer connections and media streams
|
|
16
|
+
*/
|
|
17
|
+
export declare class WebRTCManager {
|
|
18
|
+
private peerConnection;
|
|
19
|
+
private localStream;
|
|
20
|
+
private remoteStream;
|
|
21
|
+
private config;
|
|
22
|
+
private iceCandidateCallback;
|
|
23
|
+
private remoteStreamCallback;
|
|
24
|
+
private connectionStateCallback;
|
|
25
|
+
private iceConnectionStateCallback;
|
|
26
|
+
constructor(config?: PeerConnectionConfig);
|
|
27
|
+
/**
|
|
28
|
+
* Get local media stream (camera + microphone)
|
|
29
|
+
*
|
|
30
|
+
* @param constraints - Media constraints for video/audio
|
|
31
|
+
* @returns Promise resolving to MediaStream
|
|
32
|
+
*/
|
|
33
|
+
getLocalStream(constraints?: MediaConstraints): Promise<MediaStream>;
|
|
34
|
+
/**
|
|
35
|
+
* Stop the local media stream
|
|
36
|
+
*/
|
|
37
|
+
stopLocalStream(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get the current local stream
|
|
40
|
+
*/
|
|
41
|
+
getLocalStreamInstance(): MediaStream | null;
|
|
42
|
+
/**
|
|
43
|
+
* Switch between front and back camera
|
|
44
|
+
*/
|
|
45
|
+
switchCamera(): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Toggle video track on/off
|
|
48
|
+
*
|
|
49
|
+
* @param enabled - Whether video should be enabled
|
|
50
|
+
*/
|
|
51
|
+
toggleVideo(enabled: boolean): void;
|
|
52
|
+
/**
|
|
53
|
+
* Toggle audio track on/off
|
|
54
|
+
*
|
|
55
|
+
* @param enabled - Whether audio should be enabled
|
|
56
|
+
*/
|
|
57
|
+
toggleAudio(enabled: boolean): void;
|
|
58
|
+
/**
|
|
59
|
+
* Create a new peer connection
|
|
60
|
+
*
|
|
61
|
+
* @param config - Optional peer connection configuration
|
|
62
|
+
* @returns The created RTCPeerConnection
|
|
63
|
+
*/
|
|
64
|
+
createPeerConnection(config?: PeerConnectionConfig): RTCPeerConnection;
|
|
65
|
+
/**
|
|
66
|
+
* Get the current peer connection
|
|
67
|
+
*/
|
|
68
|
+
getPeerConnection(): RTCPeerConnection | null;
|
|
69
|
+
/**
|
|
70
|
+
* Close the peer connection
|
|
71
|
+
*/
|
|
72
|
+
closePeerConnection(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Setup listeners for peer connection events
|
|
75
|
+
*/
|
|
76
|
+
private setupPeerConnectionListeners;
|
|
77
|
+
/**
|
|
78
|
+
* Add local stream to peer connection
|
|
79
|
+
*
|
|
80
|
+
* @param stream - The local MediaStream to add
|
|
81
|
+
*/
|
|
82
|
+
addLocalStream(stream: MediaStream): void;
|
|
83
|
+
/**
|
|
84
|
+
* Get the remote stream
|
|
85
|
+
*/
|
|
86
|
+
getRemoteStream(): MediaStream | null;
|
|
87
|
+
/**
|
|
88
|
+
* Create an SDP offer
|
|
89
|
+
*
|
|
90
|
+
* @returns Promise resolving to SessionDescription
|
|
91
|
+
*/
|
|
92
|
+
createOffer(): Promise<SessionDescription>;
|
|
93
|
+
/**
|
|
94
|
+
* Create an SDP answer
|
|
95
|
+
*
|
|
96
|
+
* @returns Promise resolving to SessionDescription
|
|
97
|
+
*/
|
|
98
|
+
createAnswer(): Promise<SessionDescription>;
|
|
99
|
+
/**
|
|
100
|
+
* Set the remote SDP description
|
|
101
|
+
*
|
|
102
|
+
* @param description - The remote SessionDescription
|
|
103
|
+
*/
|
|
104
|
+
setRemoteDescription(description: SessionDescription): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* Add an ICE candidate from remote peer
|
|
107
|
+
*
|
|
108
|
+
* @param candidate - The ICE candidate to add
|
|
109
|
+
*/
|
|
110
|
+
addIceCandidate(candidate: RTCIceCandidate): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Register callback for ICE candidates
|
|
113
|
+
*
|
|
114
|
+
* @param callback - Function to call when ICE candidate is generated
|
|
115
|
+
*/
|
|
116
|
+
onIceCandidate(callback: (event: ICECandidateEvent) => void): void;
|
|
117
|
+
/**
|
|
118
|
+
* Register callback for remote stream
|
|
119
|
+
*
|
|
120
|
+
* @param callback - Function to call when remote stream is received
|
|
121
|
+
*/
|
|
122
|
+
onRemoteStream(callback: (stream: MediaStream) => void): void;
|
|
123
|
+
/**
|
|
124
|
+
* Register callback for connection state changes
|
|
125
|
+
*
|
|
126
|
+
* @param callback - Function to call when connection state changes
|
|
127
|
+
*/
|
|
128
|
+
onConnectionStateChange(callback: (state: WebRTCConnectionState) => void): void;
|
|
129
|
+
/**
|
|
130
|
+
* Register callback for ICE connection state changes
|
|
131
|
+
*
|
|
132
|
+
* @param callback - Function to call when ICE connection state changes
|
|
133
|
+
*/
|
|
134
|
+
onIceConnectionStateChange(callback: (state: ICEConnectionState) => void): void;
|
|
135
|
+
/**
|
|
136
|
+
* Clean up all resources
|
|
137
|
+
*/
|
|
138
|
+
cleanup(): void;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get the shared WebRTC manager instance
|
|
142
|
+
*/
|
|
143
|
+
export declare function getWebRTCManager(config?: PeerConnectionConfig): WebRTCManager;
|
|
144
|
+
/**
|
|
145
|
+
* Create a new WebRTC manager instance
|
|
146
|
+
*/
|
|
147
|
+
export declare function createWebRTCManager(config?: PeerConnectionConfig): WebRTCManager;
|
|
148
|
+
//# sourceMappingURL=WebRTCManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebRTCManager.d.ts","sourceRoot":"","sources":["../../src/webrtc/WebRTCManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAInB,MAAM,SAAS,CAAC;AA4BjB;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,oBAAoB,CAAqD;IACjF,OAAO,CAAC,oBAAoB,CAAgD;IAC5E,OAAO,CAAC,uBAAuB,CAAyD;IACxF,OAAO,CAAC,0BAA0B,CAAsD;gBAE5E,MAAM,CAAC,EAAE,oBAAoB;IAezC;;;;;OAKG;IACG,cAAc,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC1E;;OAEG;IACH,eAAe,IAAI,IAAI;IASvB;;OAEG;IACH,sBAAsB,IAAI,WAAW,GAAG,IAAI;IAI5C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQnC;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAYnC;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,iBAAiB;IActE;;OAEG;IACH,iBAAiB,IAAI,iBAAiB,GAAG,IAAI;IAI7C;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAQ3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA4CpC;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAUzC;;OAEG;IACH,eAAe,IAAI,WAAW,GAAG,IAAI;IAQrC;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAkBhD;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAcjD;;;;OAIG;IACG,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1E;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhE;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI;IAIlE;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAI7D;;;;OAIG;IACH,uBAAuB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;IAI/E;;;;OAIG;IACH,0BAA0B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI;IAQ/E;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAK7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAEhF"}
|