diff --git a/ios/example/Info.plist b/ios/example/Info.plist
index 428f83bc..56bac408 100644
--- a/ios/example/Info.plist
+++ b/ios/example/Info.plist
@@ -61,7 +61,7 @@
LaunchScreen.storyboard
UIRequiredDeviceCapabilities
- armv7
+ arm64
UIStatusBarHidden
diff --git a/package.json b/package.json
index 53f0d741..31d14fa8 100644
--- a/package.json
+++ b/package.json
@@ -41,8 +41,8 @@
"@sentry/react-native": "^5.22.2",
"@sharcoux/slider": "^7.2.1",
"@shopify/flash-list": "^1.6.4",
- "@shopify/react-native-skia": "1.2.3",
- "axios": "^1.7.1",
+ "@shopify/react-native-skia": "1.3.0",
+ "axios": "^1.7.2",
"base-64": "^1.0.0",
"base64-js": "^1.5.1",
"big-integer": "^1.6.52",
@@ -63,7 +63,7 @@
"fflate": "^0.8.2",
"ffmpeg-kit-react-native": "^6.0.2",
"he": "^1.2.0",
- "i18next": "^23.11.4",
+ "i18next": "^23.11.5",
"js-base64": "^3.7.7",
"libmuse": "git+https://github.com/lovegaoshi/muse.git#apm-release",
"lottie-react-native": "6.7.2",
@@ -101,7 +101,7 @@
"react-native-track-player": "https://lovegaoshi@github.com/lovegaoshi/react-native-track-player.git#commit=826bd575a98b662750e043397ed9f8d5f05a6077",
"react-native-url-polyfill": "^2.0.0",
"react-native-vector-icons": "^10.1.0",
- "react-native-video": "^6.0.0",
+ "react-native-video": "^6.1.0",
"react-native-webview": "13.10.2",
"sp-react-native-in-app-updates": "^1.4.0",
"use-debounce": "^10.0.0",
@@ -135,8 +135,8 @@
"@types/react-native-video": "^5.0.20",
"@types/react-test-renderer": "^18.3.0",
"@types/uuid": "^9.0.8",
- "@typescript-eslint/eslint-plugin": "^7.9.0",
- "@typescript-eslint/parser": "^7.9.0",
+ "@typescript-eslint/eslint-plugin": "^7.10.0",
+ "@typescript-eslint/parser": "^7.10.0",
"@welldone-software/why-did-you-render": "^8.0.1",
"argparse": "^2.0.1",
"babel-jest": "^29.7.0",
@@ -167,4 +167,4 @@
},
"isSwift": true,
"packageManager": "yarn@4.2.2"
-}
\ No newline at end of file
+}
diff --git a/src/components/setting/DeveloperSettings.tsx b/src/components/setting/DeveloperSettings.tsx
index 9db198b3..3159ee21 100644
--- a/src/components/setting/DeveloperSettings.tsx
+++ b/src/components/setting/DeveloperSettings.tsx
@@ -6,6 +6,7 @@ import { useTranslation } from 'react-i18next';
import { APPSTORE } from '@env';
import { useStore } from 'zustand';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import * as Sentry from '@sentry/react-native';
import { useNoxSetting } from '@stores/useApp';
import { logStore, LOGLEVEL } from '@utils/Logger';
@@ -67,6 +68,7 @@ const developerSettings: { [key: string]: SettingEntry } = {
memoryEfficiency: {
settingName: 'memoryEfficiency',
settingCategory: 'GeneralSettings',
+ callback: Sentry.nativeCrash,
},
/**
chatGPTSongName: {
diff --git a/src/components/setting/SetttingEntries.tsx b/src/components/setting/SetttingEntries.tsx
index 24d160b2..515a721c 100644
--- a/src/components/setting/SetttingEntries.tsx
+++ b/src/components/setting/SetttingEntries.tsx
@@ -13,6 +13,7 @@ export interface SettingEntry {
reRender?: boolean;
settingType?: string;
checkbox?: boolean;
+ callback?: () => void;
}
export const dummySelectSettingEntry: SelectSettingEntry = {
diff --git a/src/components/setting/useRenderSetting.tsx b/src/components/setting/useRenderSetting.tsx
index 0d0646ba..b45489c2 100644
--- a/src/components/setting/useRenderSetting.tsx
+++ b/src/components/setting/useRenderSetting.tsx
@@ -64,6 +64,7 @@ const BooleanSetting = ({
settingCategory,
reRender = false,
checkbox = false,
+ callback,
}: SettingEntry) => {
const { t } = useTranslation();
const playerStyle = useNoxSetting(state => state.playerStyle);
@@ -75,12 +76,11 @@ const BooleanSetting = ({
);
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- const saveSettings = (toggled: { [key: string]: any }) => {
+ const saveSettings = (toggled: { [key: string]: any }) =>
setPlayerSetting(toggled);
- };
const onToggle = () => {
- saveSettings({ [settingName]: !playerSetting[settingName] });
+ saveSettings({ [settingName]: !playerSetting[settingName] }).then(callback);
if (reRender) {
togglePlaylistReRender();
}
diff --git a/src/hooks/usePlayback.ts b/src/hooks/usePlayback.ts
index 9eea8266..5bcf9074 100644
--- a/src/hooks/usePlayback.ts
+++ b/src/hooks/usePlayback.ts
@@ -12,7 +12,7 @@ import {
} from '@utils/RNTPUtils';
import { NoxRepeatMode } from '@enums/RepeatMode';
import noxPlayingList, { setPlayingIndex } from '@stores/playingList';
-import noxCache, { noxCacheKey } from '@utils/Cache';
+import { dataSaverPlaylist, dataSaverSongs } from '@utils/Cache';
import useDataSaver from './useDataSaver';
import useSnack from '@stores/useSnack';
import { PlaylistTypes } from '@enums/Playlist';
@@ -21,15 +21,6 @@ const PLAYLIST_MEDIAID = 'playlist-';
const { getState } = noxPlayingList;
-const dataSaverPlaylist = (playlist: NoxMedia.Playlist) => {
- const newSongList = playlist.songList.filter(
- song => noxCache.noxMediaCache?.peekCache(song) !== undefined
- );
- return newSongList.length === 0
- ? playlist
- : { ...playlist, songList: newSongList };
-};
-
const dataSaverPlaylistWrapper = (datasave = true) => {
return datasave
? dataSaverPlaylist
@@ -90,16 +81,20 @@ const usePlayback = () => {
const playAsSearchList = async ({
songs,
+ playlistSongs,
title = String(t('PlaylistsDrawer.SearchListTitle')),
song,
}: PlayAsSearchList) => {
- const newSearchPlaylist = {
+ const newPlayingPlaylist = {
...searchPlaylist,
title,
songList: songs,
};
+ const newSearchPlaylist = playlistSongs
+ ? { ...newPlayingPlaylist, songList: playlistSongs }
+ : newPlayingPlaylist;
setSearchPlaylist(newSearchPlaylist);
- await playFromPlaylist({ playlist: newSearchPlaylist, song });
+ await playFromPlaylist({ playlist: newPlayingPlaylist, song });
setCurrentPlaylist(newSearchPlaylist);
};
@@ -109,18 +104,14 @@ const usePlayback = () => {
.filter(playlist => playlist.type === PlaylistTypes.Typical)
.map(p => getPlaylist(p.id))
);
- let allSongs = allPlaylists.reduce(
+ const allSongs = allPlaylists.reduce(
(acc, curr) => acc.concat(curr.songList),
[] as NoxMedia.Song[]
);
- if (isDataSaving) {
- const cachedSongs = Array.from(noxCache.noxMediaCache.cache.keys());
- allSongs = allSongs.filter(song =>
- cachedSongs.includes(noxCacheKey(song))
- );
- }
+ const cachedSongs = isDataSaving ? dataSaverSongs(allSongs) : allSongs;
playAsSearchList({
- songs: allSongs,
+ songs: cachedSongs,
+ playlistSongs: allSongs,
title: String(t('PlaylistOperations.all')),
});
};
@@ -255,6 +246,7 @@ interface PlayFromPlaylist {
interface PlayAsSearchList {
songs: NoxMedia.Song[];
+ playlistSongs?: NoxMedia.Song[];
title?: string;
song?: NoxMedia.Song;
}
diff --git a/src/localization/zhcn/translation.json b/src/localization/zhcn/translation.json
index 8c7b722a..0f3e963a 100644
--- a/src/localization/zhcn/translation.json
+++ b/src/localization/zhcn/translation.json
@@ -173,7 +173,7 @@
},
"Settings": {
"PluginsSettingName": "插件",
- "PluginsSettingDesc": "测试功能,可能导致数据丢失损坏,别说我没告诉你",
+ "PluginsSettingDesc": "有可能导致数据错误的插件",
"GeneralSettingName": "播放器设置",
"GeneralSettingDesc": "一般的播放器设置",
"AppearanceSettingName": "播放器外观",
diff --git a/src/stores/initializeStores.ts b/src/stores/initializeStores.ts
index 466762a6..0551a483 100644
--- a/src/stores/initializeStores.ts
+++ b/src/stores/initializeStores.ts
@@ -1,14 +1,19 @@
import { NativeModules, Platform } from 'react-native';
import { useNoxSetting } from './useApp';
+import { fetch } from '@react-native-community/netinfo';
import { initialize as initializeAppStore } from './appStore';
import { initializeR128Gain } from '../utils/ffmpeg/r128Store';
+import { dataSaverPlaylist } from '../utils/Cache';
const { NoxAndroidAutoModule } = NativeModules;
const useInitializeStore = () => {
const setGestureMode = useNoxSetting(state => state.setGestureMode);
const initPlayer = useNoxSetting(state => state.initPlayer);
+ const setCurrentPlayingList = useNoxSetting(
+ state => state.setCurrentPlayingList
+ );
const initializeStores = async (val: NoxStorage.PlayerStorageObject) => {
switch (Platform.OS) {
@@ -29,7 +34,11 @@ const useInitializeStore = () => {
}
await initializeAppStore();
await initializeR128Gain();
- return await initPlayer(val);
+ const results = await initPlayer(val);
+ if ((await fetch()) && results.storedPlayerSetting.dataSaver) {
+ setCurrentPlayingList(dataSaverPlaylist(results.currentPlayingList));
+ }
+ return results;
};
return { initializeStores };
};
diff --git a/src/stores/useApp.ts b/src/stores/useApp.ts
index 045f507e..6f931bb4 100644
--- a/src/stores/useApp.ts
+++ b/src/stores/useApp.ts
@@ -103,7 +103,9 @@ interface NoxSetting {
getPlaylist: (val: string) => Promise;
playerSetting: NoxStorage.PlayerSettingDict;
- setPlayerSetting: (val: Partial) => void;
+ setPlayerSetting: (
+ val: Partial
+ ) => Promise;
addPlaylist: (val: NoxMedia.Playlist) => void;
removePlaylist: (val: string) => void;
@@ -205,11 +207,12 @@ export const useNoxSetting = create((set, get) => ({
},
currentPlayingList: dummyPlaylistList,
setCurrentPlayingList: val => {
- if (val.songList === get().currentPlayingList.songList) {
+ const { currentPlayingList, currentPlayingId } = get();
+ if (val.songList === currentPlayingList.songList) {
return false;
}
set({ currentPlayingList: val });
- savelastPlaylistId([val.id, String(get().currentPlayingId)]);
+ savelastPlaylistId([val.id, String(currentPlayingId)]);
setPlayingList(val.songList);
return true;
},
@@ -236,17 +239,18 @@ export const useNoxSetting = create((set, get) => ({
set({ favoritePlaylist: val, playlists });
},
getPlaylist: async v => {
- const appState: NoxSetting = get();
+ const { searchPlaylist, favoritePlaylist, playlists, playerSetting } =
+ get();
switch (v) {
case StorageKeys.SEARCH_PLAYLIST_KEY:
- return appState.searchPlaylist;
+ return searchPlaylist;
case StorageKeys.FAVORITE_PLAYLIST_KEY:
- return appState.favoritePlaylist;
+ return favoritePlaylist;
default:
- if (appState.playerSetting.memoryEfficiency) {
+ if (playerSetting.memoryEfficiency) {
return getPlaylist({ key: v });
}
- return appState.playlists[v];
+ return playlists[v];
}
},
@@ -254,8 +258,8 @@ export const useNoxSetting = create((set, get) => ({
setPlayerSetting: val => {
const newPlayerSetting = { ...get().playerSetting, ...val };
set({ playerSetting: newPlayerSetting });
- saveSettings(newPlayerSetting);
setPlayerSettingVanilla(newPlayerSetting);
+ return saveSettings(newPlayerSetting);
},
addPlaylist: playlist => {
@@ -268,9 +272,10 @@ export const useNoxSetting = create((set, get) => ({
savePlaylistIds(playlistIds);
},
removePlaylist: playlistId => {
- let playlistIds = get().playlistIds;
- let playlists = get().playlists;
- const currentPlaylist = get().currentPlaylist;
+ const appState = get();
+ let playlistIds = appState.playlistIds;
+ let playlists = appState.playlists;
+ const currentPlaylist = appState.currentPlaylist;
if (currentPlaylist.id === playlistId) {
set({ currentPlaylist: playlists[StorageKeys.SEARCH_PLAYLIST_KEY] });
}
@@ -281,11 +286,14 @@ export const useNoxSetting = create((set, get) => ({
},
updatePlaylist: async (playlist, addSongs = [], removeSongs = []) => {
- const appState: NoxSetting = get();
- let playlists = appState.playlists;
- const currentPlaylist = appState.currentPlaylist;
+ const {
+ playlists,
+ playerSetting,
+ currentPlaylist,
+ playlistShouldReRender,
+ } = get();
updatePlaylistSongs(playlist, addSongs, removeSongs);
- playlists[playlist.id] = appState.playerSetting.memoryEfficiency
+ playlists[playlist.id] = playerSetting.memoryEfficiency
? { ...playlist, songList: [] }
: playlist;
if (playlist.id === currentPlaylist.id) {
@@ -293,7 +301,7 @@ export const useNoxSetting = create((set, get) => ({
}
set({ playlists });
savePlaylist(playlist);
- set({ playlistShouldReRender: !appState.playlistShouldReRender });
+ set({ playlistShouldReRender: !playlistShouldReRender });
return playlist;
},
@@ -358,12 +366,13 @@ export const useNoxSetting = create((set, get) => ({
},
exportLegacy: () => {
+ const { playlistIds, playlists } = get();
const exportedLegacy: {
[key: string]: NoxMedia.Playlist | string[];
} = {
- MyFavList: get().playlistIds,
+ MyFavList: playlistIds,
};
- for (const [key, value] of Object.entries(get().playlists)) {
+ for (const [key, value] of Object.entries(playlists)) {
exportedLegacy[key] = value;
}
return exportedLegacy;
diff --git a/src/utils/Cache.ts b/src/utils/Cache.ts
index 0606e838..3c06f62b 100644
--- a/src/utils/Cache.ts
+++ b/src/utils/Cache.ts
@@ -219,4 +219,19 @@ export const cacheWrapper = (
getURL: () => Promise
) => cache.noxMediaCache.loadCacheFunction(identifier, getURL);
+const _dataSaverSongs = (v: NoxMedia.Song[]) =>
+ v.filter(song => cache.noxMediaCache?.peekCache(song) !== undefined);
+
+export const dataSaverSongs = (v: NoxMedia.Song[]) => {
+ const cachedSongIds = Array.from(cache.noxMediaCache.cache.keys());
+ return v.filter(song => cachedSongIds.includes(noxCacheKey(song)));
+};
+
+export const dataSaverPlaylist = (playlist: NoxMedia.Playlist) => {
+ const newSongList = _dataSaverSongs(playlist.songList);
+ return newSongList.length === 0
+ ? playlist
+ : { ...playlist, songList: newSongList };
+};
+
export default cache;
diff --git a/yarn.lock b/yarn.lock
index 87c3429e..95c83bd4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4335,9 +4335,9 @@ __metadata:
languageName: node
linkType: hard
-"@shopify/react-native-skia@npm:1.2.3":
- version: 1.2.3
- resolution: "@shopify/react-native-skia@npm:1.2.3"
+"@shopify/react-native-skia@npm:1.3.0":
+ version: 1.3.0
+ resolution: "@shopify/react-native-skia@npm:1.3.0"
dependencies:
canvaskit-wasm: "npm:0.39.1"
react-reconciler: "npm:0.27.0"
@@ -4352,7 +4352,7 @@ __metadata:
optional: true
bin:
setup-skia-web: scripts/setup-canvaskit.js
- checksum: 10c0/f9fe6af98e50d30771105a87cf8a82ab6159252837f7b503e36c19af155834e83c3b0fddb89d23a2037aa9a1a944436d47c8dfec3c599260be808b393a021c31
+ checksum: 10c0/f322d6636ecde4bda5d6fd4a1c195f41eabe334e1d80c95ae3efa1686c20c9d3f9f09ae7948de91fd7d75739ef3961f07a34df444f9cf076b76f631f55f9ea2c
languageName: node
linkType: hard
@@ -5061,15 +5061,15 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/eslint-plugin@npm:^7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/eslint-plugin@npm:7.9.0"
+"@typescript-eslint/eslint-plugin@npm:^7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/eslint-plugin@npm:7.10.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.10.0"
- "@typescript-eslint/scope-manager": "npm:7.9.0"
- "@typescript-eslint/type-utils": "npm:7.9.0"
- "@typescript-eslint/utils": "npm:7.9.0"
- "@typescript-eslint/visitor-keys": "npm:7.9.0"
+ "@typescript-eslint/scope-manager": "npm:7.10.0"
+ "@typescript-eslint/type-utils": "npm:7.10.0"
+ "@typescript-eslint/utils": "npm:7.10.0"
+ "@typescript-eslint/visitor-keys": "npm:7.10.0"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0"
@@ -5080,7 +5080,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/5c0ded9cb2210c141d236075f01a86447bf497a5061773c3c64a90756264776b4c4df100f7588e36d34f727eca55afd52fe6696a3cbe2d1f131250934254603a
+ checksum: 10c0/bf3f0118ea5961c3eb01894678246458a329d82dda9ac7c2f5bfe77896410d05a08a4655e533bcb1ed2a3132ba6421981ec8c2ed0a3545779d9603ea231947ae
languageName: node
linkType: hard
@@ -5101,21 +5101,21 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:^7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/parser@npm:7.9.0"
+"@typescript-eslint/parser@npm:^7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/parser@npm:7.10.0"
dependencies:
- "@typescript-eslint/scope-manager": "npm:7.9.0"
- "@typescript-eslint/types": "npm:7.9.0"
- "@typescript-eslint/typescript-estree": "npm:7.9.0"
- "@typescript-eslint/visitor-keys": "npm:7.9.0"
+ "@typescript-eslint/scope-manager": "npm:7.10.0"
+ "@typescript-eslint/types": "npm:7.10.0"
+ "@typescript-eslint/typescript-estree": "npm:7.10.0"
+ "@typescript-eslint/visitor-keys": "npm:7.10.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/16ca04645429436d9b7986cddda979ef4d088f4223f4a69e04a369e0fd4852dd5ff3d4b99da2e43cddaa2b421b24ff42f275d87bd110ae2356bdd0e81c2534e7
+ checksum: 10c0/4c4fbf43b5b05d75b766acb803d3dd078c6e080641a77f9e48ba005713466738ea4a71f0564fa3ce520988d65158d14c8c952ba01ccbc431ab4a05935db5ce6d
languageName: node
linkType: hard
@@ -5129,13 +5129,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/scope-manager@npm:7.9.0"
+"@typescript-eslint/scope-manager@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/scope-manager@npm:7.10.0"
dependencies:
- "@typescript-eslint/types": "npm:7.9.0"
- "@typescript-eslint/visitor-keys": "npm:7.9.0"
- checksum: 10c0/1ba6fc559a42a9b54e38c3ac2b6669efcff1a30292fb4e5fc8739c890a6c0f37d1a6aee1d115198f57c88e4f1776e95c1d7143de5cb5b970d5eb3023e97789dd
+ "@typescript-eslint/types": "npm:7.10.0"
+ "@typescript-eslint/visitor-keys": "npm:7.10.0"
+ checksum: 10c0/1d4f7ee137b95bd423b5a1b0d03251202dfc19bd8b6adfa5ff5df25fd5aa30e2d8ca50ab0d8d2e92441670ecbc2a82b3c2dbe39a4f268ec1ee1c1e267f7fd1d1
languageName: node
linkType: hard
@@ -5156,12 +5156,12 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/type-utils@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/type-utils@npm:7.9.0"
+"@typescript-eslint/type-utils@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/type-utils@npm:7.10.0"
dependencies:
- "@typescript-eslint/typescript-estree": "npm:7.9.0"
- "@typescript-eslint/utils": "npm:7.9.0"
+ "@typescript-eslint/typescript-estree": "npm:7.10.0"
+ "@typescript-eslint/utils": "npm:7.10.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0"
peerDependencies:
@@ -5169,7 +5169,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/775280fb179268f8bacd60e684d9d5a1c6a379646b082c7244bf2dfb7dd693053bd9efa473b71e10a86db69322b0a2cecf5598d019684930df50000bf3d70af0
+ checksum: 10c0/55e9a6690f9cedb79d30abb1990b161affaa2684dac246b743223353812c9c1e3fd2d923c67b193c6a3624a07e1c82c900ce7bf5b6b9891c846f04cb480ebd9f
languageName: node
linkType: hard
@@ -5180,10 +5180,10 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/types@npm:7.9.0"
- checksum: 10c0/d5f4a547dba4865ee2391bf06f2b3f8e8592a561976d2be35bb61ce340c7d1b7b4b25ac6ab5b9941813b465b9420bebb7b2179b1d71f6a83069feeb000b3558d
+"@typescript-eslint/types@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/types@npm:7.10.0"
+ checksum: 10c0/f01d9330b93cc362ba7967ab5037396f64742076450e1f93139fa69cbe93a6ece3ed55d68ab780c9b7d07ef4a7c645da410305216a2cfc5dec7eba49ee65ab23
languageName: node
linkType: hard
@@ -5205,12 +5205,12 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/typescript-estree@npm:7.9.0"
+"@typescript-eslint/typescript-estree@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.10.0"
dependencies:
- "@typescript-eslint/types": "npm:7.9.0"
- "@typescript-eslint/visitor-keys": "npm:7.9.0"
+ "@typescript-eslint/types": "npm:7.10.0"
+ "@typescript-eslint/visitor-keys": "npm:7.10.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@@ -5220,7 +5220,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/cfc3d2b7a5433c9a2989c7289bc72b49786993782801ad8ca5a07c651df457a67fbce13b120c86c34c03d56570a90e5cf4f3b8806349f103a3658f2366ec28ea
+ checksum: 10c0/6200695834c566e52e2fa7331f1a05019f7815969d8c1e1e237b85a99664d36f41ccc16384eff3f8582a0ecb75f1cc315b56ee9283b818da37f24fa4d42f1d7a
languageName: node
linkType: hard
@@ -5242,17 +5242,17 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/utils@npm:7.9.0"
+"@typescript-eslint/utils@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/utils@npm:7.10.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
- "@typescript-eslint/scope-manager": "npm:7.9.0"
- "@typescript-eslint/types": "npm:7.9.0"
- "@typescript-eslint/typescript-estree": "npm:7.9.0"
+ "@typescript-eslint/scope-manager": "npm:7.10.0"
+ "@typescript-eslint/types": "npm:7.10.0"
+ "@typescript-eslint/typescript-estree": "npm:7.10.0"
peerDependencies:
eslint: ^8.56.0
- checksum: 10c0/cb99d6a950e7da0319bc7b923a82c52c0798a14e837afee51b2295cfbde02e0a2ac8e0b5904cd7bd01d1b376c7a6ad3739101b486feaf2517c8640024deb88c7
+ checksum: 10c0/6724471f94f2788f59748f7efa2a3a53ea910099993bee2fa5746ab5acacecdc9fcb110c568b18099ddc946ea44919ed394bff2bd055ba81fc69f5e6297b73bf
languageName: node
linkType: hard
@@ -5266,13 +5266,13 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/visitor-keys@npm:7.9.0":
- version: 7.9.0
- resolution: "@typescript-eslint/visitor-keys@npm:7.9.0"
+"@typescript-eslint/visitor-keys@npm:7.10.0":
+ version: 7.10.0
+ resolution: "@typescript-eslint/visitor-keys@npm:7.10.0"
dependencies:
- "@typescript-eslint/types": "npm:7.9.0"
+ "@typescript-eslint/types": "npm:7.10.0"
eslint-visitor-keys: "npm:^3.4.3"
- checksum: 10c0/19181d8b9d2d7bc43d5c8884661cd9a86ac316392b8e590187cc507442093a1ba2bef0cc22181b8298d5dc9f455abb73cffa4663451bdf32b1b7fe12160c5c99
+ checksum: 10c0/049e812bcd28869059d04c7bf3543bb55f5205f468b777439c4f120417fb856fb6024cb1d25291aa12556bd08e84f043a96d754ffb2cde37abb604d6f3c51634
languageName: node
linkType: hard
@@ -5860,14 +5860,14 @@ __metadata:
languageName: node
linkType: hard
-"axios@npm:^1.7.1":
- version: 1.7.1
- resolution: "axios@npm:1.7.1"
+"axios@npm:^1.7.2":
+ version: 1.7.2
+ resolution: "axios@npm:1.7.2"
dependencies:
follow-redirects: "npm:^1.15.6"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
- checksum: 10c0/554395472f18f4ddb43b4be2900473bc1a4d589464a8ab16f6954c53d9cace4317d5c9e009d5bb05f098d9565b2fa45f152a5d4cecb87536c8f0c370c25a7770
+ checksum: 10c0/cbd47ce380fe045313364e740bb03b936420b8b5558c7ea36a4563db1258c658f05e40feb5ddd41f6633fdd96d37ac2a76f884dad599c5b0224b4c451b3fa7ae
languageName: node
linkType: hard
@@ -5895,7 +5895,7 @@ __metadata:
"@sentry/react-native": "npm:^5.22.2"
"@sharcoux/slider": "npm:^7.2.1"
"@shopify/flash-list": "npm:^1.6.4"
- "@shopify/react-native-skia": "npm:1.2.3"
+ "@shopify/react-native-skia": "npm:1.3.0"
"@tsconfig/react-native": "npm:^3.0.5"
"@types/base-64": "npm:^1.0.2"
"@types/d3": "npm:^7.4.3"
@@ -5910,11 +5910,11 @@ __metadata:
"@types/react-native-video": "npm:^5.0.20"
"@types/react-test-renderer": "npm:^18.3.0"
"@types/uuid": "npm:^9.0.8"
- "@typescript-eslint/eslint-plugin": "npm:^7.9.0"
- "@typescript-eslint/parser": "npm:^7.9.0"
+ "@typescript-eslint/eslint-plugin": "npm:^7.10.0"
+ "@typescript-eslint/parser": "npm:^7.10.0"
"@welldone-software/why-did-you-render": "npm:^8.0.1"
argparse: "npm:^2.0.1"
- axios: "npm:^1.7.1"
+ axios: "npm:^1.7.2"
babel-jest: "npm:^29.7.0"
babel-plugin-module-resolver: "npm:^5.0.2"
babel-plugin-transform-remove-console: "npm:^6.9.4"
@@ -5948,7 +5948,7 @@ __metadata:
ffmpeg-kit-react-native: "npm:^6.0.2"
gts: "npm:^5.3.0"
he: "npm:^1.2.0"
- i18next: "npm:^23.11.4"
+ i18next: "npm:^23.11.5"
jest: "npm:^29.7.0"
js-base64: "npm:^3.7.7"
libmuse: "git+https://github.com/lovegaoshi/muse.git#apm-release"
@@ -5991,7 +5991,7 @@ __metadata:
react-native-track-player: "https://lovegaoshi@github.com/lovegaoshi/react-native-track-player.git#commit=826bd575a98b662750e043397ed9f8d5f05a6077"
react-native-url-polyfill: "npm:^2.0.0"
react-native-vector-icons: "npm:^10.1.0"
- react-native-video: "npm:^6.0.0"
+ react-native-video: "npm:^6.1.0"
react-native-webview: "npm:13.10.2"
react-test-renderer: "npm:18.3.1"
reactotron-react-native: "npm:^5.1.7"
@@ -10278,12 +10278,12 @@ __metadata:
languageName: node
linkType: hard
-"i18next@npm:^23.11.4":
- version: 23.11.4
- resolution: "i18next@npm:23.11.4"
+"i18next@npm:^23.11.5":
+ version: 23.11.5
+ resolution: "i18next@npm:23.11.5"
dependencies:
"@babel/runtime": "npm:^7.23.2"
- checksum: 10c0/e43d6f839f75a78f05503780bfc8b867825ed2f5a5c85f6abf5b88b76021df6e5865c93fc45b715fc1d1563be96ec3565d04684779bc01a9a9ea1d389b61044c
+ checksum: 10c0/b0bec64250a3e529d4c51e2fc511406a85c5dde3d005d3aabe919551ca31dfc0a8f5490bf6e44649822e895a1fa91a58092d112367669cd11b2eb89e6ba90d1a
languageName: node
linkType: hard
@@ -14901,13 +14901,13 @@ __metadata:
languageName: node
linkType: hard
-"react-native-video@npm:^6.0.0":
- version: 6.0.0
- resolution: "react-native-video@npm:6.0.0"
+"react-native-video@npm:^6.1.0":
+ version: 6.1.0
+ resolution: "react-native-video@npm:6.1.0"
peerDependencies:
react: "*"
react-native: "*"
- checksum: 10c0/ba19476d92285fee0dbc1469c0efa13649677915f726d0a7093d615e08f8a6c0122fa130c8d1fb6f412004d52e06afeda15ff2b6b6e8b0ed605f7c96ace934b0
+ checksum: 10c0/90fe8956d0248a6ac9d78e348d2fd0e4f02d9810daa5e60b7cc09beab1c8f12e1cf8747782934ac3d98ee451dcd483730027c5f27335d0a2b80a66f3068d70cb
languageName: node
linkType: hard