devicely 2.2.12 → 2.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +182 -81
  2. package/bin/devicely.js +1 -1
  3. package/config/devices.conf +2 -2
  4. package/lib/.logging-backup/aiProviders.js.backup +654 -0
  5. package/lib/.logging-backup/appMappings.js.backup +337 -0
  6. package/lib/.logging-backup/commanderService.js.backup +4427 -0
  7. package/lib/.logging-backup/devices.js.backup +54 -0
  8. package/lib/.logging-backup/doctor.js.backup +94 -0
  9. package/lib/.logging-backup/encryption.js.backup +61 -0
  10. package/lib/.logging-backup/executor.js.backup +104 -0
  11. package/lib/.logging-backup/hybridAI.js.backup +154 -0
  12. package/lib/.logging-backup/intelligentLocatorService.js.backup +1541 -0
  13. package/lib/.logging-backup/locatorStrategy.js.backup +342 -0
  14. package/lib/.logging-backup/scriptLoader.js.backup +13 -0
  15. package/lib/.logging-backup/server.js.backup +6298 -0
  16. package/lib/.logging-backup/tensorflowAI.js.backup +714 -0
  17. package/lib/.logging-backup/universalSessionManager.js.backup +370 -0
  18. package/lib/.logging-enhanced-backup/server.js.enhanced-backup +6298 -0
  19. package/lib/advanced-logger.js +1 -0
  20. package/lib/aiProviders.js +154 -15
  21. package/lib/aiProviders.js.strategic-backup +657 -0
  22. package/lib/aiProvidersConfig.js +61 -151
  23. package/lib/aiProvidersConfig.js.backup +218 -0
  24. package/lib/androidDeviceDetection.js +1 -1
  25. package/lib/appMappings.js +1 -1
  26. package/lib/commanderService.js +1 -1
  27. package/lib/commanderService.js.backup +5552 -0
  28. package/lib/deviceDetection.js +1 -1
  29. package/lib/devices.js +1 -1
  30. package/lib/devices.js.strategic-backup +57 -0
  31. package/lib/doctor.js +1 -1
  32. package/lib/encryption.js +1 -1
  33. package/lib/encryption.js.strategic-backup +61 -0
  34. package/lib/executor.js +1 -1
  35. package/lib/executor.js.strategic-backup +107 -0
  36. package/lib/frontend/asset-manifest.json +5 -3
  37. package/lib/frontend/index.html +1 -1
  38. package/lib/hybridAI.js +1 -0
  39. package/lib/intelligentLocatorService.js +1 -0
  40. package/lib/lightweightAI.js +1 -0
  41. package/lib/localBuiltInAI.js +1 -0
  42. package/lib/localBuiltInAI_backup.js +1 -0
  43. package/lib/localBuiltInAI_simple.js +1 -0
  44. package/lib/locatorStrategy.js +1 -1
  45. package/lib/logger-demo.js +2 -0
  46. package/lib/logger-integration-examples.js +102 -0
  47. package/lib/logger.js +1 -1
  48. package/lib/package.json +5 -0
  49. package/lib/public/asset-manifest.json +3 -3
  50. package/lib/public/index.html +1 -1
  51. package/lib/quick-start-logger.js +2 -0
  52. package/lib/scriptLoader.js +1 -1
  53. package/lib/server.js +1 -1
  54. package/lib/server.js.strategic-backup +6298 -0
  55. package/lib/tensorflowAI.js +1 -0
  56. package/lib/tensorflowAI.js.strategic-backup +717 -0
  57. package/lib/tinyAI.js +1 -0
  58. package/lib/universalSessionManager.js +1 -0
  59. package/package.json +1 -1
  60. package/scripts/shell/android_device_control.enc +1 -1
  61. package/scripts/shell/connect_ios_usb_multi_final.enc +1 -1
  62. package/scripts/shell/connect_ios_wireless_multi_final.enc +1 -1
  63. package/lib/public/index.html.bak +0 -1
package/README.md CHANGED
@@ -2,11 +2,19 @@
2
2
 
3
3
  # 📱✨ Devicely
4
4
 
5
- ### **Orchestrate Your Mobile World. AI-Powered. Infinitely Scalable.**
5
+ ### **Control one device, and every connected device follows in real-time - with live screen sync on the web**
6
6
 
7
- **The ultimate command center for mobile automation and multi-device orchestration.**
7
+ *Ever wondered what happens when you combine device mirroring with AI-powered automation? Meet the mobile orchestration platform that curious developers are exploring.*
8
8
 
