devicely 2.1.4 → 2.1.6

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 (71) hide show
  1. package/bin/devicely.js +105 -1
  2. package/lib/androidDeviceDetection.js +276 -1
  3. package/lib/appMappings.js +337 -1
  4. package/lib/deviceDetection.js +394 -1
  5. package/lib/devices.js +54 -1
  6. package/lib/doctor.js +94 -1
  7. package/lib/executor.js +104 -1
  8. package/lib/logger.js +35 -1
  9. package/lib/scriptLoader.js +75 -1
  10. package/lib/server.js +3485 -1
  11. package/package.json +3 -12
  12. package/scripts/compile-shell-scripts.js +208 -0
  13. package/scripts/encrypt-shell-simple.js +75 -0
  14. package/scripts/obfuscate-shell.js +160 -0
  15. package/scripts/shell/android_device_control +0 -0
  16. package/scripts/shell/apps_presets.conf +271 -0
  17. package/scripts/shell/connect_android_usb +0 -0
  18. package/scripts/shell/connect_android_usb_multi_final +0 -0
  19. package/scripts/shell/connect_android_wireless +0 -0
  20. package/scripts/shell/connect_android_wireless_multi_final +0 -0
  21. package/scripts/shell/connect_ios_usb +0 -0
  22. package/scripts/shell/connect_ios_usb_multi_final +0 -0
  23. package/scripts/shell/connect_ios_wireless_multi_final +0 -0
  24. package/scripts/shell/create_production_scripts +0 -0
  25. package/scripts/shell/devices.conf +24 -0
  26. package/scripts/shell/diagnose_wireless_ios +0 -0
  27. package/scripts/shell/find_element_coordinates +0 -0
  28. package/scripts/shell/find_wda +0 -0
  29. package/scripts/shell/install_uiautomator2 +0 -0
  30. package/scripts/shell/ios_device_control +0 -0
  31. package/scripts/shell/organize_project +0 -0
  32. package/scripts/shell/pre-publish-check +0 -0
  33. package/scripts/shell/publish +0 -0
  34. package/scripts/shell/publish-to-npm +0 -0
  35. package/scripts/shell/setup +0 -0
  36. package/scripts/shell/setup_android +0 -0
  37. package/scripts/shell/start +0 -0
  38. package/scripts/shell/sync-to-npm-package-final +0 -0
  39. package/scripts/shell/test_android_locators +0 -0
  40. package/scripts/shell/test_connect +0 -0
  41. package/scripts/shell/test_device_detection +0 -0
  42. package/scripts/shell/test_fixes +0 -0
  43. package/scripts/shell/test_getlocators_fix +0 -0
  44. package/scripts/shell/test_recording_feature +0 -0
  45. package/scripts/shell/verify-shell-protection +0 -0
  46. package/scripts/shell/verify_distribution +0 -0
  47. package/lib/package-lock.json +0 -1678
  48. package/lib/package.json +0 -30
  49. package/lib/screenshots/screenshot_ios_iPhone17_20260205_225900.png +0 -0
  50. package/lib/screenshots/screenshot_ios_iPhone17_20260205_225942.png +0 -0
  51. package/lib/screenshots/screenshot_ios_iPhone17_20260205_231101.png +0 -0
  52. package/lib/screenshots/screenshot_ios_iPhone17_20260205_232911.png +0 -0
  53. package/lib/screenshots/screenshot_ios_iPhone17_20260208_095103.png +0 -0
  54. package/lib/screenshots/screenshot_ios_iPhone17_20260208_095720.png +0 -0
  55. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115040.png +0 -0
  56. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115047.png +0 -0
  57. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115118.png +0 -0
  58. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115125.png +0 -0
  59. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115143.png +0 -0
  60. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120107.png +0 -0
  61. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120118.png +0 -0
  62. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120137.png +0 -0
  63. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120201.png +0 -0
  64. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_134529.png +0 -0
  65. package/scripts/shell/android_device_control.enc +0 -1
  66. package/scripts/shell/connect_android_usb_multi_final.enc +0 -1
  67. package/scripts/shell/connect_android_wireless.enc +0 -1
  68. package/scripts/shell/connect_android_wireless_multi_final.enc +0 -1
  69. package/scripts/shell/connect_ios_usb_multi_final.enc +0 -1
  70. package/scripts/shell/connect_ios_wireless_multi_final.enc +0 -1
  71. package/scripts/shell/ios_device_control.enc +0 -1
