mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-19 13:23:37 +02:00
Mukke is a local, offline-first music player for iOS. Songs are imported from iCloud/local files via document picker, stored on device, and played with expo-audio including background playback and lock screen controls. Stack: Expo SDK 55, expo-audio, expo-sqlite, expo-document-picker, @missingcore/audio-metadata, Zustand, NativeWind, Expo Router with NativeTabs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
2 KiB
JSON
66 lines
2 KiB
JSON
{
|
|
"name": "@mukke/mobile",
|
|
"version": "1.0.0",
|
|
"main": "expo-router/entry",
|
|
"scripts": {
|
|
"dev": "expo start --dev-client",
|
|
"start": "expo start --dev-client",
|
|
"ios": "expo run:ios",
|
|
"android": "expo run:android",
|
|
"build:dev": "eas build --profile development",
|
|
"build:preview": "eas build --profile preview",
|
|
"build:prod": "eas build --profile production",
|
|
"prebuild": "expo prebuild",
|
|
"lint": "eslint \"**/*.{js,jsx,ts,tsx}\" && prettier -c \"**/*.{js,jsx,ts,tsx,json}\"",
|
|
"format": "eslint \"**/*.{js,jsx,ts,tsx}\" --fix && prettier \"**/*.{js,jsx,ts,tsx,json}\" --write"
|
|
},
|
|
"dependencies": {
|
|
"@expo/vector-icons": "^15.0.2",
|
|
"@missingcore/audio-metadata": "^1.3.0",
|
|
"@mukke/types": "workspace:*",
|
|
"@react-native-async-storage/async-storage": "2.2.0",
|
|
"@react-native-community/slider": "5.1.2",
|
|
"@react-navigation/native": "^7.0.3",
|
|
"expo": "~55.0.0",
|
|
"expo-audio": "~55.0.0",
|
|
"expo-constants": "~55.0.0",
|
|
"expo-dev-client": "~55.0.0",
|
|
"expo-dev-launcher": "~55.0.0",
|
|
"expo-document-picker": "~55.0.0",
|
|
"expo-file-system": "~55.0.0",
|
|
"expo-router": "~55.0.0",
|
|
"expo-sqlite": "~55.0.0",
|
|
"expo-status-bar": "~55.0.0",
|
|
"expo-system-ui": "~55.0.0",
|
|
"nativewind": "^4.2.0",
|
|
"react": "19.2.0",
|
|
"react-dom": "19.2.0",
|
|
"react-native": "0.83.2",
|
|
"react-native-gesture-handler": "~2.30.0",
|
|
"react-native-reanimated": "~4.2.1",
|
|
"react-native-safe-area-context": "~5.6.2",
|
|
"react-native-screens": "~4.23.0",
|
|
"react-native-web": "~0.21.0",
|
|
"react-native-worklets": "~0.7.2",
|
|
"uuid": "^11.1.0",
|
|
"zustand": "^5.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.26.0",
|
|
"@types/react": "~19.2.14",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
"@typescript-eslint/parser": "^8.0.0",
|
|
"eslint": "^9.18.0",
|
|
"eslint-config-universe": "^14.0.0",
|
|
"prettier": "^3.5.0",
|
|
"prettier-plugin-tailwindcss": "^0.6.0",
|
|
"tailwindcss": "^3.4.0",
|
|
"typescript": "~5.9.2"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": "universe/native",
|
|
"root": true
|
|
},
|
|
"private": true
|
|
}
|