devicely 2.0.10 → 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,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: 'c99f2bce7e92568dadafbb8d2f7ad8b8',
33
- content: '223ed1754d62ef9e06050e2885e94d9e9429625744b1fe1dd7743d65d457cb198935378bccff9a6f261353004917143bc2a40fec4a8a9ce5dec75efdaab1fbd9197c04855fd2009273e75505a60c54653d4e33832232b91c60379c205455c544087ebc6c70fcef62aa503160fdffb0d8f0f00574556648d4b1830bd91b8957fc4a36f6578a26bb3ad0d73702734421a6cdc8f3653f0dae3560e3a32c1a5970cc614293a5cc7f6960b91c7b3e0929eab305af1f8d8bfdab7ca628e4e4e51c2df3accac60fd709ab551acf7afe9a85df3d4cf2c05066f29b9d8383a05a9572ae2c87cde037101eb063459909d29e633e159aea190863dc17fbb422ae419228ba7b519c39d01e3d0f49c97ba2cfacd755a77e779524648e95e718dfc0648b6fcc023713948ccf733bd2b25f552fbff9979e89d60a6a01e34561ce4511984b0f7d37ddabd867174e26c2dbe29737c65b0da7a2557c7f51f60a8e3f36528e6bf678290c8a674209b7a0e0006dcabf6c892079e8427673a4c2f0a6fee70225794826450a568ae9c566b1caddaf042d4cf316a9f93de8f63f15f0de8ef7d47372fa2c121673412053ee8d60ccec9458bee1f5302204fdfe03cfb9b29d85d0a53e8beb3d04d81b12072901b55115a114eb9496ca2d9ce20597a6ff4d86b9343957088c8a282190fff55ec0802badadaf45d5a0b6908be1c82e13b93299768f7f4b190cb1c02f1e27c346075349cae08c4fe005e6b617daf110a7de2abfbfb327f7a54d3a1944bae3398ed8b19f36b2113bdb93a45a7e57dc57875d173d34eee501e16d2e8c37e516186202e08903e0c16420b89bba7254240c505bbf339d6fe78c3d2566b1c0fbb0664cd2e0423fbe6b792efb8a1c5e442a9a479cb20f96045e215bc593064e78013fdb629174e8deea958c36b496bf1e3157c3d0b6a9a57d07c5caedd2378ac119812496154ebcf360bf6c3620536566b77db4c61002b3d9e386f42956d14e02fc01d913c1098d86101c8cceb81a8d022361c4e8b1b1a3bbd32f0134979b51b865bc2e441749794226338e52fac2dab8bc2bf6a423b712d7fbfb581a5af65cfbb660c6c3c73844910c1d64b413c4abb2f58447f1bd620cfca6d230531fe7c7da2494200a5f36e7f976e1a2e9c9caa19ad46a7c810cba594d60abb424c4ee92b208feabffa3307c1d7e1a85743d52b10af9c20f3dc5fa2b201aaed6f68895c57029699d0b532f5bf721a4405cc3cbe530b72f6b46f31e64091ac90b24bdd65ca4f13fe6329ca5f9c43914a1e25feb399b3c321d577327775dfbee2bf35120ad905235fa9c74ae5b01e410f56d474ed2d275a337b5b3b757f10b94906da6f1c377c8e403f099208db71ec4f0e820c21986b701bbd977b06e836a518e5f57f4edd5f08de49e8476b99e142c11793f95ad1a901b95a2f97fb7574ceef1129ab0fea57038508f27a8e9a65e35f5e6941b733916d4da73dac4ed7213f3c06ec98e6d3bde5d8854568496f9242a819ad4b7c3233911af0f554e16dbf38446667cc8e7ecb1e5cf89b790187ecc93250fffb859d50f9ef72e3a4d1a7ec74cba99e5b67a876f2298ab36862993335747ce819d99123978d5d08929a03e3876db9c7753f53c985aeaead9bb09dfe85984f368e3fa11628d20a72341e0a4d592e3a42263f54b45a995b8f1ff84aaada0217447bfe40d567324c369635426fa9945dc230e3ff55da3d1f5d83cc03dd38d70a73cf0cd896c351151c7912147d4e3a7d0717c96c00698000f774a4d4c3b02ef9d885efc8cdf186b7b380bf0b0d89efa1657fa19f36e24947210bfa0e42341cb7beedb8ed906a088ffabbd590b3348a3dcf167f1f244fde4665d941907d8c9d335e175613ac5b9c11fd6fd6a9b03abab873f201b480f9939d8c1e55c07b2f75bc9ed92b82c0975698d6117aec27a05bf570bb191f2044819e35174cc6f44aa44401ade6f3879169652a79605dfe44632c9582c8d0c022eee754683ea47c9f5daae8b24a959a62505623b5c6b77d05a395ea306d9cdf61221a636e693b8e183746231aadc8b282a7b4c02bb4a27a7e47443ee932bbbfb0fb611ed2aba30b4208f2d70a1c0057bf46c0632a8c04cc7610c2c1698d144ae78dc1ba1968be9fc9583f16125ae75c2c67cb6977ff5127c186d7949f52008387959620d866cdf0f77967a571a16e0880977c9eaea875782d8c3f864ea20c567c040cabbcbaa24e6737798a51b6e6ca5f675057e90de3160c4d6a75b1b37b4d6f097f7caefb6d075a40635c74f33ac1198cec7da02872b159927e82063b1187b5e9a0648b45366997d4a6d8af8d3bb066547adb9ea2c9fd12e767bfea93b72d8b4464b8230f2f215b0ad0ff61bd5a1f13b0d034c69f958155edfba962da58908b1ade00271190c074378909bf10a451055369357f9bde102f6fe2ce325400a068ac8eef46557a241383f26012e8ff4579847fcdfd413a954555a4764fae755e44a4e6931ad299ceef145fb6f734f9d7c09f22de336384676ebd97553755075dc9834460eb914df8a1e9009fe8e775f3c254d10cd1077b79f0e41faaec74de8acfe5ca43af22ad5b36a159d666e6b9ecefcc4a8619196553347a6d6e943fd31e81d0ec919acddea00d361037b4a4df10db0a7d4de8519a2efe528aa5ccc0979552b72fe6eddb14d663f98cbf8cb39f0458a5c7d862052b3405e5782874e4bfe74bd4588beebc6f0a489479824f2b26f431d3973a16a6fbf1fad6a64839cb5972149b4dbbec7644462a243091136a9d18e00ae3f3d3bb4b3daa1d214d3848653fc3514ccb5e9820c06dad25819ec5175e5d71ccaa1ff453cdf66ffc473cb2fa1907e35d59130c37edfd7ded10eb4b599276c3559c95a1a7f1a45b3a306cfc7920418456a940dc17cb70b154f4ff4e35f8ec2376cbf4662e500aa70ac0a0ced707b5b811c9c57262bd3e8b7d9fa45fd26e7ba13d0d34f1a8e7062e9cd4caffa82e8ca8200206b9c885c3a9abe2530fe9740354bb8be181782511ea9339fe11edfb60b09a172241cc4d620edfb39ef51385f26300b900969267d01b12051c1069b22d2c5238f648ea6081d04f2976788ad8087d3b3f36bea685c3c98877692de0e3d712c5b99fc6b61281a549c387f547b00381ccb48210a746e4cb1a52cd0815bf254f9445cab1502fe3a630ccdffa381b0b7fcb105e462d5dc1beb9d887389aa1c33a9baa8a1eb462884b756ca3d85f92ff23082c6f0ec25d5178fbaa9ebd6c8ad0d74124c500d9295cfccf8c243dde9d47197fa999da5a13712a323a4da12f75b79eabe1ab529580debbcf877519cc5c48868a2d7bb7c51176d70bf150afb3eec6d600a0ea8a78e11e5b7bab20bf43616343ec2250c472c47704a8d6a7b5e5976fcd8e46602c2a9d37593650946fe2e814feaf75f32f0214bae86c477b1f7f57fcc0da987230721c8762c4ff9bacf369b541f027861cf748166f280e229e0abb758cd526057de62633774a46ed08373bab7ebc3e6a0caafeb8b2de43c2d715325d20bb97c30cda1299efb51ac9ca501de6f481c7598d6aee61da35ffe45f156eb7d4749d1b5524e5709a8eb6433e52d21929b3d66219ff5c349d4ec4d48fd4f73a16675ccea4f146b7a31312945f36195b45bb724adb5bbd8c8aafed413a6ad63123099b87104bcf57624e37a6696f05f2adec97ef477ccdc8ce92a938ce7f7b43cdeb49cd524577b8a0374937995970dd39ca51254711efcccd58f56417f4a0a310aa512b0e6faf4ecc84f1f2fae1b2b530aea22a5262541f999859043a10decc14dfa8593d8c6cbaae236970ded92b427e199fcbb6cfcaa9254ee911fde7339161a766c7a61b79e886b29407e88dc9c4ca5c4806ffb16241e63ea28e8ee1b200a9139cf8e036a26874b152d1bd238031dbe676fe3fb9c92cb7a91efa1fc934ed4e5b98581896761273991f1e2da85cb5d43ec73177818d0a2ebbe7851d470381a579a0c8e44f3477abf51939fa2f072799a77122b4873c70d66c1ffb51a3cc10081339942163dc05994c8be3f620739c0b48678ce2b87c3d7186d6c1ddc9fb882811a632453214c5165efa037bb3860e6ee8c452620d6e915ff37d8ce704be7824a11eb5fc1b00e207030ca5d1167c8ef3082ceeeffec903f1e56996332356c833b6d59f145f7e4573ce66c3c8d90e39970bc9c74030e5abda4dafde464a724119c12c39fd692c7432523a24d6fa945e6721c8c33d9ba0f999ee79b53d10c9a15214fa8481f0cb57d298fd066d197273ea20ed41554e0a45cbbf4f8e778aa824abbcb0bc4a1b4a376f893c74f553a64aefce0fd2b07e4e4ede3e0eb0ad12ba75d00eeff7fcf44302740d3b97aaed7c0891c4ad0139acf7aa9a2df062a65bdfbaff75ef59988c58c9e099967a3d2379c8897f612ee2443e342bfdfac37bbebeb03b6025c159c16ac6b16cb76fa01e6197186c95528e880d9ea14fe04d193de6aac3cf26302ea89e3bb5b132f7436d41f4eb9a3e07ab488d8250fbefe3f9ca58c1debc53238294b96c7cf03d4ace1c07a4bd3ebc99b2544e261ef6d760649ec35e601b3c51b2714565de487f1eac43aa5ddc5c97d2ab97f3bfa01120e6a3dfaddb1ddfb94eec073d24048c0f4a8f9d3c085a0bb95fe62d71c1d4ca1177b5ac9610b41121206bae8ae59558d9949212c671b0e946ced4f808ea241bab1cf0431d3035fb1f6e53fad9227770c95b658dc30ea4efd66450e15a627ccfcca9c1c25d53a896968d417d30c81251320ea182b7fd8205b9866dca45a49958f4c2f1fb48460c7537554dd5e9e771da92966207e01ed8de6d7a702c4d96b51245b500f6f2f1ca816803bf58f1e337efbe21a205a25dc26c0ef09b178441127e5ecb15247ead821eb2cb1b228bca09355ef568da66fc3bd9174f6130b8e38a2a1643deff3975651f2c9b7ffc36f3109baa332f5526d50b9322f56c5b485bb701f26bbe1984ccbb3f209a61ffb1ff3c5d0ab624fb1102f90c541726d9cb6e09fe3a05fd8999fb2f4e9634986123407408744'
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');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
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
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "
@@ -29,32 +29,36 @@ function decrypt(iv, content) {
29
29
  }
