{
  "name": "minemind",
  "version": "0.1.0",
  "main": "expo-router/entry",
  "scripts": {
    "start": "expo start",
    "dev": "expo start --clear",
    "android": "expo run:android",
    "android:qa": "node scripts/run-android-qa.mjs",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "export:web": "npx expo export --platform web",
    "serve:web-export": "node scripts/serve-web-export.mjs",
    "smoke:web-export": "node scripts/smoke-web-export.mjs",
    "check:web-budget": "node scripts/check-web-export-budget.mjs",
    "test": "tsx --test tests/**/*.test.ts",
    "typecheck": "tsc --noEmit",
    "typecheck:tests": "tsc --noEmit -p tsconfig.tests.json",
    "lint": "eslint .",
    "format": "prettier --write \"{src,tests,scripts}/**/*.{ts,tsx}\"",
    "format:check": "prettier --check \"{src,tests,scripts}/**/*.{ts,tsx}\"",
    "doctor:expo": "npx expo-doctor",
    "audit:security": "npm audit --audit-level=moderate",
    "doctor:react": "npx -y react-doctor@latest . --verbose",
    "doctor:react:diff": "npx -y react-doctor@latest . --verbose --diff",
    "check:edge": "node scripts/check-edge-functions.mjs",
    "validate:content": "npx tsx scripts/validate-question-bank.ts && npx tsx scripts/validate-master-question-program.ts && npx tsx scripts/lint-question-duplicates.ts",
    "validate": "npm test && npm run typecheck && npm run typecheck:tests && npm run lint && npm run export:web",
    "validate:release": "npm test && npm run typecheck && npm run typecheck:tests && npm run lint && npm run validate:content && npm run doctor:expo && npm run audit:security && npm run check:edge && npm run smoke:web-export && npm run check:web-budget"
  },
  "dependencies": {
    "@expo/metro-runtime": "~55.0.11",
    "@react-native-async-storage/async-storage": "2.2.0",
    "@supabase/supabase-js": "^2.107.0",
    "@tanstack/react-query": "^5.90.21",
    "expo": "~55.0.27",
    "expo-constants": "~55.0.16",
    "expo-dev-client": "~55.0.36",
    "expo-font": "~55.0.8",
    "expo-image": "~55.0.11",
    "expo-linear-gradient": "~55.0.15",
    "expo-linking": "~55.0.16",
    "expo-localization": "~55.0.16",
    "expo-network": "~55.0.15",
    "expo-router": "~55.0.16",
    "expo-secure-store": "~55.0.15",
    "expo-status-bar": "~55.0.6",
    "i18next": "^25.8.18",
    "qrcode-generator": "^2.0.4",
    "react": "19.2.0",
    "react-dom": "19.2.0",
    "react-i18next": "^16.5.8",
    "react-native": "0.83.6",
    "react-native-get-random-values": "~1.11.0",
    "react-native-safe-area-context": "~5.6.2",
    "react-native-screens": "~4.23.0",
    "react-native-svg": "15.15.3",
    "react-native-tcp-socket": "^6.4.1",
    "react-native-url-polyfill": "^3.0.0",
    "react-native-web": "^0.21.0",
    "zod": "^4.3.6",
    "zustand": "^5.0.11"
  },
  "devDependencies": {
    "@types/node": "^25.5.0",
    "@types/react": "~19.2.2",
    "deno": "^2.8.2",
    "eslint": "^9.39.4",
    "globals": "^17.7.0",
    "prettier": "^3.9.5",
    "tsx": "^4.21.0",
    "typescript": "~5.9.2",
    "typescript-eslint": "^8.63.0"
  },
  "expo": {
    "doctor": {
      "reactNativeDirectoryCheck": {
        "exclude": [
          "react-native-tcp-socket"
        ]
      }
    }
  },
  "overrides": {
    "xcode": {
      "uuid": "^11.1.1"
    }
  },
  "private": true
}
