mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-05-31 11:08:26 +01:00
With SwiftUICore resolved (prev commit), the app link surfaced the real blocker: `Undefined symbols: _OBJC_CLASS_$_RCTRootContentView`, referenced from react-native-ios-utilities (RCTView+Helpers.o). RCTRootContentView is a legacy paper class that the prebuilt new-architecture React in RN 0.85 no longer exports. ios-utilities@5.2.0 is the latest release and still references it, so no version bump fixes this. Patch the single offending helper (closestParentReactContentView) to return nil with an RCTView? type, dropping the only RCTRootContentView reference in the pod. It feeds only the last-resort touch-handler fallback, moot under the new arch. Nothing else (incl. react-native-ios-context-menu) references it. NOTE: react-native-ios-utilities + react-native-ios-context-menu (both Dominic's, latest 5.2.0 / 3.2.1) are effectively unmaintained for RN 0.85 — candidates for removal/replacement (context-menu is used only in DiscoverFilters.tsx), like udp.
172 lines
6.0 KiB
JSON
172 lines
6.0 KiB
JSON
{
|
|
"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",
|
|
"ios:unsigned-build:tv": "cross-env EXPO_TV=1 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.2.0",
|
|
"@douglowder/expo-av-route-picker-view": "^0.0.5",
|
|
"@expo/metro-runtime": "~56.0.13",
|
|
"@expo/react-native-action-sheet": "^4.1.1",
|
|
"@expo/ui": "~56.0.14",
|
|
"@expo/vector-icons": "^15.0.3",
|
|
"@gorhom/bottom-sheet": "5.2.8",
|
|
"@jellyfin/sdk": "^0.13.0",
|
|
"@react-native-community/netinfo": "^12.0.0",
|
|
"@react-navigation/native": "^7.2.5",
|
|
"@shopify/flash-list": "2.0.2",
|
|
"@tanstack/query-sync-storage-persister": "^5.100.14",
|
|
"@tanstack/react-pacer": "^0.19.1",
|
|
"@tanstack/react-query": "5.100.14",
|
|
"@tanstack/react-query-persist-client": "^5.100.14",
|
|
"axios": "^1.7.9",
|
|
"expo": "~56.0.6",
|
|
"expo-application": "~56.0.3",
|
|
"expo-asset": "~56.0.15",
|
|
"expo-audio": "~56.0.11",
|
|
"expo-background-task": "~56.0.15",
|
|
"expo-blur": "~56.0.3",
|
|
"expo-brightness": "~56.0.5",
|
|
"expo-build-properties": "~56.0.15",
|
|
"expo-camera": "~56.0.7",
|
|
"expo-constants": "~56.0.16",
|
|
"expo-crypto": "~56.0.4",
|
|
"expo-dev-client": "~56.0.16",
|
|
"expo-device": "~56.0.4",
|
|
"expo-font": "~56.0.5",
|
|
"expo-haptics": "~56.0.3",
|
|
"expo-image": "~56.0.9",
|
|
"expo-linear-gradient": "~56.0.4",
|
|
"expo-linking": "~56.0.12",
|
|
"expo-localization": "~56.0.6",
|
|
"expo-location": "~56.0.14",
|
|
"expo-notifications": "~56.0.14",
|
|
"expo-router": "~56.2.7",
|
|
"expo-screen-orientation": "~56.0.5",
|
|
"expo-secure-store": "~56.0.4",
|
|
"expo-sharing": "~56.0.14",
|
|
"expo-splash-screen": "~56.0.10",
|
|
"expo-status-bar": "~56.0.4",
|
|
"expo-system-ui": "~56.0.5",
|
|
"expo-task-manager": "~56.0.15",
|
|
"expo-web-browser": "~56.0.5",
|
|
"i18next": "^26.3.0",
|
|
"jotai": "2.20.0",
|
|
"lodash": "4.18.1",
|
|
"nativewind": "^2.0.11",
|
|
"patch-package": "^8.0.0",
|
|
"react": "19.2.3",
|
|
"react-dom": "19.2.3",
|
|
"react-i18next": "17.0.8",
|
|
"react-native": "npm:react-native-tvos@0.85.3-0",
|
|
"react-native-awesome-slider": "^2.9.0",
|
|
"react-native-bottom-tabs": "1.2.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.31.1",
|
|
"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.33.1",
|
|
"react-native-pager-view": "8.0.1",
|
|
"react-native-qrcode-svg": "^6.3.21",
|
|
"react-native-reanimated": "4.3.1",
|
|
"react-native-reanimated-carousel": "4.0.3",
|
|
"react-native-safe-area-context": "~5.7.0",
|
|
"react-native-screens": "4.25.2",
|
|
"react-native-svg": "15.15.4",
|
|
"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.8.3",
|
|
"sonner-native": "0.21.2",
|
|
"tailwindcss": "3.3.2",
|
|
"use-debounce": "^10.0.4",
|
|
"zod": "4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "7.29.7",
|
|
"@biomejs/biome": "2.3.11",
|
|
"@react-native-community/cli": "20.1.3",
|
|
"@react-native-tvos/config-tv": "0.1.6",
|
|
"@types/jest": "29.5.14",
|
|
"@types/lodash": "4.17.24",
|
|
"@types/react": "~19.2.10",
|
|
"@types/react-test-renderer": "19.1.0",
|
|
"cross-env": "10.1.0",
|
|
"expo-doctor": "1.19.7",
|
|
"husky": "9.1.7",
|
|
"lint-staged": "17.0.5",
|
|
"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",
|
|
"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"
|
|
],
|
|
"patchedDependencies": {
|
|
"react-native-udp@4.1.7": "bun-patches/react-native-udp@4.1.7.patch",
|
|
"react-native-bottom-tabs@1.2.0": "bun-patches/react-native-bottom-tabs@1.2.0.patch",
|
|
"react-native-ios-utilities@5.2.0": "bun-patches/react-native-ios-utilities@5.2.0.patch"
|
|
}
|
|
}
|