Files
Kordant/packages/mobile/package.json
Michael Freno 90a223bc79 fix: address code review findings for mobile app (FRE-4572)
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>
2026-05-17 10:51:14 -04:00

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"
}
}