{ "name": "streamyfin", "main": "./index", "version": "1.0.0", "scripts": { "submodule-reload": "git submodule update --init --remote --recursive", "clean": "echo y | expo prebuild --clean", "start": "bun run submodule-reload && expo start", "prebuild": "cross-env EXPO_TV=0 bun run clean", "prebuild:tv": "cross-env EXPO_TV=1 bun run clean", "ios:install-metal-toolchain": "bash scripts/ios/install-metal-toolchain.sh", "ios": "cross-env EXPO_TV=0 expo run:ios", "ios:tv": "cross-env EXPO_TV=1 expo run:ios", "android": "cross-env EXPO_TV=0 expo run:android", "android:tv": "cross-env EXPO_TV=1 expo run:android", "build:android:local": "cd android && cross-env NODE_ENV=production ./gradlew assembleRelease", "ios:unsigned-build": "cross-env EXPO_TV=0 bun scripts/ios/build-ios.ts --production", "prepare": "husky", "typecheck": "node scripts/typecheck.js", "check": "biome check . --max-diagnostics 1000", "lint": "biome check --write --unsafe --max-diagnostics 1000", "format": "biome format --write .", "doctor": "expo-doctor", "test": "bun run typecheck && bun run lint && bun run format && bun run doctor", "postinstall": "patch-package" }, "dependencies": { "@bottom-tabs/react-navigation": "1.1.0", "@douglowder/expo-av-route-picker-view": "^0.0.5", "@expo/metro-runtime": "~6.1.1", "@expo/react-native-action-sheet": "^4.1.1", "@expo/ui": "0.2.0-beta.9", "@expo/vector-icons": "^15.0.3", "@gorhom/bottom-sheet": "5.2.8", "@jellyfin/sdk": "^0.13.0", "@react-native-community/netinfo": "^11.4.1", "@react-navigation/material-top-tabs": "7.4.9", "@react-navigation/native": "^7.0.14", "@shopify/flash-list": "2.0.2", "@tanstack/query-sync-storage-persister": "^5.90.18", "@tanstack/react-pacer": "^0.19.1", "@tanstack/react-query": "5.90.17", "@tanstack/react-query-persist-client": "^5.90.18", "axios": "^1.7.9", "expo": "~54.0.31", "expo-application": "~7.0.8", "expo-asset": "~12.0.12", "expo-background-task": "~1.0.10", "expo-blur": "~15.0.8", "expo-brightness": "~14.0.8", "expo-build-properties": "~1.0.10", "expo-constants": "18.0.13", "expo-crypto": "^15.0.8", "expo-dev-client": "~6.0.20", "expo-device": "~8.0.10", "expo-font": "~14.0.10", "expo-haptics": "~15.0.8", "expo-image": "~3.0.11", "expo-linear-gradient": "~15.0.8", "expo-linking": "~8.0.11", "expo-localization": "~17.0.8", "expo-location": "^19.0.8", "expo-notifications": "~0.32.16", "expo-router": "~6.0.21", "expo-screen-orientation": "~9.0.8", "expo-secure-store": "^15.0.8", "expo-sharing": "~14.0.8", "expo-splash-screen": "~31.0.13", "expo-status-bar": "~3.0.9", "expo-system-ui": "~6.0.9", "expo-task-manager": "14.0.9", "expo-web-browser": "~15.0.10", "i18next": "^25.0.0", "jotai": "2.16.2", "lodash": "4.17.21", "nativewind": "^2.0.11", "patch-package": "^8.0.0", "react": "19.1.0", "react-dom": "19.1.0", "react-i18next": "16.5.3", "react-native": "0.81.5", "react-native-awesome-slider": "^2.9.0", "react-native-bottom-tabs": "1.1.0", "react-native-circular-progress": "^1.4.1", "react-native-collapsible": "^1.6.2", "react-native-country-flag": "^2.0.2", "react-native-device-info": "^15.0.0", "react-native-draggable-flatlist": "^4.0.3", "react-native-edge-to-edge": "^1.7.0", "react-native-gesture-handler": "2.28.0", "react-native-glass-effect-view": "^1.0.0", "react-native-google-cast": "^4.9.1", "react-native-image-colors": "^2.4.0", "react-native-ios-context-menu": "^3.2.1", "react-native-ios-utilities": "5.2.0", "react-native-mmkv": "4.1.1", "react-native-nitro-modules": "0.32.1", "react-native-pager-view": "^6.9.1", "react-native-reanimated": "~4.1.1", "react-native-reanimated-carousel": "4.0.3", "react-native-safe-area-context": "~5.6.0", "react-native-screens": "~4.18.0", "react-native-svg": "15.12.1", "react-native-text-ticker": "^1.15.0", "react-native-track-player": "github:lovegaoshi/react-native-track-player#APM", "react-native-udp": "^4.1.7", "react-native-url-polyfill": "^2.0.0", "react-native-uuid": "^2.0.3", "react-native-volume-manager": "^2.0.8", "react-native-web": "^0.21.0", "react-native-worklets": "0.5.1", "sonner-native": "0.21.2", "tailwindcss": "3.3.2", "use-debounce": "^10.0.4", "zod": "4.1.13" }, "devDependencies": { "@babel/core": "7.28.6", "@biomejs/biome": "2.3.11", "@react-native-community/cli": "20.1.0", "@react-native-tvos/config-tv": "0.1.4", "@types/jest": "29.5.14", "@types/lodash": "4.17.23", "@types/react": "19.1.17", "@types/react-test-renderer": "19.1.0", "cross-env": "10.1.0", "expo-doctor": "1.17.14", "husky": "9.1.7", "lint-staged": "16.2.7", "react-test-renderer": "19.2.3", "typescript": "5.9.3" }, "expo": { "doctor": { "reactNativeDirectoryCheck": { "exclude": [ "react-native-google-cast", "react-native-udp", "@jellyfin/sdk" ], "listUnknownPackages": false } }, "install": { "exclude": [ "react-native-screens" ] } }, "private": true, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "biome check --write --unsafe --no-errors-on-unmatched" ], "*.json": [ "biome format --write" ] }, "trustedDependencies": [ "unrs-resolver" ], "resolutions": { "expo-constants": "18.0.13" } }