mirror of
https://github.com/leinelissen/jellyfin-audio-player.git
synced 2026-09-02 21:03:11 +03:00
chore: upgrade and fix versions
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"metro-runtime": "0.82.2",
|
||||
"@react-native/js-polyfills": "0.79.2",
|
||||
"@babel/runtime": "7.28.6",
|
||||
"react-native-gesture-handler": "2.25.0",
|
||||
"react": "19.1.0",
|
||||
"react-native": "0.79.2",
|
||||
"invariant": "2.2.4",
|
||||
"nullthrows": "1.1.1",
|
||||
"promise": "8.3.0",
|
||||
"stacktrace-parser": "0.1.11",
|
||||
"regenerator-runtime": "0.13.11",
|
||||
"base64-js": "1.5.1",
|
||||
"event-target-shim": "5.0.1",
|
||||
"whatwg-fetch": "3.6.20",
|
||||
"abort-controller": "3.0.0",
|
||||
"scheduler": "0.25.0",
|
||||
"memoize-one": "5.2.1",
|
||||
"react-native-reanimated": "3.17.5",
|
||||
"react-native-is-edge-to-edge": "1.1.7",
|
||||
"hoist-non-react-statics": "3.3.2",
|
||||
"react-is": "16.13.1",
|
||||
"@weights-ai/react-native-track-player": "4.1.4",
|
||||
"redux-persist": "6.0.0",
|
||||
"@reduxjs/toolkit": "2.11.2",
|
||||
"immer": "11.1.3",
|
||||
"reselect": "5.1.1",
|
||||
"redux": "5.0.1",
|
||||
"redux-thunk": "3.1.0",
|
||||
"mime": "4.1.0",
|
||||
"react-native-fs": "2.20.0",
|
||||
"utf8": "3.0.0",
|
||||
"base-64": "0.1.0",
|
||||
"@react-native-async-storage/async-storage": "2.2.0",
|
||||
"react-redux": "9.2.0",
|
||||
"use-sync-external-store": "1.5.0",
|
||||
"react-native-accessibility-settings": "0.1.2",
|
||||
"@react-native-community/blur": "4.4.1",
|
||||
"styled-components": "6.3.8",
|
||||
"css-to-react-native": "3.2.0",
|
||||
"postcss-value-parser": "4.2.0",
|
||||
"camelize": "1.0.1",
|
||||
"css-color-keywords": "1.0.0",
|
||||
"stylis": "4.3.6",
|
||||
"@emotion/unitless": "0.10.0",
|
||||
"tslib": "2.8.1",
|
||||
"postcss": "8.4.49",
|
||||
"nanoid": "3.3.11",
|
||||
"picocolors": "1.1.1",
|
||||
"fuse.js": "7.1.0",
|
||||
"react-native-svg": "15.15.1",
|
||||
"warn-once": "0.1.1",
|
||||
"buffer": "5.7.1",
|
||||
"ieee754": "1.2.1",
|
||||
"@d11/react-native-fast-image": "8.13.0",
|
||||
"@shopify/flash-list": "1.8.0",
|
||||
"recyclerlistview": "4.2.3",
|
||||
"prop-types": "15.8.1",
|
||||
"ts-object-utils": "0.0.5",
|
||||
"lodash.debounce": "4.0.8",
|
||||
"@react-navigation/elements": "1.3.31",
|
||||
"query-string": "7.1.3",
|
||||
"strict-uri-encode": "2.0.0",
|
||||
"decode-uri-component": "0.2.2",
|
||||
"split-on-first": "1.1.0",
|
||||
"filter-obj": "1.1.0",
|
||||
"escape-string-regexp": "4.0.0",
|
||||
"use-latest-callback": "0.2.3",
|
||||
"react-native-safe-area-context": "5.6.2",
|
||||
"color": "4.2.3",
|
||||
"color-convert": "2.0.1",
|
||||
"color-name": "1.1.4",
|
||||
"color-string": "1.9.1",
|
||||
"simple-swizzle": "0.2.2",
|
||||
"react-native-screens": "4.10.0",
|
||||
"react-freeze": "1.0.4",
|
||||
"lodash": "4.17.21",
|
||||
"i18n-js": "4.5.1",
|
||||
"make-plural": "7.4.0",
|
||||
"bignumber.js": "9.3.0",
|
||||
"react-native-localize": "3.4.1",
|
||||
"react-reconciler": "0.31.0",
|
||||
"date-fns": "3.6.0",
|
||||
"react-native-shadow-2": "7.1.2",
|
||||
"colord": "2.9.2",
|
||||
"react-native-collapsible": "1.6.2",
|
||||
"@sentry/react-native": "6.13.0",
|
||||
"@sentry-internal/browser-utils": "8.54.0",
|
||||
"react-native-webview": "13.16.0",
|
||||
"events": "3.3.0",
|
||||
"react-native-modal-datetime-picker": "17.1.0"
|
||||
}
|
||||
+23
-2
@@ -3,7 +3,12 @@ default_platform(:ios)
|
||||
package = load_json(json_path: "package.json")
|
||||
|
||||
platform :ios do
|
||||
before_all do
|
||||
before_all do |lane, options|
|
||||
# Skip signing setup for CI builds
|
||||
if lane == :ci_build
|
||||
next
|
||||
end
|
||||
|
||||
app_store_connect_api_key(
|
||||
key_id: "Z98N7N8ZMW",
|
||||
issuer_id: "f0fa1c89-6a9a-4144-bfba-529dfe05f09b",
|
||||
@@ -60,8 +65,24 @@ platform :ios do
|
||||
export_method: "app-store",
|
||||
)
|
||||
end
|
||||
|
||||
lane :ci_build do
|
||||
build_app(
|
||||
scheme: "Fintunes",
|
||||
output_directory: "build",
|
||||
workspace: "ios/Fintunes.xcworkspace",
|
||||
skip_codesigning: true,
|
||||
skip_archive: true,
|
||||
skip_package_ipa: true
|
||||
)
|
||||
end
|
||||
|
||||
after_all do
|
||||
after_all do |lane, options|
|
||||
# Skip Sentry uploads for CI builds
|
||||
if lane == :ci_build
|
||||
next
|
||||
end
|
||||
|
||||
build_number = get_build_number(
|
||||
xcodeproj: "ios/Fintunes.xcodeproj",
|
||||
)
|
||||
|
||||
@@ -39,6 +39,14 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
|
||||
|
||||
|
||||
|
||||
### ios ci_build
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane ios ci_build
|
||||
```
|
||||
|
||||
|
||||
|
||||
### ios screenshots
|
||||
|
||||
```sh
|
||||
|
||||
+63
-63
@@ -11,70 +11,70 @@
|
||||
"build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'"
|
||||
},
|
||||
"dependencies": {
|
||||
"@d11/react-native-fast-image": "^8.9.2",
|
||||
"@react-native-async-storage/async-storage": "^2.1.2",
|
||||
"@react-native-community/blur": "^4.4.1",
|
||||
"@react-native-community/datetimepicker": "^8.3.0",
|
||||
"@react-native-community/netinfo": "^11.4.1",
|
||||
"@react-navigation/bottom-tabs": "^6.6.1",
|
||||
"@react-navigation/elements": "^1.3.31",
|
||||
"@react-navigation/native": "^6.1.18",
|
||||
"@react-navigation/native-stack": "^6.11.0",
|
||||
"@react-navigation/stack": "^6.4.1",
|
||||
"@reduxjs/toolkit": "^2.7.0",
|
||||
"@shopify/flash-list": "^1.8.0",
|
||||
"@d11/react-native-fast-image": "8.13.0",
|
||||
"@react-native-async-storage/async-storage": "2.2.0",
|
||||
"@react-native-community/blur": "4.4.1",
|
||||
"@react-native-community/datetimepicker": "8.6.0",
|
||||
"@react-native-community/netinfo": "11.4.1",
|
||||
"@react-navigation/bottom-tabs": "6.6.1",
|
||||
"@react-navigation/elements": "1.3.31",
|
||||
"@react-navigation/native": "6.1.18",
|
||||
"@react-navigation/native-stack": "6.11.0",
|
||||
"@react-navigation/stack": "6.4.1",
|
||||
"@reduxjs/toolkit": "2.11.2",
|
||||
"@shopify/flash-list": "1.8.0",
|
||||
"@shopify/react-native-skia": "2.0.0-next.3",
|
||||
"date-fns": "^3.6.0",
|
||||
"events": "^3.3.0",
|
||||
"fuse.js": "^7.1.0",
|
||||
"i18n-js": "^4.5.1",
|
||||
"lodash": "^4.17.21",
|
||||
"mime": "^4.0.7",
|
||||
"react": "19.0.0",
|
||||
"react-airplay": "^1.2.0",
|
||||
"react-native": "^0.79.2",
|
||||
"react-native-accessibility-settings": "^0.1.2",
|
||||
"react-native-collapsible": "^1.6.2",
|
||||
"react-native-dotenv": "^3.4.11",
|
||||
"react-native-fs": "^2.20.0",
|
||||
"react-native-gesture-handler": "^2.25.0",
|
||||
"react-native-localize": "^3.4.1",
|
||||
"react-native-modal-datetime-picker": "^17.1.0",
|
||||
"react-native-reanimated": "^3.17.5",
|
||||
"react-native-safe-area-context": "^5.4.0",
|
||||
"react-native-screens": "^4.10.0",
|
||||
"react-native-shadow-2": "^7.1.1",
|
||||
"react-native-svg": "^15.11.2",
|
||||
"date-fns": "3.6.0",
|
||||
"events": "3.3.0",
|
||||
"fuse.js": "7.1.0",
|
||||
"i18n-js": "4.5.1",
|
||||
"lodash": "4.17.21",
|
||||
"mime": "4.1.0",
|
||||
"react": "19.1.0",
|
||||
"react-airplay": "1.2.0",
|
||||
"react-native": "0.79.2",
|
||||
"react-native-accessibility-settings": "0.1.2",
|
||||
"react-native-collapsible": "1.6.2",
|
||||
"react-native-dotenv": "3.4.11",
|
||||
"react-native-fs": "2.20.0",
|
||||
"react-native-gesture-handler": "2.25.0",
|
||||
"react-native-localize": "3.4.1",
|
||||
"react-native-modal-datetime-picker": "17.1.0",
|
||||
"react-native-reanimated": "3.17.5",
|
||||
"react-native-safe-area-context": "5.6.2",
|
||||
"react-native-screens": "4.10.0",
|
||||
"react-native-shadow-2": "7.1.2",
|
||||
"react-native-svg": "15.15.1",
|
||||
"react-native-track-player": "npm:@weights-ai/react-native-track-player@^4.1.4",
|
||||
"react-native-webview": "^13.13.5",
|
||||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"styled-components": "^6.1.19"
|
||||
"react-native-webview": "13.16.0",
|
||||
"react-redux": "9.2.0",
|
||||
"redux": "5.0.1",
|
||||
"redux-persist": "6.0.0",
|
||||
"styled-components": "6.3.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.27.1",
|
||||
"@babel/runtime": "^7.27.1",
|
||||
"@react-native-community/cli": "^18.0.1",
|
||||
"@react-native/babel-preset": "^0.79.2",
|
||||
"@react-native/metro-config": "^0.79.2",
|
||||
"@babel/core": "7.28.6",
|
||||
"@babel/runtime": "7.28.6",
|
||||
"@react-native-community/cli": "18.0.1",
|
||||
"@react-native/babel-preset": "0.79.2",
|
||||
"@react-native/metro-config": "0.79.2",
|
||||
"@react-native/typescript-config": "0.74.85",
|
||||
"@sentry/cli": "^2.44.0",
|
||||
"@sentry/react-native": "^6.13.0",
|
||||
"@types/i18n-js": "^3.8.9",
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/node": "^20.17.32",
|
||||
"@types/react": "^18.3.20",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
"babel-plugin-module-resolver": "^5.0.2",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"metro-react-native-babel-transformer": "^0.77.0",
|
||||
"react-native-svg-transformer": "^1.5.1",
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.8.3"
|
||||
"@sentry/cli": "2.44.0",
|
||||
"@sentry/react-native": "6.13.0",
|
||||
"@types/i18n-js": "3.8.9",
|
||||
"@types/lodash": "4.17.16",
|
||||
"@types/node": "20.17.32",
|
||||
"@types/react": "19.1.0",
|
||||
"@typescript-eslint/eslint-plugin": "6.21.0",
|
||||
"@typescript-eslint/parser": "6.21.0",
|
||||
"babel-plugin-module-resolver": "5.0.2",
|
||||
"eslint": "8.57.1",
|
||||
"eslint-plugin-react": "7.37.5",
|
||||
"eslint-plugin-react-hooks": "4.6.2",
|
||||
"metro-react-native-babel-transformer": "0.77.0",
|
||||
"react-native-svg-transformer": "1.5.2",
|
||||
"tslib": "2.8.1",
|
||||
"typescript": "5.9.3"
|
||||
},
|
||||
"jest": {
|
||||
"preset": "react-native",
|
||||
@@ -88,9 +88,9 @@
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"@babel/preset-typescript": "^7.23.3",
|
||||
"@babel/plugin-transform-typescript": "^7.23.6",
|
||||
"@babel/plugin-syntax-typescript": "^7.23.3",
|
||||
"@babel/types": "^7.23.6"
|
||||
"@babel/preset-typescript": "7.23.3",
|
||||
"@babel/plugin-transform-typescript": "7.23.6",
|
||||
"@babel/plugin-syntax-typescript": "7.23.3",
|
||||
"@babel/types": "7.23.6"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+1011
-1676
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@ function ThemedNavigationContainer({ children }: PropsWithChildren<{}>) {
|
||||
);
|
||||
}
|
||||
|
||||
export default function App(): JSX.Element | null {
|
||||
export default function App(): React.JSX.Element | null {
|
||||
// Track whether the player has already been setup, so that we don't
|
||||
// accidentally do it twice.
|
||||
const [hasSetupPlayer, setHasSetupPlayer] = useState(false);
|
||||
|
||||
@@ -145,7 +145,7 @@ export default function useDefaultStyles() {
|
||||
}
|
||||
|
||||
interface DefaultStylesProviderProps {
|
||||
children: (defaultStyles: ReturnType<typeof useDefaultStyles>) => JSX.Element;
|
||||
children: (defaultStyles: ReturnType<typeof useDefaultStyles>) => React.JSX.Element;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,7 +26,7 @@ function TouchableHandler<T>({
|
||||
onLongPress,
|
||||
children,
|
||||
testID,
|
||||
}: PropsWithChildren<TouchableHandlerProps<T>>): JSX.Element {
|
||||
}: PropsWithChildren<TouchableHandlerProps<T>>): React.JSX.Element {
|
||||
const handlePress = useCallback(() => {
|
||||
return onPress(id);
|
||||
}, [id, onPress]);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useCallback, useEffect, useRef, ReactText, useMemo } from 'react';
|
||||
import React, { useCallback, useEffect, useRef, useMemo } from 'react';
|
||||
import { useGetImage } from '@/utility/JellyfinApi/lib';
|
||||
import { View } from 'react-native';
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
@@ -47,7 +47,7 @@ const SectionHeading = React.memo(function SectionHeading(props: {
|
||||
});
|
||||
|
||||
interface GeneratedAlbumItemProps {
|
||||
id: ReactText;
|
||||
id: string | number;
|
||||
imageUrl?: string | null;
|
||||
name: string;
|
||||
artist: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useCallback, useEffect, ReactText } from 'react';
|
||||
import React, { useCallback, useEffect } from 'react';
|
||||
import { useGetImage } from '@/utility/JellyfinApi/lib';
|
||||
import { View } from 'react-native';
|
||||
import { RouteProp, useNavigation, useRoute } from '@react-navigation/native';
|
||||
@@ -18,7 +18,7 @@ import { SafeFlatList } from '@/components/SafeNavigatorView';
|
||||
import { chunk } from 'lodash';
|
||||
|
||||
interface GeneratedAlbumItemProps {
|
||||
id: ReactText;
|
||||
id: string | number;
|
||||
imageUrl: string | undefined;
|
||||
name: string;
|
||||
artist: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useCallback, useEffect, useRef, ReactText } from 'react';
|
||||
import React, { useCallback, useEffect, useRef } from 'react';
|
||||
import { useGetImage } from '@/utility/JellyfinApi/lib';
|
||||
import { Text, View, FlatList, ListRenderItem, RefreshControl } from 'react-native';
|
||||
import { useNavigation } from '@react-navigation/native';
|
||||
@@ -13,7 +13,7 @@ import { NavigationProp } from '@/screens/types';
|
||||
import { SafeFlatList, useNavigationOffsets } from '@/components/SafeNavigatorView';
|
||||
|
||||
interface GeneratedAlbumItemProps {
|
||||
id: ReactText;
|
||||
id: string | number;
|
||||
imageUrl?: string | null;
|
||||
name: string;
|
||||
onPress: (id: string) => void;
|
||||
|
||||
@@ -68,7 +68,7 @@ const styles = StyleSheet.create({
|
||||
});
|
||||
|
||||
interface Props {
|
||||
header?: JSX.Element;
|
||||
header?: React.JSX.Element;
|
||||
}
|
||||
|
||||
export default function Queue({ header }: Props) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useRef, useCallback } from 'react';
|
||||
import React, { useRef, useCallback, useMemo } from 'react';
|
||||
import { WebView, WebViewMessageEvent } from 'react-native-webview';
|
||||
import { debounce } from 'lodash';
|
||||
import { AppState } from '@/store';
|
||||
@@ -52,7 +52,7 @@ type CredentialEventData = {
|
||||
const CredentialGenerator: React.FC<Props> = ({ serverUrl, onCredentialsRetrieved }) => {
|
||||
const webViewRef = useRef<WebView>(null);
|
||||
|
||||
const checkIfCredentialsAreThere = useCallback(debounce(() => {
|
||||
const checkIfCredentialsAreThere = useMemo(() => debounce(() => {
|
||||
webViewRef.current?.injectJavaScript(`
|
||||
try {
|
||||
let credentials = JSON.parse(window.localStorage.getItem('jellyfin_credentials'));
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useRef, useEffect } from 'react';
|
||||
export default function usePrevious<T = unknown>(value: T) {
|
||||
// The ref object is a generic container whose current property is mutable ...
|
||||
// ... and can hold any value, similar to an instance property on a class
|
||||
const ref = useRef<T>();
|
||||
const ref = useRef<T | undefined>(undefined);
|
||||
// Store current value in ref
|
||||
useEffect(() => {
|
||||
ref.current = value;
|
||||
|
||||
Reference in New Issue
Block a user