30
30
 
31
31
  const encrypted = {
32
- iv: '63aa121e9f39d6b7700e767744f6579e',
33
- content: 'ee66ca35cf63dcc3561c99382c028fa49e3b68240ac72c22615c45e38383a16ff36b076fa19393a9c1359ec0af98a7bb69374d191c5b65973c725ff9665a2fd779b6da3c79ba0dfbb3fdb11682307545c7505b24c6a92d233dfaa4e0f304efebc6e86a33f55486d966339fa28b6eb91515455250c8cde2e355a42db6ff0abcd97c1b8787f005c127ac499b3757dc51142e218cf97b6d0c5d3f1be04fef8e83385c876de3a16f2db26c939a357c923bc75d3b27ce37275d45d3513a439801a4a4d414e8c45714e2a2bdb2ac8ba6f72ef562a49a486320313afbd3c06d4e46ce8bc96a57b6474555644a5653c2a6ea7a1f21ffafa13535c57f381b2829524c235da9207cd44ee752a27d662510f2a462a13a10ad81e6af3ebb134f2edef6f6ab4dcf106f8f37c55def5be17441f25d5f04d449b251f125deca8db8d22652678ebe3f609e3c1056823c2ae0d0f0ca0e5da8b3f80b2e46197e5b8b1b9a926a3f865409ab459a34903e319c7f1e1a7a770801344cd4c2b536955dc22ed3322e346fa0ca6b70e21f195d1503739caa537c5445585b1aa8a018f626b3729f5ee63722f2a51091994294abc5fdfe8652a3002c9b00daa37985a38669539d83231a5d126620a345f1cb7b17f90492b5e7bd44258860457f0300a375be5bf16b7f76aa8b1ea36bb1408029a8c0a6a456e5a7dcd791cbb4e439eacee4db31c91faa1680d00a6330d9fe37fefdd5143a87c5a22a7aa47fbf1a9164df9f3558f9d6e3f2d9121fc7f450a6ab67f917bf803dae23b87a03a7c7502ab134f3b96dee2700b8665c5a7996776c02da4498c6c38a7bfbc42b437d5a0b3777684634814194e5f8f71295aa44cc8b2928d1124f966288932c81e15d4a8cb6c1332b084a2ed055ef61e8f3f8fc5c3396fa8e67532333c5d3abde3c0293d72855c620c60767993f92516e21f620e48b9e2643d416ee258dd6f0001d9dfc98c064f150770ce0299d3b63b842b20bb43f79184fb9ebc939f8d4c5bdfbabc85419aa9dfd9ac21d8d4d6a18afaa1500ca44564bd88cb64b4c9287378850713d8812a10e5548b72cb9438a958a8459da987e545c80a98a1fb5aab9941559227613faa6dfcd709f4a2295c8d2c8cfef65da8e3dbad550c7b4c58cf159653e5ae4951571e1d63fd7f457c531678531f192f2a3fa42da6eac0cb27b19e113016d801ab6af876578f92729e1f25e6e02a74ce141010cb7352e35ad64fca8cc293cf7d650be7a9ee629028d8f59f7f177cc47f229d8e9adc382b13ff3f6ab6d1d85c2f24e25bae46747a08f16d0368147a63c728646d40764c4b63a15786915ddd00239fe931a5091081cf64dcbbc707309e38b46af96ba7371634d25bc9ebe8c0dc1e9f30ddb75851ba2ac912c6caacb67492c8271b1eb5ecaee23a017bb3defb940d27bb9b7baadfb8fec0a836e2e92ce25c308561f1335a72048bdd4884e0bc67f33c9325f25538d3782f23060568991f18b7418501b62dd359eaddff4d6af77726ae7ad4bd5ab4fb67d1d92cb20af0899a679a80cbd8522b9d01c14033f4c9bd59f71270ef82984b9ee44c6c8c47913bfbf2504820cb2f1e882318ec48e166137c24d5381d1d46e7bf2f589986aed7ac61e10f2a6804ddbd96611f634aa0f682efbd0999c859050b630dedf4cc9a8db9ec0de52ea7f369072fc3de8d69040029806ee0749f8956ddb20e3370a12d1f5fe1a38d9fdd719b50667ec27cbe16c333665ef3111dce577cf59ab2b9d2173420ca852c5b3171a925f90b59cd191cd1ee81095a23f56b7ff47834b9814dd21b644bd34df15edf96c573d7ed73b3065d4d4a6759bbf9cde3eefdba142b6149fa05134d1777123e2f45968082faf0001dd9b1cbae311056515801e0305fd61d15060fd72f161e4846b767051c91a07fbca11476ec6208e8d27134dc78d34f87e14e81478d603c88587f7ca4c5265d2a0cd90ed700ccbccaebcef7b02e434cac7af22e7fa49fbf8e8b470b088d7ddf42c1fe936d629d9d92bf9d3c01b1ade9100f924e0d4ded0e0f865b0074ea3b4c54a814c53ec4cf07643bea0301eed778d843e1578f72dcadf498fffc087f9924d2adbec24c01ce876c84ed792053763b92a279f40b6e776bdb98c635564bff810b1bb0d3c96b20bfe74f1a5f23ae2745496bb7d2276025277dfb2f86e18427d8064ec4db002fff1d03f6003c7863667e3b4c238b33eee645e4b3c7f7fe84fc03521f12a8086f186ebf8d7908dd1058c4e789e7168443a20eea402662ea9ebaeec2f79a2809e590ca12ca50f1d39df7c5549e797bf66031e90331070616edef70a15fd1d0eadc062b5dc235840ed58e4b71be46d0fe8e16446628c477e0e8f48737683add1017063cf9d8fa681fdd53ac2f73f1aefc5cae9bf5ccf64caadbf9e6d827892bb4c4219204dcec77484fcf5e1509790d517837898741af4f12742ee155c82eaa262e7150753abf43ad48ae04176eb06e7d986f27e9bc29e43f1af94de0c05bfc57decbc417b2f5b7ddf736fd21299cee6c6f977ec1517350459fad36c8f2ce1b5029d308eed6a720fbee2eb0936af1abc0aef086387217d7f75ddb197acf4da0c6a51b67b826f0b81839741675ca5da78dafd6a9fe4de83e13e1d5075696d7e5a5c897067592a0e89bda744e133fad5d3cf72accc0b88561717e6d355979d900f8e4e15157d0a9382998595c563ba2ca7d3bdc5c2f265496f81a0c5adfd2bbc56a1a40081c86b18be82ec67d0b41e0c8c0afb60af2016e70a06101918578a809d7a08aeaa05140967c3a4bd6d400950f5821137eb44807cf02eb3e9d046d6252478a4b97ec4cc407834e784407fdd2b49440e67734686ef1b175287616ab0503cbbdff8736b6b79a60adfb25f4b43d64c976195383825976296eae1a1120ef5537c8a96ef0f350362b892aef11e81876ea3f8f6f6019160e3b375f9a92c9801a7f93c610a64dc8ec63d4ad52d6afec6bc6daf1e84d608583ffd8157cdedc1e69c5a66a5e109bb35faa962850616eb11db5647428c2d31baf78349d0b52502312cdc1f3e34784db306146e0f0a64dc8c2c2412774c06904672519e456609d89f4cd9bff77dee63630ac3ae0cda9dbed83c90e04256dbbe120b46827a889952d8779268414206aee0fece7c18e91fd7f290470a1ba7392e1dd95693efede52811b8ebfe6ea2cf4ae8488279ba36ce0e44aa12fb1c46be62fc7892ef540d96dcfb016641545ee0cbccdb8dd634906075f21823f52dbb148c9b9098f8be3bffcd0d8957b8a973004d575774cdde8bebe4609c7ddd5fc9850dfac3520ad1643e7b10c5edc654039bbe6f9143ef1eb0ce37413471380add20c8d990c2ba2aa2e0ce4d3069ed148f32a1a5d62e797aee211a262ba39c88c9f2e782555e668a7a0825cdcbba73af9cfe269a6eabdeebd810244369234dea0ed92e0dfa758f82b05496274a89b4f64d3f9cc44e800daaaadb721ece9f74fade500cc12af50e81b4aae281bbcc38ef4e67c7b94f7465d44fe5'
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');
37
+ const { spawn } = require('child_process');
38
38
 
39
- // Get arguments passed to this wrapper (skip first two: node and script path)
39
+ // Get arguments passed to this wrapper
40
40
  const args = process.argv.slice(2);
41
41
 
42
42
  // Create a temporary file for the decrypted script
43
43
  const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
44
44
  require('fs').writeFileSync(tmpScript, script, { mode: 0o755 });
45
45
 
46
- // Execute the decrypted script with arguments
47
- try {
48
- execSync(tmpScript + ' ' + args.map(a => JSON.stringify(a)).join(' '), {
49
- stdio: 'inherit',
50
- shell: '/bin/bash',
51
- env: process.env
52
- });
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
53
  // Clean up temp file
54
- require('fs').unlinkSync(tmpScript);
55
- } catch (error) {
54
+ try { require('fs').unlinkSync(tmpScript); } catch(e) {}
55
+ process.exit(code || 0);
56
+ });
57
+
58
+ child.on('error', (error) => {
56
59
  // Clean up temp file on error
57
60
  try { require('fs').unlinkSync(tmpScript); } catch(e) {}
58
- process.exit(error.status || 1);
59
- }
61
+ console.error('Error executing script:', error);
62
+ process.exit(1);
63
+ });
60
64
  "