devicely 2.0.9 → 2.0.11

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.
@@ -29,21 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '303e332ca6cf29fe13d291700842bba2',
33
- content: '96aee16391b0df8251581c85dbc99c16b9280d9b5e0400bb0f685a11dfb1405b3ee30e2f288c83193c09b9737bc2eacc2f5d264f0efae0654438bbaaad8ff86dcdf45d4f250ca8c502a5f82b2907ecd355bb8eaca4241f3163d16c8211d8073c470f07ff94f7aeddf4fdffe2006947d1620d7a454c3773bd962bf4cf3b74bf8bb02d929dc44883c0cfe9b20579da5c1af4fd0712bd42c9c507d99bb9b364d441d923a37ee111e29d6ece0e982d967a8c3e84246f19ccfd3fc5495c47d02bb97b5128ee526993283915b8657db7d5a216c7d4b89acde19ee62d317ed7f423cab2dd46928ab52e3cd000195ba17c54627778f54d9bc98700e237ba22fe96d8311f0409c7ec825dd2a06ab43c900c11ff315cb723c108038d0a64e0664bd329f6c04d2456fcc946781f4c38e749f976f61ba9b4fa4804d044bc0023e72768b8f11f8dae2a600e9a2530c173b782f075de89c1f0991e5dfb0982a5b56f373fb1a855186826a37873df3af21dd55810d306476942067f1d44bbad9951e6ad14bfa4a1129f188446e3fe04dfc8823e07c5863f3d1cb119f0b197d9ecbb714b1cbde32da6cb76decf850514e7e04ad09268bd5178d0ca9c501bd95552a85b3efe9de2ea53aa3acdf5e8262d7553934ed0591210b0819f7aa2d0aa356460874b775c7ee250887b0b11b0b6506442e221a49b16afd251a80f5178df9d42ebacc90ad711bdc6c249aaeb2a7fc51735e8ffa4767b9f36715afd04443b099c010cc2370cb5b36b0d48cb7e317bd67253af6d40108ef923a81459ccd656c0c4b46805a63de5d0b2c5ad17cf2f038d21d97bc59715740cd291e428729e02eacf532f7a7eb3b15d6fdf6a99136d18d0949ab9f2e906a70571f62d67d21318cc247f5e71037bb514efd1d17d629db31b4175dfc3344604ca8810dd12ade123d4b933fdf1cebda4207b8c2fae1db6bc4cab59b6098bbc4a8e7eeb296ad809c8997e81650f583f046d4654dd59d591958508e22182493cbfe2a0a564d1319b00927d82138e73be848ad27461696f8bb11c9a293e331a08b2421aefb28e2477b59a8f70b6690a488f824f2f0519c8e819996e70ed387cccddf6f602c1f2396cf2f9e534cae8cd584effa71b4d503e19c0de76416b9a830693829ceb06137f13b74bba6e99c1b3f88d4271f3a4d58fa5847731cf2818a5d1581c94120a6f69057e2c69b27fbfb95c87853320d21e63039bbfb127303f16365ad5c98a41b7434e5b43ad6832bf4b3b748ce075ece459b6840f7559a22e2e87568fbd6c45f298774b021be282a724a960e8cc0938e7abb7b21dbc9026584e54929aa408c36b283dcffc577c0a9f643468c7095a0dab6e68821c42ef52b6bf9be0e4d5a12ec5a4d0c9297ed421d88895ebc84a2f1ddd6d4704dc3e28918834bdcd2863bc914b09dad88c10b98002ee5fb2bb2c80f932da877768ed1a2c01036e57f9c6d5c68fae8c67c35a08ea92b09a15103ded55402c7aac4c346bfc3aef0543960981122be2161372bda05be660f31c93015ac6fcafe8e2714c5e024079abbc40f9b9fad6b70b5b22fb40932063327d5c734efbc8ae89a6e60a40df65786fde920e77f34d8128e9cf24491b7ed5974e718c9cdb8beb3844205fa036eef549a33b9521569dcefe8c7a96d2b231d44f34b8c2ef1cc038bb81579e487fc67fefcf4f760ed0f110c32181e4b938619221712cde8e0a635a1c8826ca7df1c864116c5f0a4956cc6d7adcec664ece90bd50516b8e8e74b1153073b2d92cc9d15bdec5a687d711445b536824b76725654e5625599ce9eacefe9d343e5b8cd7016c725bc28cd5e755281754581850a332cf356af97c103c597d9d7a859795353e3eaed064ec1e8c4ec3b0f4b30bb013eee0888473184846954e9e45491c1e43ef693fdaad1097c6e49f93cb5a78c65215821c5fa0aacd522e35b754e665f7f22b43c8f180697531ad71f79798d98f835fda09d79d45691a9ef8bbee1b9dd28d821c41e0de7f6e61e1a893ca7d44ba8296a7695a552cd7a364d1e9c861dbf66c17db81cb845e87f57438df89ff881825ef2dfad0341b3f2046f5cc3588002e5385cfa0a14b6c67aca50ccb96d9175eb70c3cb1fe404093db64078ea4b5b8825316380143aa273eb5dfc2cb7dd45b02d7a96aaab4530383bc398540cd46ec6686e310c719cb5abc7507fdf7a94f047875d6243082870a9b7dd4eb5bf95864b76b58246740a123b93fadfdde603f21dd9eb2db51953740d75b103827c6db8f60170f6686360e74bc33c1419b2aca613025bf556be2e87bdaf50b292481e8e27325f893a9b4761b0d3a0a836c05e663434a273a40ac44cdd32f3e522ce58502678c1e42ccdcc8241611d2725f0353e02ab24172657c6c38261c748e06383ac4590c7a5c6e2c19a945d35446374f71da081fc645a927798813272096cfcb29b03ace95f6c65bfa4c387dde2bbac4d9c082b258b950ae1bf44aa64910fad9e06ddddbe13f91974886deaf4be7470fec267e7215c58678b4a77ea0d8bd5b1d416fb0438899404ba4e7f095cf4c03c19f257bd2383b16c019ae823bb0ea829a015c7dfdfe4aeb7e1a7fc9eb4fc4e6bfe365526dba12edc0280b992c2a731f4b4b2950677595762d8dbf8db502c0c3559df5fecf0af68b242e6c457f17ee427c6eeca3dee6df80ef24a7d3e8538bd685897dbe6c58dd1da316a4d9afe912665f74f2bc0415fc010980e4a82d3ae0bc2654edf04fe1c0d5be3c36fddce84aa4699c17b16a2a057b79048857de3cbb6492d8aa8f01993a8b5087363d5bb630dcb2c7282d13b535d6c6103716fb885bb2e84a0b90ef53ae945a208fd80e9273afc7042ef00f645d7abeabea88b64735c8790bfb175ed6cf66d319febad7eb618f53967cedcdb81a60026ef6d8687b253044a08fa1179fed25fb527a92d20a3a1789703e882bbb4a1b30100842aba8708e20267df5b9778ddcf9f4908a3f92dd83a185bd161df2d1626fad53f2ba502f4f1ce87ad99941d28568916c513fff283c6928d8fe98523bb10291a233fc55898c6ce9cbcc3236f5c3a42ed2d2acd9112bc3d43a5a37f1bc918c57121453d408baea5d06d3c5cfa5addb63d6978d21b0940d43749c6b6970f45ef3953ee9ef68f89383687cd4a174003cca0d94425a1c79995a8123eba217a2d6be9c854b037860351461d10af048209f9d5c8a1b1b513d32741034864b8b4872a805c2287c5cd1323bb1c4e29453865396497885b72fc4013e01cad6430aefd0a1bb7ed9c233df54f7dfa9a8ac2f9c75c808df1a5960a61ed3a3950529365a11ad9b6a535f5450b26f59d70d2308a4e495a4723642a5db79f9c75dafbbc94b08bf63dfe7c84a122fcca2dbaa1ab6410e9578e5967afb5cbfaeaf85b6088a374aca819764caa395139fd053195bd0ccfcd404b0ac3d8d14019acb88ab7d6379053c03bf233b5155d589320bbb49467415e09a042af1e0a8a6b92972f222026d944f49660f722ae546602a7b090a08cd86b4e1b39570444141e59542ddf335c1de9682080359d264de4dda4ecbff737ccf970097ae3a76628fc04ffe92bf52bad186f30bf984a671aa89c4d846eee87bb5a8b23ab0d70ed755587974fd0e7ed22adf2f339be7131ed5cf03370a96484dd6e69ef1221a0498a8fac3d9e9025f468ac400030e564802f9cac6c37e50b8af4ccada7f7242666e92f9d4d90568781b6889d6cf86dcfe1063ef816f97b862a03aeca042b3da02e725b7796bc93f6d9ebed95712e7d153c842cf9c355e4b6b18e3c9695ada9105df0ffd6610a610f8a28bd7ed32993c1c2ebd1b4be13edb5416745d99117114504e8d4593ae4cab4ff77fc5e6b5f8f2b73ddf57f24ccde8adfc6151f3a3e1f23256c6bb2c5764e85d02337752fd653d91d0f9ce4c9de4a9fce1ee647dba106d49b0ff4b0ef8e489765d231846ff38829d6d683d6929403af8bcdb11459b5562b6eee05fd6fdc88ccc76d730c42bca8c2cda290885536916e5de4f96d07ca1f60c2ad6152d8ed8cdedc3533ee16cc2180f29752fcc364b591280728840bbfb915cbc7fb24dfde222e14207d23a51873709c56ac7e4dee8880f9c97714cc0fa4564062322e77f3296378e78f65c73fd5f96395c181319481f4a3a460930dad5f7a81e75b67426a1f1c0ccb8403911bdf521ec8f626d304439940cbcb99439165e99be12ec9f92fc6e1627ea98013b8786ed59372d7858d6d1863ae930f7c4798d26af5120f116d7193585fe65dea72cef85bb28f9b38704cdc81710f6d38204971dbf58da00141cfa9b1ab130bcd608be89e906a043d569c9399dd20c4071180c684bccfb4bdafcd8bae36d4e1f98015519d6dfe6c9f465e523cc642abd7fc57a8ef40df5d78b1ee001d596c0d7813e05eca417b4870d65410234002400b51359a6cfe8c577b7a5d0beb264e041bba6bcd2704302d50e93407b383cac67042ad037304b96443d806d1953bdac1301a4e090af7e2dcab122b361a8d6d5546ac25fe05782a44889d8e2bbaff8699496090997dea608441d1a37f5eada22644bdb6c5b889fe4b9263f164d9559b56bdb8cdc3948a769d684a0253d768afcd402b3db2120b98133beb401e50a6c8783a41c9f10b6e7eb0cc5a428eb492ca9f345eca535485b9d293264fd51d87c30e81660523af2e81a9050003c4fc58b56ae77952d7d9297dc861e2d852f4a9efdd81a8e638e95fb66ab81025fb53266ecf6b8a6acecb9052e8b95014de131cf6970b7cf8815ae8531b8bf7d909f0890afb351b19030ad68204be78e4b696ce0bd5a4f9d6897be075885823ba8efe604da5c9c4cb9986ff5938735bdfe50d40af46af92d6e924756d3b5e0c6894b5634a2ac4f4c270347b06610452f139eb5673a89e5edb7870d2add0e8a85f5b305a2926a6470991495cd1a1aa8c7b32f39f6b38512fa05f840a4c2333d4dd89825ec8bd015723cbb34e1bd75c1c0b391f2f136a373efba7f4a1b2e66549770dcb76de156ae54d86e03aa5be9df732c76dd7874'
32
+ iv: 'f7ed8271877d0018eaaf14381f9caa8e',
33
+ content: 'cb365b38b0806afe32a6b2c341332257134767057cf47cb13583fe41153bad0a08d955e528464ad19699fc420ed9a0feafc21e6454eb71e7a71bf3a78c007c5594d47106e6579dd8429f6d2124963918d8fa33a097ec88806adc41e2daf579ac395c419855fc5a1e1c59116a54a4877cf97786345950ea0257f074903407bdbf30529f5bc2780725a5de88e432ceb66ff2fa0451f066335e31b72a8bc4e57ed81c3c5481483bc87f548fa33bf986b88b055c4229485ebd1ede270cd94fd9f144f6880efcf0d453d2e8144e2d6216170195db3210319bd55a568e3ed112a23d331b9e0c2079bc260d08c64af34b68ad2080ab12e5e46fb67d1ad7e8b409af149307fa61935135260988b09faab820cea5bfa32b7726c39fb482d07326c605334a63ac49fde31a45a05130a67958d379f327b42760cbac3fd6807702f198c20e19711e795252b9a31de1a6e6ec877b527c0c923afd944b6ddb4353c5fe59bc7983a61666696c73785303d130a3135ce5df2ee3c1563cbbc4911ac8d254c571e9253b12ad5f5cc48f09a994ba2626476f1d64677e4ca1aaf9499513d15ca889f7d864f33fb67e90f638ca57d7dbe434db07b6359c4e22882d3535a612cfdf0a2b39eaf730508187270b0e1c142d11bf5ba3e1dd490ca6ae5a5b6e5f045f5ca26453bc130d3de1e897a2a3638f2e7ce0fe2ba16e6fbdb265b4d3456cd6b2968de51ef595ccc1af30a51ed3371b9d922aa74e90858334a3754dfc9dd08f17095cf6dfeb5b4b0965d962667c3d0d342de4f76517883900cd866f74f936bf21dccfe2a047f3ce1fb39afe488a716d76116b50c6e43fcd9fb2977b168e6bb47833ffaeb32e1219ed9b604eef7c6278c6e5a9ccb42fd3cf81bd59c2cd3b1b96a50359a7f9226f995220461675b709106f99b4a7fe9f237fd29fa8abc64f61ab19ebda6b42198089362f34b747ec0c77cffba9a58fdcd0cd8d1ef69846e117ea5902e1f8616435be94c5fdc69985cd815dae03caf542497888c297ca1bf958e4ff013c48730da4b55942b70180dfc999adaa8a17dcb3214e73304142ebee68beaa79988e45ca2b71c68bf4ad26799802d57c423b01e306f7ead89537fb8adb9ec79873a8a7fb2752552734ee9f194648768a1d8934805261eee463211afa93405a1f7af89accae10600fe676eb967c0e781606c5ddd2693589e6253dde62a9e1060938869a0f2e255fafd578f6f6cf1360afa1dd0d08872172338185efbea382bdae5ceb49a011acb401c888550dd2e620187a037090bd3aed6e5683b5e31f9ef62df84270151268fd92f936b47487f6effe4a3cec2e9c28e088b460c10328c308a9677c46d17387490d7340f970e7efc6ed9933415705e938424dbff3fa7dbff77fcc3afc7df94acbc4fa00b2dbd634eef703fba487c3d78a0bbbb5703b9f596e935a9bf6671d5ec86d42354384fd4c18fcf698c044a89f729a0c1aecc69e069a96918ac78ebef24621d64d397e21e12de1990a829cb7eedb18599041143306c0a020a4696caf9d79891f91f578ec35ef309cb2f70e7368e2bc106d220063bd97c08fb468cfba020dd43de820a848d7f98dee3ad9bc858d4666178936a88fe2702f386fbab3be86372a2259a44fc91faeb5a7db6fb1af262a1341f86f8474f8a8745cf44e08445d38643342299b920778119707a9a7fa431e314ed098bbedf7139ec92ee1ad8df81c6e61096669688af7ebd34f8d45b8df46172756a2db73556f7e98a685ab8ce54fc38d98c7e13fbbd54dad171454decc7a9eb44cfadb267a58da8a77bebb8ffb24e44514b304e43417119e380448a50fdcd6d8625cd8d029bd88c5131d578d6ee4ff13a64141bb8c94fb56556a69b2c467a238557656d40af84f0a40fed36ce2eb7234e8ccbbbd90aa962813fa5a3c2453364decb0fabecbd3064b8ca7b1a7fddc18d782587a53737e4b44bae27fd4a639a8b92948cf808471e2260d8364452eaefc70b0425fc7e460b635518e7dd573f44112e1c079319042de61414848e944f7df8100d7118a27a7b97ef189b92ccba24d7b1fd93ba1084d2fc5177b55037af16a2dca929680660255f3cf054376b8deeedae39b9e593f62c0d5e7ed2185a766b1825e7690ea20bcbf505954fe7476314e870ffa8da79f129caaa1a30306e978d7a4b48227b172fa93f4a932b706fab350f7bfad0a951f15daf420716d1038b16363a5efa0eec154c2ef65dcc7df6ab352fa8cdd065ed74046ac4254353f1101b414dc9685fd83bccc530fbce303ee42d3055b47126634427af3667d5153574d0b905f7ce1366ce699cbe209f7f3ad37575211577207e86d22348f53d220222e6231c8e073caeb92b487f37db0bf61a6e1f3722be798aeb9d197a776340ee1ff37832e7b8b9413ac145e33cefb44e52a799d2b3528ec5657bab7cde5a8670627933a64ab18e1ec37f00d019c26f4e1be6e12a5d8bc4833ef4efb32e1b4562f94b424f2340fade8b204f2e8e88d51e10d8f36c98219622fdd676892b2248365c70a5895d88c54d176b815631e9815cf913982e26cc06d695a46ac41c4032e6f1c6cce93e9312cf54efdb668ae8a0e258b38c3c5f0325c641ed66aeadf6d254eca7c1fb313f58d046a890849bd709f785701f97f9126fb8f673ed7d04c3aee077ef4c251767f3552f03a6596893b0446f96d1febb48c08fd1343de291eb813f332f4bcad00828bbea13265b6bd072a6341fd1a9a54516e5976abb424771ec423686a12f682475ec8600f08f46bc5002761c36308a2ab5ab43da7cba56e688bec072bdd493366f9aa2ed4d321ac0ebe192366511aafa6b01dd45cb5e9ef2529b6854cb92189c61d9d9060de319d3925981d83468c00cb7aaaab9ad999cdf307668d98235d89e052eff38a5fc8b24e89ff8c4f0dae2d86d6b5acf6777ba964350c18e0a04aa12682a88f71cd472856d9d27c50abc532db87fd31bc094040435ac0fe32d4911f53683a389838619acd364036927dd91e707d4b580d4e96d9bc6d979b0083206396cf9eedb9553f0109087c4be91f760c55d9d9ffd133f5252aadc8084af5eb03832c6d0b4853c60c5b14975409be1869d11ccb8bbf18c882bfbb3649b97b20fee0e5ed8da99ff4ad2450e18fb27081582d87ea07aa90e31e761cc90be9243c83d60415e4cb6c3e50eb1d0f437fa375401371c92c3504c27f6f7bcb69cb29bdf738f280d48c6dc2b49e30ac82c0c4a69948cf0fb70fc9594fbd01f485d3d998ce06e7e64a0b4b42806bf18d7514d3bea304d4823bcdfacdb28574244ca223c0d94dac8d225849c82907449e1bf6be183db36f0e85d2103a32c1d840f4a3a983060ea5cd7c35fe75babff350be4c074fed9727aa664ca0aa59f7a4bf11157edf4ed3ea756d496a0635e64d21205bba586231dd73be46e68ad82364d79096869c09fe9e871af2aafa7c91bd9aa6a81b3b7e58d187148293da26fd497a3eeca55381052d7a4f020922a3bdc9ae8d9e7a902599ef5a39aa8035db5a8dc4a837e5c33e1b27cb80ba79a7647e31e4c40e1f0da5eb9cd2dba8b978b09dc959eeef16993e5e3417a5cbd728322841d3dd3c8b0a8ec8e1328e60018d98ac30ae3259f790f625a73a1c22795251540d06e1c4c704b9dfdfc7d130468df235228fae765ffb7c54f30154b2977fff915aab1074f7248cee8e5703413390df47abed9f1e6595d95ad5e82845bf415027505fea42866f2bfe6d271012ebfe7f7076d81d373bf4635c6c45c0b957633e51fdec213fc55b8dd9bd55f2b8f7437537d70cdf134b1df99ff6579c6117218f654b4730c614eab101bfe2c14f2aaac04b38695114ef6e0b702e4554756f8d95f365b59b11f237a15ad6353b70aead665da1f29a732c38cfa75e4b9cd3a007115e8baa0a6ce9eab766c12f686900282de745c0f46f7e6192c44ab89069d3b4bc6e612402536e28d181158a2a1e8d224f853a78d317eb95868351e077a12adc57df198af8760d5370caff4d040a2346215511ac45a370d7a8dd0c50a44e9fc3142a027a2edce9cf6e68453f1b38da76f67f67766e1b963246bd3af244d178a56bb843955632af721935a913b87b61eed5aaafeff615f5ecce45b19567a4d2522e3a68390e6207ae6945c2874faa70f29de0f23f59fc90e37b684c3565843fb368a3bee85fb604e0f4745aed88909bc78b382dac60a9a43170bb93eb15a1f62d26514b3f750b238c601ee64116c80d1997a8aaa56d0cc4612decd2f728ebc90c6b717479a2e9d5f81e30aff1de53b9d3c30970119c4b56ae835ea79e129521adad3e204d7a057bd07659c4d3428e2e26b92f1ae10f8cdb5c3c9517449180a008703d20d6e26cfdd1b141d5691bbfbe5f57f6768b6c277ace957e5604cf21868994ab08ded1453e35522769a693c23b7b414a05f35a2566945d2077cb1dbbfd72d7346a6128c733be9f5c044e5033995f5810a225173d3c2471f66d909eae455df8ea73a7047144e8d320982570f9895b7b079de5c7a08421292dcf60489a87cb8b8c06df5694f428c6e117010fbf42f1bfc0af86ec0e10c46232bc728b612666aa41e78eb90c9e077f7c4e4bd522d099ad1cbb375b5efdd772ea33192094c892695b73043281bfca14228a4d4bdfb749e7a88a13a74b1bf846228ba1323c837d411ecfefd3f71eb400b889b65cf9719fdaea79101452c057e0e3b86a2f5557fd59f12356fe3c375b5972f286ec3dbe4efe8074645bebc4550d2419003a0fd1d8f3ca5e6bcf9604b8345d3da747ce26ad05f9e60bce990e1147ea5c22803cee711c1ebb7ed386afd03076daccad11b8976541cf2410375d6729c391f8d28c602509e49db16cabca2caee946f856a0eb6cac11c545bed85e956a4a86372acd69d8614b108918b2329aa78cd9a7f479b89c39a9a8f508f2ccd8fe814fe276d50dd95e41e100011a7f0533de3511bb16d569021edba207928a3634250c391d574b0a524f37c03b09eb8d026434f2a4624baf995d95c7ee133c1818d7cc4232750ee45a'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
38
-
39
- // Execute the decrypted script
40
- try {
41
- execSync(script, {
42
- stdio: 'inherit',
43
- shell: '/bin/bash',
44
- env: process.env
45
- });
46
- } catch (error) {
47
- process.exit(error.status || 1);
48
- }
49
- " -- "$@"
37
+ const { spawn } = require('child_process');
38
+
39
+ // Get arguments passed to this wrapper
40
+ const args = process.argv.slice(2);
41
+
42
+ // Create a temporary file for the decrypted script
43
+ const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
+ require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
+
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
+ // Clean up temp file
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
59
+ // Clean up temp file on error
60
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
64
+ "
@@ -29,21 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: 'd71c46ce4c211c96591224cad574a489',
33
- content: 'd5dde156926c9f440a1cf7d6e60a751821e69e661e6ffbc576d95b555dc29e4d7608e54db1cad7f868028394a26ce869a3e2e55d627398e0966e0583970ef47bbb0e4972fa693f7cec6d18ed8b792fd1fb932cbf0abdcf12177d6b9f56542ac0e3d6c7bff2c4d4773c763ca3f99a483eb8f9e144afbe33d8a92685861687e44f3343b2b705621e17cfc38f8b5cb1ef9941668bced81b412ab757390e5d1b78b62c34842e97c4378ca595d85d4dd9c919ba64f14c0c47a13197462e067d1a0236c9fb22a933e1d3834a4b386ffba298110752771266dfd1cac25fde8f88377f0cb3c4edde97707d48fa83dd01c75c27e2c35f1e1bf82783a85dacd9acc001087ffadd66ed2d38e1109692aaa5e04aab76c0e8fa75ef5d67be9d649271fc295ae50386cf399334f6c56b7ede4e3eb976cdd939b6dfe18c3ae1ec19cfde338695cd7d3402628e81147eea35c5553c2d06eb67108238bf5373d52c7afea4d83960591f929c22b7558abc9c6ae30ccb9312e3091d7284b7652820374d1599d995e49b2b80b7d50f578fb605b325a182c114b383c3a3775654695b802f88abf45514b0d3b5286a094848a4635022f916ae1bb62e3c51dca92f70205c77fdcc940def53e839acf2fc0f43730402e1e6b09db644664547512d88822cb4ed8e98f91c43fdb4344cf350fe94749c7206c4f2b8629e87b7d494eb35e8163f4f309baf542f31c162ff90f79f1d0e84099a6182b92150c82eeae2eeff4dec5ac4043e4c3f9a2802b026e025bd01b1f1ecc34cc18eb64e6ed3347e6922160fff2a2f1c8b5908f3516902514a9005722100a11bda689228d357e5c9f5ef618e423e879cfd8371f1b823a73eae2826cfe4be1a34166f3e5b5a437fae89df7d532b59b09e86b5e56344d7d7e9625b54d96fb91d5bb757b90d9140308e220cff9577a3b669b6337fdff26915af7050d387ddc399ff4185cedbbe5b7f0b438250432adc2ad1364a0f553f9eb08aa76cd3b976e76c189ac8ab448fa9600f82e33a53c694565b5d773fd10368853f11d89da55387465948e85f78a09ba9395d97a1fa7472e5eab62de0d295e28cde58b841da1a82f4a3b2cd4170df042bb1b293e09e9cdbf4f244259c6ef4871552d9b7bbda78161bcb0a926ca6ac83590874c9a0a2e73571747da80ad73afdf1a68e9db06bbfa9e38999d8ca57f274b0b89284448fdf736981367f9138b92679e10809f22390ea26adda7ac5fc384abe58e09df82b39551c23bac315eec163c8d013d276552aeb00516bed2b3aa80acad4ced503cb0585a6fa6f89cbefcb6ffa9ea9681818c4dc6013d85cde17874804b558fd51110a19967071165971de9708e03056cc6cb88d088cf898aa3fba95f11eb6fa3aacda26b9b254b47966f0864a0ddf9186d2e81553d4eff472414668d1bc0d7c8a3a6c10be9e6f6c932e10389fc4043243f897b28ff31da2ab08e355c4bb55f4368243ed01206697346f06aea47a7ddd2da6fe3c2e2dddf85f61bd438225483c0066759b432035737475135bc52bbb1d62c0e933a2585c65ad8ac81aba3375c94ecdde0e08bf7e305bd99ac52eed7df3b44d89d1145ec97cf566ffaed187bdd7720c30aa5cab20a1bb6647130d82f36f597ba757984bf4a6ab6274300dbd21434ef1afea86d34faaacc53cfb751053fecde2b0fbe7d4ddf3bcfeda6b371a699fefc3a47fdfce6688c8b7cce5d9336851289a9309b355b75a815d0e84a9a9b184f9613c159afa4ba31e984e3b0aef5adc8c0dd7303a5334bcce1bce61878e429a3098be74987c2d56652e7c4fbcf1c2e5c97306ccca1c01f9c9842d561caa52779b64073abfaa432bae1efab7267d0c2e8c88bfb09e1b415ad691b23f996750368363150dcc1941068709d0c9051fb7722cda81e414783b794405285bf9449feb72dfd67f75cbbe86e02cd9cf24825b93a365c8d973ba1b659bfca7a055a8188dcb3af0c398204b82d979143b9f3769187e9725e8abf45b51122df2adba2288e9936df1ca1f256bf057c46ccc88fa3b474cbbad158f8958311288e8292744858893eefaf80c5a96af9165ae97fe1538f91d3f63d0b03cdf3e13545a0542e35528a04ddff7d033c51fbb97b222c34aaf0d99dd4358488a052a301a11ee3174e5f8cc6ecf191a6755c11b57cb697607a6bc051de70b8d0883ac2e458625ef716b1cb12ed273be6c42e6eb4b60eb7f42eb0a6460c4d29db3350e0be1890bd22d3f7914db73164125a8fbe6bdb9aca4e5e5d9d8143790857fa87d6cd1755127c447f25923195eb357c94fb73d6e0f4995cdc4709100f42c50d379a87b6b14aa9e428ecdb776ca80fdd3c2f6e7a03eb4ad7fb8bfb3acacc3d3bce94ab882238f929911b18a788c2918587ca0ad678b6fa64af586b18807cc8e6c5cb4b3a29708334d48f54fb4af07b68434a4ca80d69a3a8b3c31407edc500a0ccf1b4efdecb90fc8aef3c4438dbbea784dd38e0510be8c168feff18c66dd7cda1b3f76a01bc5da94eaf6daba925e8321f439dc6049efbb59d3514cb5e2b764db9553e6d5462b9f6822c5ed5e895ece6f140470362b080c6a0ebc541febe767b532cf3c28eaefbd798e9f66751d8cea2ffdafc753d155a98840d2b11cc72f3c7614f494c38722f366bd98b85252956320620aebd3019f1a284d4d8f0527d76c637d5b2bff56972655db9c9f0484da7e9c1a214a4e61c0e49f081421648f9e53e060a538e57d04a8b775b1005299852becf61e323ead7852134ea546ac50fa142005e571f0dd7bc9a606d637fe46d0afae314576af1d14e84482cbfceb49aaa6a538915a6925c79f2ff910c301ca2fdd3baf2ba6ed6b8180e725ed1a9908c1923b4837d28fd68e57db75447011fa1c668e717b3b19e9522e6f35f804b697cf5af18d2f9b7a32b09c091dec41e6ed482c84498bc110a886f47ae4b0d2ebc395fe87aac79ee3ffce4e710a5e1da3b52992cd5ae0b04d47d5735cb40f19ee1b65317476f7cf70698f6a046833fd41d5319f1de0788fa435cffd7045872294bb54e9fbccb0182b7cc02f285c7fafcc0eb2a67b7a3f83e0627d24938b5aecce5644d819e4a617f87d87a427800017762aa912f5ed17e97fe6c627ebccae967e811b51e644dac96ee9658823787d11666eec24ed2544c2e79d8e1b4235356fcc2a68035e9e59630fb57649f221ee136ba79d7d3566f9b2cea00e638110508c9914c5066ba5c3a17c12a044706179b42a1e35fd728ce552172eb650356a0e256e6fa6e88482c1313c757702221f07bca4ce778a2fd9c24f31d5da620ed52ff8f6098de0360289a980549d09fe9002fe394cda34b5ba2412e8a13ce4f2a158dbbd45325ecbf4a4369310734b37f8340696c276dacc413b75c5712e7bc1a5f6cd3a9c5ca57caec8b5195b5343c062a933ba479bcb717f5bf1bf97d7cf15cf7cf31d16bd3dc91c516c752c2e4a55f43abdee564debb3f54f1e45a1a1721924186d19cae0dedbcc00f0068faed606fb9e96feacef4edc856ac7'
32
+ iv: '1cfdad418b88ce4c9562bba7a0f96bc4',
33
+ content: '71ccf8dfcab371a79f7556aa5108a36b241b83e7e56dedcf544d5569f20c8afd93d4edada2edf715ad3b06e4838a1af94f4f35d7e15fbbb1cbfc4dcdff1011d5e2d2d28ed6f563915978712c6a03df6a1813a591dd40714935f6a2f9fc24ed60dedbbc80d86f5b10a5c6889f6dbecb54328ac2152303034951ef8b6d13f91e772d7e27d313821ec9d7b53474355cff7588dcb79d5eb576b150fc61f0e5fe856225d5dd2da0e38246c4a8df5179212b8be114c46de1f79e4e0f67ee3028379d4f250fa61813d1b3462d02e57df316bbba973ef172afcaf61d6801cbf01f44af8ca67b31dfa5cdbf843dc64c9670d69b97798c48d47b06fd346ea041fe137b5fa62ba7be4eb681e248489473569a2feb3e8913afa25be714e85e3a4214f4df4bd970d989be2bc24025b7fa746286f21fd66127aed5e6db717084f4f3ec5f02746ddb49d6136d3ac4a5394518a1fed9ebc3f0822ae0f0b6155e7a416cecad70fda2e99a818d86fecd7de38d58bcfdfe1bcd3b643aa9f2d728b27d3487e5346d767b5d76dbaa938c03660691be313b1fefb7b2c9b10ce91251be981a798d4e398d72bfaaee7f9ad7b7bc5edab0c892dc528c911e163a5d493485a6584783cc2577759134643003009ff1bf1513d49c3811eb2d5c60c2f0b028c1775dfd67356e1d8fc5744efa80e06e96673d509be8f7253b97119ab69cf682d6dfd0a766247760736d8f8b60d606a09763ec625a0c92f9d9113f791ed58576bc075781f554af7208945f27055f65839c1b2d5542af37c9d9ff3598199229724b20586a4b0c8440b045cdef877a4440b3eda9d4a44a3ad943d9be58dee72c1e69fc3ab7d834a8af851d3542ac59028e409fcea2f9dfdefc4985b349d160c730f28104ef8923ac80eddca137602cf9a79bd499ba7acfa524b04bfbb455dec241152b8bbd5446fa12afc0ac5e99e6f9524d5974cceccb2bad4e4879cfd2c88938f972f564fa7dee26d2891f5aafea9abbf295914727533aff3990cc777527a41302b853e048b513ad4f2f5ed4d01c4ed6bda59cf13a02a21f4320f06a6656558a1e143202b5ab973a19cb62eee7582b51cb83b8e8a790625a7252ff7e6a7a0a60273e694f2af4418ea35bd4b0e6d5a18e0f48a1ead96b8180a5f373679bf093aefc592234c3558f10fc9b73d6c37cbf16fc903b3baa64315389845904f2dc39b754fe8e3b6af07e407c332358ceb99c99e27d2c98a17fd6495cd4a9faf56b282982cc95d05d829a19273a0612ef0047875ffdfcadca0c4b2800d8fbb67bb182eb2d031a22ece1a1215e099892f05d89d0a8fe49805d680f25b20af4f7c0c0dd4d5a68111e15719711fc1d36e403beffa6ec0e773db828b6f2e4e0d63507870b4d428dd9d8ad78718379e082039b835212d98500ae3c3b5454259e667a357a881390bfb24050605f665cef1bbe1c259a443cb6e670c54674f7538331573fd764ce421ceb09a00fe05484f63e1b8b2946fb8514f0f0717a902a48d1a51d463649101435e4a892067f8cea971315841c1674cafa23a48a28bb2e387c3b1fcad909f127668293695d035e363cf7b67d3713b49ffca673a6a65a3420da190f1b23f46ee40ed4803b4c88dcadf187f0cdadad9fe7fa82a445af5cb3595c792a90330f46ec0c26a8c900b30e1dbc63470543c6cd15186528faded08273d039430caa0a2d0b3eb93e98e1182cfdad595c4a3efb12e26322030c6f25d191847ac2ef02c30f59af5c9b44f9854537c8fc5f671fb9196a87f3db3ec91e9b3ae1d899f6e6fe4d0d56bff87c161615ff4f1b5a2c02c337926170a70902e96993687406610801e2c6604a81972bb7c57428e8d94d9cca5af08a4480996d4ec8cb9e39de0c3e0f434ec966c5c1023e3676473faf0a8405514501965e30478cbe24d59588db4894cdb66caeb8bf62048355b4ac3def87c2f57a396c1c3b328c76a331c5d9d5b3c7905082898eb378ae708858c85a299d4b28f89c23feca5b8e0e2ffa00ab524ba16b3512d0ddc4926846a68eadda97e4d5337f57ea4aac083a6be9833fe50b79c4057303207a94c1f564fce7dcffa0d4f1db7203774f441705021caf909eba890b54b7e835f74c938be1317e0b468d9689596521dc1af4bceab45fdfa93aca25e048e05cf256d53d470e6c4110aee5d4b54d1d83e9a962752789fc23b3bf1a2a0ef88e82ac5771052c6a841678c8abdbf7f2a0895056253c84f86b94b0ac52acafe0532e8559f41ec1668f93431c2a56629c02d5687c8b12cc6642ad2475d0a6524f624cbabcab4a73f6214e2d9006d6b25172e05b08c85e36133cdb9bd145931abdb0ac901a5376be3fe2c6085b72a0c0ce632a0a19e079fd4ec49dea6028720e109e80c8e22c38bc869ab9fdeab50f2e9f762572ec3a51f78ca80bb7fc8f46867e481c2653be18930cbbda3dd9199b03ecefee18ef0e8cd3cfb88707a64ef58cc2eace12b0560cde4baebd552a18bdd342da4c8e2a1f2279e88d139cfcfd1e2917ee17a189d0b3e3777e4c7acfb02c0f51e19d21c53054ed1bc9009b94148ed6935026c94486b70e0ad3b019f3c30d6d1126e5509672257e518906f45bebd7a3a27f9a39b818c8fdc6e9b96bd2b994f46347b71d5860b141ba439b5137ff702bd2ae02cad966f6336794eeae7e6b1b4794ee7d38262b8dbf59485ab0ee75904bb4c6a96d393a2879681222bc5633edf90762f6ed4126bf09c4df925102e06ccbe8bb9112e402430a59898c0fe7d473a7dc7f60c9bc34932cd539e58959a39d8e93f2699f9bcb96a1e44f9758cddf98b87f7f973ce9ad96823713c0ce5782433d2bd1dc0d477424c62f78a63ec6690593b529255b1cd6489e7b66c0ebda10153d65b077dc62f9c9684f67c376337dc06e2a9135549250a142edba9c199a7452a7f686d8d68339814a5182af6524b324f52f609e515c9217648dc0f0ae9c2994971b4b125b291d8e2d2bc0afd4341817c261c92da6d6c8ca7f79f64046835f8bb21fe1c53cfcdf381670a87f79dd50905d5aca0930bd4ca719fd7dae87513a1c68cf284afc19dd5228b183ae49dd61bb8eb6076d070240c1cca7922ba3347d9c9712591ce94903098954003e34044d80a0e57311c398bed112c3c1421abbc74acb479951b221d71001b7324797db3343fd700e667d7adf65e88e14d6e7a14d0447b39589d1f2afcea51abc94b56941661456f00a54f50c1027c634296b9a23e6e2fae5cbdb36be6e3429b1e3702c9fc303a559b073829ad402d32fcc85332618d2fd4f40e21cfbf4bdacaeca0e697fee02d1da696313ba38aa67162318e769b5ee78c56375514e7271e86dda08f0a53ee44e8e18f89d751c001b54ab153190007616f22fa9a3f452f70baafbb7d1743958f5d4b8dc9ff9aaccf36bad989769c843f6c619deec60e25e0c919610a0815e97a17166270708329cf957602bb2ab11ffea97b966f73c7b1f076d6b60d9da6b3184211c73ac9073160135c3d8cad14081ec231ddcf7d8a5a13b0e'
34
34
  };
35
35
 
36
36
  const script = decrypt(encrypted.iv, encrypted.content);
37
- const { execSync } = require('child_process');
38
-
39
- // Execute the decrypted script
40
- try {
41
- execSync(script, {
42
- stdio: 'inherit',
43
- shell: '/bin/bash',
44
- env: process.env
45
- });
46
- } catch (error) {
47
- process.exit(error.status || 1);
48
- }
49
- " -- "$@"
37
+ const { spawn } = require('child_process');
38
+
39
+ // Get arguments passed to this wrapper
40
+ const args = process.argv.slice(2);
41
+
42
+ // Create a temporary file for the decrypted script
43
+ const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
+ require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
+
46
+ // Execute the decrypted script with arguments using spawn
47
+ const child = spawn(tmpScript, args, {
48
+ stdio: 'inherit',
49
+ env: process.env
50
+ });
51
+
52
+ child.on('exit', (code) => {
53
+ // Clean up temp file
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
59
+ // Clean up temp file on error
60
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
64
+ "