{
  "name": "solidus-bingo",
  "version": "1.0.0",
  "main": "expo-router/entry",
  "scripts": {
    "start": "expo start",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "test": "jest --testPathPattern='(unit|pbt|store|component)' --passWithNoTests",
    "test:unit": "jest --testPathPattern='(gameEngine|store)' --passWithNoTests",
    "test:integration": "jest --testPathPattern='test/integration' --passWithNoTests --runInBand",
    "test:component": "jest --testPathPattern='component' --passWithNoTests",
    "test:coverage": "jest --coverage --passWithNoTests --selectProjects unit",
    "lint": "tsc --noEmit && eslint src --ext .ts,.tsx --max-warnings 0"
  },
  "dependencies": {
    "@expo-google-fonts/grenze-gotisch": "^0.4.2",
    "@expo-google-fonts/playfair-display": "^0.4.2",
    "@expo-google-fonts/pt-serif": "^0.4.1",
    "@expo-google-fonts/unifrakturcook": "^0.4.1",
    "@supabase/supabase-js": "2.39.7",
    "expo": "~51.0.0",
    "expo-auth-session": "~5.5.2",
    "expo-constants": "~16.0.2",
    "expo-font": "~12.0.10",
    "expo-linear-gradient": "~13.0.2",
    "expo-linking": "~6.3.1",
    "expo-navigation-bar": "~3.0.7",
    "expo-router": "~3.5.14",
    "expo-secure-store": "~13.0.1",
    "expo-splash-screen": "~0.27.5",
    "expo-status-bar": "~1.12.1",
    "expo-updates": "~0.25.28",
    "expo-web-browser": "~13.0.3",
    "react": "18.2.0",
    "react-native": "0.74.5",
    "react-native-safe-area-context": "4.10.1",
    "react-native-screens": "3.31.1",
    "react-native-url-polyfill": "2.0.0",
    "zustand": "4.5.2"
  },
  "devDependencies": {
    "@babel/core": "^7.24.0",
    "@types/jest": "^29.5.12",
    "@types/react": "~18.2.79",
    "@types/react-test-renderer": "^18.3.1",
    "@typescript-eslint/eslint-plugin": "^7.7.0",
    "@typescript-eslint/parser": "^7.7.0",
    "babel-jest": "^29.7.0",
    "eslint": "^8.57.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-native": "^4.1.0",
    "fast-check": "^3.18.0",
    "jest": "^29.7.0",
    "jest-expo": "~51.0.2",
    "jest-junit": "^16.0.0",
    "ts-jest": "^29.1.2",
    "typescript": "~5.3.3"
  },
  "jest": {
    "preset": "jest-expo",
    "transformIgnorePatterns": [
      "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)"
    ],
    "testMatch": [
      "**/__tests__/**/*.test.ts",
      "**/__tests__/**/*.test.tsx",
      "**/*.test.ts",
      "**/*.test.tsx",
      "**/test/**/*.test.ts"
    ],
    "testTimeout": 5000,
    "projects": [
      {
        "displayName": "unit",
        "testMatch": [
          "<rootDir>/src/**/*.test.ts",
          "<rootDir>/src/**/*.test.tsx"
        ],
        "preset": "jest-expo"
      },
      {
        "displayName": "integration",
        "testMatch": [
          "<rootDir>/test/integration/**/*.test.ts"
        ],
        "globalSetup": "<rootDir>/test/integration/setup.ts",
        "globalTeardown": "<rootDir>/test/integration/teardown.ts",
        "testTimeout": 30000,
        "preset": "ts-jest",
        "testEnvironment": "node"
      }
    ],
    "collectCoverageFrom": [
      "src/**/*.{ts,tsx}",
      "!src/**/*.d.ts",
      "!src/**/__tests__/**"
    ],
    "coverageReporters": [
      "text-summary",
      "lcov"
    ],
    "coverageThreshold": {
      "global": {
        "lines": 10,
        "branches": 5
      }
    },
    "reporters": [
      "default",
      [
        "jest-junit",
        {
          "outputDirectory": ".",
          "outputName": "junit.xml"
        }
      ]
    ]
  }
}
