From 82fd3e36db933feecf0b43a87f8dd11155385970 Mon Sep 17 00:00:00 2001
From: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Date: Sat, 12 Apr 2025 10:31:47 -0500
Subject: [PATCH 1/5] [skip actions]
Uodate readme badges
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 91ebf79b..e523bee6 100644
--- a/README.md
+++ b/README.md
@@ -100,7 +100,7 @@ Playlist
## 🏗 Built with good stuff
-[](https://reactjs.org “Go to React homepage”) [](https://typescriptlang.org “Go to TypeScript homepage”)
+[](https://reactjs.org) [](https://typescriptlang.org) [](https://github.com/prettier/prettier)
### 🎨 Frontend
[Tamagui](https://tamagui.dev/)\
[Burnt](https://github.com/nandorojo/burnt)\
From e92dcc95f2a19371fef9424f1c2ca0828e8731a2 Mon Sep 17 00:00:00 2001
From: Violet Caulfield
Date: Mon, 14 Apr 2025 06:48:58 -0500
Subject: [PATCH 2/5] update iOS Info.plist for arbitrary loads, package.json
updates
remove bundler from package.json
---
ios/Jellify/Info.plist | 4 +++-
package.json | 1 -
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/ios/Jellify/Info.plist b/ios/Jellify/Info.plist
index 82c7aad4..74714696 100644
--- a/ios/Jellify/Info.plist
+++ b/ios/Jellify/Info.plist
@@ -29,10 +29,12 @@
NSAppTransportSecurity
NSAllowsArbitraryLoads
-
+
NSAllowsLocalNetworking
+ NSLocalNetworkUsageDescription
+ ${PRODUCT_NAME} uses the local network to connect to one's Jellyfin server for streaming music
NSLocationWhenInUseUsageDescription
UIAppFonts
diff --git a/package.json b/package.json
index f929391c..93817043 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,6 @@
"@tanstack/react-query-persist-client": "^5.66.0",
"axios": "^1.7.9",
"bundle": "^2.1.0",
- "bundler": "^0.8.0",
"burnt": "^0.12.2",
"expo": "^52.0.0",
"expo-image": "^2.0.7",
From d6b5d6b8df15baa08151cbbccab004417167d99a Mon Sep 17 00:00:00 2001
From: Violet Caulfield
Date: Mon, 14 Apr 2025 06:55:24 -0500
Subject: [PATCH 3/5] format package.json
---
package.json | 228 +++++++++++++++++++++++++--------------------------
1 file changed, 114 insertions(+), 114 deletions(-)
diff --git a/package.json b/package.json
index 93817043..b303bbdf 100644
--- a/package.json
+++ b/package.json
@@ -1,115 +1,115 @@
{
- "name": "jellify",
- "version": "0.10.93",
- "private": true,
- "scripts": {
- "init": "npm i",
- "android": "react-native run-android",
- "ios": "react-native run-ios",
- "lint": "eslint .",
- "start": "react-native start",
- "test": "jest",
- "clean:ios": "cd ios && pod deintegrate",
- "clean:android": "cd android && rm -rf app/ build/",
- "pod:install": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=0 bundle exec pod install",
- "pod:install-new-arch": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
- "fastlane:ios:build": "cd ios && bundle exec fastlane build",
- "fastlane:ios:beta": "cd ios && bundle exec fastlane beta",
- "fastlane:android:build": "cd android && bundle install && bundle exec fastlane build",
- "androidBuild": "cd android && ./gradlew clean && ./gradlew assembleRelease && cd .. && echo 'find apk in android/app/build/outputs/apk/release'",
- "prepare": "husky",
- "format:check": "prettier --check .",
- "format": "prettier --write ."
- },
- "dependencies": {
- "@jellyfin/sdk": "^0.11.0",
- "@react-native-community/blur": "^4.4.1",
- "@react-native-community/cli": "^15.1.3",
- "@react-native-masked-view/masked-view": "^0.3.2",
- "@react-navigation/bottom-tabs": "^7.2.0",
- "@react-navigation/native": "^7.0.14",
- "@react-navigation/native-stack": "^7.1.1",
- "@react-navigation/stack": "^7.1.0",
- "@tamagui/config": "^1.124.17",
- "@tamagui/toast": "^1.124.17",
- "@tanstack/query-sync-storage-persister": "^5.66.0",
- "@tanstack/react-query": "^5.66.0",
- "@tanstack/react-query-persist-client": "^5.66.0",
- "axios": "^1.7.9",
- "bundle": "^2.1.0",
- "burnt": "^0.12.2",
- "expo": "^52.0.0",
- "expo-image": "^2.0.7",
- "gem": "^2.4.3",
- "invert-color": "^2.0.0",
- "jest-expo": "^52.0.6",
- "lodash": "^4.17.21",
- "npm-bundle": "^3.0.3",
- "react": "18.3.1",
- "react-freeze": "^1.0.4",
- "react-native": "0.77.0",
- "react-native-background-actions": "^4.0.1",
- "react-native-blurhash": "^2.1.1",
- "react-native-boost": "^0.5.5",
- "react-native-carplay": "^2.4.1-beta.0",
- "react-native-device-info": "^14.0.4",
- "react-native-draggable-flatlist": "^4.0.1",
- "react-native-file-access": "^3.1.1",
- "react-native-gesture-handler": "^2.23.0",
- "react-native-haptic-feedback": "^2.3.3",
- "react-native-mmkv": "^2.12.2",
- "react-native-reanimated": "^3.17.2",
- "react-native-safe-area-context": "^5.2.0",
- "react-native-screens": "^4.6.0",
- "react-native-swipeable-item": "^2.0.9",
- "react-native-text-ticker": "^1.14.0",
- "react-native-track-player": "^4.1.1",
- "react-native-url-polyfill": "^2.0.0",
- "react-native-uuid": "^2.0.3",
- "react-native-vector-icons": "^10.2.0",
- "ruby": "^0.6.1",
- "tamagui": "^1.124.17"
- },
- "devDependencies": {
- "@babel/core": "^7.25.2",
- "@babel/preset-env": "^7.25.3",
- "@babel/runtime": "^7.25.0",
- "@react-native-community/cli-platform-android": "15.1.3",
- "@react-native-community/cli-platform-ios": "15.1.3",
- "@react-native/babel-preset": "0.77.0",
- "@react-native/eslint-config": "0.77.0",
- "@react-native/metro-config": "0.77.0",
- "@react-native/typescript-config": "0.77.0",
- "@types/jest": "^29.5.13",
- "@types/lodash": "^4.17.10",
- "@types/react": "^18.2.6",
- "@types/react-native-vector-icons": "^6.4.18",
- "@types/react-test-renderer": "^18.3.1",
- "@typescript-eslint/eslint-plugin": "^8.29.1",
- "@typescript-eslint/parser": "^8.29.1",
- "babel-plugin-module-resolver": "^5.0.2",
- "eslint": "^8.57.1",
- "eslint-config-prettier": "^10.1.2",
- "eslint-plugin-import": "^2.31.0",
- "eslint-plugin-prettier": "^5.2.6",
- "eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-native": "^5.0.0",
- "husky": "^9.1.7",
- "jest": "^29.6.3",
- "jscodeshift": "^0.15.2",
- "lint-staged": "^15.5.0",
- "prettier": "^2.8.8",
- "react-native-cli-bump-version": "^1.5.1",
- "react-test-renderer": "18.3.1",
- "typescript": "5.7.3"
- },
- "lint-staged": {
- "*.{js,jsx,ts,tsx}": [
- "prettier --write",
- "eslint --fix"
- ]
- },
- "engines": {
- "node": ">=18"
- }
-}
\ No newline at end of file
+ "name": "jellify",
+ "version": "0.10.93",
+ "private": true,
+ "scripts": {
+ "init": "npm i",
+ "android": "react-native run-android",
+ "ios": "react-native run-ios",
+ "lint": "eslint .",
+ "start": "react-native start",
+ "test": "jest",
+ "clean:ios": "cd ios && pod deintegrate",
+ "clean:android": "cd android && rm -rf app/ build/",
+ "pod:install": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=0 bundle exec pod install",
+ "pod:install-new-arch": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
+ "fastlane:ios:build": "cd ios && bundle exec fastlane build",
+ "fastlane:ios:beta": "cd ios && bundle exec fastlane beta",
+ "fastlane:android:build": "cd android && bundle install && bundle exec fastlane build",
+ "androidBuild": "cd android && ./gradlew clean && ./gradlew assembleRelease && cd .. && echo 'find apk in android/app/build/outputs/apk/release'",
+ "prepare": "husky",
+ "format:check": "prettier --check .",
+ "format": "prettier --write ."
+ },
+ "dependencies": {
+ "@jellyfin/sdk": "^0.11.0",
+ "@react-native-community/blur": "^4.4.1",
+ "@react-native-community/cli": "^15.1.3",
+ "@react-native-masked-view/masked-view": "^0.3.2",
+ "@react-navigation/bottom-tabs": "^7.2.0",
+ "@react-navigation/native": "^7.0.14",
+ "@react-navigation/native-stack": "^7.1.1",
+ "@react-navigation/stack": "^7.1.0",
+ "@tamagui/config": "^1.124.17",
+ "@tamagui/toast": "^1.124.17",
+ "@tanstack/query-sync-storage-persister": "^5.66.0",
+ "@tanstack/react-query": "^5.66.0",
+ "@tanstack/react-query-persist-client": "^5.66.0",
+ "axios": "^1.7.9",
+ "bundle": "^2.1.0",
+ "burnt": "^0.12.2",
+ "expo": "^52.0.0",
+ "expo-image": "^2.0.7",
+ "gem": "^2.4.3",
+ "invert-color": "^2.0.0",
+ "jest-expo": "^52.0.6",
+ "lodash": "^4.17.21",
+ "npm-bundle": "^3.0.3",
+ "react": "18.3.1",
+ "react-freeze": "^1.0.4",
+ "react-native": "0.77.0",
+ "react-native-background-actions": "^4.0.1",
+ "react-native-blurhash": "^2.1.1",
+ "react-native-boost": "^0.5.5",
+ "react-native-carplay": "^2.4.1-beta.0",
+ "react-native-device-info": "^14.0.4",
+ "react-native-draggable-flatlist": "^4.0.1",
+ "react-native-file-access": "^3.1.1",
+ "react-native-gesture-handler": "^2.23.0",
+ "react-native-haptic-feedback": "^2.3.3",
+ "react-native-mmkv": "^2.12.2",
+ "react-native-reanimated": "^3.17.2",
+ "react-native-safe-area-context": "^5.2.0",
+ "react-native-screens": "^4.6.0",
+ "react-native-swipeable-item": "^2.0.9",
+ "react-native-text-ticker": "^1.14.0",
+ "react-native-track-player": "^4.1.1",
+ "react-native-url-polyfill": "^2.0.0",
+ "react-native-uuid": "^2.0.3",
+ "react-native-vector-icons": "^10.2.0",
+ "ruby": "^0.6.1",
+ "tamagui": "^1.124.17"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.25.2",
+ "@babel/preset-env": "^7.25.3",
+ "@babel/runtime": "^7.25.0",
+ "@react-native-community/cli-platform-android": "15.1.3",
+ "@react-native-community/cli-platform-ios": "15.1.3",
+ "@react-native/babel-preset": "0.77.0",
+ "@react-native/eslint-config": "0.77.0",
+ "@react-native/metro-config": "0.77.0",
+ "@react-native/typescript-config": "0.77.0",
+ "@types/jest": "^29.5.13",
+ "@types/lodash": "^4.17.10",
+ "@types/react": "^18.2.6",
+ "@types/react-native-vector-icons": "^6.4.18",
+ "@types/react-test-renderer": "^18.3.1",
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
+ "@typescript-eslint/parser": "^8.29.1",
+ "babel-plugin-module-resolver": "^5.0.2",
+ "eslint": "^8.57.1",
+ "eslint-config-prettier": "^10.1.2",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-prettier": "^5.2.6",
+ "eslint-plugin-react": "^7.37.5",
+ "eslint-plugin-react-native": "^5.0.0",
+ "husky": "^9.1.7",
+ "jest": "^29.6.3",
+ "jscodeshift": "^0.15.2",
+ "lint-staged": "^15.5.0",
+ "prettier": "^2.8.8",
+ "react-native-cli-bump-version": "^1.5.1",
+ "react-test-renderer": "18.3.1",
+ "typescript": "5.7.3"
+ },
+ "lint-staged": {
+ "*.{js,jsx,ts,tsx}": [
+ "prettier --write",
+ "eslint --fix"
+ ]
+ },
+ "engines": {
+ "node": ">=18"
+ }
+}
From e988ee8641f0876e5246b38f5ad64898cbbeac6b Mon Sep 17 00:00:00 2001
From: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Date: Mon, 14 Apr 2025 08:07:06 -0500
Subject: [PATCH 4/5] version bump
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index b303bbdf..6351c2c9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jellify",
- "version": "0.10.93",
+ "version": "0.10.94",
"private": true,
"scripts": {
"init": "npm i",
From 463d504c7747c043270eeb9fb24220e74069e282 Mon Sep 17 00:00:00 2001
From: anultravioletaurora
Date: Mon, 14 Apr 2025 13:38:30 +0000
Subject: [PATCH 5/5] [skip actions]
---
android/app/build.gradle | 4 +-
ios/Jellify.xcodeproj/project.pbxproj | 8 +-
package.json | 228 +++++++++++++-------------
3 files changed, 120 insertions(+), 120 deletions(-)
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 973b343a..6751d97c 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -92,8 +92,8 @@ android {
applicationId "com.jellify"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 7
- versionName "0.10.93"
+ versionCode 8
+ versionName "0.10.95"
}
signingConfigs {
debug {
diff --git a/ios/Jellify.xcodeproj/project.pbxproj b/ios/Jellify.xcodeproj/project.pbxproj
index 009a63c9..1877327e 100644
--- a/ios/Jellify.xcodeproj/project.pbxproj
+++ b/ios/Jellify.xcodeproj/project.pbxproj
@@ -718,7 +718,7 @@
CODE_SIGN_IDENTITY = "Apple Development: Jack Caulfield (66Z9J9NX2X)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Jack Caulfield (66Z9J9NX2X)";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 119;
+ CURRENT_PROJECT_VERSION = 120;
DEVELOPMENT_TEAM = WAH9CZ8BPG;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = WAH9CZ8BPG;
ENABLE_BITCODE = NO;
@@ -728,7 +728,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 0.10.93;
+ MARKETING_VERSION = 0.10.95;
NEW_SETTING = "";
OTHER_LDFLAGS = (
"$(inherited)",
@@ -759,7 +759,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 119;
+ CURRENT_PROJECT_VERSION = 120;
DEVELOPMENT_TEAM = WAH9CZ8BPG;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = WAH9CZ8BPG;
INFOPLIST_FILE = Jellify/Info.plist;
@@ -768,7 +768,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 0.10.93;
+ MARKETING_VERSION = 0.10.95;
NEW_SETTING = "";
OTHER_LDFLAGS = (
"$(inherited)",
diff --git a/package.json b/package.json
index 6351c2c9..a4ba02f7 100644
--- a/package.json
+++ b/package.json
@@ -1,115 +1,115 @@
{
- "name": "jellify",
- "version": "0.10.94",
- "private": true,
- "scripts": {
- "init": "npm i",
- "android": "react-native run-android",
- "ios": "react-native run-ios",
- "lint": "eslint .",
- "start": "react-native start",
- "test": "jest",
- "clean:ios": "cd ios && pod deintegrate",
- "clean:android": "cd android && rm -rf app/ build/",
- "pod:install": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=0 bundle exec pod install",
- "pod:install-new-arch": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
- "fastlane:ios:build": "cd ios && bundle exec fastlane build",
- "fastlane:ios:beta": "cd ios && bundle exec fastlane beta",
- "fastlane:android:build": "cd android && bundle install && bundle exec fastlane build",
- "androidBuild": "cd android && ./gradlew clean && ./gradlew assembleRelease && cd .. && echo 'find apk in android/app/build/outputs/apk/release'",
- "prepare": "husky",
- "format:check": "prettier --check .",
- "format": "prettier --write ."
- },
- "dependencies": {
- "@jellyfin/sdk": "^0.11.0",
- "@react-native-community/blur": "^4.4.1",
- "@react-native-community/cli": "^15.1.3",
- "@react-native-masked-view/masked-view": "^0.3.2",
- "@react-navigation/bottom-tabs": "^7.2.0",
- "@react-navigation/native": "^7.0.14",
- "@react-navigation/native-stack": "^7.1.1",
- "@react-navigation/stack": "^7.1.0",
- "@tamagui/config": "^1.124.17",
- "@tamagui/toast": "^1.124.17",
- "@tanstack/query-sync-storage-persister": "^5.66.0",
- "@tanstack/react-query": "^5.66.0",
- "@tanstack/react-query-persist-client": "^5.66.0",
- "axios": "^1.7.9",
- "bundle": "^2.1.0",
- "burnt": "^0.12.2",
- "expo": "^52.0.0",
- "expo-image": "^2.0.7",
- "gem": "^2.4.3",
- "invert-color": "^2.0.0",
- "jest-expo": "^52.0.6",
- "lodash": "^4.17.21",
- "npm-bundle": "^3.0.3",
- "react": "18.3.1",
- "react-freeze": "^1.0.4",
- "react-native": "0.77.0",
- "react-native-background-actions": "^4.0.1",
- "react-native-blurhash": "^2.1.1",
- "react-native-boost": "^0.5.5",
- "react-native-carplay": "^2.4.1-beta.0",
- "react-native-device-info": "^14.0.4",
- "react-native-draggable-flatlist": "^4.0.1",
- "react-native-file-access": "^3.1.1",
- "react-native-gesture-handler": "^2.23.0",
- "react-native-haptic-feedback": "^2.3.3",
- "react-native-mmkv": "^2.12.2",
- "react-native-reanimated": "^3.17.2",
- "react-native-safe-area-context": "^5.2.0",
- "react-native-screens": "^4.6.0",
- "react-native-swipeable-item": "^2.0.9",
- "react-native-text-ticker": "^1.14.0",
- "react-native-track-player": "^4.1.1",
- "react-native-url-polyfill": "^2.0.0",
- "react-native-uuid": "^2.0.3",
- "react-native-vector-icons": "^10.2.0",
- "ruby": "^0.6.1",
- "tamagui": "^1.124.17"
- },
- "devDependencies": {
- "@babel/core": "^7.25.2",
- "@babel/preset-env": "^7.25.3",
- "@babel/runtime": "^7.25.0",
- "@react-native-community/cli-platform-android": "15.1.3",
- "@react-native-community/cli-platform-ios": "15.1.3",
- "@react-native/babel-preset": "0.77.0",
- "@react-native/eslint-config": "0.77.0",
- "@react-native/metro-config": "0.77.0",
- "@react-native/typescript-config": "0.77.0",
- "@types/jest": "^29.5.13",
- "@types/lodash": "^4.17.10",
- "@types/react": "^18.2.6",
- "@types/react-native-vector-icons": "^6.4.18",
- "@types/react-test-renderer": "^18.3.1",
- "@typescript-eslint/eslint-plugin": "^8.29.1",
- "@typescript-eslint/parser": "^8.29.1",
- "babel-plugin-module-resolver": "^5.0.2",
- "eslint": "^8.57.1",
- "eslint-config-prettier": "^10.1.2",
- "eslint-plugin-import": "^2.31.0",
- "eslint-plugin-prettier": "^5.2.6",
- "eslint-plugin-react": "^7.37.5",
- "eslint-plugin-react-native": "^5.0.0",
- "husky": "^9.1.7",
- "jest": "^29.6.3",
- "jscodeshift": "^0.15.2",
- "lint-staged": "^15.5.0",
- "prettier": "^2.8.8",
- "react-native-cli-bump-version": "^1.5.1",
- "react-test-renderer": "18.3.1",
- "typescript": "5.7.3"
- },
- "lint-staged": {
- "*.{js,jsx,ts,tsx}": [
- "prettier --write",
- "eslint --fix"
- ]
- },
- "engines": {
- "node": ">=18"
- }
-}
+ "name": "jellify",
+ "version": "0.10.95",
+ "private": true,
+ "scripts": {
+ "init": "npm i",
+ "android": "react-native run-android",
+ "ios": "react-native run-ios",
+ "lint": "eslint .",
+ "start": "react-native start",
+ "test": "jest",
+ "clean:ios": "cd ios && pod deintegrate",
+ "clean:android": "cd android && rm -rf app/ build/",
+ "pod:install": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=0 bundle exec pod install",
+ "pod:install-new-arch": "cd ios && bundle install && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
+ "fastlane:ios:build": "cd ios && bundle exec fastlane build",
+ "fastlane:ios:beta": "cd ios && bundle exec fastlane beta",
+ "fastlane:android:build": "cd android && bundle install && bundle exec fastlane build",
+ "androidBuild": "cd android && ./gradlew clean && ./gradlew assembleRelease && cd .. && echo 'find apk in android/app/build/outputs/apk/release'",
+ "prepare": "husky",
+ "format:check": "prettier --check .",
+ "format": "prettier --write ."
+ },
+ "dependencies": {
+ "@jellyfin/sdk": "^0.11.0",
+ "@react-native-community/blur": "^4.4.1",
+ "@react-native-community/cli": "^15.1.3",
+ "@react-native-masked-view/masked-view": "^0.3.2",
+ "@react-navigation/bottom-tabs": "^7.2.0",
+ "@react-navigation/native": "^7.0.14",
+ "@react-navigation/native-stack": "^7.1.1",
+ "@react-navigation/stack": "^7.1.0",
+ "@tamagui/config": "^1.124.17",
+ "@tamagui/toast": "^1.124.17",
+ "@tanstack/query-sync-storage-persister": "^5.66.0",
+ "@tanstack/react-query": "^5.66.0",
+ "@tanstack/react-query-persist-client": "^5.66.0",
+ "axios": "^1.7.9",
+ "bundle": "^2.1.0",
+ "burnt": "^0.12.2",
+ "expo": "^52.0.0",
+ "expo-image": "^2.0.7",
+ "gem": "^2.4.3",
+ "invert-color": "^2.0.0",
+ "jest-expo": "^52.0.6",
+ "lodash": "^4.17.21",
+ "npm-bundle": "^3.0.3",
+ "react": "18.3.1",
+ "react-freeze": "^1.0.4",
+ "react-native": "0.77.0",
+ "react-native-background-actions": "^4.0.1",
+ "react-native-blurhash": "^2.1.1",
+ "react-native-boost": "^0.5.5",
+ "react-native-carplay": "^2.4.1-beta.0",
+ "react-native-device-info": "^14.0.4",
+ "react-native-draggable-flatlist": "^4.0.1",
+ "react-native-file-access": "^3.1.1",
+ "react-native-gesture-handler": "^2.23.0",
+ "react-native-haptic-feedback": "^2.3.3",
+ "react-native-mmkv": "^2.12.2",
+ "react-native-reanimated": "^3.17.2",
+ "react-native-safe-area-context": "^5.2.0",
+ "react-native-screens": "^4.6.0",
+ "react-native-swipeable-item": "^2.0.9",
+ "react-native-text-ticker": "^1.14.0",
+ "react-native-track-player": "^4.1.1",
+ "react-native-url-polyfill": "^2.0.0",
+ "react-native-uuid": "^2.0.3",
+ "react-native-vector-icons": "^10.2.0",
+ "ruby": "^0.6.1",
+ "tamagui": "^1.124.17"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.25.2",
+ "@babel/preset-env": "^7.25.3",
+ "@babel/runtime": "^7.25.0",
+ "@react-native-community/cli-platform-android": "15.1.3",
+ "@react-native-community/cli-platform-ios": "15.1.3",
+ "@react-native/babel-preset": "0.77.0",
+ "@react-native/eslint-config": "0.77.0",
+ "@react-native/metro-config": "0.77.0",
+ "@react-native/typescript-config": "0.77.0",
+ "@types/jest": "^29.5.13",
+ "@types/lodash": "^4.17.10",
+ "@types/react": "^18.2.6",
+ "@types/react-native-vector-icons": "^6.4.18",
+ "@types/react-test-renderer": "^18.3.1",
+ "@typescript-eslint/eslint-plugin": "^8.29.1",
+ "@typescript-eslint/parser": "^8.29.1",
+ "babel-plugin-module-resolver": "^5.0.2",
+ "eslint": "^8.57.1",
+ "eslint-config-prettier": "^10.1.2",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-prettier": "^5.2.6",
+ "eslint-plugin-react": "^7.37.5",
+ "eslint-plugin-react-native": "^5.0.0",
+ "husky": "^9.1.7",
+ "jest": "^29.6.3",
+ "jscodeshift": "^0.15.2",
+ "lint-staged": "^15.5.0",
+ "prettier": "^2.8.8",
+ "react-native-cli-bump-version": "^1.5.1",
+ "react-test-renderer": "18.3.1",
+ "typescript": "5.7.3"
+ },
+ "lint-staged": {
+ "*.{js,jsx,ts,tsx}": [
+ "prettier --write",
+ "eslint --fix"
+ ]
+ },
+ "engines": {
+ "node": ">=18"
+ }
+}
\ No newline at end of file