devicely 2.0.11 → 2.0.12
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.
- package/bin/devicely.js +1 -1
- package/lib/androidDeviceDetection.js +1 -1
- package/lib/appMappings.js +1 -1
- package/lib/deviceDetection.js +1 -1
- package/lib/devices.js +1 -1
- package/lib/doctor.js +1 -1
- package/lib/executor.js +1 -1
- package/lib/frontend/static/js/main.96600727.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/server.js +1 -1
- package/package.json +1 -1
- package/scripts/shell/android_device_control.sh +6 -3
- package/scripts/shell/connect_android_usb_multi_final.sh +6 -3
- package/scripts/shell/connect_android_wireless.sh +6 -3
- package/scripts/shell/connect_android_wireless_multi_final.sh +6 -3
- package/scripts/shell/connect_ios_usb_multi_final.sh +6 -3
- package/scripts/shell/connect_ios_wireless_multi_final.sh +6 -3
- package/scripts/shell/create_production_scripts.sh +6 -3
- package/scripts/shell/install_uiautomator2.sh +6 -3
- package/scripts/shell/ios_device_control.sh +6 -3
- package/scripts/shell/organize_project.sh +6 -3
- package/scripts/shell/pre-publish-check.sh +6 -3
- package/scripts/shell/publish-to-npm.sh +6 -3
- package/scripts/shell/publish.sh +6 -3
- package/scripts/shell/setup.sh +6 -3
- package/scripts/shell/start.sh +6 -3
- package/scripts/shell/sync-to-npm-package-final.sh +6 -3
- package/scripts/shell/sync-to-npm-package.sh +6 -3
- package/scripts/shell/test-local-package.sh +6 -3
- package/scripts/shell/verify-shell-protection.sh +6 -3
|
@@ -29,15 +29,18 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '084f499fdb711bfa5e5420e643d83e98',
|
|
33
|
+
content: 'dbeb58824dda43f620660ff7df1836fccd65f605e357c278ca17518ad195dfa4f0d3a33e2fd37597dddefef82e894928324d362ad4fa05758953e5c6f2c22314754aa3ebfe9287cc14af3f3f38fa27db49aa30f11ec6b1b73863163edef9dd028dbdf3750a471ff77816c24a1b7082ecfa5f15bf31f8217a2e52c4181d347aea76eaeb31d193d49da604f369f425c8f2046c061f2a107b4ec5c01c7678a44b4a02773935aa83689bdbc697ea23e82a2e716afd763d6e5172efe0c159a1d963310338e5862b4bee023b99eeefffe037aff5fb7b9a7b66ba0d6e3d8fa2cfe08137b7652d5ca56dd747dd1456f172dd5e94a5aa31dcd565e807887e2abaeba811b21f1b20d5d70a0d4a4972bb40b40db1b9958214f9a83af2b52c736a81ef3137ef485b665873b7c304282847199ca8afb563e969f73ca5e5b6139e65d4e9cdd5ed42efddcfe982a95b5aa49e30dae80df18c7667d909c5645004769b9a35b5ad33b45102327136bab64cb011b92657cda5593ccbe3d0c3414cb73ac8495228134dd9ccfb5168c5bd88b3697c13e5d58b67a13b8046fbee68351326b5f9c6b92f066d95fc7820bfcaec0f0f4d492c0cc937dbc36d5d82790264f750e1cff418d8c554a7ba51dc1ef0644cc0f85c0c765bacc3b5b86ebd7ee0fe49e973c3b2a458b327f2c76adddd81cc0ffae74502890666c48f3f337a7198a53fbfb8acb09829b1ee01eb5876966a9dab6e8840fcaca1b9f437fe880f7f3672f1858e4d02ef2146e73972bdb349ec30d53cbff6f72cd1e5f3a132952081fd31c8b3a35280f22d7f7f384ca14fdca19761167470680c4f2e2a9b736239247ab226ba64fad1235ef8dd21812123aa11b7bb977230164a6fda2693a9c4e1b7908adafc2b791a02a7de66dc670c3aa209c2f10ec72dc5f0b315c5644d016fcdf517cbeebe6b45aca7907bfa10f8a883ea8d3e76d9bbcdb5ca646d0a450957ffafe9d8a1c41a3a7b49629614cba469a31d9532479df6f27dad4503b2244faf71e54c41f6f583b60193dc02a1669832d7a2a2930c520c2bf27bb557fff5b99f780dfc064f9a1bd8cc268b2e3bfc157f6e6d160657296cb125270e6c4be6827957ff4bb6d6c6befd2e4d51742ca93493f705c6e735bb82ccd14b7f052fbbeda08f42dd0528372e21370e6f79470d172495633f62589f709ee39546877f577ff4cc2979a9c7b5293063f8d02e0badab3582d361b519d08b2b2828b636ad6db3e0b78d1b55cdfe7a5c9ed9780e0cc36efacfc67c8fc411e0c8962e03c74248afa3843ad27fd2e35bf3d2dca88c289b0d31c8b5cc65bd8895e7e3e82f1d1d2e2adb0dadb8b2aa66d8cc5df049a699ca4e0a67547185bcec11ef9e1a9c9e3f648c4e914f96f405e0735bd61cd3ff4396ef4cf85283f15ad596d05008f9c91c83df668ad5f98718e6f87aa3b85055564c34c977275d6d916bad63b79bfcf7072762633f51291a0783876156962fa80f1092539200adafb1b656519860fde54f3cf8776badebbef96ab3677e1e46bc188c8e8444d63bd96013fa9c74f860819ee83edf73549c0856d5a555193be41592a5cf9c31922cf479e3c6bfcf911e7a732d14b16b1498b309b0e345695461d600d117252c7bd92292e2f632d645b7b28a57fad611c165694db8a55d4ccdb3e40d20ba3a9ea53eb5e6923797a70fdd577fbec9b07205e5185a042c12271693d706c10ddd42790c80ff3cae75066d33758e990e5ea0d0f2d4293ac2e535d55ea1b23110c3df8f2718c0956ece4587ef791deaa14016f214a9e5ac77dc0cc2f2851aadd505ee27d68b77355cf5149b042a582c549edc2293e18e9c80e0ed2f0cd1b4a7156d787f0dd028342da78922d655d5ba29aacf86f9505bfe8b1c13ae0723c6d43c50f5a051149a726c15de51babc4b9d409d8f1b83bd8ed0f48868c8aae7bbe7e207a77386f954fe742fee79d44767ae6b264418fc2928251777c01d5824adca7a6ad396b8c498119214a6359dd019373ca0010a341ac1d8c8885a60013ca68d04889b17f62a942d80ae5d17504c0dac298177a4f5447a11ee199e508959f5172f6e32d842904b064960003b7851c4e1b635b4894a772cb5a7e41e541089001f1840a8ccf08eca6088edf0fd961ae9bf2b756a4f10a1e2e548f8d8580caaad7da23636f28acd63e73fa10ee354582352260d3ec93951e538a4f7459cc3e57dd3e53f11345a548bcf545f18a0c721deca3fdc066dbcc10f364e2fab7ed238d33bcb54d9c91129ce3b87ed5ffdc57ec2a1346d4a57a34c4f3217aa3d0baa4943fc78161b06a9e3c84d4fec8d1338683dcd41f58b93237c28d1720644f4bbcc7fea7e0d5cc9252ef08bf5dcf95b599ebb9593ac998992c1dae40c660e86653782cba08c17ddc57d66be5b67635f6bedc3c7746e4bfed41079480994e0271b1316afa1cc7f2731ff5620fcc2d8d8928d70b39724948f4dd725f7c3470bf2b31e4fc517ec5e600ee5bbb301457f76d06be00fa182ba919ced2687fc305226459c31010d59e587f689738c6f9ed5390672a466927112765c86a89a63dec5a92f8c8b8e3e3f1f9364cb718251c49c53281c9660a60a978546c10bde0f94a9b9e3fdc9741fac28419f27cebf2e1b50ac43'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { spawn } = require('child_process');
|
|
38
38
|
|
|
39
39
|
// Get arguments passed to this wrapper
|
|
40
|
-
|
|
40
|
+
// When called as: node -e "..." -- arg1 arg2
|
|
41
|
+
// process.argv is: ['/path/to/node', 'arg1', 'arg2', ...]
|
|
42
|
+
// So we need slice(1) not slice(2)
|
|
43
|
+
const args = process.argv.slice(1);
|
|
41
44
|
|
|
42
45
|
// Create a temporary file for the decrypted script
|
|
43
46
|
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
@@ -29,15 +29,18 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: '305a19dba663d325d4a52bed2bb1251e',
|
|
33
|
+
content: 'a9bbad7d2d9203e0f848b41213ab80f122330688a63ae1539a912d1672543bddeb14ec9642991aee4a1a0e245e7628da5d783ddaba3091748f585bdb2c9443c5dae4d90a5ddfc171e8014077cca182de788c0cd607960912b2e24aa787b40eefecf14cbb47599818d92fd1fdfee25c372a400bad00691476ebfe735264894aed8c853a7ac691e25317d13eec575458680ae8ff0335acb84b9d5e59266a6b08e23df4a4502df9d5e160e107bb4d41733eec700b4f1511e70a815b63c692db172952655abab192ec43102e96f889ead667f481a4b7ecb4284ff6f3d3584d8961690b44ade74037f4d8adab40629360979da19afea9399e43aa9c8a336c12aebeb18b50534749d7ededab87f05dd8aa225671e9064454bd8c2ce6c576561ae7f7cd299d4a1fde02fa04c0f6de62b335d2a49716c2869060bbc7b39656339758efd9f55e7a934df0af99ff6a54913a861689b03ed7d5fc4b20e3e491da304823160e4c55629642f6a5c345b6303cbcbe0f46f31680c0391a29b1ed8489e5fe028b971c3bfa0c0469c8aab6aa14cebbe4be035909421655d347011ddf98970ca05d623cae80c452795e3a8caccf64627b34391d4f4cd96fd34fc891e0a3d9d4f45a5d746c2e854e8786ee835d6edabd434a0d24412c2a0b5cfcd4e40b6261314f8db60e58794111abf1bdf363b23578ea4850693101a24757a8d3199ca894b58c7b495824952d1d4e52c2be7f9a860369e8426125fbe13ac452db470533ba3f1f8627cfd4ec07540b3f3c16afa1a2731deac99a2e9bfd812b23a99b28807ab288ddc9f6a9eef06925e424f397b5f51441b16960885f8897ac1c4d1519393c95c1bb8a3e6eaf3f35f1ee542c6e9b4d54a5e3a0e65cc7581a218cd0a9aa8f9c1ba52a4c44d8e826f79c0b70612f84e96dc4f1d0baaf7367b5f46cff57cdce2b025a82a48fc9296233b3b458115dab0491ed6cea7c52c0fdc52fd422df1c4cbbfb12a1722600741d6c74bc90f972e2f412ee916e8fe0732acb933b22e9b91bf28134fa53dadff443830dbdce517fe478c0d7d6f44ebe212006f3bcbd83ac936fbb1eba4f3585d7db5c5fa93cbcde3682f2a4ddb9ad03c5adbf223aa5f157ae6658081f361e82ac4a671bb840be4088e53bcedf093c2433c7b255bc9181909fa152a9d154d1d31cc9f00dd8440472b51c3966036c9ebb93ac9fbf5eaa624c989f8b20cffd727788a6dd4f4b4701f4b93cacfe4ea7b8241214ba40865c350b8c469d2e8e8d1c274e22f86586c3397bd26bf8b5517c105b87d2abd18a226ae5753f0459b57c49ad45bd331e5e61ed734dea580711edd1de8cdb4e11f6089b077f1519b29d8107094362192c68f81cc1ddbd50384fefa5239ef3a3c5d4270e7397281af8e2bd24fa38f75dc793e80dafc2c080426fc2c1622e14a7b60c53103b10889de80a887e491095e50620c20f2fb5be9e114dd9cf37f7a571e6db619cabbc75281f2f89faa5a837af165d3fe0130dd2d25ea6a14321a03f251bdaeffb8d7df498f18c059e6bd6673e25cd12d066e2acdb302f1761856695dc2d1dff7fd69d5a23a43bf98ab371dc151595820c3b53d0f8d26660e45de920a424b0b7401b759ca6e6ea28bb6603635c43f0410abc4dee7b9a6c7f4fc08ae0d019233838abc30d00c76bf6ebf1b109077301a98c0753d5cab189a6fcc1f4139a06e851c00ca4e75c0b06504031b8a2a28a01cc627ffecb86590f5f6c8049178606f92f3d67b6dff10e22c3c03d9e45d39c134de55147678a42a3e243f8193fe4e4d974af2ee594efd8a9e1f07350d418ba459a16184a3e7531674d89dd9bfd39d6f6084f2ae64f6b8b356f3d1ed2893fa10835b28e04425d4df2e1d4c4b306ea57315c0a825a65f8d85458723397c660463af315005548564887f5ad09d02f13fbff08a0a1e3228bd906b39d1d0f9c9ffa8c4deb2748b51d62779653b7997195cb54767514237967af63d2d583b3d05b5d41da341b99409495838b9bec91a2611ab7fd3d6328472e4e7d3c9253fdf8b47d4a604048b16c78c6cdb32e182d619df0806aac0c605aa6e0c290544ef9763f83ab8fd9c6d3fb77d621bb26f087d38b2fb6e3b0822925b0ea22defaa2a86365adf89d65182ff4afcba03d12b71ffcb36bf02b7e6614f2022e069754878ad42430d30b1f4a8ac7b16d4255d9426b9197058298e2255351783fb656cad35171a7a7d388d60a592fba5a35e51c1e58befb81df51b076659082add4eab83a742cab64ed1be4a0b5fbf453b5fb41a14fd59254c47b080e5e66111e1296f8adb77c09f628647673e83f29365bde2a12613418ba97aeab27c7aa1f2df97c9b75cf9a2ac4c281ac52e62674b81f618522fa9d82b8f7f0111c9e475386df6f77bfc58c6330bcd921a4c84bdd2f0aec55b4414e18954c63a1e48e81ca7e174355a333e865043a97b868923320c5f342604e09effe0d7a1486ca20537292ec3b768197ece6e37a63a61269a592e270157449634dc4d023858c65d5332acab888755f2a18df86f003325b35f170e90d52651da5e4181f8ff33b82be0c3651ff6eaba9316a9b45bdd7de3f3464456806c7a6d80d7289cf4daf93e0b06d27b22d5265a84fc35c4c294c24655b1048ff88617829e5a3c3f4a93fc48302dc5caea6b3bec934da322359d8d1eacb0b4d8039870e55caa987440e87466e04e991d7d2d3310e76187652804c1371fb655352abe4f19231e3055d664bdd894991e11ffc8e9c7a5b35d4aa51a35552ec84c8817edc1ce0e14cbcd1837acbbe6c606ecc759901e9f6257665cb7a3b2c9335929a9664a549f2197a7248c8a373ef9f106cfeb4ac866ea99ce2174d68548413674b14237eefce8307f3d71f94f36b65489716850bbdac0ca8c0c448b3e60f9ff635c32b92591f0907af20c9f01501b612ef0f3cfdb315aa153adb768b2747621598ac6e8ae47d98b22242e2e0f5e2ce943de91c5d3c00c5a26eb65398bd0f673aea54075d3d587e660e16020442d68a7293f78291af7bc3c7fc8509414a24ea1da657c3c376fd0e712bf203733f3212d1de504e1937a88852ec8e6da7699f0b0f497c31493dec75bdbe8a4c67d38f1f129db24a0516dbf6c6bc99e6c639afacb8c81e7f171de28465ddbd523d7483a4db90c24064120695a03cf5a41619d7571e2aae89d8ee6eabafe08cd072980353143b7628f6beaacc914f05f4f01ffb0c3760a93c933dfb972820a902e944f643fedf0f361080de26e977e323ac0a281735a396d91e79f8d979fa162dc5cb64e52e3172361dba7952016039206606c538b510d7c7d1a6fefe048a84b1f8b28a05dbe5e985066802a8768baf62ccb2713a0eb7849c587d9a3d73032b29a251a2443a257c9da988b0296c6ff4e6a0cdb2abb80edcb0a185a6ad40b37c646341431cc33ff01b36a4e03203a241f06d3bc07abe6a62e5d5254e5bff4e4388feab9a81b4cfbc71b7a36a296a502e615e7b2dd89ed4a7344526749afa3a2e929b5c6886e912dd5ddbd07747755760fe9148e8d2c00ffcebf3fffdfd9f0dc504b31e8ea050fb763e3b26c08eafdcb8329b00803e8e84a67aa578219ac08da4f7b95e71eb462f81f5f4b3a896b1c8d5123be76110387bfef807b8b7d6fea95a4935d455f3c1ce551109bac3523dc900acacf093db63e0a2349c6f11542dd815c09938fdfa3d1a64398be79219506be18c03bd076aa43f50cbb5ebaae1e552c30575e7f5836b56fe6fa0fee96e2148fe4a936a53b5d4b44bce7ad2944c0b89fcce44da3723b6301cc6229f18d2d42e13217a0dfadd67494ead833b184ac871846b2722ef94c2759422366c8e221e3cd113bf1345ec4714337c510d59fb4c76869eb2e5def68a765331fa35a7741d25c5fe04a40176458582196b2d8831ef5113e215095f755a0be90d47e10ef192d9203a861ae4ad0f36da4e2dc76d7cbaa048e950d6db23843a883f86cea17e592a4493b66bb257d50ab6b1b535a23a6bdaa246c2b8b2d00222fe9d56d6bd19890b869b91c2ed91dbc02e5d22f4596ad85b3282fc1060889c35c30475e58886ad94647e8de5d72daf57cbd198fc5ec5b0eab67d7d7f8b4df20be6942fb284f877eec2be39396b167786bf852f73688c9f0c1da63768bd5e22149a0c0a456f27c05b590ae06e82ec9a99f6de3b315896f5f4e712e1faf03784104bdefe2fdbd2d9b341ec9fb057797f028c6d8f22f723eeb207c7329e4e97fe22c4bab69f16217d05af903580653052aebe9a6db219af754b11d3364cca12f050dd9383b10cf12e2ac1c08370f8bd0db35e09634664742eee71ec0053094c007222067e3a7f2dea7db7c02dda0f3be7f3ac03c611dcb8dcfa3f84f61a2f27999d2afe0653e65bd6e53e223e3bc8efc855e8b8f70998d6a712d5f65814318bee11873bfd8a362193f66aa402cc7db806735f6907384f586f1dcca3b2739b2c93f50a3460f85989c02592935457c9aedcd72ac808c4efc893116389e47558d86f90ad8caa541f74f5b8108efd5349e4b9f04a7beb98e4bed7edd81cc3605561987d6c5d731268c88617425411ae8f94ab76eda8487a2bd15f9f68116de44589bf020aef9b542172db114570b7441c521cb45c94c2ed72bf8e80696bcf40f74be1ef01308d95c98f9d6b3a61c8b53df7d9727551370cc53d521e6c48ac950b05f666e9d73cca86e371dd50c47f2d1f78b53c9795e1f1c559ff06270e83c81c9225bb01bada08e71cd49022d188c9e0b83dda4f163fc0549814225f4c3fb297477677d666697f8e274bfe3390e4939bc909fe8a7e'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { spawn } = require('child_process');
|
|
38
38
|
|
|
39
39
|
// Get arguments passed to this wrapper
|
|
40
|
-
|
|
40
|
+
// When called as: node -e "..." -- arg1 arg2
|
|
41
|
+
// process.argv is: ['/path/to/node', 'arg1', 'arg2', ...]
|
|
42
|
+
// So we need slice(1) not slice(2)
|
|
43
|
+
const args = process.argv.slice(1);
|
|
41
44
|
|
|
42
45
|
// Create a temporary file for the decrypted script
|
|
43
46
|
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
@@ -29,15 +29,18 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: 'd6c491906073eb4a538242a9a966a62b',
|
|
33
|
+
content: '6bdf562c3ade6c0102339f0e6e138b8be5d46e45602c4315834dfc18f7a3cbdc9d20e566089d816ba552c34803044923e0821b3957dfd4b84c91931e2051f44fd9f8578c9554bed3fc11d536c80cc13fa7a43b03a6169f388dd60918d0fc05cbcbdb357d46b810f115cfc87e9490b026df2be6cc88d47c376b22c18044fa32e0446bda4e2932ede5d3ddd5ce4776fb52d9082aa03be3a2730dd40362e48320e590ef6138c6797845cfbe78f1f64a8920c7940420b59a11fdfa935e9ef935c501c3216d822ba965550a4e43d5da3bf46ae3126f2c4a9a15de36e5edf63150a5164a479ea4b8f011105ff460df243fc8ef249c0a82b18b0072f1d72a964cea2ccc666034f7407864a9eff722c2dde91b3a3f618de021205f0b797f83f65e0803673a64cfaf98623a2dbec92b647a8bcb5def902934cfd66d3ec926912a6250f94f8ce38b24ce6bd3e7d83d52cb2ce8201883c29cdc290f13d42aa2f6d05cc05163caef4520ce83857ab513fd8bf8377d304f87a8e11703d237aaa0ff15adf5d868c9d57f0037a2d7810574993871fc01bf8ca807ee0c0fa77c7453150adf2ba1515f453a45b2af0b3ba712a5a28862aa5e298a6fe5c05593c37758a0de2ddf368c2bfcb67d20785879cea3d746668f4283bdc720f2fe86853afc6aaca763c183a26006207ed4ed78dbe8b11b6a8ac1cc605b23594c7d6f846256ea842c7075a1069af8a5bb829f1b8905ba7d94993251c7fd6f8eb6b35390781964a3a49643ccb78aeba8eb90f06bbdfdb1f23d54ae4766a421717dfb5da2a9de642fa70d968c88812b3dd3fdbecea6b06d06a255dd26e519376b6c583c84179d05747c11f79767f4799de73c8d65c2ea19a1609df424eced096e8fdce2d97d6571db47d33983026249a5cffc593959c3a5a4bf826b418e9801a20d1be8a63f11613520ed2fffd239c4fbc3609f78feaca1599ef5d206bd49f767c7a6956d1791a460605d3daf00658668987659731cad78da8f3b67f225d0be19fb1130dc7ce53a85c1839839a9975d6e2b85e9fcb966e82dd7fd4550968ad1f46c134a609399b27e1e8a2a25a760030b0da76d8fe950509271089f07e24f6ae905c9256e388550848bd1404740a000386630218d5cf3d0ed68bc109b35afe26946cfe6d80ca3092e6f3d0846997ed39e2a005a92ad9afe25bfabf2e0b50673166ef51b3a295c706ebd92e058e63694bbb257f0b37fc90c1a94ced16fef22a76783f34346584418bbfdb22ecb1d633d6d196d26321bb09b28aa1ac9936194cf663b8077c4bda7bcf7ed8f3df4594f0ac945dce6b1a53c8f0cb5f9d0d5e50234b1d8a4cb0912bc234e018c6b494d83859f908b9745758bd98c9a214d030ab208fe09dc13a4e2214be90a59bdfbb2d0e4642ca91c02482fb19031d9f64f484ddb12e32bf3f1906640a518f7a781a6677954d655620e4e53c238209cf3d34ef17f9488fa1a6d0a12fa569bcb9556c4f14cab89312752eca829983d89cf6dbdd3290eadefc5f078e7af4f3a34a80d8f586a6232e4bbc2a3557519a5acbae97ed82cb992bc360ff6ec7c3239291c723ae01cecf344326b0533ff12bd13c60a9e2cc90430de1c2b9fc5c6b0d39e9338c28c188aea7204bfdb2d51d6acbc8486bc62877d6d97970134de86f1364f533bc28cb654fcab8fd7dab78f7ed49cbb40d72f4de70c16d4367084ec55bc48a5d28c2e1248ff44a4211cb90035949920cab49567f8df20de5b9f09de8614aa782a67dc12d6be656bee59af93360a402ae98168cac484db9788459631a7d43d44850a39ee1c142bd720960c12b9c097c6fe3c0c31ac95b823192c182140458e87807df0162c9e285f25709eb58163f484697650bf5c61ac991f40786dc5e3d14f75ce907b89b75dd2c12438a4f4cf4c9c10eeaf7552bbf7efdfc1b5140015d16f425bdb66d6b6bfaf5b571bd6b7ad6ff926a2c75349f815f73b8ab6cb40b48fc3c9cb8548ad31713f9632691111a5680ed15ead2fe23060d0528c0087e214f982f6d5d45c6f5209837872ce7459866d51a06dddf41c85bf8fadc528f25c4a0c45d9f6efd5d1b7cbdf21680faf6b741033d98cb4a4bb6f857811579632894ca039f6b6c6b268340595a50da394efa0c6e739f2d6d7f3207f2502383eae03e8600c643ad762fa41f2932a0b3efe1587411b40d6791a113c6d5dd2200762fe778daeb507f8d01871ccaeb75636ed2768120a6b9374ca26c47ed1ee62c70246bf204157b59823ec3054625c6ecb574a0379893710783fc7df42b391690e75f6f322bc1c4cf49db20555a639c6df67704126bbeac9623402f3e500bc5278067ccf60c88f3e27914c4f42181b5c00e22f9356cbd7cd2457c6d9157d2edc44ddee9b03c52cffa77862aed4380ded7661a082af2db5d4414cf25a0f9a27874a7020cef0139d587f87def2d4a90371029c98bc0adffac7898325e07b815e457f0b8f180099434dfa87610902095aa1e7fa853d8008fcd62df6ac5c0e1d303f79174a6085639b423239a689964d8521c81de9158d180c7c07935b3db08865beb7abd5cf6b2535433efd53b53546670492fd9f967da186f3dfa13a99e9fa5b4a5ed88671e82025dbe7daed88c848522b0f2cc267e1534e0094891559d288709159c52541b4d0711439ab9683ddc30a6757463ea95a51969c4a3de5f5f39d21c6ffc566a4a2385436219f8a34ebf1f7a0b69e53cd8c018e6be035864baff1ad6025083553cad10f81ba4aaf9500d360c9d8aceee5b659fcd96d1248f4cc65b8a00bdf6e3240a1d735b202898b76e23f654c5e5f86df16be2a7d3d2949373b3e70d299d66995c5a20ca6f87df506201e25b70c9a714177f525aa1587ccbdb56f6861a4af367eae935376da53f1a74ff9fec1ffd0494fc6e7727d7a3c50b3619499e9548efff960d0c2c70ab7d1ce242b311a9ca23a21c6978cec8c0b3b37c895e33a97fbe24c2c81dfb19b4e9324520bfab4543aae04e3d337f7a6dfa28d49a9bf94de337babf8d51a7986e6d36e43bb2b35ec1e6bba7e5da5c70f0bc5b81f33db6703dde124bd09676ad036597a202ef43fe26844b4c1a4bacc7f8e2643d71726b5f249b9d646429a2e34de03ef5d5136acd371a564c4d8c523fd11d707c62dd2b9c4c4a7ee3c2093b101480057b7c4618ef676d63131a11b50377bd1817e16b652aa3960febb26585debf23af6c07910b1cc3d25769b1c282c099e6a444a75a67d11e9c930e7872fef05f89708839f72c0d0bd4d3a280da331b45118c0bd242a87b5058f5c0319bb47de8ed260f8c3210c9b9917893b3ffefd083fbd03a047aabd5f0bb47d266fd8ee9a1ae8135816adcae61c5febf9ad5b2d5ae57496932a8f32bb9dd8aa6dcc81f1f70c0f694204758d604829515bfc1f55e966ef2978cfd29dec82889c1d63047a02d73ea5dadc75a309563fc290acd00d2abe28ec85cb4e5f7c88398359dc67545db93e5fe53d73f00a688f5136dccc67e87a81f2ef97259c74c77918006851ceae0409e982fb546783a3dd3898561c5c8de295008a9200ea47a4c71de5a76a4d2b80a002e3955577c836b9f9bce021e363ba687808cc036f2f9bb58609c0307729b7ca15d544a52752cec325b5ab2387c3997d8ab408d524b5c54d6d0cebef3d726260757a26a55b0dcc24d2fed13ee5106934ac29fa04c9fe5584d6c13bc54716bdd1a50ab09d74cada334d3f51703826c9b273f6e2abf387ea82d39a051cbadce6b1664b5d4bfe5fd0317a39ce8051347cc400422c20c9b08548ce8eed968ba67f134f8e2db67862072745347af5a60bd31a8ee516318895c261493406cf54ae0d3b5e27ffb1073d3cae0f5c3823ae28e89edb7456c464efc55f547fd7bcf6abde16ab61e2b3f06673bd9eac40b8a426a29f3ceb065f9d9319b33c6ca90515d60b3967fa62e2ff1c846f808521e60e0259556145b8a0634cb3be7a96c55876e1637fba8082b18ebc6cc85947d68a3e9632ac08f623e00b0af70051bca5268f61266f74397557abbd043a043831f12658b2b94b08d6ca0a8ffbfc026fd0f7cae3df719a2a036913c62831b8e785989ae6cd4c10b19e1ffcbbc01143ad7cbbeb3ce87e412940fc3636db15f9c652a75be539e7005e01e8ed0bef40f3dcb65d603021379c3b70453f5e7e9fc4186141e5fe916d64a33a8adaf733fe6626002d5771d2e3867a16ae309a6d2e7f8fb421354d1e0e5b8707d5e08c68d48a10a0143374c4b188e21607e380074750b281962cfc5435a88560c09adfffdbdfba51697e6976a30abfbefc6a04d35e6b0f333ad2e5b578dfb8f274a6d611403e73b505707f0f48272b692c1282e5d4599559db84bd099dfb2dbfd13556ed60ed2ac1ecc7f280650b4e8ea31d20c30adb4752cb85c6b10e8aaa4cb1fa2d7c9ca36730d22da0731be351cb9b5fe2ef10d778213e1ec1c9ef3343ac37cfbde2976248bc665c4c6efe8b75ec136ef6b4097a9eb19d53da875cf0f8afd660a675a47eba37d82e621852cd71d1e774ebb26f26a3cd9a654ab5415f0e83921cfb41d3b95c256efa8948979e19f1f4271eb8119263fd58d001f5b1b5b75a496dd8b71350a38c6615ee78369b5043e9bb960535940230cad430648cf524e9c1d234f87bacda90d46770b7632008029b6af3e56e38db9fcba1f2fec9b70301113f01ee03a04bbde88b59a3badce1520cb2ae26edd29198482739239ecf0b205c28ddf7eb4c81e0379aebdbc7f6ecfb5506465eea8986baf2ad742a81be5d4c4281c81c33853fac3ef7c792734c67a59b1a90eb5155368113f673862e558ffcdcb7f98b46b9bc4663b4db9d7815716f8056274ee494f0d2a51e487fcdb72ea0a4a353a4fb094bab7c69e62062abed451f9ad7dec9749c93d4bfe0ebbaa2579299ee7851c357cb7e16372082058251efbff8998dfd87d8fd9fda58be15d64b13036962759001615b3ed002f98b7405721db1086a09b61082fa46bd5fd1440f51a7c9403e583488da90d1ddebbec7b79e8fa3b966358fdd5e56'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { spawn } = require('child_process');
|
|
38
38
|
|
|
39
39
|
// Get arguments passed to this wrapper
|
|
40
|
-
|
|
40
|
+
// When called as: node -e "..." -- arg1 arg2
|
|
41
|
+
// process.argv is: ['/path/to/node', 'arg1', 'arg2', ...]
|
|
42
|
+
// So we need slice(1) not slice(2)
|
|
43
|
+
const args = process.argv.slice(1);
|
|
41
44
|
|
|
42
45
|
// Create a temporary file for the decrypted script
|
|
43
46
|
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|
|
@@ -29,15 +29,18 @@ function decrypt(iv, content) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
const encrypted = {
|
|
32
|
-
iv: '
|
|
33
|
-
content: '
|
|
32
|
+
iv: 'e27e34b98a90543da353a14fc75f2e1f',
|
|
33
|
+
content: 'f478d7c49ea6ef6069d2dc500ebf486df6e2109cf88ae942c68765aa06c1c9f73a488451ebf64ad41cfe7912b872d598bea2c52ac53c6b1868b7bd4ccbfdc9f5080ca9c8db58388c2a4ae7eef9e0724832c4ece1576ac8b7df4545f494beaee0c047cebb31305657b1f53cda09b2d5f16214dffb511175e241f8c0e4ef7ae2b704c5715c1e3da1c6689b8483579d529b3e04ecfa9a8a928b0e2fd33c2eb50a343c0bd0cd025e39db933f94e210df9bec8656e27b69067d589dfa74197e13b5299aa93a530c37725b9a7e65819934709936ce7e6a7024b7259d9411139a5f87312615f3698db9c4969369eb67ae73121cdda9e2bd64bb14ae329c4795c2c79ef804a8fec11728da7157a55aa084587b3688b2a2814662f301f0ad0ed2f87c7dd95b7559099851797293f0e71db8e0c698261e5fa1532dc453f4d1ccde654adc303cb91807c99940db2700b4c9f001c1e83afc1c386c077c2e3020c83f402bbdd04f38c702697f568d9aa5c5eba5c1dc0e349f5fa33b74dd678fa0a83c9683da57b4cd394d4b2bd564c3ea04d63e7f3c309bc955b48a0797597de72536239a74895c129e54a15c10f5dc515729c82a6b78d1f44aa0ff07e1dec30759dc6b408689176496dd7b7b2b6139b9d52c3099179a05ee874e68ddfe18a4d5ab890b7da35572a198bad9d8b0db3212d02fa4f911871b16de521e47f95258cfffdb433dc22d01bf552de65bf0b990d7dda611dc1b65eb11d4790aad57df89d1f66e14665e5dd644d52a499179b12d10380828eebf6e881b20f5dc425f6bc2b0075c7221dce106f1d4507146a520c5491a5932967bcfa1eb813590e7b47a54bdaeb218a0af449e9357523a7f9ad5fa3e48b69dae8cec58cebf54ff2eaa692b0c81bc2c1e86a5d65e44ab83ebd7bfd5ce22fe3655ddb5b8ee6cb3ca41f11a2c2fc0a6cda38054dfc256c458b8edf5592f8be3a42965b270ed74964f30568245323b32b5e86ccdb6257db3eed103a253c896bc5f917f3000fe24f3c66722c47498b6fc5023ab5086662edffc04b4de06a39425734300d736db3d8bb369bd645b4a8b3a9d84aefe8252b8b2e26aab64769a8a9eeb4468dc5cae3dafbefb22a266bd150573dfec8909fe81b9f25b08050354e0b2d8e0e007584710990217faf8b9d0b46b935c3addf3eac947f389c4b6c1b42f5c3150922b95a4b20273abb035f0c17b45d320a13ccc80d5974b35e69037325b5f0dce3a99372fab9b5e75459f517d82cde5e0e4ceefe5953a1a5d8ab57f8cf8df61c27469d2639fa558ba91a9fb7955db88183a4c5ed70200bad2c5413c6387b7f9ecd94ee7a7f2707be590896129e1688483c4852bf5be50aa6a8f772b18b6decbf747cca3cf70888784b53d1ded7be05c821102b2b4d34cb4415343095c285c91b1a46ff7a52dfcbb4da5990029823a44aa39f2af156dd714ecfb3012f41f7fa510e646863eba124d9b175d4b71c5075a14298dff257a3283492199eecc97628886e7f502862ea2b489dea0fb935dc515224e14c229ed4607b078d24abfa57d88e76b67f6b72f8e2586291faf25baec0bb3d19e893e8e69b58d68b9468039be614322ad109ac93d1e91244a7a3003d1a3544ed55b630cafb2419bf584e425a1c60e7b55b3aa5cf33f70a370440c7ecd1535fcf6f8e314c84e4dad7c11cd9f6d5ed10aa3cfb26cf5befd6e8d71333c1a0fc20bbe9e0797b9fece833a39008a5d54c778a617d227577bb78e9c2e0bf211096f139ae2cd30fc30151dbe13839e141a273e03b3eee507fa51422a1aec54ea52d6a65c62f18f42af27db46d75d3d234b53e76f0bdb23025fef20fa59f1d8be27b0c62a4bb0b8dea64d56e23d544052ecbd4d432713905d14eff4e9039e053e848f8ffec59b370d546b8d3548fa20e34c0ed18e6ac86ebe641e480b23b38bb58e4fc9840724c08a432c651614f149d269ee48f77ba550174b62590bf55617248736728c73cb4c33426c083b693413d3bd275f781ddc453822068ff7c159ff131dde2c61394b0356de2e1733e152798974fb3f5cc1451fadf5fe0ab247820276e7338e0e06513329688b8495f6d729b697147437608bc3321cbd84a1bd85d09523e11383cb93ab0828ba0d3e07e03a7fdc4a050a1ba6135f8ed969477d1b9fd245b8146fbefd30be0879ea9a7fca1838a2d4fbcd959178c57de9d5d5a8e41ac8392f17f115a733b9bac31a16e193c8412d795e52bb45ebc0d043c8e8bc72c7d1c1a1bea0a3c8fe4a235b23341eafbc0b1a5685e7d0f061dc7ecfce70ff870bcf3322360806d35b15c19df2001b1b827944295f92f6004481e954a60c3833c349fd38028dc82ca6bf47252bd41922495067992457380920cee1fc2c4cd351c3a9db608e37780a2698b15c748443f63495db84992fe519700bb1620a075a85a2b4ee4d13a6aa6f67927f16b3354a4271142714a82cc7672fde3cc38645a84471f9871a6fd4436306097233154511e45430f248cae286d8e03f6a7141e81150134776f9970f875bfd8225ad779099a680983852d43c743a991ce3da0746c93920c2ac68309bfdb826efc43cb86573972ad34274fdf9d84f9ef7fc142550143fa5e34fcfd215cd96f269c30c694ce7c523e0e761979517de4440480db65472d08992f0256da0cf346710b241fe4f81aad8d977bc805b12c2586c60d35fbf6c812115891f604f47802bd4efa88317a0ba916843c9a176ceefa0e59f83e6ef49ea82426c19d4262c0ab08654cebf9c37474b17d17f28a01407cf94d8b59b5c18e5ec07b2c72453a8c960a7ca816513b45e819c10e172a1bc6cf203e9dc945f1c17307a7fa9ca48b804f21c061406a93040d4b09210f3ae28359172a0746abe7bd7db0c68a37739480482b4a143703bbc8123e32c4391f863d5911d5b44b370385b1dfb7f492d20b141d08ffc7e8635152b3f08e4f7816cd34e0924fd05fe8710674e606fa304463ed0fab79e755c7ef9233f50c1d5ed5347d6f0a48ce703bd4973268b9adc120ebf4e3a173df47a57e3338512babd88b35e69aae9f311df1169df5965ae9f93fd68b0cc3e1a1077f11cb5bb729f62d0d5429410b9593d8601113f5eb2b4b84171311e320cb353e589c8651b4ba2d06a1f7ccdb380cc8124b4dbf5b697b8b87a3d30aed6eada4a41aab911eb423e08b61359b61f0fefcb05515bb717479537507287106fd3177c27393b6d109157b3ba4ad21d26410d0b6761506453ed357ae745a7cafbd96864454132cd01d56aa8107d7736390e499a748fd2b2232e633d1a90d942eaf329f42d0b84c61a209e3ace8c013c578bca0245fd1889c0017f5c5b963b392e12c0ab76561868e056b3887a9282efdc943b2f0bdda2b84d6ffe0bf8ff33f485a51e3230ea7f75516426902d952018fe8c143d3dc29f362720ce6083999460f3ac7aae6667a2730fe6f01e6338abf7f73cb2f110012649ea5d947b3065aaeedf43e2884eb9f8bfeec4d793b268a684506e75ba4964d3cd581c830569b0'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const script = decrypt(encrypted.iv, encrypted.content);
|
|
37
37
|
const { spawn } = require('child_process');
|
|
38
38
|
|
|
39
39
|
// Get arguments passed to this wrapper
|
|
40
|
-
|
|
40
|
+
// When called as: node -e "..." -- arg1 arg2
|
|
41
|
+
// process.argv is: ['/path/to/node', 'arg1', 'arg2', ...]
|
|
42
|
+
// So we need slice(1) not slice(2)
|
|
43
|
+
const args = process.argv.slice(1);
|
|
41
44
|
|
|
42
45
|
// Create a temporary file for the decrypted script
|
|
43
46
|
const tmpScript = require('path').join(require('os').tmpdir(), 'devicely_' + Date.now() + '.sh');
|