devicely 2.1.3 → 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 -0
  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 _0x359532=_0x2728;(function(_0xdbd53b,_0x23c8ba){const _0x728b4=_0x2728,_0x1fbaf2=_0xdbd53b();while(!![]){try{const _0x16871e=parseInt(_0x728b4(0x1d0))/0x1*(-parseInt(_0x728b4(0x23e))/0x2)+-parseInt(_0x728b4(0x20a))/0x3+parseInt(_0x728b4(0x245))/0x4*(parseInt(_0x728b4(0x1c8))/0x5)+parseInt(_0x728b4(0x1d7))/0x6+parseInt(_0x728b4(0x1c2))/0x7+-parseInt(_0x728b4(0x232))/0x8*(-parseInt(_0x728b4(0x1b9))/0x9)+parseInt(_0x728b4(0x1f2))/0xa*(parseInt(_0x728b4(0x242))/0xb);if(_0x16871e===_0x23c8ba)break;else _0x1fbaf2['push'](_0x1fbaf2['shift']());}catch(_0x4b88c0){_0x1fbaf2['push'](_0x1fbaf2['shift']());}}}(_0x5840,0x4e02f));const _0x2e023d={};_0x2e023d[_0x359532(0x1fc)]=_0x359532(0x1d5),_0x2e023d['android']=null;const _0x34967c={};_0x34967c['ios']='com.google.chrome.ios',_0x34967c[_0x359532(0x1f5)]='com.android.chrome';const _0xfb0302={};_0xfb0302[_0x359532(0x1fc)]='org.mozilla.ios.Firefox',_0xfb0302[_0x359532(0x1f5)]='org.mozilla.firefox';const _0x5b4f83={};_0x5b4f83[_0x359532(0x1fc)]=_0x359532(0x1ef),_0x5b4f83[_0x359532(0x1f5)]=_0x359532(0x1c5);const _0x42e4b5={};_0x42e4b5['ios']=_0x359532(0x23f),_0x42e4b5[_0x359532(0x1f5)]=_0x359532(0x236);const _0x50a186={};_0x50a186['ios']=_0x359532(0x216),_0x50a186[_0x359532(0x1f5)]=_0x359532(0x1e1);const _0x358d5e={};function _0x2728(_0x5234ea,_0x34a2ff){_0x5234ea=_0x5234ea-0x1b6;const _0x5840e4=_0x5840();let _0x27288a=_0x5840e4[_0x5234ea];if(_0x2728['JszKPx']===undefined){var _0x535983=function(_0x4db319){const _0x346459='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1617ea='',_0x1725e3='';for(let _0x350cb9=0x0,_0x44af64,_0x56a0ba,_0x21a50a=0x0;_0x56a0ba=_0x4db319['charAt'](_0x21a50a++);~_0x56a0ba&&(_0x44af64=_0x350cb9%0x4?_0x44af64*0x40+_0x56a0ba:_0x56a0ba,_0x350cb9++%0x4)?_0x1617ea+=String['fromCharCode'](0xff&_0x44af64>>(-0x2*_0x350cb9&0x6)):0x0){_0x56a0ba=_0x346459['indexOf'](_0x56a0ba);}for(let _0x2532ef=0x0,_0x43db8e=_0x1617ea['length'];_0x2532ef<_0x43db8e;_0x2532ef++){_0x1725e3+='%'+('00'+_0x1617ea['charCodeAt'](_0x2532ef)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1725e3);};_0x2728['KJtjSJ']=_0x535983,_0x2728['VYetPF']={},_0x2728['JszKPx']=!![];}const _0x2f8522=_0x5840e4[0x0],_0x4e1c6f=_0x5234ea+_0x2f8522,_0x34c202=_0x2728['VYetPF'][_0x4e1c6f];return!_0x34c202?(_0x27288a=_0x2728['KJtjSJ'](_0x27288a),_0x2728['VYetPF'][_0x4e1c6f]=_0x27288a):_0x27288a=_0x34c202,_0x27288a;}_0x358d5e[_0x359532(0x1fc)]='com.apple.Preferences',_0x358d5e[_0x359532(0x1f5)]=_0x359532(0x1d2);const _0x5654bc={};_0x5654bc[_0x359532(0x1fc)]=_0x359532(0x1fe),_0x5654bc[_0x359532(0x1f5)]=_0x359532(0x1f7);const _0x1076dc={};_0x1076dc['ios']='com.apple.mobileslideshow',_0x1076dc[_0x359532(0x1f5)]='com.google.android.apps.photos';const _0x51a3c3={};_0x51a3c3[_0x359532(0x1fc)]='com.apple.mobileslideshow',_0x51a3c3[_0x359532(0x1f5)]=_0x359532(0x1f1);const _0x116be3={};_0x116be3[_0x359532(0x1fc)]=_0x359532(0x1b7),_0x116be3[_0x359532(0x1f5)]=_0x359532(0x1be);const _0x50e311={};_0x50e311['ios']=_0x359532(0x218),_0x50e311[_0x359532(0x1f5)]=_0x359532(0x1de);const _0x56ec81={};_0x56ec81[_0x359532(0x1fc)]=_0x359532(0x1c3),_0x56ec81[_0x359532(0x1f5)]=_0x359532(0x22c);const _0x3b9da8={};_0x3b9da8[_0x359532(0x1fc)]='com.apple.mobilecal',_0x3b9da8[_0x359532(0x1f5)]='com.google.android.calendar';const _0x5835a8={};_0x5835a8[_0x359532(0x1fc)]=_0x359532(0x206),_0x5835a8[_0x359532(0x1f5)]=_0x359532(0x22d);const _0x50ba09={};_0x50ba09[_0x359532(0x1fc)]='com.apple.calculator',_0x50ba09['android']=_0x359532(0x204);const _0xb496fb={};_0xb496fb[_0x359532(0x1fc)]=_0x359532(0x211),_0xb496fb[_0x359532(0x1f5)]=_0x359532(0x1fa);const _0x35fbd4={};_0x35fbd4[_0x359532(0x1fc)]=_0x359532(0x1d9),_0x35fbd4[_0x359532(0x1f5)]=_0x359532(0x202);const _0x584161={};_0x584161[_0x359532(0x1fc)]=_0x359532(0x1bd),_0x584161[_0x359532(0x1f5)]=_0x359532(0x202);const _0x3c2021={};_0x3c2021['ios']=_0x359532(0x1d1),_0x3c2021[_0x359532(0x1f5)]=_0x359532(0x20b);const _0x565694={};_0x565694[_0x359532(0x1fc)]=_0x359532(0x234),_0x565694[_0x359532(0x1f5)]=_0x359532(0x1e6);const _0x585cff={};_0x585cff[_0x359532(0x1fc)]=_0x359532(0x21e),_0x585cff[_0x359532(0x1f5)]=_0x359532(0x209);const _0x2354ac={};_0x2354ac[_0x359532(0x1fc)]=_0x359532(0x1c7),_0x2354ac[_0x359532(0x1f5)]='com.twitter.android';const _0x130615={};_0x130615[_0x359532(0x1fc)]=_0x359532(0x1c7),_0x130615[_0x359532(0x1f5)]='com.twitter.android';const _0x5393bc={};_0x5393bc[_0x359532(0x1fc)]='net.whatsapp.WhatsApp',_0x5393bc[_0x359532(0x1f5)]='com.whatsapp';const _0x11230c={};_0x11230c[_0x359532(0x1fc)]='ph.telegra.Telegraph',_0x11230c[_0x359532(0x1f5)]='org.telegram.messenger';const _0xb5fe99={};_0xb5fe99['ios']='com.toyopagroup.picaboo',_0xb5fe99['android']=_0x359532(0x1df);const _0x79cd33={};_0x79cd33[_0x359532(0x1fc)]=_0x359532(0x23c),_0x79cd33[_0x359532(0x1f5)]='com.zhiliaoapp.musically';const _0x3a8fbc={};_0x3a8fbc[_0x359532(0x1fc)]=_0x359532(0x1d3),_0x3a8fbc[_0x359532(0x1f5)]=_0x359532(0x223);const _0x17bf76={};_0x17bf76[_0x359532(0x1fc)]=_0x359532(0x229),_0x17bf76[_0x359532(0x1f5)]=_0x359532(0x224);const _0x5ac72d={};_0x5ac72d[_0x359532(0x1fc)]=_0x359532(0x21b),_0x5ac72d[_0x359532(0x1f5)]=_0x359532(0x227);const _0x2ae9ec={};_0x2ae9ec[_0x359532(0x1fc)]=_0x359532(0x23b),_0x2ae9ec[_0x359532(0x1f5)]=_0x359532(0x1e0);const _0x3d6e71={};_0x3d6e71[_0x359532(0x1fc)]=_0x359532(0x1ee),_0x3d6e71[_0x359532(0x1f5)]=_0x359532(0x1ec);const _0x16bb1={};_0x16bb1[_0x359532(0x1fc)]=_0x359532(0x203),_0x16bb1[_0x359532(0x1f5)]=_0x359532(0x203);const _0x246ae7={};_0x246ae7[_0x359532(0x1fc)]='com.apple.Music',_0x246ae7[_0x359532(0x1f5)]='com.apple.android.music';const _0x22c901={};_0x22c901[_0x359532(0x1fc)]=_0x359532(0x214),_0x22c901[_0x359532(0x1f5)]=_0x359532(0x214);const _0x59534f={};_0x59534f['ios']=_0x359532(0x244),_0x59534f[_0x359532(0x1f5)]=_0x359532(0x244);const _0x478268={};_0x478268[_0x359532(0x1fc)]=_0x359532(0x23d),_0x478268[_0x359532(0x1f5)]=_0x359532(0x1e7);const _0x123922={};_0x123922[_0x359532(0x1fc)]=_0x359532(0x225),_0x123922['android']='us.zoom.videomeetings';const _0x350f93={};_0x350f93[_0x359532(0x1fc)]=_0x359532(0x1ba),_0x350f93[_0x359532(0x1f5)]=_0x359532(0x213);const _0x496020={};_0x496020[_0x359532(0x1fc)]=_0x359532(0x235),_0x496020['android']='com.microsoft.teams';const _0x25eea9={};_0x25eea9[_0x359532(0x1fc)]=_0x359532(0x24d),_0x25eea9[_0x359532(0x1f5)]=_0x359532(0x1e8);const _0x31ad8e={};_0x31ad8e[_0x359532(0x1fc)]=_0x359532(0x24a),_0x31ad8e[_0x359532(0x1f5)]=_0x359532(0x23a);const _0x4dca24={};_0x4dca24['ios']=_0x359532(0x1bd),_0x4dca24[_0x359532(0x1f5)]='com.google.android.gm';const _0x16ed0b={};_0x16ed0b['ios']='com.microsoft.Office.Outlook',_0x16ed0b[_0x359532(0x1f5)]=_0x359532(0x231);const _0x3e8270={};_0x3e8270['ios']=_0x359532(0x1dd),_0x3e8270[_0x359532(0x1f5)]=_0x359532(0x226);const _0x532619={};_0x532619[_0x359532(0x1fc)]=_0x359532(0x1e5),_0x532619[_0x359532(0x1f5)]=_0x359532(0x21f);const _0x56a576={};_0x56a576[_0x359532(0x1fc)]='com.microsoft.skydrive',_0x56a576['android']=_0x359532(0x1ca);const _0x2688b2={};_0x2688b2[_0x359532(0x1fc)]=_0x359532(0x1c1),_0x2688b2[_0x359532(0x1f5)]=_0x359532(0x1c1);const _0x156133={};_0x156133[_0x359532(0x1fc)]=_0x359532(0x1b8),_0x156133[_0x359532(0x1f5)]=_0x359532(0x1cc);const _0x21f865={};_0x21f865[_0x359532(0x1fc)]=_0x359532(0x205),_0x21f865[_0x359532(0x1f5)]=_0x359532(0x24b);const _0x5af719={};_0x5af719[_0x359532(0x1fc)]='com.ebay.iphone',_0x5af719['android']=_0x359532(0x24c);const _0x46a3ae={};_0x46a3ae['ios']='com.walmart.groceries',_0x46a3ae[_0x359532(0x1f5)]=_0x359532(0x246);const _0x4edce8={};_0x4edce8[_0x359532(0x1fc)]=_0x359532(0x1c0),_0x4edce8[_0x359532(0x1f5)]=_0x359532(0x249);const _0x36666d={};_0x36666d[_0x359532(0x1fc)]=_0x359532(0x239),_0x36666d[_0x359532(0x1f5)]=_0x359532(0x1e4);const _0xe26d88={};_0xe26d88[_0x359532(0x1fc)]=_0x359532(0x1cb),_0xe26d88[_0x359532(0x1f5)]=_0x359532(0x1b6);const _0x448cd8={};_0x448cd8['ios']='com.airbnb.app',_0x448cd8['android']=_0x359532(0x207);const _0x4c170c={};_0x4c170c[_0x359532(0x1fc)]=_0x359532(0x21d),_0x4c170c[_0x359532(0x1f5)]=_0x359532(0x1d4);const _0x4fcc0e={};_0x4fcc0e[_0x359532(0x1fc)]='com.yourcompany.PPClient',_0x4fcc0e['android']=_0x359532(0x1f4);const _0x2c74d1={};_0x2c74d1[_0x359532(0x1fc)]=_0x359532(0x20e),_0x2c74d1[_0x359532(0x1f5)]=_0x359532(0x1ce);const _0x334b35={};_0x334b35[_0x359532(0x1fc)]='com.squareup.cash',_0x334b35['android']=_0x359532(0x1bf);const _0x198068={};_0x198068[_0x359532(0x1f6)]=_0x2e023d,_0x198068[_0x359532(0x1fb)]=_0x34967c,_0x198068['firefox']=_0xfb0302,_0x198068[_0x359532(0x1f3)]=_0x5b4f83,_0x198068[_0x359532(0x22a)]=_0x42e4b5,_0x198068[_0x359532(0x1f9)]=_0x50a186,_0x198068[_0x359532(0x1db)]=_0x358d5e,_0x198068[_0x359532(0x1c9)]=_0x5654bc,_0x198068[_0x359532(0x1f8)]=_0x1076dc,_0x198068[_0x359532(0x222)]=_0x51a3c3,_0x198068[_0x359532(0x238)]=_0x116be3,_0x198068[_0x359532(0x20d)]=_0x50e311,_0x198068[_0x359532(0x1c6)]=_0x56ec81,_0x198068[_0x359532(0x1e9)]=_0x3b9da8,_0x198068[_0x359532(0x215)]=_0x5835a8,_0x198068['calculator']=_0x50ba09,_0x198068[_0x359532(0x1e2)]=_0xb496fb,_0x198068['mail']=_0x35fbd4,_0x198068[_0x359532(0x220)]=_0x584161,_0x198068['maps']=_0x3c2021,_0x198068[_0x359532(0x1d8)]=_0x565694,_0x198068['instagram']=_0x585cff,_0x198068[_0x359532(0x1c4)]=_0x2354ac,_0x198068['x']=_0x130615,_0x198068[_0x359532(0x247)]=_0x5393bc,_0x198068['telegram']=_0x11230c,_0x198068[_0x359532(0x201)]=_0xb5fe99,_0x198068['tiktok']=_0x79cd33,_0x198068['linkedin']=_0x3a8fbc,_0x198068[_0x359532(0x241)]=_0x17bf76,_0x198068['youtube']=_0x5ac72d,_0x198068[_0x359532(0x20c)]=_0x2ae9ec,_0x198068['spotify']=_0x3d6e71,_0x198068[_0x359532(0x1fd)]=_0x16bb1,_0x198068[_0x359532(0x1cd)]=_0x246ae7,_0x198068[_0x359532(0x21a)]=_0x22c901,_0x198068[_0x359532(0x20f)]=_0x59534f,_0x198068[_0x359532(0x243)]=_0x478268,_0x198068['zoom']=_0x123922,_0x198068['skype']=_0x350f93,_0x198068[_0x359532(0x212)]=_0x496020,_0x198068[_0x359532(0x1ea)]=_0x25eea9,_0x198068['discord']=_0x31ad8e,_0x198068[_0x359532(0x220)]=_0x4dca24,_0x198068[_0x359532(0x200)]=_0x16ed0b,_0x198068[_0x359532(0x1ff)]=_0x3e8270,_0x198068[_0x359532(0x22b)]=_0x532619,_0x198068['onedrive']=_0x56a576,_0x198068[_0x359532(0x208)]=_0x2688b2,_0x198068[_0x359532(0x1dc)]=_0x156133,_0x198068[_0x359532(0x22f)]=_0x21f865,_0x198068[_0x359532(0x240)]=_0x5af719,_0x198068['walmart']=_0x46a3ae,_0x198068['target']=_0x4edce8,_0x198068[_0x359532(0x1da)]=_0x36666d,_0x198068[_0x359532(0x1bb)]=_0xe26d88,_0x198068[_0x359532(0x237)]=_0x448cd8,_0x198068[_0x359532(0x221)]=_0x4c170c,_0x198068['paypal']=_0x4fcc0e,_0x198068[_0x359532(0x1bc)]=_0x2c74d1,_0x198068[_0x359532(0x219)]=_0x334b35;function _0x5840(){const _0x36b116=['y29TlNPOAwXPyw9HChaUBxvZAwnHBgX5','y29TlMfTyxPVBI5HAxyUquLwqxbW','mLveEMrSzW','y29TlMjYyxzLlMLVCY5ICM93C2vY','zwjHEq','CMvKzgL0','ndCZrKrnr0fA','ChjPBwv2AwrLBW','y29TlMrPC25LEs5KAxnUzxLWBhvZ','nfngu05XDW','y29TlNDHBg1HCNqUyw5KCM9Pza','D2HHDhnHCha','z2v0tgf1BMnOq29TBwfUza','y29TlNrHCMDLDc51Aq','y29TlMHHBw1LCMfUzgnOAxnLBc5KAxnJB3jK','y29TlMfTyxPVBI5Tu2HVCc5HBMrYB2LKlNnOB3bWAw5N','y29TlMvIyxKUBw9IAwXL','y29TlNrPBNLZCgvJAY5JAgf0BhLPBW','BwuUBhLMDc5HBMrYB2LK','y29TlMfWCgXLlK1VyMLSzvnnuW','y29TlMv2zxjUB3rLlMLqAg9Uzs5fDMvYBM90zq','mtK0ng10AfHLqW','y29TlNnRExbLlNnRExbL','BhLMDa','DMvUBw8','y29TlMDVB2DSzs5hBwfPBa','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUBwvZC2fNAw5N','y29TlNnXDwfYzxvWlMnHC2G','y29TlNrHCMDLDc5TB2jPBgu','BM90Aw9UlMLK','mJaWodKWouXmBMXRuW','y29TlMfWCgXLlK1VyMLSzufKzhjLC3ncB29R','DhDPDhrLCG','y29TlM1Py3jVC29MDc5LBw14','y29UDgfJDhm','y29TlMf0zwjPDhmUvhDLzxrPzti','nJu0nJvWAfDLvfi','y2fTzxjH','y29TlM1Py3jVC29MDc5ZA3LKCML2zq','y29TlNvIzxjJywiUthLMDa','y29TlMv2zxjUB3rL','yxbWBgvTDxnPyW','y29TlNzLBM1V','qvbqx01bufbjtKDt','ntKWode4uhj4DhPU','y29TlMfWCgXLlK1HChm','y29TlMfUzhjVAwqUC2v0DgLUz3m','y29TlMXPBMTLzgLUlKXPBMTLzeLU','y29TlMjVB2TPBMC','y29TlMfWCgXLlM1VyMLSzxnHzMfYAq','ChvZAa','odu1ntCWu1fLANvX','zMfJzwjVB2S','y29TlMfWCgXLlM1VyMLSzw1HAwW','DwjLCG','C2v0DgLUz3m','zxzLCM5VDgu','y29TlMDVB2DSzs5eCML2zq','y29TlMDVB2DSzs5HBMrYB2LKlMrPywXLCG','y29TlNnUyxbJAgf0lMfUzhjVAwq','y29TlM5LDgzSAxGUBwvKAwfJBgLLBNq','y29TlM9WzxjHlMjYB3DZzxi','BM90zxm','z2v0qxzHAwXHyMXLqxbWCW','y29TlNvIzxjJywi','y29TlMDLDgrYB3bIB3GUrhjVCgjVEa','y29TlMzHy2vIB29RlMTHDgfUyq','y29TlMfTyxPVBI5HDM9KlNrOAxjKCgfYDhLJBgLLBNq','y29TlLnSywnR','y2fSzw5Kyxi','C2XHy2S','whzgAhy','y29TlNnWB3rPzNKUBxvZAwm','CgfJA2fNzuLK','y29TlNnWB3rPzNKUy2XPzw50','y29TlM1Py3jVC29MDc5TC2vKz2u','AxnbChbbDMfPBgfIBgu','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUCgHVDg9Z','mJi5odCWDhzQvLzZ','zwrNzq','y29TlNbHExbHBc5HBMrYB2LKlNaYCg1VyMLSzq','yw5KCM9Pza','C2fMyxjP','y29TlMfUzhjVAwqUy2fTzxjHmG','CgHVDg9Z','B3bLCMe','y29TlMDVB2DSzs5HBMrYB2LKlMTLzxa','y2HYB21L','Aw9Z','yw1HEM9UBxvZAwm','y29TlMfWCgXLlMnHBwvYyq','z29Vz2XLzhjPDMu','B3v0Bg9VAW','C25HCgnOyxq','y29TlMDVB2DSzs5HBMrYB2LKlMDT','y29TlMfTyxPVBI5TCdm','y29TlMDVB2DSzs5HBMrYB2LKlMnHBgn1Bgf0B3i','y29TlMfTyxPVBI5bBwf6B24','y29TlMfWCgXLlM1VyMLSzxrPBwvY','y29TlMfPCMjUyI5HBMrYB2LK','BM90Aw9U','y29TlMLUC3rHz3jHBs5HBMrYB2LK','mty5nteYowP0tgTvrG','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUBwfWCW','BMv0zMXPEa','CgHVBMu','y29TlNzLBM1VlNrVDwnOlLzLBM1V','zgLZBMv5CgX1CW','tLPvuwm','y29TlMfWCgXLlM1VyMLSzw5VDgvZ','DgvHBxm','y29TlNnRExbLlNjHAwrLCG','y29TlMH1BhuUCgX1CW','y2XVy2S','y29TlM9WzxjHlK9WzxjHvg91y2G','vhHUC2G','y29TlMfWCgXLlM1VyMLSzxbOB25L','y2fZAgfWCa','AhvSDq','y29TlMDVB2DSzs5PB3mUEw91DhvIzq','DhjPBq','y29TlMjVB2TPBMCUqM9VA2LUz0fWCa','y29TlMj1CMjUlMLUC3rHz3jHBq','y29TlMrYB3bIB3GUyw5KCM9Pza','z21HAwW','yM9VA2LUzW','z2fSBgvYEq','y29TlMXPBMTLzgLUlMfUzhjVAwq','y29TlNjLzgrPDc5MCM9UDhbHz2u','DxmUEM9VBs52AwrLB21LzxrPBMDZ','y29TlMDVB2DSzs5HBMrYB2LKlMfWChmUzg9JCW','y29TlMDVB2DSzs5HBMrYB2LKlNLVDxr1yMu','Dg9mB3DLCKnHC2u','y29TlNjLzgrPDc5szwrKAxq','yNjHDMu','zhjVCgjVEa','y29TlMDVB2DSzs5HBMrYB2LKlMnVBNrHy3rZ','y29TlMDVB2DSzs5HBMrYB2LKlMrLC2TJBg9JAW','zxHWB3j0CW','yw1HEM9U','z2v0ugfJA2fNzuLK','y29TlM1Py3jVC29MDc5VzMzPy2uUB3v0Bg9VAW','mty0mejvtxbrCG','wK1WEuS','y29TlMzHy2vIB29RlKzHy2vIB29R','y29TlM1Py3jVC29MDc5ZA3LWzs50zwfTCW','y29TlMjYyxzLlMjYB3DZzxi','ywLYyM5I','BwvZC2fNzxm','y29TlNvIzxjJywiUvwjLCKnSAwvUDa','y29TlMrPC2nVCMq','y29TlM5LDgzSAxGUtMv0zMXPEa'];_0x5840=function(){return _0x36b116;};return _0x5840();}const APP_MAPPINGS=_0x198068;function getPackageId(_0x5adc7f,_0x393aea){const _0x5dd51e=_0x359532,_0x2d1000=_0x5adc7f[_0x5dd51e(0x228)]()[_0x5dd51e(0x21c)](),_0x955c46=APP_MAPPINGS[_0x2d1000];if(!_0x955c46)return null;return _0x955c46[_0x393aea]||null;}function getAvailableApps(_0x24d429){const _0x58c6e9=_0x359532,_0x135c6f={};_0x135c6f[_0x58c6e9(0x210)]=function(_0x487d52,_0x2a6ec6){return _0x487d52!==_0x2a6ec6;},_0x135c6f['Txnsh']=_0x58c6e9(0x233);const _0x2f9622=_0x135c6f,_0x30bd63=[];for(const [_0x4788d4,_0x2d698d]of Object['entries'](APP_MAPPINGS)){if(_0x2d698d[_0x24d429]){if(_0x2f9622['NZUQc'](_0x2f9622[_0x58c6e9(0x217)],'ZMpyK'))return null;else{const _0x39e789={};_0x39e789['name']=_0x4788d4,_0x39e789[_0x58c6e9(0x1ed)]=_0x2d698d[_0x24d429],_0x30bd63[_0x58c6e9(0x1d6)](_0x39e789);}}}return _0x30bd63;}function isAppAvailable(_0x377306,_0x4a98a6){const _0x5dd0f5=_0x359532,_0x1449b9={};_0x1449b9[_0x5dd0f5(0x1eb)]=function(_0x1a733d,_0x418c4e){return _0x1a733d!==_0x418c4e;};const _0x9978de=_0x1449b9;return _0x9978de['XvFhv'](getPackageId(_0x377306,_0x4a98a6),null);}function getLaunchCommand(_0x1b3eb9,_0x3318b8){const _0x5f2497=getPackageId(_0x1b3eb9,_0x3318b8);if(!_0x5f2497)return null;return'launch\x20'+_0x5f2497;}const _0x4503a6={};_0x4503a6[_0x359532(0x1cf)]=APP_MAPPINGS,_0x4503a6[_0x359532(0x230)]=getPackageId,_0x4503a6[_0x359532(0x1e3)]=getAvailableApps,_0x4503a6[_0x359532(0x1f0)]=isAppAvailable,_0x4503a6[_0x359532(0x248)]=getLaunchCommand,module[_0x359532(0x22e)]=_0x4503a6;
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
+ };