@arfuhad/react-native-smart-camera 0.1.0
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/ARCHITECTURE.md +341 -0
- package/README.md +154 -0
- package/android/build.gradle +89 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/smartcamera/ImageLoader.kt +106 -0
- package/android/src/main/java/expo/modules/smartcamera/MLKitFaceDetector.kt +273 -0
- package/android/src/main/java/expo/modules/smartcamera/SmartCameraModule.kt +205 -0
- package/android/src/main/java/expo/modules/smartcamera/SmartCameraView.kt +153 -0
- package/android/src/main/java/expo/modules/smartcamera/WebRTCFrameBridge.kt +184 -0
- package/app.plugin.js +17 -0
- package/build/SmartCamera.d.ts +17 -0
- package/build/SmartCamera.d.ts.map +1 -0
- package/build/SmartCamera.js +270 -0
- package/build/SmartCamera.js.map +1 -0
- package/build/SmartCameraModule.d.ts +112 -0
- package/build/SmartCameraModule.d.ts.map +1 -0
- package/build/SmartCameraModule.js +121 -0
- package/build/SmartCameraModule.js.map +1 -0
- package/build/SmartCameraView.d.ts +8 -0
- package/build/SmartCameraView.d.ts.map +1 -0
- package/build/SmartCameraView.js +7 -0
- package/build/SmartCameraView.js.map +1 -0
- package/build/detection/blinkProcessor.d.ts +23 -0
- package/build/detection/blinkProcessor.d.ts.map +1 -0
- package/build/detection/blinkProcessor.js +90 -0
- package/build/detection/blinkProcessor.js.map +1 -0
- package/build/detection/faceDetector.d.ts +16 -0
- package/build/detection/faceDetector.d.ts.map +1 -0
- package/build/detection/faceDetector.js +46 -0
- package/build/detection/faceDetector.js.map +1 -0
- package/build/detection/index.d.ts +4 -0
- package/build/detection/index.d.ts.map +1 -0
- package/build/detection/index.js +4 -0
- package/build/detection/index.js.map +1 -0
- package/build/detection/staticImageDetector.d.ts +25 -0
- package/build/detection/staticImageDetector.d.ts.map +1 -0
- package/build/detection/staticImageDetector.js +48 -0
- package/build/detection/staticImageDetector.js.map +1 -0
- package/build/hooks/index.d.ts +5 -0
- package/build/hooks/index.d.ts.map +1 -0
- package/build/hooks/index.js +5 -0
- package/build/hooks/index.js.map +1 -0
- package/build/hooks/useBlinkDetection.d.ts +39 -0
- package/build/hooks/useBlinkDetection.d.ts.map +1 -0
- package/build/hooks/useBlinkDetection.js +67 -0
- package/build/hooks/useBlinkDetection.js.map +1 -0
- package/build/hooks/useFaceDetection.d.ts +46 -0
- package/build/hooks/useFaceDetection.d.ts.map +1 -0
- package/build/hooks/useFaceDetection.js +80 -0
- package/build/hooks/useFaceDetection.js.map +1 -0
- package/build/hooks/useSmartCamera.d.ts +31 -0
- package/build/hooks/useSmartCamera.d.ts.map +1 -0
- package/build/hooks/useSmartCamera.js +75 -0
- package/build/hooks/useSmartCamera.js.map +1 -0
- package/build/hooks/useSmartCameraWebRTC.d.ts +58 -0
- package/build/hooks/useSmartCameraWebRTC.d.ts.map +1 -0
- package/build/hooks/useSmartCameraWebRTC.js +160 -0
- package/build/hooks/useSmartCameraWebRTC.js.map +1 -0
- package/build/index.d.ts +14 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +20 -0
- package/build/index.js.map +1 -0
- package/build/types.d.ts +478 -0
- package/build/types.d.ts.map +1 -0
- package/build/types.js +2 -0
- package/build/types.js.map +1 -0
- package/build/utils/index.d.ts +98 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +276 -0
- package/build/utils/index.js.map +1 -0
- package/build/webrtc/WebRTCBridge.d.ts +55 -0
- package/build/webrtc/WebRTCBridge.d.ts.map +1 -0
- package/build/webrtc/WebRTCBridge.js +113 -0
- package/build/webrtc/WebRTCBridge.js.map +1 -0
- package/build/webrtc/index.d.ts +3 -0
- package/build/webrtc/index.d.ts.map +1 -0
- package/build/webrtc/index.js +2 -0
- package/build/webrtc/index.js.map +1 -0
- package/build/webrtc/types.d.ts +64 -0
- package/build/webrtc/types.d.ts.map +1 -0
- package/build/webrtc/types.js +5 -0
- package/build/webrtc/types.js.map +1 -0
- package/expo-module.config.json +9 -0
- package/ios/MLKitFaceDetector.swift +310 -0
- package/ios/SmartCamera.podspec +33 -0
- package/ios/SmartCameraModule.swift +225 -0
- package/ios/SmartCameraView.swift +146 -0
- package/ios/WebRTCFrameBridge.swift +150 -0
- package/package.json +91 -0
- package/plugin/build/index.d.ts +28 -0
- package/plugin/build/index.js +33 -0
- package/plugin/build/withSmartCameraAndroid.d.ts +9 -0
- package/plugin/build/withSmartCameraAndroid.js +108 -0
- package/plugin/build/withSmartCameraIOS.d.ts +11 -0
- package/plugin/build/withSmartCameraIOS.js +92 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.withSmartCameraIOS = void 0;
|
|
37
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
/**
|
|
41
|
+
* Add camera and microphone permissions to Info.plist
|
|
42
|
+
*/
|
|
43
|
+
const withPermissions = (config, options) => {
|
|
44
|
+
return (0, config_plugins_1.withInfoPlist)(config, (configWithInfoPlist) => {
|
|
45
|
+
// Camera permission
|
|
46
|
+
configWithInfoPlist.modResults.NSCameraUsageDescription =
|
|
47
|
+
configWithInfoPlist.modResults.NSCameraUsageDescription ?? options.cameraPermissionText;
|
|
48
|
+
// Microphone permission
|
|
49
|
+
configWithInfoPlist.modResults.NSMicrophoneUsageDescription =
|
|
50
|
+
configWithInfoPlist.modResults.NSMicrophoneUsageDescription ?? options.microphonePermissionText;
|
|
51
|
+
return configWithInfoPlist;
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Add ML Kit pod to Podfile if enabled
|
|
56
|
+
*/
|
|
57
|
+
const withMLKitPod = (config, options) => {
|
|
58
|
+
if (!options.enableMLKit) {
|
|
59
|
+
return config;
|
|
60
|
+
}
|
|
61
|
+
return (0, config_plugins_1.withDangerousMod)(config, [
|
|
62
|
+
'ios',
|
|
63
|
+
async (dangerousConfig) => {
|
|
64
|
+
const podfilePath = path.join(dangerousConfig.modRequest.platformProjectRoot, 'Podfile');
|
|
65
|
+
if (fs.existsSync(podfilePath)) {
|
|
66
|
+
let podfileContents = fs.readFileSync(podfilePath, 'utf-8');
|
|
67
|
+
// Check if ML Kit pod is already added
|
|
68
|
+
if (!podfileContents.includes('GoogleMLKit/FaceDetection')) {
|
|
69
|
+
// Add ML Kit pod after the use_expo_modules! line
|
|
70
|
+
podfileContents = podfileContents.replace(/use_expo_modules!/, `use_expo_modules!
|
|
71
|
+
|
|
72
|
+
# SmartCamera ML Kit Face Detection
|
|
73
|
+
pod 'GoogleMLKit/FaceDetection', '~> 4.0.0'`);
|
|
74
|
+
fs.writeFileSync(podfilePath, podfileContents);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return dangerousConfig;
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* iOS configuration for react-native-smart-camera
|
|
83
|
+
*/
|
|
84
|
+
const withSmartCameraIOS = (config, options) => {
|
|
85
|
+
// Add permissions
|
|
86
|
+
config = withPermissions(config, options);
|
|
87
|
+
// Add ML Kit pod if enabled
|
|
88
|
+
config = withMLKitPod(config, options);
|
|
89
|
+
return config;
|
|
90
|
+
};
|
|
91
|
+
exports.withSmartCameraIOS = withSmartCameraIOS;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFNtYXJ0Q2FtZXJhSU9TLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dpdGhTbWFydENhbWVyYUlPUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFJOEI7QUFDOUIsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQVM3Qjs7R0FFRztBQUNILE1BQU0sZUFBZSxHQUFtQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUMxRSxPQUFPLElBQUEsOEJBQWEsRUFBQyxNQUFNLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1FBQ25ELG9CQUFvQjtRQUNwQixtQkFBbUIsQ0FBQyxVQUFVLENBQUMsd0JBQXdCO1lBQ3JELG1CQUFtQixDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUM7UUFFMUYsd0JBQXdCO1FBQ3hCLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyw0QkFBNEI7WUFDekQsbUJBQW1CLENBQUMsVUFBVSxDQUFDLDRCQUE0QixJQUFJLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztRQUVsRyxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBbUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxJQUFBLGlDQUFnQixFQUFDLE1BQU0sRUFBRTtRQUM5QixLQUFLO1FBQ0wsS0FBSyxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV6RixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRTVELHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDO29CQUMzRCxrREFBa0Q7b0JBQ2xELGVBQWUsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUN2QyxtQkFBbUIsRUFDbkI7Ozs4Q0FHa0MsQ0FDbkMsQ0FBQztvQkFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLGVBQWUsQ0FBQztRQUN6QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSSxNQUFNLGtCQUFrQixHQUFtQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNwRixrQkFBa0I7SUFDbEIsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFMUMsNEJBQTRCO0lBQzVCLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXZDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQVJXLFFBQUEsa0JBQWtCLHNCQVE3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmZpZ1BsdWdpbixcbiAgd2l0aEluZm9QbGlzdCxcbiAgd2l0aERhbmdlcm91c01vZCxcbn0gZnJvbSAnQGV4cG8vY29uZmlnLXBsdWdpbnMnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcblxuZXhwb3J0IGludGVyZmFjZSBJT1NQbHVnaW5PcHRpb25zIHtcbiAgY2FtZXJhUGVybWlzc2lvblRleHQ6IHN0cmluZztcbiAgbWljcm9waG9uZVBlcm1pc3Npb25UZXh0OiBzdHJpbmc7XG4gIGVuYWJsZU1MS2l0OiBib29sZWFuO1xuICBlbmFibGVXZWJSVEM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQWRkIGNhbWVyYSBhbmQgbWljcm9waG9uZSBwZXJtaXNzaW9ucyB0byBJbmZvLnBsaXN0XG4gKi9cbmNvbnN0IHdpdGhQZXJtaXNzaW9uczogQ29uZmlnUGx1Z2luPElPU1BsdWdpbk9wdGlvbnM+ID0gKGNvbmZpZywgb3B0aW9ucykgPT4ge1xuICByZXR1cm4gd2l0aEluZm9QbGlzdChjb25maWcsIChjb25maWdXaXRoSW5mb1BsaXN0KSA9PiB7XG4gICAgLy8gQ2FtZXJhIHBlcm1pc3Npb25cbiAgICBjb25maWdXaXRoSW5mb1BsaXN0Lm1vZFJlc3VsdHMuTlNDYW1lcmFVc2FnZURlc2NyaXB0aW9uID1cbiAgICAgIGNvbmZpZ1dpdGhJbmZvUGxpc3QubW9kUmVzdWx0cy5OU0NhbWVyYVVzYWdlRGVzY3JpcHRpb24gPz8gb3B0aW9ucy5jYW1lcmFQZXJtaXNzaW9uVGV4dDtcblxuICAgIC8vIE1pY3JvcGhvbmUgcGVybWlzc2lvblxuICAgIGNvbmZpZ1dpdGhJbmZvUGxpc3QubW9kUmVzdWx0cy5OU01pY3JvcGhvbmVVc2FnZURlc2NyaXB0aW9uID1cbiAgICAgIGNvbmZpZ1dpdGhJbmZvUGxpc3QubW9kUmVzdWx0cy5OU01pY3JvcGhvbmVVc2FnZURlc2NyaXB0aW9uID8/IG9wdGlvbnMubWljcm9waG9uZVBlcm1pc3Npb25UZXh0O1xuXG4gICAgcmV0dXJuIGNvbmZpZ1dpdGhJbmZvUGxpc3Q7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBBZGQgTUwgS2l0IHBvZCB0byBQb2RmaWxlIGlmIGVuYWJsZWRcbiAqL1xuY29uc3Qgd2l0aE1MS2l0UG9kOiBDb25maWdQbHVnaW48SU9TUGx1Z2luT3B0aW9ucz4gPSAoY29uZmlnLCBvcHRpb25zKSA9PiB7XG4gIGlmICghb3B0aW9ucy5lbmFibGVNTEtpdCkge1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICByZXR1cm4gd2l0aERhbmdlcm91c01vZChjb25maWcsIFtcbiAgICAnaW9zJyxcbiAgICBhc3luYyAoZGFuZ2Vyb3VzQ29uZmlnKSA9PiB7XG4gICAgICBjb25zdCBwb2RmaWxlUGF0aCA9IHBhdGguam9pbihkYW5nZXJvdXNDb25maWcubW9kUmVxdWVzdC5wbGF0Zm9ybVByb2plY3RSb290LCAnUG9kZmlsZScpO1xuICAgICAgXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhwb2RmaWxlUGF0aCkpIHtcbiAgICAgICAgbGV0IHBvZGZpbGVDb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhwb2RmaWxlUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgIFxuICAgICAgICAvLyBDaGVjayBpZiBNTCBLaXQgcG9kIGlzIGFscmVhZHkgYWRkZWRcbiAgICAgICAgaWYgKCFwb2RmaWxlQ29udGVudHMuaW5jbHVkZXMoJ0dvb2dsZU1MS2l0L0ZhY2VEZXRlY3Rpb24nKSkge1xuICAgICAgICAgIC8vIEFkZCBNTCBLaXQgcG9kIGFmdGVyIHRoZSB1c2VfZXhwb19tb2R1bGVzISBsaW5lXG4gICAgICAgICAgcG9kZmlsZUNvbnRlbnRzID0gcG9kZmlsZUNvbnRlbnRzLnJlcGxhY2UoXG4gICAgICAgICAgICAvdXNlX2V4cG9fbW9kdWxlcyEvLFxuICAgICAgICAgICAgYHVzZV9leHBvX21vZHVsZXMhXG5cbiAgIyBTbWFydENhbWVyYSBNTCBLaXQgRmFjZSBEZXRlY3Rpb25cbiAgcG9kICdHb29nbGVNTEtpdC9GYWNlRGV0ZWN0aW9uJywgJ34+IDQuMC4wJ2BcbiAgICAgICAgICApO1xuICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocG9kZmlsZVBhdGgsIHBvZGZpbGVDb250ZW50cyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRhbmdlcm91c0NvbmZpZztcbiAgICB9LFxuICBdKTtcbn07XG5cbi8qKlxuICogaU9TIGNvbmZpZ3VyYXRpb24gZm9yIHJlYWN0LW5hdGl2ZS1zbWFydC1jYW1lcmFcbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhTbWFydENhbWVyYUlPUzogQ29uZmlnUGx1Z2luPElPU1BsdWdpbk9wdGlvbnM+ID0gKGNvbmZpZywgb3B0aW9ucykgPT4ge1xuICAvLyBBZGQgcGVybWlzc2lvbnNcbiAgY29uZmlnID0gd2l0aFBlcm1pc3Npb25zKGNvbmZpZywgb3B0aW9ucyk7XG5cbiAgLy8gQWRkIE1MIEtpdCBwb2QgaWYgZW5hYmxlZFxuICBjb25maWcgPSB3aXRoTUxLaXRQb2QoY29uZmlnLCBvcHRpb25zKTtcblxuICByZXR1cm4gY29uZmlnO1xufTtcblxuIl19
|