{ "name": "upay", "version": "0.0.1", "private": true, "main": "index.tsx", "scripts": { "start": "expo start --dev-client", "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", "bundle:web": "npx expo export --platform web", "serve:web": "npx serve dist", "prebuild:clean": "npx expo prebuild --clean", "compile": "tsc --noEmit -p . --pretty", "lint": "eslint . --fix", "lint:check": "eslint .", "depcruise": "depcruise app --config .dependency-cruiser.js", "depcruise:graph": "depcruise app --include-only \"^app\" --config .dependency-cruiser.js --output-type dot > app-dependency-graph.dot && dot -T svg app-dependency-graph.dot -o app-dependency-graph.svg && dot -T png app-dependency-graph.dot -o app-dependency-graph.png && rm app-dependency-graph.dot", "align-deps": "npx expo install --fix", "test": "jest", "test:watch": "jest --watch", "test:maestro": "maestro test -e MAESTRO_APP_ID=com.upay .maestro/flows", "adb": "adb reverse tcp:9090 tcp:9090 && adb reverse tcp:3000 tcp:3000 && adb reverse tcp:9001 tcp:9001 && adb reverse tcp:8081 tcp:8081", "build:ios:sim": "eas build --profile development --platform ios --local", "build:ios:device": "eas build --profile development:device --platform ios --local", "build:ios:preview": "eas build --profile preview --platform ios --local", "build:ios:prod": "eas build --profile production --platform ios --local", "build:android:sim": "eas build --profile development --platform android --local", "build:android:device": "eas build --profile development:device --platform android --local", "build:android:preview": "eas build --profile preview --platform android --local", "build:android:prod": "eas build --profile production --platform android --local" }, "dependencies": { "@expo-google-fonts/space-grotesk": "^0.4.0", "@expo/metro-runtime": "~6.1.2", "@react-native-google-signin/google-signin": "^16.1.1", "@react-navigation/bottom-tabs": "^7.2.0", "@react-navigation/native": "^7.0.14", "@react-navigation/native-stack": "^7.2.0", "apisauce": "3.1.1", "date-fns": "^4.1.0", "expo": "54.0.31", "expo-application": "~7.0.7", "expo-blur": "~15.0.8", "expo-build-properties": "~1.0.9", "expo-clipboard": "^8.0.8", "expo-dev-client": "~6.0.12", "expo-file-system": "^19.0.21", "expo-font": "~14.0.8", "expo-image": "^3.0.11", "expo-image-picker": "^17.0.10", "expo-linking": "~8.0.8", "expo-localization": "~17.0.7", "expo-splash-screen": "~31.0.10", "expo-system-ui": "~6.0.7", "expo-web-browser": "^15.0.10", "i18next": "^23.14.0", "intl-pluralrules": "^2.0.1", "lucide-react-native": "^0.562.0", "nativewind": "^4.2.1", "react": "19.1.0", "react-dom": "19.1.0", "react-i18next": "^15.0.1", "react-native": "0.81.5", "react-native-drawer-layout": "^4.0.1", "react-native-edge-to-edge": "~1.6.1", "react-native-gesture-handler": "~2.28.0", "react-native-keyboard-controller": "1.18.5", "react-native-mmkv": "3.3.3", "react-native-reanimated": "~4.1.1", "react-native-safe-area-context": "5.6.0", "react-native-screens": "~4.16.0", "react-native-svg": "^15.15.1", "react-native-web": "~0.21.0", "react-native-worklets": "0.6.1", "setimmediate": "^1.0.5", "tailwindcss": "^3.4.19" }, "devDependencies": { "@babel/core": "^7.20.0", "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@testing-library/react-native": "^13.2.0", "@types/jest": "^29.5.14", "@types/react": "~19.1.10", "babel-jest": "^29.2.1", "dependency-cruiser": "^17.0.2", "eslint": "^8.57.0", "eslint-config-expo": "~10.0.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react-native": "^4.1.0", "eslint-plugin-reactotron": "^0.1.2", "jest": "~29.7.0", "jest-expo": "~54.0.12", "prettier": "^3.3.3", "react-test-renderer": "19.1.0", "reactotron-core-client": "^2.9.4", "reactotron-react-js": "^3.3.11", "reactotron-react-native": "^5.0.5", "reactotron-react-native-mmkv": "^0.2.6", "ts-jest": "^29.1.1", "tsx": "^4.20.3", "typescript": "~5.9.2" }, "engines": { "node": ">=20.0.0" }, "expo": { "install": { "exclude": [ "react-native-worklets" ] } } }