@@ -1 +1,337 @@
1
- const _0x3250da=_0x2ff7;(function(_0x17b967,_0x281328){const _0x57f1d1=_0x2ff7,_0x347877=_0x17b967();while(!![]){try{const _0x4c15c2=parseInt(_0x57f1d1(0x229))/0x1*(parseInt(_0x57f1d1(0x1dd))/0x2)+-parseInt(_0x57f1d1(0x1da))/0x3+parseInt(_0x57f1d1(0x204))/0x4+parseInt(_0x57f1d1(0x226))/0x5*(parseInt(_0x57f1d1(0x1d8))/0x6)+-parseInt(_0x57f1d1(0x21c))/0x7*(parseInt(_0x57f1d1(0x1be))/0x8)+parseInt(_0x57f1d1(0x1b9))/0x9*(parseInt(_0x57f1d1(0x1ac))/0xa)+-parseInt(_0x57f1d1(0x1a2))/0xb;if(_0x4c15c2===_0x281328)break;else _0x347877['push'](_0x347877['shift']());}catch(_0x57cedc){_0x347877['push'](_0x347877['shift']());}}}(_0x23be,0x6260c));const _0x5dcb9c={};_0x5dcb9c[_0x3250da(0x1fc)]=_0x3250da(0x1e3),_0x5dcb9c[_0x3250da(0x1ee)]=null;const _0x319ad3={};_0x319ad3[_0x3250da(0x1fc)]=_0x3250da(0x205),_0x319ad3['android']='com.android.chrome';const _0x509fbe={};_0x509fbe[_0x3250da(0x1fc)]='org.mozilla.ios.Firefox',_0x509fbe[_0x3250da(0x1ee)]=_0x3250da(0x21d);const _0x10cd84={};_0x10cd84[_0x3250da(0x1fc)]=_0x3250da(0x1f0),_0x10cd84['android']=_0x3250da(0x22c);const _0x253537={};_0x253537[_0x3250da(0x1fc)]='com.brave.ios.browser',_0x253537['android']=_0x3250da(0x216);const _0x4b0df2={};_0x4b0df2['ios']=_0x3250da(0x219),_0x4b0df2[_0x3250da(0x1ee)]=_0x3250da(0x1d1);const _0x495716={};_0x495716[_0x3250da(0x1fc)]=_0x3250da(0x1e2),_0x495716[_0x3250da(0x1ee)]=_0x3250da(0x218);const _0x2579c8={};_0x2579c8[_0x3250da(0x1fc)]=_0x3250da(0x1ad),_0x2579c8[_0x3250da(0x1ee)]='com.android.camera2';const _0x451102={};_0x451102[_0x3250da(0x1fc)]=_0x3250da(0x1b6),_0x451102['android']=_0x3250da(0x1c2);const _0x355704={};_0x355704['ios']='com.apple.mobileslideshow',_0x355704[_0x3250da(0x1ee)]=_0x3250da(0x1c2);const _0x415f03={};_0x415f03[_0x3250da(0x1fc)]='com.apple.MobileSMS',_0x415f03[_0x3250da(0x1ee)]='com.google.android.apps.messaging';const _0x3c99b0={};_0x3c99b0[_0x3250da(0x1fc)]='com.apple.mobilephone',_0x3c99b0[_0x3250da(0x1ee)]=_0x3250da(0x19b);const _0x5141ca={};_0x5141ca[_0x3250da(0x1fc)]='com.apple.MobileAddressBook',_0x5141ca[_0x3250da(0x1ee)]=_0x3250da(0x21a);const _0xf4e621={};function _0x2ff7(_0x5f3820,_0x33e545){_0x5f3820=_0x5f3820-0x19a;const _0x23bebd=_0x23be();let _0x2ff7e7=_0x23bebd[_0x5f3820];if(_0x2ff7['ieGtbQ']===undefined){var _0x15c933=function(_0x16876a){const _0x302318='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31b51a='',_0x1f1763='';for(let _0x3aee7d=0x0,_0x4b8ee9,_0x549ee4,_0x49ecf0=0x0;_0x549ee4=_0x16876a['charAt'](_0x49ecf0++);~_0x549ee4&&(_0x4b8ee9=_0x3aee7d%0x4?_0x4b8ee9*0x40+_0x549ee4:_0x549ee4,_0x3aee7d++%0x4)?_0x31b51a+=String['fromCharCode'](0xff&_0x4b8ee9>>(-0x2*_0x3aee7d&0x6)):0x0){_0x549ee4=_0x302318['indexOf'](_0x549ee4);}for(let _0xe61bf0=0x0,_0x549b4d=_0x31b51a['length'];_0xe61bf0<_0x549b4d;_0xe61bf0++){_0x1f1763+='%'+('00'+_0x31b51a['charCodeAt'](_0xe61bf0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f1763);};_0x2ff7['ggHetS']=_0x15c933,_0x2ff7['ghXoVJ']={},_0x2ff7['ieGtbQ']=!![];}const _0x4202f5=_0x23bebd[0x0],_0x2a6fda=_0x5f3820+_0x4202f5,_0xb4f892=_0x2ff7['ghXoVJ'][_0x2a6fda];return!_0xb4f892?(_0x2ff7e7=_0x2ff7['ggHetS'](_0x2ff7e7),_0x2ff7['ghXoVJ'][_0x2a6fda]=_0x2ff7e7):_0x2ff7e7=_0xb4f892,_0x2ff7e7;}_0xf4e621[_0x3250da(0x1fc)]=_0x3250da(0x1bd),_0xf4e621[_0x3250da(0x1ee)]=_0x3250da(0x1c7);const _0x5d080d={};_0x5d080d[_0x3250da(0x1fc)]=_0x3250da(0x1f4),_0x5d080d[_0x3250da(0x1ee)]=_0x3250da(0x1e1);const _0x28f5f0={};_0x28f5f0[_0x3250da(0x1fc)]=_0x3250da(0x1ae),_0x28f5f0[_0x3250da(0x1ee)]=_0x3250da(0x1ab);const _0x4b327c={};_0x4b327c[_0x3250da(0x1fc)]=_0x3250da(0x214),_0x4b327c[_0x3250da(0x1ee)]=_0x3250da(0x1fe);const _0x175077={};_0x175077[_0x3250da(0x1fc)]=_0x3250da(0x20b),_0x175077[_0x3250da(0x1ee)]=_0x3250da(0x1ea);const _0x5a2e9a={};_0x5a2e9a[_0x3250da(0x1fc)]=_0x3250da(0x1e7),_0x5a2e9a[_0x3250da(0x1ee)]=_0x3250da(0x1ea);const _0x1a2687={};_0x1a2687['ios']=_0x3250da(0x1df),_0x1a2687[_0x3250da(0x1ee)]=_0x3250da(0x1a4);const _0x27a5f2={};_0x27a5f2[_0x3250da(0x1fc)]=_0x3250da(0x22d),_0x27a5f2[_0x3250da(0x1ee)]=_0x3250da(0x221);const _0xdf18d4={};_0xdf18d4[_0x3250da(0x1fc)]='com.burbn.instagram',_0xdf18d4[_0x3250da(0x1ee)]=_0x3250da(0x22a);const _0x291bf5={};_0x291bf5[_0x3250da(0x1fc)]=_0x3250da(0x1ed),_0x291bf5[_0x3250da(0x1ee)]=_0x3250da(0x222);const _0x54c872={};_0x54c872[_0x3250da(0x1fc)]=_0x3250da(0x1ed),_0x54c872[_0x3250da(0x1ee)]=_0x3250da(0x222);const _0x4e9fcb={};_0x4e9fcb[_0x3250da(0x1fc)]=_0x3250da(0x1af),_0x4e9fcb[_0x3250da(0x1ee)]=_0x3250da(0x1bc);const _0x47bf3e={};_0x47bf3e['ios']='ph.telegra.Telegraph',_0x47bf3e[_0x3250da(0x1ee)]=_0x3250da(0x1ba);const _0x5c99e5={};_0x5c99e5[_0x3250da(0x1fc)]=_0x3250da(0x1db),_0x5c99e5[_0x3250da(0x1ee)]=_0x3250da(0x1a1);const _0x633325={};_0x633325[_0x3250da(0x1fc)]='com.zhiliaoapp.musically',_0x633325[_0x3250da(0x1ee)]=_0x3250da(0x1a7);const _0x2286bb={};_0x2286bb['ios']='com.linkedin.LinkedIn',_0x2286bb[_0x3250da(0x1ee)]=_0x3250da(0x1eb);const _0x1b579e={};_0x1b579e[_0x3250da(0x1fc)]='com.reddit.Reddit',_0x1b579e['android']='com.reddit.frontpage';const _0x5b3979={};_0x5b3979[_0x3250da(0x1fc)]='com.google.ios.youtube',_0x5b3979['android']=_0x3250da(0x1f8);const _0x1d9bbe={};_0x1d9bbe[_0x3250da(0x1fc)]=_0x3250da(0x1d0),_0x1d9bbe[_0x3250da(0x1ee)]=_0x3250da(0x1e8);const _0x140902={};_0x140902['ios']=_0x3250da(0x1f9),_0x140902[_0x3250da(0x1ee)]=_0x3250da(0x1fa);const _0x37b2ad={};_0x37b2ad['ios']=_0x3250da(0x1fd),_0x37b2ad['android']=_0x3250da(0x1fd);const _0x3b87cf={};_0x3b87cf[_0x3250da(0x1fc)]=_0x3250da(0x1c0),_0x3b87cf[_0x3250da(0x1ee)]=_0x3250da(0x1d7);const _0x206c2b={};_0x206c2b[_0x3250da(0x1fc)]=_0x3250da(0x19f),_0x206c2b[_0x3250da(0x1ee)]=_0x3250da(0x19f);const _0x5ea359={};_0x5ea359['ios']=_0x3250da(0x21f),_0x5ea359[_0x3250da(0x1ee)]=_0x3250da(0x21f);const _0x7688a9={};_0x7688a9[_0x3250da(0x1fc)]='com.amazon.aiv.AIVApp',_0x7688a9[_0x3250da(0x1ee)]=_0x3250da(0x1a3);const _0x2bb7ce={};_0x2bb7ce[_0x3250da(0x1fc)]=_0x3250da(0x1cc),_0x2bb7ce[_0x3250da(0x1ee)]=_0x3250da(0x1cc);const _0x1339da={};_0x1339da['ios']='com.skype.skype',_0x1339da[_0x3250da(0x1ee)]=_0x3250da(0x1ce);const _0x5c80af={};_0x5c80af[_0x3250da(0x1fc)]='com.microsoft.skype.teams',_0x5c80af[_0x3250da(0x1ee)]=_0x3250da(0x1fb);const _0x528e07={};_0x528e07[_0x3250da(0x1fc)]='com.tinyspeck.chatlyio',_0x528e07[_0x3250da(0x1ee)]='com.Slack';const _0x112160={};_0x112160[_0x3250da(0x1fc)]='com.hammerandchisel.discord',_0x112160[_0x3250da(0x1ee)]=_0x3250da(0x1aa);const _0x4f0900={};_0x4f0900['ios']='com.google.Gmail',_0x4f0900[_0x3250da(0x1ee)]=_0x3250da(0x1ea);const _0x449ed8={};_0x449ed8[_0x3250da(0x1fc)]=_0x3250da(0x1f7),_0x449ed8[_0x3250da(0x1ee)]='com.microsoft.office.outlook';const _0x49d4e={};function _0x23be(){const _0x1c1cd4=['y29TlMfWCgXLlM1VyMLSzwnHBa','mtuWotiYnhblq3zmAW','y2fSzw5Kyxi','y29TlMfWCgXLlK11C2LJ','DgvHBxm','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUCgHVDg9Z','BwuUBhLMDc5HBMrYB2LK','y29TlNvIzxjJywiUthLMDa','z2fSBgvYEq','Aw5ZDgfNCMfT','y29TlMDVB2DSzs5HBMrYB2LKlMnHBgvUzgfY','zMLYzwzVEa','y29UDgfJDhm','C2fMyxjP','y29TlMfPCMjUyI5HBMrYB2LK','DxmUEM9VBs52AwrLB21LzxrPBMDZ','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUzg9JCW','y29TlNnRExbLlNjHAwrLCG','y29TlNvIzxjJywi','y29TlM5LDgzSAxGUtMv0zMXPEa','y29TlM9WzxjHlMjYB3DZzxi','B25LzhjPDMu','yM9VA2LUzW','z21HAwW','BwvZC2fNzxm','EM9VBq','y29TlMfWCgXLlMfUzhjVAwqUBxvZAwm','ntK0nJC4A2TwvwDs','y2HYB21L','ndyWmZGZzMfgC2nv','y29TlNrVEw9WywDYB3vWlNbPy2fIB28','z2v0ugfJA2fNzuLK','otq3nZH6sw1kzKu','Dg9mB3DLCKnHC2u','y29TlMfWCgXLlK1HChm','D2HHDhnHCha','y29TlMDVB2DSzs5HBMrYB2LKlMrLC2TJBg9JAW','y29TlMfWCgXLlLbYzwzLCMvUy2vZ','y29TlMfWCgXLlM1VyMLSzxnHzMfYAq','DMvUBw8','BhLMDa','y2XVy2S','y29TlMDVB2DSzs5hBwfPBa','y29TlM5LDgzSAxGUBwvKAwfJBgLLBNq','y29TlNLVDxjJB21Wyw55lLbqq2XPzw50','y29TlMDVB2DSzs5HBMrYB2LKlMDT','y29TlMXPBMTLzgLUlMfUzhjVAwq','zwjHEq','y29TlMf0zwjPDhmUvhDLzxrPzti','yw5KCM9Pza','yw1HEM9U','y29TlM1Py3jVC29MDc5TC2vKz2u','yNjHDMu','AxnbChbbDMfPBgfIBgu','y29TlMv2zxjUB3rLlMLqAg9Uzs5fDMvYBM90zq','y29TlMfWCgXLlM1VyMLSzxrPBwvY','y29TlMfTyxPVBI5bBwf6B24','DhDPDhrLCG','y29TlM1Py3jVC29MDc5pzMzPy2uUt3v0Bg9VAW','y29TlMDVB2DSzs5HBMrYB2LKlNLVDxr1yMu','y29TlNnWB3rPzNKUy2XPzw50','y29TlNnWB3rPzNKUBxvZAwm','y29TlM1Py3jVC29MDc50zwfTCW','Aw9Z','y29TlMfTyxPVBI5TCdm','y29TlMDVB2DSzs5HBMrYB2LKlMTLzxa','Bgf1BMnOia','C3bVDgLMEq','y29TlNvIzxjJywiUvwjLCKnSAwvUDa','y29TlM1Py3jVC29MDc5ZA3LKCML2zq','BwfPBa','mJC4otC2mgvXrfznuG','y29TlMDVB2DSzs5JAhjVBwuUAw9Z','BgLUA2vKAw4','zMfJzwjVB2S','yxbWBgvTDxnPyW','AhvSDq','C2v0DgLUz3m','y29TlMfWCgXLlM1VyMLSzw1HAwW','y29TlMrYB3bIB3GUyw5KCM9Pza','y29TlNbHExbHBc5HBMrYB2LKlNaYCg1VyMLSzq','B3v0Bg9VAW','y29TlNrHCMDLDc51Aq','DgLRDg9R','C25HCgnOyxq','BM90Aw9UlMLK','C2T5Cgu','y29TlMfWCgXLlM1VyMLSzw5VDgvZ','zgLZBMv5CgX1CW','y29TlMjYyxzLlMjYB3DZzxi','DgvSzwDYyw0','y29TlMfUzhjVAwqUC2v0DgLUz3m','y29TlM9WzxjHlK9WzxjHvg91y2G','y29TlMDVB2DSzs5HBMrYB2LKlMnVBNrHy3rZ','BM90Aw9U','mJfTrxvMz3C','B3jNlM1VEMLSBgeUzMLYzwzVEa','y29TlMDLDgrYB3bIB3GUrhjVCgjVEa','y29TlMrPC25LEs5KAxnUzxLWBhvZ','y29TlMvIyxKUAxbOB25L','y29TlMzHy2vIB29RlMTHDgfUyq','y29TlNr3Axr0zxiUyw5KCM9Pza','tNj5yMW','z2v0qxzHAwXHyMXLqxbWCW','y29TlNDHBg1HCNqUyw5KCM9Pza','mZbeCg9ODKy','qvbqx01bufbjtKDt','ywLYyM5I','mvPxvMXbDW','y29TlMLUC3rHz3jHBs5HBMrYB2LK','y29TlMv2zxjUB3rL','y29TlM1Py3jVC29MDc5LBw14','y29TlMzHy2vIB29RlKzHy2vIB29R','z29Vz2XLzhjPDMu','y29TlMDVB2DSzs5HBMrYB2LKlMrPywXLCG','y29TlNrHCMDLDc5TB2jPBgu','y29TlNzLBM1VlNrVDwnOlLzLBM1V','y29TlMjVB2TPBMCUqM9VA2LUz0fWCa','y29TlMH1BhuUCgX1CW','CMvKzgL0','y29TlNnUyxbJAgf0lMfUzhjVAwq','odiZmJy1m3rdCLbtCW','y29TlMfTyxPVBI5HDM9KlNrOAxjKCgfYDhLJBgLLBNq','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUBwfWCW','zgLZy29Yza','Cgf5CgfS','y29TlNPOAwXPyw9HChaUBxvZAwnHBgX5','CgHVDg9Z','y2fTzxjH','y29TlMrPC2nVCMq','y29TlMDVB2DSzs5HBMrYB2LKlMnHBgn1Bgf0B3i','mti2odbmB0nevMy','y29TlMfWCgXLlMnHBwvYyq','y29TlMfWCgXLlMnHBgn1Bgf0B3i','BMv0lNDOyxrZyxbWlLDOyxrZqxbW','y29TlMfTyxPVBI5Tu2HVCc5HBMrYB2LKlNnOB3bWAw5N','CgHVBMu','DhjPBq','y2fSy3vSyxrVCG','y29TlMfPCMjUyI5HCha','y29TlMjVB2TPBMC','y29TlMfWCgXLlM1VyMLSzxnSAwrLC2HVDW','z2v0tgf1BMnOq29TBwfUza','B3bLCMe','mZC3mujKEu1myq','B3jNlNrLBgvNCMfTlM1LC3nLBMDLCG','zxHWB3j0CW','y29TlNDOyxrZyxbW'];_0x23be=function(){return _0x1c1cd4;};return _0x23be();}_0x49d4e['ios']='com.google.Drive',_0x49d4e[_0x3250da(0x1ee)]=_0x3250da(0x1cd);const _0xdd327e={};_0xdd327e['ios']=_0x3250da(0x21e),_0xdd327e[_0x3250da(0x1ee)]=_0x3250da(0x20c);const _0x460fe1={};_0x460fe1[_0x3250da(0x1fc)]=_0x3250da(0x202),_0x460fe1[_0x3250da(0x1ee)]=_0x3250da(0x202);const _0x136464={};_0x136464[_0x3250da(0x1fc)]=_0x3250da(0x212),_0x136464[_0x3250da(0x1ee)]='notion.id';const _0x523f6d={};_0x523f6d[_0x3250da(0x1fc)]=_0x3250da(0x1f3),_0x523f6d[_0x3250da(0x1ee)]=_0x3250da(0x22b);const _0x5e5c05={};_0x5e5c05['ios']=_0x3250da(0x1f5),_0x5e5c05[_0x3250da(0x1ee)]=_0x3250da(0x1b0);const _0x3ba568={};_0x3ba568[_0x3250da(0x1fc)]=_0x3250da(0x220),_0x3ba568['android']='com.ebay.mobile';const _0x514945={};_0x514945['ios']='com.walmart.groceries',_0x514945['android']=_0x3250da(0x225);const _0x4c5037={};_0x4c5037['ios']=_0x3250da(0x19c),_0x4c5037['android']=_0x3250da(0x20f);const _0x1bb98a={};_0x1bb98a[_0x3250da(0x1fc)]=_0x3250da(0x201),_0x1bb98a['android']=_0x3250da(0x1cf);const _0x185615={};_0x185615[_0x3250da(0x1fc)]=_0x3250da(0x1c4),_0x185615['android']=_0x3250da(0x1c3);const _0x2f11c7={};_0x2f11c7['ios']=_0x3250da(0x1b4),_0x2f11c7['android']=_0x3250da(0x1cb);const _0x53355d={};_0x53355d[_0x3250da(0x1fc)]=_0x3250da(0x19e),_0x53355d[_0x3250da(0x1ee)]=_0x3250da(0x1b5);const _0xc4f6e3={};_0xc4f6e3[_0x3250da(0x1fc)]=_0x3250da(0x1e9),_0xc4f6e3['android']=_0x3250da(0x20d);const _0x4b60b7={};_0x4b60b7['ios']=_0x3250da(0x19d),_0x4b60b7['android']='com.venmo';const _0x41c0f5={};_0x41c0f5['ios']='com.squareup.cash',_0x41c0f5[_0x3250da(0x1ee)]='com.squareup.cash';const _0x5ae5b5={};_0x5ae5b5[_0x3250da(0x1ca)]=_0x5dcb9c,_0x5ae5b5[_0x3250da(0x1d9)]=_0x319ad3,_0x5ae5b5[_0x3250da(0x1c8)]=_0x509fbe,_0x5ae5b5['edge']=_0x10cd84,_0x5ae5b5[_0x3250da(0x1f1)]=_0x253537,_0x5ae5b5[_0x3250da(0x1b8)]=_0x4b0df2,_0x5ae5b5[_0x3250da(0x20a)]=_0x495716,_0x5ae5b5[_0x3250da(0x1a9)]=_0x2579c8,_0x5ae5b5[_0x3250da(0x1a8)]=_0x451102,_0x5ae5b5[_0x3250da(0x1c5)]=_0x355704,_0x5ae5b5[_0x3250da(0x1d5)]=_0x415f03,_0x5ae5b5[_0x3250da(0x1b1)]=_0x3c99b0,_0x5ae5b5[_0x3250da(0x1c9)]=_0x5141ca,_0x5ae5b5[_0x3250da(0x1bf)]=_0xf4e621,_0x5ae5b5[_0x3250da(0x1e6)]=_0x5d080d,_0x5ae5b5[_0x3250da(0x1b3)]=_0x28f5f0,_0x5ae5b5['notes']=_0x4b327c,_0x5ae5b5[_0x3250da(0x203)]=_0x175077,_0x5ae5b5[_0x3250da(0x1d4)]=_0x5a2e9a,_0x5ae5b5['maps']=_0x1a2687,_0x5ae5b5[_0x3250da(0x207)]=_0x27a5f2,_0x5ae5b5[_0x3250da(0x1c6)]=_0xdf18d4,_0x5ae5b5[_0x3250da(0x1f6)]=_0x291bf5,_0x5ae5b5['x']=_0x54c872,_0x5ae5b5[_0x3250da(0x1e0)]=_0x4e9fcb,_0x5ae5b5[_0x3250da(0x217)]=_0x47bf3e,_0x5ae5b5[_0x3250da(0x211)]=_0x5c99e5,_0x5ae5b5[_0x3250da(0x210)]=_0x633325,_0x5ae5b5[_0x3250da(0x206)]=_0x2286bb,_0x5ae5b5[_0x3250da(0x1a0)]=_0x1b579e,_0x5ae5b5['youtube']=_0x5b3979,_0x5ae5b5['netflix']=_0x1d9bbe,_0x5ae5b5[_0x3250da(0x200)]=_0x140902,_0x5ae5b5['amazonmusic']=_0x37b2ad,_0x5ae5b5[_0x3250da(0x208)]=_0x3b87cf,_0x5ae5b5[_0x3250da(0x209)]=_0x206c2b,_0x5ae5b5[_0x3250da(0x215)]=_0x5ea359,_0x5ae5b5['primevideo']=_0x7688a9,_0x5ae5b5[_0x3250da(0x1d6)]=_0x2bb7ce,_0x5ae5b5[_0x3250da(0x213)]=_0x1339da,_0x5ae5b5[_0x3250da(0x1c1)]=_0x5c80af,_0x5ae5b5['slack']=_0x528e07,_0x5ae5b5[_0x3250da(0x1a5)]=_0x112160,_0x5ae5b5[_0x3250da(0x1d4)]=_0x4f0900,_0x5ae5b5[_0x3250da(0x20e)]=_0x449ed8,_0x5ae5b5[_0x3250da(0x19a)]=_0x49d4e,_0x5ae5b5['dropbox']=_0xdd327e,_0x5ae5b5[_0x3250da(0x1d2)]=_0x460fe1,_0x5ae5b5[_0x3250da(0x21b)]=_0x136464,_0x5ae5b5['evernote']=_0x523f6d,_0x5ae5b5[_0x3250da(0x1ef)]=_0x5e5c05,_0x5ae5b5[_0x3250da(0x1ec)]=_0x3ba568,_0x5ae5b5['walmart']=_0x514945,_0x5ae5b5['target']=_0x4c5037,_0x5ae5b5['uber']=_0x1bb98a,_0x5ae5b5[_0x3250da(0x1e5)]=_0x185615,_0x5ae5b5[_0x3250da(0x228)]=_0x2f11c7,_0x5ae5b5[_0x3250da(0x1d3)]=_0x53355d,_0x5ae5b5[_0x3250da(0x1a6)]=_0xc4f6e3,_0x5ae5b5[_0x3250da(0x1e4)]=_0x4b60b7,_0x5ae5b5['cashapp']=_0x41c0f5;const APP_MAPPINGS=_0x5ae5b5;function getPackageId(_0x1f078c,_0x54a5a6){const _0x27995d=_0x3250da,_0x52e102=_0x1f078c[_0x27995d(0x1de)]()[_0x27995d(0x1b2)](),_0x176aa2=APP_MAPPINGS[_0x52e102];if(!_0x176aa2)return null;return _0x176aa2[_0x54a5a6]||null;}function getAvailableApps(_0x44cc91){const _0x56ee60=[];for(const [_0x5c54c1,_0x4afb85]of Object['entries'](APP_MAPPINGS)){if(_0x4afb85[_0x44cc91]){const _0x1504b9={};_0x1504b9['name']=_0x5c54c1,_0x1504b9['packageId']=_0x4afb85[_0x44cc91],_0x56ee60['push'](_0x1504b9);}}return _0x56ee60;}function isAppAvailable(_0x301270,_0x469919){const _0x5a4ef8=_0x3250da,_0x37a495={'Nrybl':function(_0x3f16f2,_0x33939a){return _0x3f16f2!==_0x33939a;},'oPOuM':function(_0x3ae79a,_0x1e16b4,_0x44305c){return _0x3ae79a(_0x1e16b4,_0x44305c);}};return _0x37a495[_0x5a4ef8(0x223)](_0x37a495['oPOuM'](getPackageId,_0x301270,_0x469919),null);}function getLaunchCommand(_0x27e7aa,_0x48b155){const _0xecc544=_0x3250da,_0x395415={'hPhWm':function(_0x5192eb,_0x15c27c,_0x11fc99){return _0x5192eb(_0x15c27c,_0x11fc99);}},_0x540b98=_0x395415['hPhWm'](getPackageId,_0x27e7aa,_0x48b155);if(!_0x540b98)return null;return _0xecc544(0x1ff)+_0x540b98;}const _0x52b690={};_0x52b690[_0x3250da(0x227)]=APP_MAPPINGS,_0x52b690[_0x3250da(0x1dc)]=getPackageId,_0x52b690[_0x3250da(0x224)]=getAvailableApps,_0x52b690[_0x3250da(0x1f2)]=isAppAvailable,_0x52b690[_0x3250da(0x1b7)]=getLaunchCommand,module[_0x3250da(0x1bb)]=_0x52b690;
1
+ // Platform-specific app package mappings
2
+ // Maps common app names to their actual package IDs for iOS and Android
3
+
4
+ const APP_MAPPINGS = {
5
+ // Browsers
6
+ safari: {
7
+ ios: 'com.apple.mobilesafari',
8
+ android: null
9
+ },
10
+ chrome: {
11
+ ios: 'com.google.chrome.ios',
12
+ android: 'com.android.chrome'
13
+ },
14
+ firefox: {
15
+ ios: 'org.mozilla.ios.Firefox',
16
+ android: 'org.mozilla.firefox'
17
+ },
18
+ edge: {
19
+ ios: 'com.microsoft.msedge',
20
+ android: 'com.microsoft.emmx'
21
+ },
22
+ brave: {
23
+ ios: 'com.brave.ios.browser',
24
+ android: 'com.brave.browser'
25
+ },
26
+ opera: {
27
+ ios: 'com.opera.OperaTouch',
28
+ android: 'com.opera.browser'
29
+ },
30
+
31
+ // System Apps
32
+ settings: {
33
+ ios: 'com.apple.Preferences',
34
+ android: 'com.android.settings'
35
+ },
36
+ camera: {
37
+ ios: 'com.apple.camera',
38
+ android: 'com.android.camera2'
39
+ },
40
+ photos: {
41
+ ios: 'com.apple.mobileslideshow',
42
+ android: 'com.google.android.apps.photos'
43
+ },
44
+ gallery: {
45
+ ios: 'com.apple.mobileslideshow',
46
+ android: 'com.google.android.apps.photos'
47
+ },
48
+ messages: {
49
+ ios: 'com.apple.MobileSMS',
50
+ android: 'com.google.android.apps.messaging'
51
+ },
52
+ phone: {
53
+ ios: 'com.apple.mobilephone',
54
+ android: 'com.google.android.dialer'
55
+ },
56
+ contacts: {
57
+ ios: 'com.apple.MobileAddressBook',
58
+ android: 'com.google.android.contacts'
59
+ },
60
+ calendar: {
61
+ ios: 'com.apple.mobilecal',
62
+ android: 'com.google.android.calendar'
63
+ },
64
+ clock: {
65
+ ios: 'com.apple.mobiletimer',
66
+ android: 'com.google.android.deskclock'
67
+ },
68
+ calculator: {
69
+ ios: 'com.apple.calculator',
70
+ android: 'com.google.android.calculator'
71
+ },
72
+ notes: {
73
+ ios: 'com.apple.mobilenotes',
74
+ android: 'com.google.android.keep'
75
+ },
76
+ mail: {
77
+ ios: 'com.apple.mobilemail',
78
+ android: 'com.google.android.gm'
79
+ },
80
+ gmail: {
81
+ ios: 'com.google.Gmail',
82
+ android: 'com.google.android.gm'
83
+ },
84
+ maps: {
85
+ ios: 'com.apple.Maps',
86
+ android: 'com.google.android.apps.maps'
87
+ },
88
+
89
+ // Social Media
90
+ facebook: {
91
+ ios: 'com.facebook.Facebook',
92
+ android: 'com.facebook.katana'
93
+ },
94
+ instagram: {
95
+ ios: 'com.burbn.instagram',
96
+ android: 'com.instagram.android'
97
+ },
98
+ twitter: {
99
+ ios: 'com.atebits.Tweetie2',
100
+ android: 'com.twitter.android'
101
+ },
102
+ x: {
103
+ ios: 'com.atebits.Tweetie2',
104
+ android: 'com.twitter.android'
105
+ },
106
+ whatsapp: {
107
+ ios: 'net.whatsapp.WhatsApp',
108
+ android: 'com.whatsapp'
109
+ },
110
+ telegram: {
111
+ ios: 'ph.telegra.Telegraph',
112
+ android: 'org.telegram.messenger'
113
+ },
114
+ snapchat: {
115
+ ios: 'com.toyopagroup.picaboo',
116
+ android: 'com.snapchat.android'
117
+ },
118
+ tiktok: {
119
+ ios: 'com.zhiliaoapp.musically',
120
+ android: 'com.zhiliaoapp.musically'
121
+ },
122
+ linkedin: {
123
+ ios: 'com.linkedin.LinkedIn',
124
+ android: 'com.linkedin.android'
125
+ },
126
+ reddit: {
127
+ ios: 'com.reddit.Reddit',
128
+ android: 'com.reddit.frontpage'
129
+ },
130
+
131
+ // Entertainment
132
+ youtube: {
133
+ ios: 'com.google.ios.youtube',
134
+ android: 'com.google.android.youtube'
135
+ },
136
+ netflix: {
137
+ ios: 'com.netflix.Netflix',
138
+ android: 'com.netflix.mediaclient'
139
+ },
140
+ spotify: {
141
+ ios: 'com.spotify.client',
142
+ android: 'com.spotify.music'
143
+ },
144
+ amazonmusic: {
145
+ ios: 'com.amazon.mp3',
146
+ android: 'com.amazon.mp3'
147
+ },
148
+ applemusic: {
149
+ ios: 'com.apple.Music',
150
+ android: 'com.apple.android.music'
151
+ },
152
+ hulu: {
153
+ ios: 'com.hulu.plus',
154
+ android: 'com.hulu.plus'
155
+ },
156
+ disneyplus: {
157
+ ios: 'com.disney.disneyplus',
158
+ android: 'com.disney.disneyplus'
159
+ },
160
+ primevideo: {
161
+ ios: 'com.amazon.aiv.AIVApp',
162
+ android: 'com.amazon.avod.thirdpartyclient'
163
+ },
164
+
165
+ // Communication
166
+ zoom: {
167
+ ios: 'us.zoom.videomeetings',
168
+ android: 'us.zoom.videomeetings'
169
+ },
170
+ skype: {
171
+ ios: 'com.skype.skype',
172
+ android: 'com.skype.raider'
173
+ },
174
+ teams: {
175
+ ios: 'com.microsoft.skype.teams',
176
+ android: 'com.microsoft.teams'
177
+ },
178
+ slack: {
179
+ ios: 'com.tinyspeck.chatlyio',
180
+ android: 'com.Slack'
181
+ },
182
+ discord: {
183
+ ios: 'com.hammerandchisel.discord',
184
+ android: 'com.discord'
185
+ },
186
+
187
+ // Productivity
188
+ gmail: {
189
+ ios: 'com.google.Gmail',
190
+ android: 'com.google.android.gm'
191
+ },
192
+ outlook: {
193
+ ios: 'com.microsoft.Office.Outlook',
194
+ android: 'com.microsoft.office.outlook'
195
+ },
196
+ googledrive: {
197
+ ios: 'com.google.Drive',
198
+ android: 'com.google.android.apps.docs'
199
+ },
200
+ dropbox: {
201
+ ios: 'com.getdropbox.Dropbox',
202
+ android: 'com.dropbox.android'
203
+ },
204
+ onedrive: {
205
+ ios: 'com.microsoft.skydrive',
206
+ android: 'com.microsoft.skydrive'
207
+ },
208
+ notion: {
209
+ ios: 'notion.id',
210
+ android: 'notion.id'
211
+ },
212
+ evernote: {
213
+ ios: 'com.evernote.iPhone.Evernote',
214
+ android: 'com.evernote'
215
+ },
216
+
217
+ // Shopping
218
+ amazon: {
219
+ ios: 'com.amazon.Amazon',
220
+ android: 'com.amazon.mShop.android.shopping'
221
+ },
222
+ ebay: {
223
+ ios: 'com.ebay.iphone',
224
+ android: 'com.ebay.mobile'
225
+ },
226
+ walmart: {
227
+ ios: 'com.walmart.groceries',
228
+ android: 'com.walmart.android'
229
+ },
230
+ target: {
231
+ ios: 'com.target.mobile',
232
+ android: 'com.target.ui'
233
+ },
234
+
235
+ // Travel
236
+ uber: {
237
+ ios: 'com.ubercab.UberClient',
238
+ android: 'com.ubercab'
239
+ },
240
+ lyft: {
241
+ ios: 'com.ubercab.Lyft',
242
+ android: 'me.lyft.android'
243
+ },
244
+ airbnb: {
245
+ ios: 'com.airbnb.app',
246
+ android: 'com.airbnb.android'
247
+ },
248
+ booking: {
249
+ ios: 'com.booking.BookingApp',
250
+ android: 'com.booking'
251
+ },
252
+
253
+ // Finance
254
+ paypal: {
255
+ ios: 'com.yourcompany.PPClient',
256
+ android: 'com.paypal.android.p2pmobile'
257
+ },
258
+ venmo: {
259
+ ios: 'com.venmo.touch.Venmo',
260
+ android: 'com.venmo'
261
+ },
262
+ cashapp: {
263
+ ios: 'com.squareup.cash',
264
+ android: 'com.squareup.cash'
265
+ }
266
+ };
267
+
268
+ /**
269
+ * Get package ID for an app based on platform
270
+ * @param {string} appName - Common name of the app (e.g., 'chrome', 'settings')
271
+ * @param {string} platform - 'ios' or 'android'
272
+ * @returns {string|null} - Package ID or null if not found
273
+ */
274
+ function getPackageId(appName, platform) {
275
+ const normalizedName = appName.toLowerCase().trim();
276
+ const mapping = APP_MAPPINGS[normalizedName];
277
+
278
+ if (!mapping) {
279
+ return null;
280
+ }
281
+
282
+ return mapping[platform] || null;
283
+ }
284
+
285
+ /**
286
+ * Get all available apps for a platform
287
+ * @param {string} platform - 'ios' or 'android'
288
+ * @returns {Array} - Array of app objects with name and packageId
289
+ */
290
+ function getAvailableApps(platform) {
291
+ const apps = [];
292
+
293
+ for (const [appName, mapping] of Object.entries(APP_MAPPINGS)) {
294
+ if (mapping[platform]) {
295
+ apps.push({
296
+ name: appName,
297
+ packageId: mapping[platform]
298
+ });
299
+ }
300
+ }
301
+
302
+ return apps;
303
+ }
304
+
305
+ /**
306
+ * Check if an app is available for a platform
307
+ * @param {string} appName - Common name of the app
308
+ * @param {string} platform - 'ios' or 'android'
309
+ * @returns {boolean}
310
+ */
311
+ function isAppAvailable(appName, platform) {
312
+ return getPackageId(appName, platform) !== null;
313
+ }
314
+
315
+ /**
316
+ * Get platform-specific launch command
317
+ * @param {string} appName - Common name of the app
318
+ * @param {string} platform - 'ios' or 'android'
319
+ * @returns {string|null} - Launch command or null if not found
320
+ */
321
+ function getLaunchCommand(appName, platform) {
322
+ const packageId = getPackageId(appName, platform);
323
+
324
+ if (!packageId) {
325
+ return null;
326
+ }
327
+
328
+ return `launch ${packageId}`;
329
+ }
330
+
331
+ module.exports = {
332
+ APP_MAPPINGS,
333
+ getPackageId,
334
+ getAvailableApps,
335
+ isAppAvailable,
336
+ getLaunchCommand
337
+ };