{ "name": "quixzoom-app", "version": "1.0.0", "description": "quiXzoom Native App — Field data collection for iOS/Android", "main": "index.js", "scripts": { "start": "react-native start", "android": "react-native run-android", "ios": "react-native run-ios", "test": "jest", "lint": "eslint ." }, "dependencies": { "react": "18.2.0", "react-native": "0.72.0", "@react-native-async-storage/async-storage": "^1.19.0", "@react-native-community/geolocation": "^3.0.0", "react-native-vision-camera": "^3.0.0", "react-native-maps": "^1.7.0", "react-native-vector-icons": "^10.0.0", "react-native-share": "^9.0.0", "react-native-fs": "^2.20.0", "react-native-image-resizer": "^3.0.0", "react-native-background-upload": "^6.0.0", "react-native-offline": "^6.0.0", "react-native-permissions": "^3.8.0", "react-native-device-info": "^10.0.0", "react-native-sensors": "^7.3.0", "react-native-keep-awake": "^4.0.0", "react-native-haptic-feedback": "^2.0.0", "react-native-localize": "^3.0.0", "react-native-keychain": "^8.1.0", "react-native-encrypted-storage": "^4.0.0", "@react-navigation/native": "^6.1.0", "@react-navigation/bottom-tabs": "^6.5.0", "@react-navigation/stack": "^6.3.0", "react-native-gesture-handler": "^2.12.0", "react-native-reanimated": "^3.3.0", "react-native-screens": "^3.22.0", "react-native-safe-area-context": "^4.6.0", "@reduxjs/toolkit": "^1.9.0", "react-redux": "^8.1.0", "redux-persist": "^6.0.0", "axios": "^1.4.0", "date-fns": "^2.30.0", "uuid": "^9.0.0" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@react-native/eslint-config": "^0.72.0", "@react-native/metro-config": "^0.72.0", "@tsconfig/react-native": "^3.0.0", "@types/react": "^18.0.24", "@types/react-test-renderer": "^18.0.0", "babel-jest": "^29.2.1", "eslint": "^8.19.0", "jest": "^29.2.1", "metro-react-native-babel-preset": "0.76.5", "prettier": "^2.4.1", "react-test-renderer": "18.2.0", "typescript": "4.8.4" }, "jest": { "preset": "react-native" } }