9
- [![NPM Version](https://img.shields.io/badge/npm-v2.2.11-CB3837?style=for-the-badge)](https://www.npmjs.com/package/devicely)
9
+ ### 🤔 **Intrigued? Try it yourself:**
10
+
11
+ ```bash
12
+ npm install -g devicely
13
+ devicely start
14
+ ```
15
+ **Visit [https://devicely-ai.vercel.app/](https://devicely-ai.vercel.app/) and see what happens when devices work together.**
16
+
17
+ [![NPM Version](https://img.shields.io/badge/npm-v2.2.13-CB3837?style=for-the-badge)](https://www.npmjs.com/package/devicely)
10
18
  [![License](https://img.shields.io/badge/license-Proprietary-blue?style=for-the-badge)](LICENSE)
11
19
  [![Platform](https://img.shields.io/badge/platform-iOS%20%7C%20Android-lightgrey?style=for-the-badge)](https://devicely-ai.vercel.app)
12
20
 
@@ -14,106 +22,111 @@
14
22
 
15
23
  ---
16
24
 
17
- ### **Automate at Scale, Not Just Execute.**
25
+ ### 🤷‍♀️ **What if mobile testing was more like conducting an orchestra?**
26
+
27
+ Instead of manually testing the same flow across multiple devices, what if you could:
18
28
 
19
- Devicely isn't just a tool; it's an **orchestrator**. It provides a unified, professional interface to control, automate, and inspect iOS and Android devices simultaneously using **Natural Language AI**, **Voice Commands**, and **Live Commander Mode** for real-time multi-device mirroring.
29
+ - **Speak naturally** to your devices: *"Take a screenshot"* all devices respond
30
+ - **Touch one screen** and watch others mirror your actions in real-time
31
+ - **Record once**, replay everywhere - from 1 device to 100+
32
+ - **See everything** happening across your device fleet on one web dashboard
33
+
34
+ *Turns out, when devices can follow a leader and understand natural language, mobile development gets pretty interesting.*
20
35
 
21
36
  </div>
22
37
 
23
38
  ---
24
39
 
25
- ## 🌌 Glimpse of the Infinite
26
-
27
- Devicely redefines what's possible with your mobile infrastructure. By bridging the gap between human intent and device execution, you can:
40
+ ---
28
41
 
29
- * **🧪 Massive Parallel Testing:** Transform a 2-hour manual smoke test into a 5-minute automated broadcast across your entire device fleet.
30
- * **🤖 AI-Native QA:** Move beyond brittle selectors. Use natural language to navigate apps, verify UI, and find bugs across different screen sizes autonomously.
31
- * **🏢 Enterprise Device Labs:** Turn any desk or rack of physical devices into a private, web-accessible cloud lab for your entire global team.
32
- * **🔄 Instant Bug Reproduction:** Record a complex bug on one device and instantly "broadcast" those exact steps to every other device to see which OS versions are affected.
33
- * **🎤 Voice-Driven Automation:** Speak commands naturally and watch your entire device fleet respond in real-time.
34
- * **🔀 Cross-Platform Sync:** Run the same command on iOS and Android simultaneously with platform-specific intelligence.
42
+ ## 🌟 **What makes this different?**
43
+
44
+ ### 👑 **Commander Mode** - *Like screen sharing, but for device control*
45
+ * One device leads, others follow in real-time
46
+ * Touch the leader's screen all followers mirror the action
47
+ * Switch leaders with a simple dropdown
48
+ * Watch it all happen on your web dashboard
49
+
50
+ ### 🔄 **Live Sync** - *What if all your devices moved together?*
51
+ * Commands reach all devices simultaneously via WebSockets
52
+ * iOS and Android understand the same instructions differently (as they should)
53
+ * See live status updates from every connected device
54
+ * No waiting for one device to finish before the next starts
55
+
56
+ ### 📹 **Record & Replay - Zero-Code Automation**
57
+ * **Visual Recording:** Capture complex workflows with simple button clicks
58
+ * **AI-Generated Scripts:** Voice commands auto-convert to replayable recordings
59
+ * **Fleet Replay:** Run recorded flows on single devices or entire laboratories
60
+ * **Edit & Refine:** Full editor for recordings with add/remove/modify capabilities
61
+
62
+ ### 🤖 **AI Integration** - *Talk to your devices like a person*
63
+ * Say *"Open Instagram and find search"* - it just works
64
+ * Choose from 7 AI providers (some are free to try)
65
+ * Devices understand context - no hunting for element IDs
66
+ * Same command, different results on iOS vs Android (intelligently)
67
+
68
+ ### 🎤 **Voice Control** - *Because typing is so 2020*
69
+ * Speak naturally, pause when you're thinking (2-second detection)
70
+ * Chain commands: *"launch settings, scroll up, launch camera"*
71
+ * Watch your words turn into actions in real-time
72
+ * Works across as many devices as you want to connect
35
73
 
36
74
  ---
37
75
 
38
- ## ✨ The Devicely Advantage
39
-
40
- ### 🤖 **AI-Native Interaction**
41
- Stop hunting for element IDs. Devicely understands your intent.
42
- * **Natural Language Commands:** `"Open Instagram and find the search button"` or `"Take a screenshot on all Android devices"`.
43
- * **Voice Control:** Speak commands naturally with automatic silence detection and multi-phrase support.
44
- * **Context Awareness:** Automatically identifies buttons, inputs, and text across iOS and Android.
45
- * **7 AI Providers:** Choose from **OpenAI** 🤖, **Google Gemini** ✨, **Anthropic Claude** 🧠, **GitHub Copilot** 🐙, **Groq** ⚡, **Cohere** 🌊, or **Mistral AI** 🌬️.
46
- * **Model Selection:** Pick specific models (GPT-4 Turbo, Claude 3.5 Sonnet, Gemini 2.0 Flash, Llama 3 70B, etc.).
47
- * **Smart Error Handling:** Clear, actionable error messages displayed inline with results.
76
+ ## ✨ **Other things you might find useful**
48
77
 
49
78
  ### ⚡ **Quick Actions Panel**
50
- Three rapid-fire shortcuts for common automation tasks:
51
- * **Type Text to Send:** Quickly send text input to devices without typing commands.
52
- * **Element to Tap:** Click elements by name or coordinates (x,y) instantly.
53
- * **App ID to Launch:** Launch apps by package/bundle ID with autocomplete dropdown.
54
- * **History Navigation:** Use arrow keys to cycle through previous inputs.
79
+ * **Type Text to Send:** Rapid text input without typing full commands
80
+ * **Element to Tap:** Click by name or coordinates (x,y) instantly
81
+ * **App ID to Launch:** Launch apps with autocomplete dropdown
82
+ * **History Navigation:** Arrow keys cycle through previous inputs
55
83
 
56
84
  ### 🎮 **Unified Command Center**
57
- A single conductor for your entire device orchestra.
58
- * **Cross-Platform:** Native, low-latency support for **iOS 14+** and **Android 5+**.
59
- * **Parallel Execution:** Run the same action on 5, 50, or 100+ devices simultaneously with zero overhead.
60
- * **Synchronized Commands:** Execute platform-specific commands (different apps) on mixed device fleets at the exact same time.
61
- * **Live Feedback:** See real-time logs, status updates, and visual confirmations via high-speed WebSockets.
62
- * **API Key Management:** Secure credential storage with show/hide toggles for easy verification.
85
+ * **Cross-Platform:** Native support for **iOS 14+** and **Android 5+**
86
+ * **Massive Scale:** Control 5, 50, or 100+ devices with zero overhead
87
+ * **Live Feedback:** Real-time logs and visual confirmations via WebSockets
88
+ * **API Key Management:** Secure local storage with show/hide toggles
63
89
 
64
90
  ### 🔍 **Smart UI Inspector**
65
- The most practical way to explore your apps.
66
- * **Visual Element Scan:** Instantly see all clickable, enabled, and visible elements.
67
- * **Point-and-Click Control:** Interact with devices directly through the inspector interface.
68
- * **Developer Friendly:** Export clean selectors and coordinates for your automation scripts.
69
-
70
- ### 🔴 **Record & Broadcast**
71
- * **Zero-Code Automation:** Record complex manual workflows (logins, checkouts, onboarding) and save them as reusable scripts.
72
- * **AI-Generated Recordings:** Voice or text commands automatically converted to replayable scripts.
73
- * **Fleet Replay:** Replay recorded flows on any single device or your entire laboratory at once.
74
- * **Edit & Refine:** Full editor for AI-generated and manual recordings with add, remove, and modify capabilities.
75
-
76
- ### 👑 **Commander Mode**
77
- * **Live Device Mirroring:** See real-time screen updates from commander device with follower devices displayed simultaneously.
78
- * **Touch Broadcasting:** Tap on commander screen and watch all follower devices mirror the exact action.
79
- * **Quick Commander Swap:** Dropdown at top-left of mirror screen to instantly change which device leads the session.
80
- * **Auto-Setup:** First device automatically becomes commander, rest become followers.
81
- * **Visual Feedback:** Clear badges showing commander (👑) and follower devices (📱).
82
-
83
- ### 🎤 **Voice Commands**
84
- * **Hands-Free Operation:** Control your devices without touching a keyboard.
85
- * **Continuous Listening:** Speak naturally with pauses - 2-second silence detection auto-stops.
86
- * **Live Transcription:** See your words convert to commands in real-time.
87
- * **Complex Multi-Step:** Voice commands like "launch settings scroll up launch camera go to google.com press home" work seamlessly.
91
+ * **Visual Element Scan:** See all clickable, enabled, visible elements instantly
92
+ * **Point-and-Click Control:** Direct device interaction through inspector
93
+ * **Developer Export:** Clean selectors and coordinates for automation scripts
94
+
95
+ ### 📷 **Screenshots Gallery & Management**
96
+ * **Unified Media Library:** Combined recordings and screenshots in tabbed interface
97
+ * **Visual Screenshot Gallery:** Thumbnail grid with device names and timestamps
98
+ * **Full-Screen Viewer:** Click to enlarge screenshots with dark background overlay
99
+ * **Quick Management:** Delete screenshots directly from gallery with one-click
100
+ * **Auto-Collection:** Screenshots captured via commands automatically appear in gallery
101
+
102
+ ### 🌌 **The bigger picture**
103
+ * Transform 2-hour manual testing into 5-minute parallel runs
104
+ * Turn your device collection into a web-accessible lab
105
+ * Reproduce bugs instantly across different devices/OS versions
106
+ * Mix iOS and Android devices - they all speak the same language
88
107
 
89
108
  ---
90
109
 
91
- ## 🚀 Quick Start
110
+ ## 🔍 **How it works** *(in about 60 seconds)*
92
111
 
93
- Get up and running in less than 60 seconds.
94
-
95
- ### 1. Installation
112
+ ### **Step 1: Get it running**
96
113
  ```bash
97
- # Install Devicely globally via NPM
98
114
  npm install -g devicely
99
- ```
100
-
101
- ### 2. Launch
102
- ```bash
103
- # Start the command center
104
115
  devicely start
105
116
  ```
106
117
 
107
- **Visit `http://localhost:3001` to enter your Command Center.**
118
+ ### **Step 2: Connect and explore**
119
+ 1. Open [https://devicely-ai.vercel.app/](https://devicely-ai.vercel.app/)
120
+ 2. Connect your iOS/Android devices (as many as you want)
121
+ 3. Try saying: *"Take screenshot on all devices"*
122
+ 4. Watch what happens
108
123
 
109
- ### 3. Configure AI (Optional)
110
- To enable natural language and voice commands:
111
- 1. Visit Settings ⚙️ AI Configuration
112
- 2. Choose from **7 AI providers** with model selection
113
- 3. Add your API key (secured locally, never transmitted)
114
- 4. Start using AI: `"launch settings on all devices"`
124
+ ### **Step 3: Discover the AI layer** *(optional, but fun)*
125
+ - Settings AI Config Choose a provider (Gemini/Groq are free)
126
+ - Now you can talk to your devices in plain English
127
+ - *"Launch settings, scroll down, open camera"* - just works
115
128
 
116
- **Free AI Options:** Gemini, Groq, and Cohere offer generous free tiers!
129
+ **💡 Curious tip:** The more devices you connect, the more interesting it gets.
117
130
 
118
131
  ---
119
132
 
@@ -198,9 +211,81 @@ Devicely comes with a powerful command-line interface for quick actions:
198
211
 
199
212
  ---
200
213
 
201
- ## 🆕 Latest Features (v2.2.11 - February 2026)
214
+ ## 🆕 Latest Features (v2.2.13 - February 2026)
215
+
216
+ ### 🎨 **Major UI & Performance Update (v2.2.13 - Latest)**
217
+ - **📷 Screenshots Gallery:** Complete screenshot management system with tabbed interface
218
+ - **🎨 Apps Menu Redesign:** Beautiful gradient backgrounds and improved visual hierarchy
219
+ - **🤖 AI Bypass Optimization:** App commands now execute instantly without AI processing
220
+ - **⚡ Performance Boost:** Significantly faster app operations and UI responsiveness
221
+ - **🎯 Enhanced UX:** Better z-index management, tooltips, and user feedback
222
+
223
+ ### 📷 **Screenshots Gallery & Management (NEW!)**
224
+ - **Unified Media Library:** Combined Recordings and Screenshots in elegant tabbed interface
225
+ - **Visual Gallery:** Responsive thumbnail grid (2-6 columns) with device context
226
+ - **Full-Screen Viewer:** Click any screenshot for full-screen view with dark overlay
227
+ - **Smart Management:** One-click delete with instant feedback and auto-refresh
228
+ - **Device Tracking:** See which device captured each screenshot with timestamps
229
+ - **Auto-Collection:** Screenshots from `screenshot` command automatically appear
230
+ - **Cross-Platform:** Works seamlessly with iOS and Android screenshots
231
+
232
+ ### 🎨 **Apps Menu Visual Overhaul**
233
+ - **Gradient Backgrounds:** Each section has beautiful, color-coded gradient styling:
234
+ - 🟢 **Quick Launch:** Green-emerald gradient with enhanced app cards
235
+ - 🚀 **Launch App:** Green-teal gradient for app launching controls
236
+ - ❌ **Kill App:** Red-pink gradient for app termination controls
237
+ - 📦 **Install App:** Blue-cyan gradient for app installation
238
+ - 🗑️ **Uninstall App:** Orange-yellow gradient (NEW dedicated section)
239
+ - 📱 **Installed Apps:** Purple-pink gradient for app listing
240
+ - **Enhanced Visual Hierarchy:** Clear section separation with consistent iconography
241
+ - **Z-Index Management:** Apps Menu now properly appears above all hints and tooltips
242
+ - **Improved Tooltips:** Better button labeling and user guidance throughout
243
+
244
+ ### 🤖 **AI Processing Optimization**
245
+ - **Smart Command Detection:** Automatic bypass for app control commands
246
+ - **Regex Pattern Matching:** Detects `launch`, `kill`, `install`, `uninstall` commands
247
+ - **Direct Execution:** App commands execute immediately without AI conversion
248
+ - **Performance Gain:** Eliminated "🤖 Converting with Local Built-In AI" delays
249
+ - **Maintained Intelligence:** Other commands still benefit from AI when enabled
250
+
251
+ ### ⚡ **Commander Mode App Launch Fix (v2.2.13)**
252
+ - **Simple Detection:** Pre-tap home screen detection for smart app launches
253
+ - **Skip Coordinate Mirroring:** No more wrong taps when launching apps from home screen
254
+ - **Direct App Sync:** Detects launched app and immediately launches same app on followers
255
+ - **Performance Optimized:** Reduced cache refresh overhead during app launches
256
+ - **Smart Cache Management:** Refresh timing optimized for app launch vs regular tap scenarios
257
+
258
+ ### 🔧 **Intelligent Locator System Enhancements**
259
+ - **Advanced Caching:** Smart cache invalidation and refresh strategies
260
+ - **Performance Tuning:** Reduced cache refresh from 10s to 30s for better responsiveness
261
+ - **Session Recovery:** Improved session handling with smart recovery mechanisms
262
+ - **Cross-Device Sync:** Better coordinate scaling and device synchronization
263
+
264
+ ### 🐛 **Critical Fixes Applied**
265
+ - **Commander Mode Errors:** Fixed "Error starting commander mode" when devices already connected
266
+ - **Duplicate Follower Mirrors:** Resolved multiple mirror display issues
267
+ - **Coordinate Scaling:** Fixed scaling problems between commander and follower devices
268
+ - **Session Management:** Improved session lifecycle and error recovery
269
+ - **AI Command Order:** Fixed command conversion and execution sequence
270
+
271
+ ### 🎯 **Developer Experience Improvements**
272
+ - **Clean Code Architecture:** Improved separation of concerns and modularity
273
+ - **Better Error Handling:** Enhanced error messages and user feedback
274
+ - **Performance Monitoring:** Added metrics and logging for better debugging
275
+ - **Cross-Platform Consistency:** Unified behavior across iOS and Android platforms
276
+
277
+ ---
202
278
 
203
- ### 🐛 **Commander Mode Error Fix (v2.2.11)**
279
+ ### 📋 **Recent Commits on Release_2.2.13 Branch**
280
+ ```
281
+ dda75e2 🎨 MAJOR UPDATE: Apps Menu UI Fixes + Screenshots Gallery + AI Bypass
282
+ a267fab 🚀 OPTIMIZE: Simple app launch detection and performance improvements
283
+ 0dd3fcc Complete system update: AI fixes, intelligent locators, and comprehensive improvements
284
+ 8c437b1 Fix AI command conversion order and follower device execution
285
+ 5610575 🔧 MAJOR FIX: Duplicate follower mirrors & coordinate scaling
286
+ ```
287
+
288
+ **🚀 Total Improvements:** 5 major commits with 650+ lines of enhancements including UI overhaul, performance optimizations, AI bypass implementation, screenshots gallery, and critical bug fixes.
204
289
  - **Fixed**: "Error starting commander mode" when devices are already connected
205
290
  - **Improved**: Commander mode now gracefully handles already-active sessions
206
291
  - **Enhanced**: Better error messaging and automatic session management
@@ -272,9 +357,25 @@ For enterprise inquiries or commercial access, contact: **devicelyai@gmail.com**
272
357
 
273
358
  <div align="center">
274
359
 
275
- ### **Ready to Scale Your Mobile Automation?**
276
- [Install on NPM](https://www.npmjs.com/package/devicely) • [Visit Homepage](https://devicely-ai.vercel.app)
360
+ ---
361
+
362
+ ---
363
+
364
+ ## 🤔 **Still curious?**
365
+
366
+ Mobile development has always been about juggling multiple devices, hunting for the right selectors, and repeating the same tests over and over. What if there was a more interesting way?
367
+
368
+ ### **Give it a try:**
369
+
370
+ ```bash
371
+ npm install -g devicely
372
+ devicely start
373
+ ```
374
+
375
+ [📦 NPM Package](https://www.npmjs.com/package/devicely) • [🌐 Try it live](https://devicely-ai.vercel.app) • [📧 Questions: devicelyai@gmail.com](mailto:devicelyai@gmail.com)
376
+
377
+ *Built by developers who got tired of the same old mobile testing routine.*
277
378
 
278
- **Built with ❤️ for the next generation of Mobile Engineers.**
379
+ **⭐ Star this repo if you find it interesting!**
279
380
 
280
381
  </div>
package/bin/devicely.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- function _0x2215(){const _0x40a6ed=['rw5HyMXLigrLyNvNigXVz2DPBMC','B3v0Chv0sgvSCa','rgv0zwn0ifvtqIbKzxzPy2vZig9UBhK','ywn0Aw9U','zujoww4','rgv0zwn0ifDPrMKGzgv2AwnLCYbVBMX5','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','B3b0Aw9U','rg9Uj3qGB3bLBIbICM93C2vYigf1Dg9TyxrPy2fSBhK','zMPttgC','zxjYB3i','rvPgr3e','lI4VBgLIl2rVy3rVCG','iYbmAxn0igrLDMLJzxm','v0vzz1i','vvnfq0e','q2HLy2SGC3LZDgvTihjLCxvPCMvTzw50CYbMB3iGAu9tigfUzcbbBMrYB2LKigf1Dg9TyxrPB24','ode5nZC3tvHlrKXT','zxHPDa','CMvWzwf0','C2XPy2u','mKfbwvHmEa','icbKzxzPy2vSEsbKB2n0B3iGica','mJq2nJm3v0rTuKTN','iYbdAgvJAYbZExn0zw0','cUkDJcbfCNjVCJO','lI4VBgLIl2rLDMLJzxm','y29TBwfUza','D2HPDgu','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','cVcFMOaGrgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxm','DgnPwhG','z3jHEq','y3LHBG','DMvYC2LVBG','C3bSAxq','zgv2AwnLBhK','mZaWmq','sevpzhm','u2vYDMvYihbVCNq','q25xEuK','yxjNDG','BMfTzq','BgLZDa','icbKzxzPy2vSEsbSAxn0icaGica','Bg9N','BuHsELC','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','odq3mdy4mMfRr0nhwa','lxySic0TDMvYC2LVBG','ls13AwzPlw9UBhK','icaGquKGug93zxjLzcbnB2jPBguGqxv0B21HDgLVBG','lI4VBgLIl3nLCNzLCG','yM9Sza','mtj5wvrcr2u','tgLZDcbHBgWGy29UBMvJDgvKigLpuYbHBMqGqw5KCM9PzcbKzxzPy2vZ','icbKzxzPy2vSEsbZDgfYDcaGica','BxDIve4','nMjsA0fSwq','BwvZC2fNzq','y2HHBgS','nJi1mJnlzvHxwg0','rxHLy3v0zsbJB21Tyw5Kig9UignVBM5Ly3rLzcbPt1mVqw5KCM9PzcbKzxzPy2vZ','ANznu2i','qxvLD3a','zg9JDg9Y','lxaSic0TCg9YDca8Cg9YDd4','AgvSCe9WDgLVBG','zxHLyYa8y29TBwfUzd4','cVcFLi0Gq2HLy2TPBMCGC3LZDgvTihjLCxvPCMvTzw50CY4UlG','C3rHCNq','sNvHveG','nZe4mJa1wgHPtvDS','CMvK','zgvZy3jPChrPB24','ls11C2iTB25SEq','lwGSic0TAgvSCa','u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','DgL1ENO','otGXmZjVwKr5u0q','mta0nJG5nMPUtwj0yW','ntblyLzNvuq','cUkAOsbfEgvJDxrPBMCGy29TBwfUzc4UlG','rxHLy3v0zsbVBIbHBgWGzgv2AwnLCYaOzgvMyxvSDcK','lI4VBgLIl2v4zwn1Dg9Y'];_0x2215=function(){return _0x40a6ed;};return _0x2215();}const _0x52dbbf=_0x1953;(function(_0x2c15de,_0x1066ba){const _0x3744b0=_0x1953,_0x56796f=_0x2c15de();while(!![]){try{const _0x193529=-parseInt(_0x3744b0(0x76))/0x1*(parseInt(_0x3744b0(0xc9))/0x2)+-parseInt(_0x3744b0(0x95))/0x3*(parseInt(_0x3744b0(0xae))/0x4)+-parseInt(_0x3744b0(0xa7))/0x5+-parseInt(_0x3744b0(0x99))/0x6*(-parseInt(_0x3744b0(0xc5))/0x7)+-parseInt(_0x3744b0(0xaf))/0x8+parseInt(_0x3744b0(0x9c))/0x9*(-parseInt(_0x3744b0(0xb0))/0xa)+parseInt(_0x3744b0(0x8f))/0xb;if(_0x193529===_0x1066ba)break;else _0x56796f['push'](_0x56796f['shift']());}catch(_0x1ca82e){_0x56796f['push'](_0x56796f['shift']());}}}(_0x2215,0x38ece));function _0x1953(_0x3acb0d,_0x248f05){_0x3acb0d=_0x3acb0d-0x76;const _0x2215f2=_0x2215();let _0x1953fe=_0x2215f2[_0x3acb0d];if(_0x1953['CHifah']===undefined){var _0x3316d3=function(_0x343566){const _0x1057ac='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x233d5f='',_0x22ffac='';for(let _0x273105=0x0,_0x5400c2,_0x122149,_0x4eabec=0x0;_0x122149=_0x343566['charAt'](_0x4eabec++);~_0x122149&&(_0x5400c2=_0x273105%0x4?_0x5400c2*0x40+_0x122149:_0x122149,_0x273105++%0x4)?_0x233d5f+=String['fromCharCode'](0xff&_0x5400c2>>(-0x2*_0x273105&0x6)):0x0){_0x122149=_0x1057ac['indexOf'](_0x122149);}for(let _0xd1a72c=0x0,_0x5c053a=_0x233d5f['length'];_0xd1a72c<_0x5c053a;_0xd1a72c++){_0x22ffac+='%'+('00'+_0x233d5f['charCodeAt'](_0xd1a72c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22ffac);};_0x1953['xnxVoZ']=_0x3316d3,_0x1953['cFBiXR']={},_0x1953['CHifah']=!![];}const _0x300087=_0x2215f2[0x0],_0xc5b1fd=_0x3acb0d+_0x300087,_0x2e1006=_0x1953['cFBiXR'][_0xc5b1fd];return!_0x2e1006?(_0x1953fe=_0x1953['xnxVoZ'](_0x1953fe),_0x1953['cFBiXR'][_0xc5b1fd]=_0x1953fe):_0x1953fe=_0x2e1006,_0x1953fe;}const {program}=require('commander'),chalk=require(_0x52dbbf(0x9b)),packageJson=require('../package.json'),{startServer}=require(_0x52dbbf(0x93)),{listDevices}=require(_0x52dbbf(0x79)),{checkDoctor}=require(_0x52dbbf(0xc0)),{executeCommand}=require(_0x52dbbf(0xb3));program[_0x52dbbf(0x89)](_0x52dbbf(0x83))[_0x52dbbf(0xa9)](_0x52dbbf(0x8e))[_0x52dbbf(0x81)](packageJson[_0x52dbbf(0x81)],_0x52dbbf(0x90),_0x52dbbf(0xba))[_0x52dbbf(0xa2)](_0x52dbbf(0xab),'Display\x20help\x20information'),program[_0x52dbbf(0x7a)](_0x52dbbf(0xa5))['description'](_0x52dbbf(0xac))[_0x52dbbf(0xbb)](_0x52dbbf(0xa1),_0x52dbbf(0x86),_0x52dbbf(0x84))[_0x52dbbf(0xbb)]('--no-browser',_0x52dbbf(0xbc))[_0x52dbbf(0xbb)]('--debug',_0x52dbbf(0xb4))[_0x52dbbf(0xbb)](_0x52dbbf(0xaa),_0x52dbbf(0xb6))[_0x52dbbf(0xbb)](_0x52dbbf(0x91),_0x52dbbf(0xb9))[_0x52dbbf(0xb7)](async _0x3e84a6=>{const _0x452fcb=_0x52dbbf,_0x63cbaa={};_0x63cbaa[_0x452fcb(0x85)]=function(_0x216e62,_0x2fa072){return _0x216e62===_0x2fa072;},_0x63cbaa['eBNYn']='AyFqR',_0x63cbaa[_0x452fcb(0xc3)]=_0x452fcb(0xc2),_0x63cbaa[_0x452fcb(0xbf)]=_0x452fcb(0x7d),_0x63cbaa[_0x452fcb(0x87)]=_0x452fcb(0x92);const _0xda27d9=_0x63cbaa;try{_0xda27d9[_0x452fcb(0x85)](_0xda27d9[_0x452fcb(0xb8)],_0xda27d9['USECA'])?(_0x122149[_0x452fcb(0xbe)](_0x4eabec[_0x452fcb(0xa8)](_0x452fcb(0x78)),_0xd1a72c['message']),_0x5c053a['exit'](0x1)):(console[_0x452fcb(0x8c)](chalk[_0x452fcb(0x80)][_0x452fcb(0x94)](_0xda27d9['EZFGq'])),console[_0x452fcb(0x8c)](chalk[_0x452fcb(0x7f)](_0xda27d9[_0x452fcb(0x87)])),console[_0x452fcb(0x8c)](chalk[_0x452fcb(0x7f)](''['repeat'](0x32))),await startServer(_0x3e84a6));}catch(_0x2c63c7){console[_0x452fcb(0xbe)](chalk[_0x452fcb(0xa8)](_0x452fcb(0x78)),_0x2c63c7[_0x452fcb(0x9a)]),process['exit'](0x1);}}),program[_0x52dbbf(0x7a)](_0x52dbbf(0x8a))[_0x52dbbf(0xa9)](_0x52dbbf(0x96))[_0x52dbbf(0xbb)]('-v,\x20--verbose',_0x52dbbf(0x7c))['action'](async _0x30d76c=>{const _0x471828=_0x52dbbf,_0x463bf7={'hMLQK':'\x0a📱\x20Scanning\x20for\x20devices...','mwbTN':function(_0x23ed4c,_0x57be09){return _0x23ed4c(_0x57be09);},'mHRzW':_0x471828(0x78)};try{console[_0x471828(0x8c)](chalk['cyan'][_0x471828(0x94)](_0x463bf7['hMLQK'])),console[_0x471828(0x8c)](chalk[_0x471828(0x7f)]('━'[_0x471828(0xc7)](0x32))),await _0x463bf7[_0x471828(0x98)](listDevices,_0x30d76c);}catch(_0x304bbf){console[_0x471828(0xbe)](chalk[_0x471828(0xa8)](_0x463bf7[_0x471828(0x8d)]),_0x304bbf[_0x471828(0x9a)]),process[_0x471828(0xc6)](0x1);}}),program[_0x52dbbf(0x7a)](_0x52dbbf(0xa0))[_0x52dbbf(0xa9)](_0x52dbbf(0xc4))['action'](async()=>{const _0x544a2f=_0x52dbbf,_0x3f7efc={'Auewp':function(_0x48041f){return _0x48041f();},'JuaTH':_0x544a2f(0x78)};try{console[_0x544a2f(0x8c)](chalk['cyan'][_0x544a2f(0x94)](_0x544a2f(0xa4))),console[_0x544a2f(0x8c)](chalk[_0x544a2f(0x7f)]('━'[_0x544a2f(0xc7)](0x32))),await _0x3f7efc[_0x544a2f(0x9f)](checkDoctor);}catch(_0x163735){console[_0x544a2f(0xbe)](chalk[_0x544a2f(0xa8)](_0x3f7efc[_0x544a2f(0xa6)]),_0x163735[_0x544a2f(0x9a)]),process['exit'](0x1);}}),program[_0x52dbbf(0x7a)](_0x52dbbf(0xa3))[_0x52dbbf(0xa9)](_0x52dbbf(0x9d))[_0x52dbbf(0xbb)]('-d,\x20--device\x20<name>','Execute\x20on\x20specific\x20device')[_0x52dbbf(0xbb)]('-a,\x20--all',_0x52dbbf(0xb2))[_0x52dbbf(0xb7)](async(_0x19e785,_0x21414f)=>{const _0x468316=_0x52dbbf,_0x1d3aea={'jvMSb':_0x468316(0x78),'IWiBV':_0x468316(0xb1),'fjSLg':function(_0x28ed20,_0x8ba6fc,_0x4e456e){return _0x28ed20(_0x8ba6fc,_0x4e456e);},'tiuzz':_0x468316(0x7e)};try{console[_0x468316(0x8c)](chalk[_0x468316(0x80)][_0x468316(0x94)](_0x1d3aea['IWiBV'])),console['log'](chalk[_0x468316(0x7f)]('━'[_0x468316(0xc7)](0x32))),await _0x1d3aea[_0x468316(0xbd)](executeCommand,_0x19e785,_0x21414f);}catch(_0x51e1be){_0x1d3aea[_0x468316(0xad)]===_0x1d3aea[_0x468316(0xad)]?(console[_0x468316(0xbe)](chalk[_0x468316(0xa8)](_0x1d3aea[_0x468316(0x9e)]),_0x51e1be[_0x468316(0x9a)]),process[_0x468316(0xc6)](0x1)):(_0x3981c3['error'](_0x1c7697[_0x468316(0xa8)](jffJIQ[_0x468316(0x9e)]),_0x5a18f5[_0x468316(0x9a)]),_0x6d7a32['exit'](0x1));}}),program['parse'](process[_0x52dbbf(0x88)]);if(!process['argv'][_0x52dbbf(0xc8)](0x2)['length']){const IZMswv='3|4|5|2|1|0'[_0x52dbbf(0x82)]('|');let wMqIGA=0x0;while(!![]){switch(IZMswv[wMqIGA++]){case'0':console['log']('');continue;case'1':console['log'](chalk[_0x52dbbf(0x7f)](_0x52dbbf(0xca))+chalk[_0x52dbbf(0x7b)](_0x52dbbf(0x77)));continue;case'2':console[_0x52dbbf(0x8c)](chalk[_0x52dbbf(0x7f)](_0x52dbbf(0x8b))+chalk[_0x52dbbf(0x7b)](_0x52dbbf(0xc1)));continue;case'3':program[_0x52dbbf(0xb5)]();continue;case'4':console[_0x52dbbf(0x8c)](chalk[_0x52dbbf(0x80)]('\x0a💡\x20Quick\x20start:'));continue;case'5':console[_0x52dbbf(0x8c)](chalk[_0x52dbbf(0x7f)](_0x52dbbf(0x97))+chalk[_0x52dbbf(0x7b)]('#\x20Start\x20the\x20server'));continue;}break;}}
3
+ function _0x54a9(_0x3c10d7,_0x5c836a){_0x3c10d7=_0x3c10d7-0xd6;const _0x115917=_0x1159();let _0x54a98a=_0x115917[_0x3c10d7];if(_0x54a9['SucLFO']===undefined){var _0x57cbae=function(_0x3df65b){const _0x4fb81d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38aac1='',_0x220efc='';for(let _0x158313=0x0,_0x125d5a,_0x1c6297,_0x4fb098=0x0;_0x1c6297=_0x3df65b['charAt'](_0x4fb098++);~_0x1c6297&&(_0x125d5a=_0x158313%0x4?_0x125d5a*0x40+_0x1c6297:_0x1c6297,_0x158313++%0x4)?_0x38aac1+=String['fromCharCode'](0xff&_0x125d5a>>(-0x2*_0x158313&0x6)):0x0){_0x1c6297=_0x4fb81d['indexOf'](_0x1c6297);}for(let _0x59f995=0x0,_0x2b37b1=_0x38aac1['length'];_0x59f995<_0x2b37b1;_0x59f995++){_0x220efc+='%'+('00'+_0x38aac1['charCodeAt'](_0x59f995)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x220efc);};_0x54a9['rbQqTd']=_0x57cbae,_0x54a9['qGAnbH']={},_0x54a9['SucLFO']=!![];}const _0x23debe=_0x115917[0x0],_0x2f3636=_0x3c10d7+_0x23debe,_0x16c240=_0x54a9['qGAnbH'][_0x2f3636];return!_0x16c240?(_0x54a98a=_0x54a9['rbQqTd'](_0x54a98a),_0x54a9['qGAnbH'][_0x2f3636]=_0x54a98a):_0x54a98a=_0x16c240,_0x54a98a;}const _0x1b9e34=_0x54a9;function _0x1159(){const _0x173d5b=['rgv0zwn0ifvtqIbKzxzPy2vZig9UBhK','BwvZC2fNzq','CMvWzwf0','yM9Sza','rxHLy3v0zsbJB21Tyw5Kig9UignVBM5Ly3rLzcbPt1mVqw5KCM9PzcbKzxzPy2vZ','cUkAOsbfEgvJDxrPBMCGy29TBwfUzc4UlG','cVcFMOaGrgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxm','wMHIsxC','ue9dC1q','zxjYB3i','yLrpzhO','B2TZC20','lxySic0TDMvYyM9Zzq','uxrYAMG','lwqSic0Tzgv2AwnLidXUyw1LpG','mhWZFdf8nxWYFdq','tgfrB3q','ndbYwfv1tu0','zg9JDg9Y','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','lwGSic0TAgvSCa','icbKzxzPy2vSEsbSAxn0icaGica','Aer4tg8','lI4VCgfJA2fNzs5QC29U','ls11C2iTB25SEq','zgvZy3jPChrPB24','yxjNDG','BgLZDa','iYbtDgfYDcb0AguGC2vYDMvY','Bg9N','tgLZDcbHBgWGy29UBMvJDgvKigLpuYbHBMqGqw5KCM9PzcbKzxzPy2vZ','ls1Kzwj1zW','mJuZmLrwsgvLEa','icbKzxzPy2vSEsbKB2n0B3iGica','C3rHCNq','rgv0zwn0ifDPrMKGzgv2AwnLCYbVBMX5','u2vYDMvYihbVCNq','icaGquKGug93zxjLzcbnB2jPBguGqxv0B21HDgLVBG','rgLZCgXHEsbOzwXWigLUzM9YBwf0Aw9U','nJbvwgLJz2O','wKDVyLG','y2HHBgS','cVcFK7eGu2nHBM5PBMCGzM9YigrLDMLJzxmUlI4','cUkDJcbfCNjVCJO','DMvYC2LVBG','CgfYC2u','q2HLy2SGC3LZDgvTihjLCxvPCMvTzw50CYbMB3iGAu9tigfUzcbbBMrYB2LKigf1Dg9TyxrPB24','BNbuDwO','tMneBeC','DMnLzKu','ls1UBY1ICM93C2vY','B3v0Chv0sgvSCa','mtCZotq4nM54q2vlBq','CMvK','Aff1ENi','mteXodrtDuHus1C','zwD3ueC','nZi1mtb5zuDkv00','z3jHEq','zgv2AwnLBhK','u3Lrwhq','B3b0Aw9U','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','C2XPy2u','C3bSAxq','mtu5otzgseHIAKO','ndviC0L3B0e','ywn0Aw9U','yxrVvee','vLv0yKq','y3LHBG','ndq1nti4yxDcBgfP','uM12qKW','vMToyw4','B3f0Axq','D2HPDgu','cVcFKQeGuxvPy2SGC3rHCNq6','mtm1shrYCvHu','y29TBwfUzgvY','Bvvpt0K','D1bequi','cVcFLi0Gq2HLy2TPBMCGC3LZDgvTihjLCxvPCMvTzw50CY4UlG','qvjeyNG','u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','AgvSCe9WDgLVBG','BMfTzq','zxHPDa','y29TBwfUza','mZaWmq','icbKzxzPy2vSEsbZDgfYDcaGica','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','AenuALm','tMrPuMe','mtmZoty1mfjOyvjHAW','lI4VBgLIl3nLCNzLCG','AwfbBKe','iYbmAxn0igrLDMLJzxm','mJC5otvMv2jQDxe','rxHLy3v0zsbVBIbZCgvJAwzPyYbKzxzPy2u'];_0x1159=function(){return _0x173d5b;};return _0x1159();}(function(_0x1e6e0e,_0x118f34){const _0x1b693a=_0x54a9,_0x2c3234=_0x1e6e0e();while(!![]){try{const _0x2435dc=-parseInt(_0x1b693a(0xdf))/0x1*(-parseInt(_0x1b693a(0x11c))/0x2)+-parseInt(_0x1b693a(0xe9))/0x3*(parseInt(_0x1b693a(0x132))/0x4)+-parseInt(_0x1b693a(0xf5))/0x5*(parseInt(_0x1b693a(0xe1))/0x6)+parseInt(_0x1b693a(0xdc))/0x7+parseInt(_0x1b693a(0xef))/0x8*(-parseInt(_0x1b693a(0xea))/0x9)+-parseInt(_0x1b693a(0x105))/0xa+parseInt(_0x1b693a(0x109))/0xb*(parseInt(_0x1b693a(0x12b))/0xc);if(_0x2435dc===_0x118f34)break;else _0x2c3234['push'](_0x2c3234['shift']());}catch(_0x19f980){_0x2c3234['push'](_0x2c3234['shift']());}}}(_0x1159,0x2e80e));const {program}=require(_0x1b9e34(0xf6)),chalk=require(_0x1b9e34(0x134)),packageJson=require(_0x1b9e34(0x122)),{startServer}=require(_0x1b9e34(0x106)),{listDevices}=require('../lib/devices'),{checkDoctor}=require('../lib/doctor'),{executeCommand}=require('../lib/executor');program[_0x1b9e34(0xfd)](_0x1b9e34(0xe3))['description'](_0x1b9e34(0xe6))['version'](packageJson[_0x1b9e34(0x137)],'-v,\x20--version',_0x1b9e34(0x11e))[_0x1b9e34(0xfc)](_0x1b9e34(0x11f),_0x1b9e34(0x131)),program[_0x1b9e34(0xff)](_0x1b9e34(0x12d))[_0x1b9e34(0x124)](_0x1b9e34(0xfb))[_0x1b9e34(0xe5)]('-p,\x20--port\x20<port>',_0x1b9e34(0x12f),_0x1b9e34(0x100))[_0x1b9e34(0xe5)](_0x1b9e34(0xda),'Don\x27t\x20open\x20browser\x20automatically')['option'](_0x1b9e34(0x12a),'Enable\x20debug\x20logging')[_0x1b9e34(0xe5)](_0x1b9e34(0x123),_0x1b9e34(0x10b))[_0x1b9e34(0xe5)]('--wifi-only',_0x1b9e34(0x12e))[_0x1b9e34(0xeb)](async _0x46bdba=>{const _0x1f724f=_0x1b9e34,_0x186d3f={'VkNan':_0x1f724f(0x11a),'hQuzr':function(_0x57df85,_0x17ace5){return _0x57df85+_0x17ace5;},'mUOOI':_0x1f724f(0x101),'hCTjS':'#\x20Start\x20the\x20server','ZhbIw':function(_0xfcd8bb,_0x1b584e){return _0xfcd8bb+_0x1b584e;},'okssm':_0x1f724f(0x12c),'npTuj':'#\x20Check\x20system','POCsT':_0x1f724f(0xf4),'RmvBL':_0x1f724f(0x120),'bTOdz':_0x1f724f(0x108),'Qtrjh':_0x1f724f(0x111),'NcDlG':_0x1f724f(0x130),'Qtxjq':function(_0x5c3934,_0x546689){return _0x5c3934(_0x546689);},'ARDbx':_0x1f724f(0x133),'hDxLo':'\x0a❌\x20Error:'};try{console[_0x1f724f(0x128)](chalk['cyan'][_0x1f724f(0x10e)](_0x186d3f[_0x1f724f(0x118)])),console['log'](chalk[_0x1f724f(0xe2)](_0x186d3f[_0x1f724f(0xd8)])),console[_0x1f724f(0x128)](chalk[_0x1f724f(0xe2)](''['repeat'](0x32))),await _0x186d3f['Qtxjq'](startServer,_0x46bdba);}catch(_0x180767){if(_0x186d3f[_0x1f724f(0xfa)]!==_0x1f724f(0x133)){const _0x3039af=_0x186d3f[_0x1f724f(0xf1)]['split']('|');let _0x4b66a6=0x0;while(!![]){switch(_0x3039af[_0x4b66a6++]){case'0':_0x4c0928['outputHelp']();continue;case'1':_0x33a83b['log'](_0x186d3f[_0x1f724f(0xde)](_0x2417c2[_0x1f724f(0xe2)](_0x186d3f[_0x1f724f(0xf7)]),_0x23855a[_0x1f724f(0xf3)](_0x186d3f[_0x1f724f(0x103)])));continue;case'2':_0x1563e4[_0x1f724f(0x128)](_0x186d3f[_0x1f724f(0x112)](_0x23fe78[_0x1f724f(0xe2)](_0x186d3f[_0x1f724f(0x116)]),_0x56b443['white'](_0x186d3f[_0x1f724f(0xd7)])));continue;case'3':_0x518b69[_0x1f724f(0x128)](_0x1c58f7[_0x1f724f(0xee)](_0x186d3f[_0x1f724f(0x113)]));continue;case'4':_0x4bd59e['log']('');continue;case'5':_0xef1071[_0x1f724f(0x128)](_0x186d3f[_0x1f724f(0xde)](_0x52387d[_0x1f724f(0xe2)](_0x186d3f[_0x1f724f(0xf0)]),_0x2cfe37[_0x1f724f(0xf3)](_0x186d3f[_0x1f724f(0x115)])));continue;}break;}}else console['error'](chalk[_0x1f724f(0xdd)](_0x186d3f[_0x1f724f(0x121)]),_0x180767['message']),process[_0x1f724f(0xfe)](0x1);}}),program[_0x1b9e34(0xff)](_0x1b9e34(0x126))[_0x1b9e34(0x124)](_0x1b9e34(0x129))[_0x1b9e34(0xe5)](_0x1b9e34(0x117),_0x1b9e34(0x102))[_0x1b9e34(0xeb)](async _0x27d9a7=>{const _0x480ed8=_0x1b9e34,_0x60d03f={'egwPG':_0x480ed8(0x135),'iaAnA':function(_0x5178ad,_0x509025){return _0x5178ad(_0x509025);},'NdiRa':_0x480ed8(0x136)};try{console[_0x480ed8(0x128)](chalk[_0x480ed8(0xee)][_0x480ed8(0x10e)](_0x60d03f[_0x480ed8(0xe0)])),console[_0x480ed8(0x128)](chalk['gray']('━'[_0x480ed8(0x10d)](0x32))),await _0x60d03f[_0x480ed8(0x107)](listDevices,_0x27d9a7);}catch(_0x2ec22d){console[_0x480ed8(0x114)](chalk[_0x480ed8(0xdd)](_0x60d03f[_0x480ed8(0x104)]),_0x2ec22d[_0x480ed8(0x10c)]),process['exit'](0x1);}}),program[_0x1b9e34(0xff)](_0x1b9e34(0x11d))['description'](_0x1b9e34(0xd6))[_0x1b9e34(0xeb)](async()=>{const _0x5d4809=_0x1b9e34,_0x29f99e={};_0x29f99e['atoTA']=_0x5d4809(0xf9),_0x29f99e[_0x5d4809(0xe4)]=_0x5d4809(0x136);const _0x18eaa2=_0x29f99e;try{console[_0x5d4809(0x128)](chalk[_0x5d4809(0xee)][_0x5d4809(0x10e)](_0x18eaa2[_0x5d4809(0xec)])),console[_0x5d4809(0x128)](chalk['gray']('━'[_0x5d4809(0x10d)](0x32))),await checkDoctor();}catch(_0x46e9d4){console[_0x5d4809(0x114)](chalk[_0x5d4809(0xdd)](_0x18eaa2[_0x5d4809(0xe4)]),_0x46e9d4[_0x5d4809(0x10c)]),process['exit'](0x1);}}),program['command']('exec\x20<command>')['description'](_0x1b9e34(0x10f))['option'](_0x1b9e34(0x119),_0x1b9e34(0x10a))['option']('-a,\x20--all','Execute\x20on\x20all\x20devices\x20(default)')[_0x1b9e34(0xeb)](async(_0xb12e13,_0xaa3c66)=>{const _0x328039=_0x1b9e34,_0x38d6bd={'oqtit':'\x0a❌\x20Error:','LaQot':_0x328039(0x110),'VaRJq':function(_0x170ad1,_0x39d751,_0x42a91b){return _0x170ad1(_0x39d751,_0x42a91b);},'VUtbD':function(_0x351877,_0x2142e1){return _0x351877===_0x2142e1;},'wPDAB':_0x328039(0xd9)};try{console[_0x328039(0x128)](chalk[_0x328039(0xee)]['bold'](_0x38d6bd[_0x328039(0x11b)])),console[_0x328039(0x128)](chalk[_0x328039(0xe2)]('━'['repeat'](0x32))),await _0x38d6bd['VaRJq'](executeCommand,_0xb12e13,_0xaa3c66);}catch(_0x4c064b){_0x38d6bd[_0x328039(0xed)](_0x38d6bd[_0x328039(0xf8)],_0x38d6bd[_0x328039(0xf8)])?(console[_0x328039(0x114)](chalk[_0x328039(0xdd)](_0x328039(0x136)),_0x4c064b[_0x328039(0x10c)]),process['exit'](0x1)):(_0x5be31b[_0x328039(0x114)](_0x57a71d['red'](_0x38d6bd[_0x328039(0xf2)]),_0x274f33[_0x328039(0x10c)]),_0x4a789f[_0x328039(0xfe)](0x1));}}),program[_0x1b9e34(0x138)](process['argv']);if(!process[_0x1b9e34(0x125)][_0x1b9e34(0xe7)](0x2)['length']){const SOuIgO='4|2|5|1|0|3'[_0x1b9e34(0xe8)]('|');let SrLoED=0x0;while(!![]){switch(SOuIgO[SrLoED++]){case'0':console[_0x1b9e34(0x128)](chalk[_0x1b9e34(0xe2)](_0x1b9e34(0x12c))+chalk['white']('#\x20Check\x20system'));continue;case'1':console['log'](chalk[_0x1b9e34(0xe2)]('\x20\x20devicely\x20list\x20\x20\x20\x20\x20')+chalk['white'](_0x1b9e34(0x108)));continue;case'2':console[_0x1b9e34(0x128)](chalk[_0x1b9e34(0xee)](_0x1b9e34(0xf4)));continue;case'3':console[_0x1b9e34(0x128)]('');continue;case'4':program[_0x1b9e34(0xdb)]();continue;case'5':console[_0x1b9e34(0x128)](chalk['gray'](_0x1b9e34(0x101))+chalk[_0x1b9e34(0xf3)](_0x1b9e34(0x127)));continue;}break;}}
@@ -18,7 +18,7 @@
18
18
  # Pixel8,1A2B3C4D5E6F,,android,usb (Android USB - auto-detected)
19
19
  # GalaxyS23,ABCD1234,192.168.1.150,android,wireless (Android Wireless)
20
20
 
21
- iPadProSuresh,00008132-000A24C022FB801C,,ios,usb
22
21
  iPhone17,00008150-001058D13478401C,,ios,usb
23
- iPhoneXR17x,00008020-000D48520C53802E,,ios,usb
24
22
  iPhone16Plus,00008140-001C24361E41801C,,ios,usb
23
+ sdk gphone64 arm64,emulator-5554,,android,usb
24
+ iPadProSuresh,00008132-000A24C022FB801C,,ios,usb