{
  "name": "inaturalistreactnative",
  "version": "1.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "android:release": "react-native run-android --mode=release",
    "ios": "react-native run-ios",
    "ios:release": "npx react-native run-ios --device --mode Release",
    "start": "react-native start",
    "clean": "./scripts/clean.sh",
    "clean-start": "npx react-native clean-project && npx pod-install && npm run clean && npm start -- --reset-cache",
    "test": "jest tests/integration && jest tests/unit tests/helpers",
    "test:clear": "jest --clearCache",
    "test:memory": "jest --runInBand --logHeapUsage",
    "lint": "npm run lint:eslint && npm run lint:flow && npm run lint:rubocop",
    "lint:fix": "npm run lint:eslint:fix && npm run lint:flow && npm run lint:rubocop:fix",
    "lint:staged:fix": "npx lint-staged && npm run lint:flow",
    "lint:eslint": "eslint .",
    "lint:eslint:fix": "eslint . --fix",
    "lint:flow": "flow check",
    "lint:rubocop": "bundle exec rubocop",
    "lint:rubocop:fix": "bundle exec rubocop -A",
    "lint:tsc": "tsc --allowJs false --noEmit",
    "postinstall": "husky && patch-package",
    "translate": "node src/i18n/i18ncli.js build",
    "prepare-fastlane-metadata": "node src/i18n/i18ncli.js prepare-fastlane-metadata",
    "e2e:android": "npm run e2e:build:android && npm run e2e:test:android",
    "e2e:build:android": "MOCK_MODE=e2e npx detox build --configuration android.release",
    "e2e:build:ios": "MOCK_MODE=e2e npx detox build --configuration ios.release",
    "e2e:build": "npm run e2e:build:ios && npm run e2e:build:android",
    "e2e:ios": "npm run e2e:build:ios && npm run e2e:test:ios",
    "e2e:test:android": "MOCK_MODE=e2e npx detox test --configuration android.release",
    "e2e:test:ios": "MOCK_MODE=e2e npx detox test --configuration ios.release",
    "e2e:ios:test": "npm run e2e:test:ios",
    "e2e:ios:build": "npm run e2e:build:ios",
    "e2e:android:test": "npm run e2e:test:android",
    "e2e:android:build": "npm run e2e:build:android",
    "e2e:test": "npm run e2e:test:ios && npm run e2e:test:android",
    "e2e": "npm run e2e:build && npm run e2e:test",
    "icons": "./scripts/update-icon-font.sh",
    "add-example-model": "node scripts/add-example-model.js",
    "reassure": "reassure"
  },
  "dependencies": {
    "@bam.tech/react-native-image-resizer": "^3.0.11",
    "@candlefinance/faster-image": "^1.4.3",
    "@formidable-webview/webshell": "^2.6.0",
    "@gorhom/bottom-sheet": "^4.6.1",
    "@invertase/react-native-apple-authentication": "^2.4.0",
    "@likashefqet/react-native-image-zoom": "^4.2.0",
    "@react-native-camera-roll/camera-roll": "github:inaturalist/react-native-cameraroll",
    "@react-native-clipboard/clipboard": "^1.13.2",
    "@react-native-community/datetimepicker": "^7.6.3",
    "@react-native-community/geolocation": "^3.2.1",
    "@react-native-community/hooks": "^3.0.0",
    "@react-native-community/netinfo": "^11.3.1",
    "@react-native-community/slider": "^4.5.0",
    "@react-native-google-signin/google-signin": "^13.1.0",
    "@react-native-picker/picker": "^2.7.2",
    "@react-navigation/bottom-tabs": "^6.6.1",
    "@react-navigation/drawer": "^6.6.15",
    "@react-navigation/elements": "^1.3.30",
    "@react-navigation/native": "^6.1.17",
    "@react-navigation/native-stack": "^6.9.26",
    "@realm/react": "^0.11.0",
    "@sayem314/react-native-keep-awake": "^1.2.3",
    "@shopify/flash-list": "^1.7.2",
    "@tanstack/react-query": "^5.29.0",
    "apisauce": "^3.1.0",
    "classnames": "^2.5.1",
    "date-fns": "^3.0.0",
    "date-fns-tz": "^3.0.0",
    "i18next": "^23.10.1",
    "i18next-fluent": "^2.0.0",
    "i18next-resources-to-backend": "^1.2.0",
    "inaturalistjs": "github:inaturalist/inaturalistjs",
    "intl-pluralrules": "^2.0.1",
    "jsrsasign": "^11.1.0",
    "linkify-html": "^4.1.3",
    "linkify-plugin-mention": "^4.1.3",
    "linkifyjs": "^4.1.3",
    "lodash": "^4.17.21",
    "markdown-it": "^14.1.0",
    "nativewind": "^2.0.11",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-i18next": "^14.1.0",
    "react-native": "0.73.11",
    "react-native-animated-dots-carousel": "^2.0.0",
    "react-native-audio-recorder-player": "^3.6.7",
    "react-native-bouncy-checkbox": "^3.0.7",
    "react-native-circular-progress-indicator": "^4.4.2",
    "react-native-config": "^1.5.3",
    "react-native-device-info": "^10.13.1",
    "react-native-draggable-flatlist": "^4.0.1",
    "react-native-event-listeners": "^1.0.7",
    "react-native-exception-handler": "^2.10.10",
    "react-native-exif-reader": "github:inaturalist/react-native-exif-reader#v0.4.3",
    "react-native-fs": "^2.20.0",
    "react-native-geocoder-reborn": "^0.9.0",
    "react-native-gesture-handler": "^2.16.0",
    "react-native-get-random-values": "^1.11.0",
    "react-native-image-picker": "github:inaturalist/react-native-image-picker",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-linear-gradient": "^2.8.3",
    "react-native-localize": "^3.1.0",
    "react-native-logs": "^5.1.0",
    "react-native-mail": "github:chirag04/react-native-mail",
    "react-native-maps": "^1.13.0",
    "react-native-mmkv": "^2.12.2",
    "react-native-modal": "^13.0.1",
    "react-native-modal-datetime-picker": "^17.1.0",
    "react-native-network-logger": "^1.15.0",
    "react-native-open-maps": "^0.4.3",
    "react-native-orientation-locker": "github:wonday/react-native-orientation-locker",
    "react-native-paper": "^5.12.3",
    "react-native-permissions": "^4.1.5",
    "react-native-reanimated": "^3.11.0",
    "react-native-reanimated-carousel": "^3.5.1",
    "react-native-render-html": "^6.3.4",
    "react-native-restart": "^0.0.27",
    "react-native-safe-area-context": "^4.9.0",
    "react-native-screens": "^3.30.1",
    "react-native-sensitive-info": "^6.0.0-alpha.9",
    "react-native-share-menu": "github:inaturalist/react-native-share-menu#iNaturalistReactNative",
    "react-native-store-review": "^0.4.3",
    "react-native-svg": "^15.1.0",
    "react-native-svg-transformer": "^1.3.0",
    "react-native-url-polyfill": "^2.0.0",
    "react-native-vector-icons": "^10.0.3",
    "react-native-vision-camera": "4.0.5",
    "react-native-volume-manager": "^1.10.0",
    "react-native-webview": "^13.8.4",
    "react-native-worklets-core": "^1.3.3",
    "realm": "^20.1.0",
    "sanitize-html": "^2.13.0",
    "ts-jest": "^29.1.2",
    "uuid": "^11.0.5",
    "vision-camera-plugin-inatvision": "github:inaturalist/vision-camera-plugin-inatvision#924a801b224be6243679c8237fbe0ec58ece0ac9",
    "zustand": "^4.5.2"
  },
  "devDependencies": {
    "@babel/preset-react": "^7.24.1",
    "@babel/preset-typescript": "^7.24.1",
    "@babel/runtime": "^7.24.4",
    "@faker-js/faker": "^8.4.1",
    "@fluent/syntax": "^0.19.0",
    "@react-native/babel-preset": "0.73.21",
    "@react-native/eslint-config": "0.73.2",
    "@react-native/metro-config": "0.73.5",
    "@react-native/typescript-config": "0.73.1",
    "@tanstack/eslint-plugin-query": "^5.28.11",
    "@testing-library/jest-native": "^5.4.3",
    "@testing-library/react-native": "^12.4.5",
    "@types/jest": "^29.5.12",
    "@types/jsrsasign": "^10.5.15",
    "@types/lodash": "^4.17.14",
    "@types/markdown-it": "^14.1.2",
    "@types/react": "^18.2.74",
    "@types/react-native-vector-icons": "^6.4.18",
    "@types/react-test-renderer": "^18.0.7",
    "@types/sanitize-html": "^2.13.0",
    "babel-jest": "^29.6.3",
    "babel-plugin-module-resolver": "^5.0.0",
    "babel-plugin-transform-inline-environment-variables": "^0.4.4",
    "babel-plugin-transform-remove-console": "^6.9.4",
    "chalk": "^5.4.1",
    "decompress": "^4.2.1",
    "detox": "^20.34.5",
    "dotenv": "^16.4.7",
    "eslint": "^8.57.0",
    "eslint-config-airbnb": "^19.0.4",
    "eslint-import-resolver-babel-module": "^5.3.2",
    "eslint-plugin-i18next": "^6.1.1",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-jsx-a11y": "^6.10.2",
    "eslint-plugin-module-resolver": "^1.5.0",
    "eslint-plugin-react-native-a11y": "^3.5.1",
    "eslint-plugin-simple-import-sort": "^12.0.0",
    "eslint-plugin-testing-library": "^6.2.0",
    "factoria": "^4.0.1",
    "flow-bin": "^0.182.0",
    "fluent_conv": "^3.3.0",
    "glob": "^10.3.12",
    "husky": "^9.0.11",
    "jest": "^29.7.0",
    "jest-fetch-mock": "github:jefflau/jest-fetch-mock",
    "jest-slow-test-reporter": "^1.0.0",
    "nock": "^13.5.6",
    "node-downloader-helper": "^2.1.9",
    "patch-package": "^8.0.0",
    "react-native-accessibility-engine": "^3.2.0",
    "react-native-clean-project": "^4.0.3",
    "react-native-config-node": "^0.0.3",
    "react-test-renderer": "18.2.0",
    "reassure": "^1.1.0",
    "tailwindcss": "^3.3.2",
    "ts-node": "^10.9.2",
    "typescript": "5.0.4",
    "yargs": "^17.7.2"
  },
  "engines": {
    "node": ">=18"
  },
  "packageManager": "yarn@3.6.4",
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": [
      "eslint --cache --fix --max-warnings=0 --cache-location .eslintcache"
    ],
    "*.rb": [
      "bundle exec rubocop --force-exclusion --parallel"
    ]
  }
}