Files
life-echo/app-expo/package.json
Kevin 22d282dc01 feat(api): use Tencent 16k_zh_large ASR and remove local Whisper
Standardize ASR on Tencent's dialect-capable engine across all environments,
drop faster-whisper from dependencies and deployment images, and add an
expo-sqlite iOS vendor sync plus pod install in prebuild to prevent native
build failures after npm install.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-25 10:21:41 +08:00

129 lines
4.8 KiB
JSON

{
"name": "life-echo",
"main": "expo-router/entry",
"version": "1.2.0",
"scripts": {
"use-env": "node scripts/use-env.js",
"postinstall": "node scripts/ensure-expo-sqlite-ios.js",
"prestart": "npm run use-env -- development",
"start": "expo start",
"start:staging": "npm run use-env -- staging && expo start",
"start:prod": "npm run use-env -- production && expo start",
"reset-project": "node ./scripts/reset-project.js",
"android": "npm run use-env -- development && expo run:android",
"ios": "npm run use-env -- development && node scripts/ensure-expo-sqlite-ios.js && expo run:ios",
"ios:prebuild": "bash scripts/ios-prebuild.sh staging",
"ios:prebuild:staging": "bash scripts/ios-prebuild.sh staging",
"ios:prebuild:production": "bash scripts/ios-prebuild.sh production",
"web": "npm run use-env -- development && expo start --web",
"lint": "expo lint",
"test": "jest --watch",
"test:changed": "jest --onlyChanged --coverage=false",
"test:ci": "jest --ci --runInBand --coverage --forceExit",
"test:update": "jest -u --coverage=false",
"format": "prettier . --write",
"format:check": "prettier . --check",
"i18n:extract": "npx -y i18next-cli@1.50.1 extract",
"i18n:extract:ci": "npx -y i18next-cli@1.50.1 extract --ci",
"i18n:lint": "npx -y i18next-cli@1.50.1 lint",
"i18n:sync": "npx -y i18next-cli@1.50.1 sync",
"i18n:types": "npx -y i18next-cli@1.50.1 types",
"i18n:check": "npm run i18n:extract:ci && npm run i18n:lint && npm run i18n:types"
},
"dependencies": {
"@dev-plugins/react-query": "^0.4.0",
"@react-navigation/bottom-tabs": "^7.7.3",
"@react-navigation/elements": "^2.8.1",
"@react-navigation/native": "^7.1.28",
"@rn-primitives/accordion": "^1.2.0",
"@rn-primitives/alert-dialog": "^1.2.0",
"@rn-primitives/aspect-ratio": "^1.2.0",
"@rn-primitives/avatar": "^1.2.0",
"@rn-primitives/checkbox": "^1.2.0",
"@rn-primitives/collapsible": "^1.2.0",
"@rn-primitives/context-menu": "^1.2.0",
"@rn-primitives/dialog": "^1.2.0",
"@rn-primitives/dropdown-menu": "^1.2.0",
"@rn-primitives/hover-card": "^1.2.0",
"@rn-primitives/label": "^1.2.0",
"@rn-primitives/menubar": "^1.2.0",
"@rn-primitives/popover": "^1.2.0",
"@rn-primitives/progress": "^1.2.0",
"@rn-primitives/radio-group": "^1.2.0",
"@rn-primitives/select": "^1.2.0",
"@rn-primitives/separator": "^1.2.0",
"@rn-primitives/slot": "^1.2.0",
"@rn-primitives/switch": "^1.2.0",
"@rn-primitives/tabs": "^1.2.0",
"@rn-primitives/toggle": "^1.2.0",
"@rn-primitives/toggle-group": "^1.2.0",
"@rn-primitives/tooltip": "^1.2.0",
"@tanstack/react-query": "^5.90.21",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"expo": "~55.0.6",
"expo-asset": "~55.0.8",
"expo-audio": "~55.0.8",
"expo-constants": "~55.0.7",
"expo-device": "~55.0.9",
"expo-document-picker": "~55.0.8",
"expo-file-system": "~55.0.10",
"expo-font": "~55.0.4",
"expo-glass-effect": "~55.0.8",
"expo-image": "~55.0.6",
"expo-image-manipulator": "~55.0.10",
"expo-image-picker": "~55.0.12",
"expo-linear-gradient": "~55.0.9",
"expo-linking": "~55.0.7",
"expo-localization": "~55.0.8",
"expo-media-library": "~55.0.9",
"expo-router": "~55.0.5",
"expo-secure-store": "~55.0.8",
"expo-speech": "~55.0.8",
"expo-splash-screen": "~55.0.10",
"expo-sqlite": "~55.0.10",
"expo-status-bar": "~55.0.4",
"expo-symbols": "~55.0.5",
"expo-system-ui": "~55.0.9",
"expo-task-manager": "~55.0.9",
"expo-web-browser": "~55.0.9",
"i18next": "^25.8.18",
"lucide-react-native": "^0.577.0",
"nativewind": "^4.2.2",
"react": "19.2.0",
"react-dom": "19.2.0",
"react-i18next": "^16.5.8",
"react-native": "0.83.2",
"react-native-gesture-handler": "~2.30.0",
"react-native-keyboard-controller": "1.20.7",
"react-native-markdown-display": "^7.0.2",
"react-native-reanimated": "4.2.1",
"react-native-safe-area-context": "~5.6.2",
"react-native-screens": "~4.23.0",
"react-native-svg": "15.15.3",
"react-native-web": "~0.21.0",
"react-native-webview": "13.16.0",
"react-native-worklets": "0.7.2",
"tailwind-merge": "^3.5.0",
"tailwindcss-animate": "^1.0.7"
},
"devDependencies": {
"@testing-library/react-native": "^13.3.3",
"@types/jest": "29.5.14",
"@types/react": "~19.2.2",
"babel-preset-expo": "~55.0.8",
"eslint": "^9.0.0",
"eslint-config-expo": "~55.0.0",
"eslint-config-prettier": "^10.1.8",
"i18next-cli": "^1.50.1",
"jest": "~29.7.0",
"jest-expo": "~55.0.9",
"prettier": "^3.8.1",
"prettier-plugin-tailwindcss": "^0.5.11",
"react-test-renderer": "19.2.0",
"tailwindcss": "^3.4.17",
"typescript": "~5.9.2"
},
"private": true
}