P0 fixes: - Replace crypto.randomUUID() with uuid v4 (not available in RN) - Replace Platform.Version with expo-device osVersion - Fix auth navigation types, remove unused App route P1 fixes: - Push notification handler respects user preferences (useRef pattern) - Fix stale closure: use zustand subscribe + useRef for live preferences - Add retry logging for device registration failures - Replace emoji tab icons with @expo/vector-icons Ionicons - Document API integration TODOs in all local-only stores P2 fixes: - Add __DEV__ global declaration (global.d.ts) - Fix package.json main field to expo/AppEntry.js - Add retry logging for push device registration - Add z-index/elevation to LoadingOverlay - Add visual indicator to EmptyState icon P3 fixes: - Type navigation with NavigationProp<RootStackParamList> - Move getSeverityColor to theme.ts (single source of truth) - Add useMemo for SpamShield filter computations - Verified usesNonExemptEncryption: false is correct for expo-secure-store Co-Authored-By: Paperclip <noreply@paperclip.ing>
62 lines
1.9 KiB
JSON
62 lines
1.9 KiB
JSON
{
|
|
"name": "@shieldai/mobile",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"main": "node_modules/expo/AppEntry.js",
|
|
"scripts": {
|
|
"dev": "expo start",
|
|
"dev:ios": "expo run:ios",
|
|
"dev:android": "expo run:android",
|
|
"build": "expo build",
|
|
"build:ios": "expo build:ios",
|
|
"build:android": "expo build:android",
|
|
"lint": "eslint src/",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "jest",
|
|
"clean": "rm -rf node_modules .expo .expo-shared"
|
|
},
|
|
"dependencies": {
|
|
"@shieldai/mobile-api-client": "workspace:*",
|
|
"@expo/vector-icons": "^14.0.0",
|
|
"@react-native-async-storage/async-storage": "1.23.1",
|
|
"@react-native-community/netinfo": "11.4.1",
|
|
"@react-navigation/bottom-tabs": "^6.5.0",
|
|
"@react-navigation/native": "^6.1.0",
|
|
"@react-navigation/stack": "^6.3.0",
|
|
"expo": "~51.0.0",
|
|
"expo-av": "~14.0.0",
|
|
|
|
"expo-constants": "~16.0.0",
|
|
"expo-crypto": "~13.0.0",
|
|
"expo-device": "~6.0.0",
|
|
"expo-file-system": "~17.0.0",
|
|
"expo-image-picker": "~15.0.0",
|
|
"expo-linking": "~6.3.0",
|
|
"expo-local-authentication": "~14.0.0",
|
|
"expo-notifications": "~0.28.0",
|
|
"expo-secure-store": "~13.0.0",
|
|
"expo-status-bar": "~1.12.0",
|
|
"expo-updates": "~0.18.0",
|
|
"react": "18.2.0",
|
|
"react-native": "0.74.5",
|
|
"react-native-gesture-handler": "~2.16.0",
|
|
"react-native-reanimated": "~3.10.0",
|
|
"react-native-safe-area-context": "4.10.5",
|
|
"react-native-screens": "3.31.0",
|
|
"react-native-svg": "15.2.0",
|
|
"zustand": "^4.4.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.24.0",
|
|
"@types/react": "^18.2.0",
|
|
"@types/react-test-renderer": "^18.0.0",
|
|
"babel-preset-expo": "^11.0.0",
|
|
"eslint": "^8.57.0",
|
|
"eslint-plugin-react": "^7.34.0",
|
|
"eslint-plugin-react-native": "^4.1.0",
|
|
"jest": "^29.7.0",
|
|
"react-test-renderer": "18.2.0",
|
|
"typescript": "^5.3.0"
|
|
}
|
|
}
|