mirror of
https://github.com/Termix-SSH/Mobile.git
synced 2026-07-28 05:51:43 +02:00
6c40d2f0cc
* fix: register physical Tab key on iPadOS/iOS hardware keyboards (#14) The native module only registered Shift+Tab but not bare Tab, so iOS intercepted it for UI focus navigation. Register an unmodified Tab UIKeyCommand with wantsPriorityOverSystemBehavior and handle both Tab and Shift+Tab in the same JS branch. Fixes Termix-SSH/Support#557 * fix: pass jumpHosts, forceKeyboardInteractive, and overrideCredentialUsername to terminal connection (#15) These fields were defined on SSHHost but omitted from the terminal hostConfig passthrough. Without jumpHosts the backend cannot route through jump servers; without forceKeyboardInteractive hosts that require keyboard-interactive auth fail silently; without overrideCredentialUsername shared credentials use the wrong username. Fixes Termix-SSH/Support#422 Fixes Termix-SSH/Support#638 * fix: improve mobile terminal scroll recovery (#17) * Add mobile remote desktop sessions (#18) * feat: add mobile remote desktop sessions * feat: add remote desktop input controls * feat: polish remote desktop controls * feat: add mobile terminal font selection (#19) * feat: add mobile shift tab hotkey (#20) * feat: initial UI redesign * feat: revamp server login system * chore: update app icon/background color * fix: remove unused fields in the settings tab * feat: improve the user pin system and update all settings modals to use new ui * fix: active server not updating unless app restarts * feat: add version in settings * feat: improve host page UI (updated host form and added credential management) * fix: preserve composed iOS terminal input * ci: restore mobile checks * feat: rewrite of connection system for all types * fix: preserve mobile jump hosts (#30) * fix: guard android user ca trust (#29) * fix: capture ios hardware tab key (#27) * fix: reset terminal input after special keys (#28) * fix: open oidc in system browser (#26) * fix: preserve websocket auth context (#25) * fix: keep none-auth terminal prompts alive (#23) * fix: allow local network SSL in Android app (#21) * feat: allow oidc passkeys * feat: bundeled xterm into app and added docker loading screen * feat: add 2fa, api key, and active sessions to settings and addressed multiple bug fixes and inconsistencies with termix web * chore: update repo images and readme * chore: update readme to split table for screenshots * chore: rename ios to apple in build workflow * fix: android build failure * feat: add snippet management and fix several bugs * fix: web login and oidc incorrect logic * chore: run linter --------- Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
92 lines
2.8 KiB
JSON
92 lines
2.8 KiB
JSON
{
|
|
"name": "termix-mobile",
|
|
"main": "expo-router/entry",
|
|
"version": "1.4.0",
|
|
"scripts": {
|
|
"start": "expo start",
|
|
"android": "expo run:android",
|
|
"ios": "expo run:ios",
|
|
"web": "expo start --web",
|
|
"lint": "expo lint",
|
|
"lint:fix": "expo lint --fix",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check .",
|
|
"verify:android-network-security": "node scripts/verify-android-network-security.cjs",
|
|
"build-all": "eas build --platform all --profile development",
|
|
"build-android": "eas build --platform android --profile development",
|
|
"build-ios": "eas build --platform ios --profile development"
|
|
},
|
|
"dependencies": {
|
|
"@expo-google-fonts/jetbrains-mono": "^0.4.1",
|
|
"@expo/metro-runtime": "~6.1.2",
|
|
"@expo/vector-icons": "^15.0.2",
|
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
|
"@react-navigation/bottom-tabs": "^7.4.0",
|
|
"@react-navigation/elements": "^2.6.3",
|
|
"@react-navigation/native": "^7.1.8",
|
|
"axios": "^1.12.2",
|
|
"expo": "54.0.13",
|
|
"expo-build-properties": "^1.0.9",
|
|
"expo-clipboard": "^8.0.8",
|
|
"expo-constants": "~18.0.8",
|
|
"expo-dev-client": "~6.0.15",
|
|
"expo-document-picker": "~14.0.8",
|
|
"expo-file-system": "~19.0.23",
|
|
"expo-font": "~14.0.8",
|
|
"expo-haptics": "~15.0.7",
|
|
"expo-image": "~3.0.9",
|
|
"expo-linking": "~8.0.8",
|
|
"expo-local-authentication": "~17.0.8",
|
|
"expo-router": "~6.0.12",
|
|
"expo-secure-store": "~15.0.8",
|
|
"expo-splash-screen": "~31.0.10",
|
|
"expo-status-bar": "~3.0.8",
|
|
"expo-symbols": "~1.0.7",
|
|
"expo-system-ui": "~6.0.7",
|
|
"expo-web-browser": "~15.0.11",
|
|
"lucide-react-native": "^0.544.0",
|
|
"nativewind": "^4.2.1",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"react-hook-form": "^7.62.0",
|
|
"react-native": "0.81.4",
|
|
"react-native-draggable-flatlist": "^4.0.3",
|
|
"react-native-gesture-handler": "~2.28.0",
|
|
"react-native-reanimated": "~4.1.1",
|
|
"react-native-safe-area-context": "~5.6.0",
|
|
"react-native-screens": "~4.16.0",
|
|
"react-native-svg": "^15.14.0",
|
|
"react-native-web": "~0.21.0",
|
|
"react-native-webview": "^13.15.0",
|
|
"react-native-worklets": "0.5.1",
|
|
"sonner-native": "^0.21.1",
|
|
"tailwindcss": "^3.4.17"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^20.5.2",
|
|
"@commitlint/config-conventional": "^20.5.0",
|
|
"@types/react": "~19.1.0",
|
|
"eslint": "^9.25.0",
|
|
"eslint-config-expo": "~10.0.0",
|
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^16.4.0",
|
|
"prettier": "^3.8.3",
|
|
"prettier-plugin-tailwindcss": "^0.7.3",
|
|
"typescript": "~5.9.2"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx}": [
|
|
"eslint --fix",
|
|
"prettier --write"
|
|
],
|
|
"*.{js,jsx}": [
|
|
"prettier --write"
|
|
],
|
|
"*.{json,css,md}": [
|
|
"prettier --write"
|
|
]
|
|
},
|
|
"private": true
|
|
}
|