{
  "name": "dahonghua-app",
  "main": "expo-router/entry",
  "version": "1.0.0",
  "description": "大红花记账 · Red Blossom — an offline-first, bilingual personal ledger for iOS, Android and the web.",
  "keywords": [
    "expo",
    "react-native",
    "ledger",
    "budget",
    "personal-finance",
    "offline-first",
    "supabase",
    "i18n"
  ],
  "homepage": "https://github.com/ChristoGoodrich/dahonghua-jizhang#readme",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/ChristoGoodrich/dahonghua-jizhang.git"
  },
  "bugs": {
    "url": "https://github.com/ChristoGoodrich/dahonghua-jizhang/issues"
  },
  "license": "MIT",
  "author": "ChristoGoodrich",
  "dependencies": {
    "@expo/metro-runtime": "~56.0.18",
    "@legendapp/state": "^2.1.15",
    "@react-native-async-storage/async-storage": "2.2.0",
    "@sentry/react-native": "^8.20.0",
    "@supabase/supabase-js": "^2.108.2",
    "expo": "~56.0.12",
    "expo-blur": "~56.0.4",
    "expo-constants": "~56.0.18",
    "expo-document-picker": "~56.0.4",
    "expo-file-system": "~56.0.8",
    "expo-haptics": "~56.0.3",
    "expo-image-picker": "~56.0.22",
    "expo-linking": "~56.0.14",
    "expo-local-authentication": "~56.0.4",
    "expo-notifications": "~56.0.18",
    "expo-print": "~56.0.4",
    "expo-router": "~56.2.11",
    "expo-sharing": "~56.0.18",
    "expo-splash-screen": "~56.0.10",
    "expo-status-bar": "~56.0.4",
    "expo-system-ui": "~56.0.5",
    "react": "19.2.3",
    "react-native": "0.85.3",
    "react-native-gesture-handler": "~2.31.1",
    "react-native-reanimated": "4.3.1",
    "react-native-safe-area-context": "~5.7.0",
    "react-native-screens": "4.25.2",
    "react-native-svg": "15.15.4",
    "react-native-url-polyfill": "^3.0.0",
    "react-native-web": "^0.21.2",
    "react-native-worklets": "0.8.3",
    "xlsx": "^0.18.5"
  },
  "devDependencies": {
    "@storybook/addon-essentials": "^8.6.18",
    "@storybook/addon-interactions": "^8.6.18",
    "@storybook/react": "^8.6.18",
    "@storybook/react-vite": "^8.6.18",
    "@types/jest": "^30.0.0",
    "@types/react": "~19.2.2",
    "detox": "^20.33.0",
    "eslint": "^9.0.0",
    "eslint-config-expo": "~56.0.4",
    "jest": "^29.7.0",
    "jest-expo": "^56.0.5",
    "react-dom": "19.2.3",
    "storybook": "^8.6.18",
    "typescript": "~6.0.3"
  },
  "scripts": {
    "start": "expo start",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "lint": "expo lint",
    "test": "jest",
    "typecheck": "tsc --noEmit",
    "e2e:build:ios": "detox build --configuration ios.sim.debug",
    "e2e:test:ios": "detox test --configuration ios.sim.debug",
    "e2e:build:android": "detox build --configuration android.emu.debug",
    "e2e:test:android": "detox test --configuration android.emu.debug",
    "storybook": "storybook dev -p 6006",
    "storybook:build": "storybook build"
  },
  "private": true
}
