devicely 2.1.4 → 2.1.5

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 (89) 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 +3483 -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/android_device_control.sh +848 -0
  17. package/scripts/shell/apps_presets.conf +271 -0
  18. package/scripts/shell/connect_android_usb +0 -0
  19. package/scripts/shell/connect_android_usb_multi_final +0 -0
  20. package/scripts/shell/connect_android_usb_multi_final.sh +289 -0
  21. package/scripts/shell/connect_android_wireless +0 -0
  22. package/scripts/shell/connect_android_wireless.sh +58 -0
  23. package/scripts/shell/connect_android_wireless_multi_final +0 -0
  24. package/scripts/shell/connect_android_wireless_multi_final.sh +476 -0
  25. package/scripts/shell/connect_ios_usb +0 -0
  26. package/scripts/shell/connect_ios_usb_multi_final +0 -0
  27. package/scripts/shell/connect_ios_usb_multi_final.sh +4225 -0
  28. package/scripts/shell/connect_ios_wireless_multi_final +0 -0
  29. package/scripts/shell/connect_ios_wireless_multi_final.sh +4167 -0
  30. package/scripts/shell/create_production_scripts +0 -0
  31. package/scripts/shell/create_production_scripts.sh +38 -0
  32. package/scripts/shell/devices.conf +24 -0
  33. package/scripts/shell/diagnose_wireless_ios +0 -0
  34. package/scripts/shell/find_element_coordinates +0 -0
  35. package/scripts/shell/find_wda +0 -0
  36. package/scripts/shell/install_uiautomator2 +0 -0
  37. package/scripts/shell/install_uiautomator2.sh +93 -0
  38. package/scripts/shell/ios_device_control +0 -0
  39. package/scripts/shell/ios_device_control.sh +220 -0
  40. package/scripts/shell/organize_project +0 -0
  41. package/scripts/shell/organize_project.sh +59 -0
  42. package/scripts/shell/pre-publish-check +0 -0
  43. package/scripts/shell/pre-publish-check.sh +238 -0
  44. package/scripts/shell/publish +0 -0
  45. package/scripts/shell/publish-to-npm +0 -0
  46. package/scripts/shell/publish-to-npm.sh +366 -0
  47. package/scripts/shell/publish.sh +100 -0
  48. package/scripts/shell/setup +0 -0
  49. package/scripts/shell/setup.sh +121 -0
  50. package/scripts/shell/setup_android +0 -0
  51. package/scripts/shell/start +0 -0
  52. package/scripts/shell/start.sh +59 -0
  53. package/scripts/shell/sync-to-npm-package-final +0 -0
  54. package/scripts/shell/sync-to-npm-package-final.sh +60 -0
  55. package/scripts/shell/test-local-package.sh +95 -0
  56. package/scripts/shell/test_android_locators +0 -0
  57. package/scripts/shell/test_connect +0 -0
  58. package/scripts/shell/test_device_detection +0 -0
  59. package/scripts/shell/test_fixes +0 -0
  60. package/scripts/shell/test_getlocators_fix +0 -0
  61. package/scripts/shell/test_recording_feature +0 -0
  62. package/scripts/shell/verify-shell-protection +0 -0
  63. package/scripts/shell/verify-shell-protection.sh +73 -0
  64. package/scripts/shell/verify_distribution +0 -0
  65. package/lib/package-lock.json +0 -1678
  66. package/lib/package.json +0 -30
  67. package/lib/screenshots/screenshot_ios_iPhone17_20260205_225900.png +0 -0
  68. package/lib/screenshots/screenshot_ios_iPhone17_20260205_225942.png +0 -0
  69. package/lib/screenshots/screenshot_ios_iPhone17_20260205_231101.png +0 -0
  70. package/lib/screenshots/screenshot_ios_iPhone17_20260205_232911.png +0 -0
  71. package/lib/screenshots/screenshot_ios_iPhone17_20260208_095103.png +0 -0
  72. package/lib/screenshots/screenshot_ios_iPhone17_20260208_095720.png +0 -0
  73. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115040.png +0 -0
  74. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115047.png +0 -0
  75. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115118.png +0 -0
  76. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115125.png +0 -0
  77. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_115143.png +0 -0
  78. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120107.png +0 -0
  79. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120118.png +0 -0
  80. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120137.png +0 -0
  81. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_120201.png +0 -0
  82. package/lib/screenshots/screenshot_ios_iPhoneXR17x_20260206_134529.png +0 -0
  83. package/scripts/shell/android_device_control.enc +0 -1
  84. package/scripts/shell/connect_android_usb_multi_final.enc +0 -1
  85. package/scripts/shell/connect_android_wireless.enc +0 -1
  86. package/scripts/shell/connect_android_wireless_multi_final.enc +0 -1
  87. package/scripts/shell/connect_ios_usb_multi_final.enc +0 -1
  88. package/scripts/shell/connect_ios_wireless_multi_final.enc +0 -1
  89. 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
+ };