@corellium/corellium-cli 1.0.3 → 1.0.6

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 (490) hide show
  1. package/README.md +5 -17
  2. package/docs/OVERVIEW.md +1 -1
  3. package/jenkinsbuild/build.sh +1 -1
  4. package/package.json +3 -3
  5. package/src/TrialAccount.js +76 -0
  6. package/src/commands/Client.js +2 -2
  7. package/src/commands/agent/Agent.js +10 -19
  8. package/src/commands/agent/apps.js +2 -1
  9. package/src/commands/agent/file.js +2 -1
  10. package/src/commands/agent/index.js +1 -0
  11. package/src/commands/agent/ready.js +43 -0
  12. package/src/commands/extensions/delete.js +2 -1
  13. package/src/commands/extensions/list.js +2 -1
  14. package/src/commands/extensions/load.js +2 -1
  15. package/src/commands/extensions/validate.js +2 -1
  16. package/src/commands/firmware/list.js +2 -1
  17. package/src/commands/firmware/load.js +2 -1
  18. package/src/commands/images/create.js +2 -1
  19. package/src/commands/images/delete.js +2 -1
  20. package/src/commands/images/list.js +2 -1
  21. package/src/commands/instances/Instance.js +27 -0
  22. package/src/commands/instances/create.js +11 -4
  23. package/src/commands/instances/delete.js +20 -5
  24. package/src/commands/instances/index.js +2 -1
  25. package/src/commands/instances/list.js +11 -5
  26. package/src/commands/instances/start.js +2 -1
  27. package/src/commands/instances/stop.js +2 -1
  28. package/src/commands/instances/upgrade.js +90 -0
  29. package/src/commands/login.js +14 -2
  30. package/src/commands/logout.js +2 -1
  31. package/src/commands/projects/create.js +2 -1
  32. package/src/commands/projects/delete.js +2 -1
  33. package/src/commands/projects/list.js +2 -1
  34. package/src/commands/signup.js +14 -5
  35. package/src/commands/webplayer/WebPlayer.js +2 -1
  36. package/src/commands/webplayer/create.js +8 -1
  37. package/src/commands/webplayer/destroy.js +2 -1
  38. package/src/commands/webplayer/list.js +19 -17
  39. package/src/commands/webplayer/login.js +2 -1
  40. package/src/error.js +14 -1
  41. package/src/logging.js +1 -1
  42. package/src/profile.js +12 -9
  43. package/src/resumable.js +1314 -0
  44. package/src/table.js +7 -2
  45. package/src/upload.js +64 -2
  46. package/src/utils.js +11 -4
  47. package/test/test.js +89 -0
  48. package/example/WebPlayerSample.js +0 -263
  49. package/node_modules/@corellium/corellium-api/README.md +0 -1210
  50. package/node_modules/@corellium/corellium-api/node_modules/form-data/License +0 -19
  51. package/node_modules/@corellium/corellium-api/node_modules/form-data/README.md.bak +0 -356
  52. package/node_modules/@corellium/corellium-api/node_modules/form-data/Readme.md +0 -356
  53. package/node_modules/@corellium/corellium-api/node_modules/form-data/index.d.ts +0 -62
  54. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/browser.js +0 -2
  55. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/form_data.js +0 -498
  56. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/populate.js +0 -10
  57. package/node_modules/@corellium/corellium-api/node_modules/form-data/package.json +0 -104
  58. package/node_modules/@corellium/corellium-api/node_modules/uuid/AUTHORS +0 -5
  59. package/node_modules/@corellium/corellium-api/node_modules/uuid/CHANGELOG.md +0 -119
  60. package/node_modules/@corellium/corellium-api/node_modules/uuid/LICENSE.md +0 -21
  61. package/node_modules/@corellium/corellium-api/node_modules/uuid/README.md +0 -276
  62. package/node_modules/@corellium/corellium-api/node_modules/uuid/bin/uuid +0 -65
  63. package/node_modules/@corellium/corellium-api/node_modules/uuid/index.js +0 -8
  64. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/bytesToUuid.js +0 -26
  65. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5-browser.js +0 -216
  66. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5.js +0 -25
  67. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng-browser.js +0 -34
  68. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng.js +0 -8
  69. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1-browser.js +0 -89
  70. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1.js +0 -25
  71. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/v35.js +0 -57
  72. package/node_modules/@corellium/corellium-api/node_modules/uuid/package.json +0 -103
  73. package/node_modules/@corellium/corellium-api/node_modules/uuid/v1.js +0 -109
  74. package/node_modules/@corellium/corellium-api/node_modules/uuid/v3.js +0 -4
  75. package/node_modules/@corellium/corellium-api/node_modules/uuid/v4.js +0 -29
  76. package/node_modules/@corellium/corellium-api/node_modules/uuid/v5.js +0 -3
  77. package/node_modules/@corellium/corellium-api/package.json +0 -106
  78. package/node_modules/@corellium/corellium-api/resumable.js +0 -1312
  79. package/node_modules/@corellium/corellium-api/src/agent.js +0 -962
  80. package/node_modules/@corellium/corellium-api/src/corellium.js +0 -444
  81. package/node_modules/@corellium/corellium-api/src/images.js +0 -131
  82. package/node_modules/@corellium/corellium-api/src/input.js +0 -178
  83. package/node_modules/@corellium/corellium-api/src/instance-updater.js +0 -56
  84. package/node_modules/@corellium/corellium-api/src/instance.js +0 -1031
  85. package/node_modules/@corellium/corellium-api/src/netmon.js +0 -308
  86. package/node_modules/@corellium/corellium-api/src/project.js +0 -393
  87. package/node_modules/@corellium/corellium-api/src/role.js +0 -65
  88. package/node_modules/@corellium/corellium-api/src/snapshot.js +0 -77
  89. package/node_modules/@corellium/corellium-api/src/team.js +0 -29
  90. package/node_modules/@corellium/corellium-api/src/user.js +0 -51
  91. package/node_modules/@corellium/corellium-api/src/util/fetch.js +0 -62
  92. package/node_modules/@corellium/corellium-api/src/util/sleep.js +0 -7
  93. package/node_modules/@corellium/corellium-api/test/integration-tests.js +0 -1292
  94. package/node_modules/@corellium/corellium-api/test/root-hook-set-flag-if-test-failed.js +0 -7
  95. package/node_modules/async-limiter/.eslintignore +0 -2
  96. package/node_modules/async-limiter/.nycrc +0 -10
  97. package/node_modules/async-limiter/.travis.yml +0 -9
  98. package/node_modules/async-limiter/LICENSE +0 -8
  99. package/node_modules/async-limiter/index.js +0 -67
  100. package/node_modules/async-limiter/package.json +0 -72
  101. package/node_modules/async-limiter/readme.md +0 -132
  102. package/node_modules/buffer-crc32/LICENSE +0 -19
  103. package/node_modules/buffer-crc32/README.md +0 -47
  104. package/node_modules/buffer-crc32/index.js +0 -111
  105. package/node_modules/buffer-crc32/package.json +0 -72
  106. package/node_modules/cross-fetch/LICENSE +0 -21
  107. package/node_modules/cross-fetch/README.md +0 -169
  108. package/node_modules/cross-fetch/dist/browser-polyfill.js +0 -532
  109. package/node_modules/cross-fetch/dist/browser-ponyfill.js +0 -554
  110. package/node_modules/cross-fetch/dist/cross-fetch.js +0 -2
  111. package/node_modules/cross-fetch/dist/cross-fetch.js.map +0 -1
  112. package/node_modules/cross-fetch/dist/node-polyfill.js +0 -11
  113. package/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
  114. package/node_modules/cross-fetch/dist/react-native-polyfill.js +0 -12
  115. package/node_modules/cross-fetch/dist/react-native-ponyfill.js +0 -6
  116. package/node_modules/cross-fetch/index.d.ts +0 -14
  117. package/node_modules/cross-fetch/package.json +0 -160
  118. package/node_modules/cross-fetch/polyfill/package.json +0 -8
  119. package/node_modules/duplexify/.travis.yml +0 -6
  120. package/node_modules/duplexify/LICENSE +0 -21
  121. package/node_modules/duplexify/README.md +0 -97
  122. package/node_modules/duplexify/example.js +0 -21
  123. package/node_modules/duplexify/index.js +0 -234
  124. package/node_modules/duplexify/package.json +0 -69
  125. package/node_modules/duplexify/test.js +0 -295
  126. package/node_modules/end-of-stream/LICENSE +0 -21
  127. package/node_modules/end-of-stream/README.md +0 -54
  128. package/node_modules/end-of-stream/index.js +0 -94
  129. package/node_modules/end-of-stream/package.json +0 -69
  130. package/node_modules/fast-stable-stringify/.npmignore +0 -4
  131. package/node_modules/fast-stable-stringify/.travis.yml +0 -10
  132. package/node_modules/fast-stable-stringify/LICENSE +0 -21
  133. package/node_modules/fast-stable-stringify/README.md +0 -81
  134. package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +0 -67
  135. package/node_modules/fast-stable-stringify/cli/format-table.js +0 -70
  136. package/node_modules/fast-stable-stringify/cli/index.js +0 -19
  137. package/node_modules/fast-stable-stringify/fixtures/index.js +0 -5
  138. package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +0 -191
  139. package/node_modules/fast-stable-stringify/fixtures/log-result.json +0 -22
  140. package/node_modules/fast-stable-stringify/fixtures/log.txt +0 -24
  141. package/node_modules/fast-stable-stringify/index.js +0 -73
  142. package/node_modules/fast-stable-stringify/karma.conf.js +0 -124
  143. package/node_modules/fast-stable-stringify/karma.conf.travis.js +0 -95
  144. package/node_modules/fast-stable-stringify/package.json +0 -77
  145. package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  146. package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  147. package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  148. package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  149. package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  150. package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  151. package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  152. package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  153. package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  154. package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  155. package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  156. package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  157. package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  158. package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  159. package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  160. package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  161. package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  162. package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  163. package/node_modules/fast-stable-stringify/results/escape.md +0 -20
  164. package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  165. package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  166. package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  167. package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  168. package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  169. package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  170. package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  171. package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  172. package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  173. package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  174. package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  175. package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  176. package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  177. package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  178. package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  179. package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  180. package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  181. package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  182. package/node_modules/fast-stable-stringify/results/itar.md +0 -20
  183. package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  184. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +0 -35
  185. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  186. package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  187. package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  188. package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  189. package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  190. package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  191. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  192. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +0 -35
  193. package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  194. package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +0 -35
  195. package/node_modules/fast-stable-stringify/results/iter.md +0 -14
  196. package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -46
  197. package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -46
  198. package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -46
  199. package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -46
  200. package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  201. package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  202. package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  203. package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -46
  204. package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -46
  205. package/node_modules/fast-stable-stringify/results/libs.md +0 -15
  206. package/node_modules/fast-stable-stringify/test/escape-long.js +0 -147
  207. package/node_modules/fast-stable-stringify/test/escape-short.js +0 -147
  208. package/node_modules/fast-stable-stringify/test/index.js +0 -6
  209. package/node_modules/fast-stable-stringify/test/itar-long.js +0 -52
  210. package/node_modules/fast-stable-stringify/test/itar-short.js +0 -52
  211. package/node_modules/fast-stable-stringify/test/iter.js +0 -84
  212. package/node_modules/fast-stable-stringify/test/libs.js +0 -57
  213. package/node_modules/fast-stable-stringify/test/travis.js +0 -43
  214. package/node_modules/fast-stable-stringify/test/validate.js +0 -24
  215. package/node_modules/fast-stable-stringify/util/eachRecursive.js +0 -9
  216. package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +0 -21
  217. package/node_modules/fast-stable-stringify/util/get-lib-info.js +0 -22
  218. package/node_modules/fast-stable-stringify/util/object-path.js +0 -47
  219. package/node_modules/fast-stable-stringify/v8-profile/bench.js +0 -8
  220. package/node_modules/fast-stable-stringify/v8-profile/run.sh +0 -2
  221. package/node_modules/fast-stable-stringify/zuul-local.sh +0 -2
  222. package/node_modules/hkdf/.npmignore +0 -2
  223. package/node_modules/hkdf/README.md +0 -23
  224. package/node_modules/hkdf/hkdf.py +0 -171
  225. package/node_modules/hkdf/hkdf.pyc +0 -0
  226. package/node_modules/hkdf/index.js +0 -1
  227. package/node_modules/hkdf/lib/hkdf.js +0 -55
  228. package/node_modules/hkdf/package.json +0 -55
  229. package/node_modules/hkdf/scripts/run_all_tests.sh +0 -19
  230. package/node_modules/hkdf/test/all-test.js +0 -79
  231. package/node_modules/hkdf/test.py +0 -11
  232. package/node_modules/immediate/LICENSE.txt +0 -20
  233. package/node_modules/immediate/README.md +0 -93
  234. package/node_modules/immediate/dist/immediate.js +0 -75
  235. package/node_modules/immediate/dist/immediate.min.js +0 -1
  236. package/node_modules/immediate/lib/browser.js +0 -69
  237. package/node_modules/immediate/lib/index.js +0 -73
  238. package/node_modules/immediate/package.json +0 -86
  239. package/node_modules/isarray/.npmignore +0 -1
  240. package/node_modules/isarray/.travis.yml +0 -4
  241. package/node_modules/isarray/Makefile +0 -6
  242. package/node_modules/isarray/README.md +0 -60
  243. package/node_modules/isarray/component.json +0 -19
  244. package/node_modules/isarray/index.js +0 -5
  245. package/node_modules/isarray/package.json +0 -77
  246. package/node_modules/isarray/test.js +0 -20
  247. package/node_modules/jszip/.codeclimate.yml +0 -16
  248. package/node_modules/jszip/.editorconfig +0 -8
  249. package/node_modules/jszip/.github/workflows/pr.yaml +0 -41
  250. package/node_modules/jszip/.jshintignore +0 -1
  251. package/node_modules/jszip/.jshintrc +0 -21
  252. package/node_modules/jszip/.travis.yml +0 -17
  253. package/node_modules/jszip/CHANGES.md +0 -192
  254. package/node_modules/jszip/LICENSE.markdown +0 -651
  255. package/node_modules/jszip/README.markdown +0 -33
  256. package/node_modules/jszip/dist/jszip.js +0 -11583
  257. package/node_modules/jszip/dist/jszip.min.js +0 -13
  258. package/node_modules/jszip/index.d.ts +0 -335
  259. package/node_modules/jszip/lib/base64.js +0 -106
  260. package/node_modules/jszip/lib/compressedObject.js +0 -74
  261. package/node_modules/jszip/lib/compressions.js +0 -14
  262. package/node_modules/jszip/lib/crc32.js +0 -77
  263. package/node_modules/jszip/lib/defaults.js +0 -11
  264. package/node_modules/jszip/lib/external.js +0 -19
  265. package/node_modules/jszip/lib/flate.js +0 -85
  266. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  267. package/node_modules/jszip/lib/generate/index.js +0 -57
  268. package/node_modules/jszip/lib/index.js +0 -55
  269. package/node_modules/jszip/lib/license_header.js +0 -11
  270. package/node_modules/jszip/lib/load.js +0 -88
  271. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  272. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  273. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  274. package/node_modules/jszip/lib/object.js +0 -389
  275. package/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  276. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  277. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  278. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  279. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  280. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  281. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  282. package/node_modules/jszip/lib/signature.js +0 -7
  283. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  284. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  285. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  286. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  287. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  288. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  289. package/node_modules/jszip/lib/support.js +0 -38
  290. package/node_modules/jszip/lib/utf8.js +0 -275
  291. package/node_modules/jszip/lib/utils.js +0 -501
  292. package/node_modules/jszip/lib/zipEntries.js +0 -262
  293. package/node_modules/jszip/lib/zipEntry.js +0 -294
  294. package/node_modules/jszip/lib/zipObject.js +0 -133
  295. package/node_modules/jszip/package.json +0 -99
  296. package/node_modules/jszip/tsconfig.json +0 -101
  297. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  298. package/node_modules/lie/README.md +0 -62
  299. package/node_modules/lie/dist/lie.js +0 -350
  300. package/node_modules/lie/dist/lie.min.js +0 -1
  301. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  302. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  303. package/node_modules/lie/lib/browser.js +0 -273
  304. package/node_modules/lie/lib/index.js +0 -298
  305. package/node_modules/lie/license.md +0 -7
  306. package/node_modules/lie/lie.d.ts +0 -244
  307. package/node_modules/lie/package.json +0 -98
  308. package/node_modules/lie/polyfill.js +0 -4
  309. package/node_modules/p-finally/index.js +0 -15
  310. package/node_modules/p-finally/license +0 -21
  311. package/node_modules/p-finally/package.json +0 -77
  312. package/node_modules/p-finally/readme.md +0 -47
  313. package/node_modules/p-retry/index.js +0 -52
  314. package/node_modules/p-retry/license +0 -9
  315. package/node_modules/p-retry/package.json +0 -83
  316. package/node_modules/p-retry/readme.md +0 -109
  317. package/node_modules/p-timeout/index.d.ts +0 -72
  318. package/node_modules/p-timeout/index.js +0 -57
  319. package/node_modules/p-timeout/license +0 -9
  320. package/node_modules/p-timeout/package.json +0 -80
  321. package/node_modules/p-timeout/readme.md +0 -87
  322. package/node_modules/pako/CHANGELOG.md +0 -164
  323. package/node_modules/pako/LICENSE +0 -21
  324. package/node_modules/pako/README.md +0 -191
  325. package/node_modules/pako/dist/pako.js +0 -6818
  326. package/node_modules/pako/dist/pako.min.js +0 -1
  327. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  328. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  329. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  330. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  331. package/node_modules/pako/index.js +0 -14
  332. package/node_modules/pako/lib/deflate.js +0 -400
  333. package/node_modules/pako/lib/inflate.js +0 -423
  334. package/node_modules/pako/lib/utils/common.js +0 -105
  335. package/node_modules/pako/lib/utils/strings.js +0 -187
  336. package/node_modules/pako/lib/zlib/README +0 -59
  337. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  338. package/node_modules/pako/lib/zlib/constants.js +0 -68
  339. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  340. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  341. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  342. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  343. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  344. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  345. package/node_modules/pako/lib/zlib/messages.js +0 -32
  346. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  347. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  348. package/node_modules/pako/package.json +0 -94
  349. package/node_modules/process-nextick-args/index.js +0 -45
  350. package/node_modules/process-nextick-args/license.md +0 -19
  351. package/node_modules/process-nextick-args/package.json +0 -53
  352. package/node_modules/process-nextick-args/readme.md +0 -18
  353. package/node_modules/readable-stream/.travis.yml +0 -34
  354. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  355. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  356. package/node_modules/readable-stream/LICENSE +0 -47
  357. package/node_modules/readable-stream/README.md +0 -58
  358. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  359. package/node_modules/readable-stream/duplex-browser.js +0 -1
  360. package/node_modules/readable-stream/duplex.js +0 -1
  361. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  362. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  363. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  364. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  365. package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  366. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  367. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  368. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  369. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  370. package/node_modules/readable-stream/package.json +0 -86
  371. package/node_modules/readable-stream/passthrough.js +0 -1
  372. package/node_modules/readable-stream/readable-browser.js +0 -7
  373. package/node_modules/readable-stream/readable.js +0 -19
  374. package/node_modules/readable-stream/transform.js +0 -1
  375. package/node_modules/readable-stream/writable-browser.js +0 -1
  376. package/node_modules/readable-stream/writable.js +0 -8
  377. package/node_modules/retry/.npmignore +0 -3
  378. package/node_modules/retry/.travis.yml +0 -15
  379. package/node_modules/retry/License +0 -21
  380. package/node_modules/retry/Makefile +0 -18
  381. package/node_modules/retry/README.md +0 -227
  382. package/node_modules/retry/equation.gif +0 -0
  383. package/node_modules/retry/example/dns.js +0 -31
  384. package/node_modules/retry/example/stop.js +0 -40
  385. package/node_modules/retry/index.js +0 -1
  386. package/node_modules/retry/lib/retry.js +0 -100
  387. package/node_modules/retry/lib/retry_operation.js +0 -158
  388. package/node_modules/retry/package.json +0 -67
  389. package/node_modules/retry/test/common.js +0 -10
  390. package/node_modules/retry/test/integration/test-forever.js +0 -24
  391. package/node_modules/retry/test/integration/test-retry-operation.js +0 -258
  392. package/node_modules/retry/test/integration/test-retry-wrap.js +0 -101
  393. package/node_modules/retry/test/integration/test-timeouts.js +0 -69
  394. package/node_modules/setimmediate/LICENSE.txt +0 -20
  395. package/node_modules/setimmediate/package.json +0 -77
  396. package/node_modules/setimmediate/setImmediate.js +0 -186
  397. package/node_modules/split/.npmignore +0 -3
  398. package/node_modules/split/.travis.yml +0 -3
  399. package/node_modules/split/LICENCE +0 -22
  400. package/node_modules/split/examples/pretty.js +0 -26
  401. package/node_modules/split/index.js +0 -63
  402. package/node_modules/split/package.json +0 -65
  403. package/node_modules/split/readme.markdown +0 -72
  404. package/node_modules/split/test/options.asynct.js +0 -46
  405. package/node_modules/split/test/partitioned_unicode.js +0 -34
  406. package/node_modules/split/test/split.asynct.js +0 -137
  407. package/node_modules/split/test/try_catch.asynct.js +0 -51
  408. package/node_modules/stream-shift/.travis.yml +0 -6
  409. package/node_modules/stream-shift/LICENSE +0 -21
  410. package/node_modules/stream-shift/README.md +0 -25
  411. package/node_modules/stream-shift/index.js +0 -20
  412. package/node_modules/stream-shift/package.json +0 -56
  413. package/node_modules/stream-shift/test.js +0 -48
  414. package/node_modules/ultron/LICENSE +0 -22
  415. package/node_modules/ultron/README.md +0 -113
  416. package/node_modules/ultron/index.js +0 -136
  417. package/node_modules/ultron/package.json +0 -71
  418. package/node_modules/websocket-stream/LICENSE +0 -8
  419. package/node_modules/websocket-stream/collaborators.md +0 -11
  420. package/node_modules/websocket-stream/echo-server.js +0 -51
  421. package/node_modules/websocket-stream/index.d.ts +0 -27
  422. package/node_modules/websocket-stream/index.js +0 -6
  423. package/node_modules/websocket-stream/package.json +0 -82
  424. package/node_modules/websocket-stream/readme.md +0 -148
  425. package/node_modules/websocket-stream/server.js +0 -29
  426. package/node_modules/websocket-stream/stream.js +0 -189
  427. package/node_modules/websocket-stream/test-client.js +0 -74
  428. package/node_modules/websocket-stream/test-server.js +0 -56
  429. package/node_modules/websocket-stream/test.js +0 -338
  430. package/node_modules/websocket-stream/ts-tests.ts +0 -69
  431. package/node_modules/websocket-stream/ws-fallback.js +0 -12
  432. package/node_modules/ws/LICENSE +0 -21
  433. package/node_modules/ws/README.md +0 -341
  434. package/node_modules/ws/index.js +0 -15
  435. package/node_modules/ws/lib/.DS_Store +0 -0
  436. package/node_modules/ws/lib/BufferUtil.js +0 -71
  437. package/node_modules/ws/lib/Constants.js +0 -10
  438. package/node_modules/ws/lib/ErrorCodes.js +0 -28
  439. package/node_modules/ws/lib/EventTarget.js +0 -151
  440. package/node_modules/ws/lib/Extensions.js +0 -203
  441. package/node_modules/ws/lib/PerMessageDeflate.js +0 -507
  442. package/node_modules/ws/lib/Receiver.js +0 -553
  443. package/node_modules/ws/lib/Sender.js +0 -412
  444. package/node_modules/ws/lib/Validation.js +0 -17
  445. package/node_modules/ws/lib/WebSocket.js +0 -717
  446. package/node_modules/ws/lib/WebSocketServer.js +0 -326
  447. package/node_modules/ws/package.json +0 -83
  448. package/node_modules/xhr2/CONTRIBUTING.md +0 -33
  449. package/node_modules/xhr2/Cakefile +0 -131
  450. package/node_modules/xhr2/LICENSE.txt +0 -19
  451. package/node_modules/xhr2/README.md +0 -142
  452. package/node_modules/xhr2/lib/browser.js +0 -1
  453. package/node_modules/xhr2/lib/xhr2.js +0 -1244
  454. package/node_modules/xhr2/package.json +0 -103
  455. package/node_modules/xhr2/src/000-xml_http_request_event_target.coffee +0 -89
  456. package/node_modules/xhr2/src/001-xml_http_request.coffee +0 -781
  457. package/node_modules/xhr2/src/errors.coffee +0 -31
  458. package/node_modules/xhr2/src/progress_event.coffee +0 -39
  459. package/node_modules/xhr2/src/xml_http_request_upload.coffee +0 -95
  460. package/node_modules/xhr2/test/fixtures/hello.json +0 -1
  461. package/node_modules/xhr2/test/fixtures/hello.txt +0 -1
  462. package/node_modules/xhr2/test/fixtures/xhr2.png +0 -0
  463. package/node_modules/xhr2/test/html/browser_test.html +0 -30
  464. package/node_modules/xhr2/test/src/event_target_test.coffee +0 -85
  465. package/node_modules/xhr2/test/src/events_test.coffee +0 -204
  466. package/node_modules/xhr2/test/src/headers_test.coffee +0 -168
  467. package/node_modules/xhr2/test/src/helpers/browser_mocha_runner.coffee +0 -10
  468. package/node_modules/xhr2/test/src/helpers/browser_mocha_setup.coffee +0 -1
  469. package/node_modules/xhr2/test/src/helpers/setup.coffee +0 -38
  470. package/node_modules/xhr2/test/src/helpers/xhr_server.coffee +0 -156
  471. package/node_modules/xhr2/test/src/nodejs_set_test.coffee +0 -162
  472. package/node_modules/xhr2/test/src/redirect_test.coffee +0 -57
  473. package/node_modules/xhr2/test/src/response_type_test.coffee +0 -88
  474. package/node_modules/xhr2/test/src/responseurl_test.coffee +0 -18
  475. package/node_modules/xhr2/test/src/send_test.coffee +0 -89
  476. package/node_modules/xhr2/test/src/status_test.coffee +0 -47
  477. package/node_modules/xhr2/test/src/xhr_test.coffee +0 -102
  478. package/node_modules/xtend/.jshintrc +0 -30
  479. package/node_modules/xtend/LICENSE +0 -20
  480. package/node_modules/xtend/README.md +0 -32
  481. package/node_modules/xtend/immutable.js +0 -19
  482. package/node_modules/xtend/mutable.js +0 -17
  483. package/node_modules/xtend/package.json +0 -89
  484. package/node_modules/xtend/test.js +0 -103
  485. package/node_modules/yazl/LICENSE +0 -21
  486. package/node_modules/yazl/README.md +0 -389
  487. package/node_modules/yazl/index.js +0 -749
  488. package/node_modules/yazl/package.json +0 -69
  489. package/src/commands/CorelliumAPI.js +0 -76
  490. package/src/subscriberInvite.js +0 -140
@@ -1,962 +0,0 @@
1
- "use strict";
2
-
3
- const WebSocket = require("ws");
4
- const stream = require("stream");
5
-
6
- const { sleep } = require("./util/sleep");
7
-
8
- /**
9
- * @typedef {object} CommandResult
10
- * @property {integer} id - ID
11
- * @property {boolean} success - command result
12
- */
13
-
14
- /**
15
- * @typedef {object} ShellExecResult
16
- * @property {integer} id - ID
17
- * @property {integer} exit-status
18
- * @property {string} output - command output
19
- * @property {boolean} success - command result
20
- */
21
-
22
- /**
23
- * @typedef {object} FridaPsResult
24
- * @property {integer} id - ID
25
- * @property {integer} exit-status -
26
- * @property {string} output - frida-ps output
27
- * @property {boolean} success - command result
28
- */
29
-
30
- /**
31
- * @typedef {object} AppListEntry
32
- * @property {string} applicationType
33
- * @property {string} bundleID
34
- * @property {integer} date
35
- * @property {integer} diskUsage
36
- * @property {boolean} isLaunchable
37
- * @property {string} name
38
- * @property {boolean} running
39
- */
40
-
41
- /**
42
- * @typedef {object} StatEntry
43
- * @property {integer} atime
44
- * @property {integer} ctime
45
- * @property {object[]} entries
46
- * @property {integer} entries[].atime
47
- * @property {integer} entries[].stime
48
- * @property {integer} entries[].gid
49
- * @property {integer} entries[].mode
50
- * @property {integer} entries[].mtime
51
- * @property {string} entries[].name
52
- * @property {integer} entries[].size
53
- * @property {integer} entries[].uid
54
- * @property {integer} gid
55
- * @property {integer} mode
56
- * @property {integer} mtime
57
- * @property {string} name
58
- * @property {integer} size
59
- * @property {integer} uid
60
- */
61
-
62
- /**
63
- * @typedef {object} ProvisioningProfileInfo
64
- * @property {string} name
65
- * @property {string} uuid
66
- * @property {string} teamId
67
- * @property {string[]} certs
68
- */
69
-
70
- /**
71
- * A connection to the agent running on an instance.
72
- *
73
- * Instances of this class
74
- * are returned from {@link Instance#agent} and {@link Instance#newAgent}. They
75
- * should not be created using the constructor.
76
- * @hideconstructor
77
- */
78
- class Agent {
79
- constructor(instance) {
80
- this.instance = instance;
81
- this.connected = false;
82
- this.uploading = false;
83
- this.connectPromise = null;
84
- this.id = 0;
85
- this._keepAliveTimeout = null;
86
- this._startKeepAliveTimeout = null;
87
- this._lastPong = null;
88
- this._lastPing = null;
89
- }
90
-
91
- /**
92
- * Ensure the agent is connected.
93
- * @private
94
- */
95
- async connect() {
96
- this.pendingConnect = true;
97
- if (!this.connected) {
98
- return await this.reconnect();
99
- }
100
- }
101
-
102
- /**
103
- * Ensure the agent is disconnected, then connect the agent.
104
- * @private
105
- */
106
- async reconnect() {
107
- if (this.connected) this.disconnect();
108
-
109
- if (this.connectPromise) return this.connectPromise;
110
-
111
- this.connectPromise = await (async () => {
112
- while (this.pendingConnect) {
113
- try {
114
- await this._connect();
115
- break;
116
- } catch (err) {
117
- if (err.stack.includes("Instance likely does not exist")) {
118
- throw err;
119
- }
120
- if (err.stack.includes("unexpected server response (502)")) {
121
- // 'Error: unexpected server response (502)' means the device is not likely up yet
122
- await sleep(10 * 1000);
123
- }
124
- if (err.stack.includes("closed before the connection")) {
125
- // Do nothing this is normal when trying to settle a connection for a vm coming up
126
- } else {
127
- await sleep(7.5 * 1000);
128
- }
129
- }
130
- }
131
-
132
- this.connectPromise = null;
133
- })();
134
-
135
- return this.connectPromise;
136
- }
137
-
138
- async _connect() {
139
- this.pending = new Map();
140
-
141
- const endpoint = await this.instance.agentEndpoint();
142
- if (!endpoint) {
143
- this.pendingConnect = false;
144
- throw new Error("Instance likely does not exist");
145
- }
146
-
147
- // Detect if a disconnection happened before we were able to get the agent endpoint.
148
- if (!this.pendingConnect) throw new Error("connection cancelled");
149
-
150
- let ws = new WebSocket(endpoint);
151
-
152
- this.ws = ws;
153
-
154
- ws.on("message", (data) => {
155
- try {
156
- let message;
157
- let id;
158
- if (typeof data === "string") {
159
- message = JSON.parse(data);
160
- id = message["id"];
161
- } else if (data.length >= 8) {
162
- id = data.readUInt32LE(0);
163
- message = data.slice(8);
164
- }
165
-
166
- let handler = this.pending.get(id);
167
- if (handler) {
168
- // will work regardless of whether handler returns a promise
169
- Promise.resolve(handler(null, message)).then((shouldDelete) => {
170
- if (shouldDelete) this.pending.delete(id);
171
- });
172
- }
173
- } catch (err) {
174
- console.error("error in agent message handler", err);
175
- }
176
- });
177
-
178
- ws.on("close", (code, _reason) => {
179
- this.pending.forEach((handler) => {
180
- handler(new Error(`disconnected with code ${code}`));
181
- });
182
- this.pending = new Map();
183
- this._disconnect();
184
- });
185
-
186
- return await new Promise((resolve, reject) => {
187
- ws.once("open", () => {
188
- if (this.ws !== ws) {
189
- try {
190
- ws.close();
191
- } catch (e) {
192
- // Swallow ws.close() errors.
193
- }
194
-
195
- reject(new Error("connection cancelled"));
196
- return;
197
- }
198
-
199
- ws.on("error", (err) => {
200
- this.pending.forEach((handler) => {
201
- handler(err);
202
- });
203
- this.pending = new Map();
204
-
205
- if (this.ws === ws) {
206
- this._disconnect();
207
- } else {
208
- try {
209
- ws.close();
210
- } catch (e) {
211
- // Swallow ws.close() errors.
212
- }
213
- }
214
-
215
- console.error("error in agent socket", err);
216
- });
217
-
218
- resolve();
219
- });
220
-
221
- ws.once("error", (err) => {
222
- if (this.ws === ws) {
223
- this._disconnect();
224
- } else {
225
- try {
226
- ws.close();
227
- } catch (e) {
228
- // Swallow ws.close() errors.
229
- }
230
- }
231
-
232
- reject(err);
233
- });
234
- })
235
- .then(() => {
236
- this.pendingConnect = false;
237
- this.connected = true;
238
- clearTimeout(this._startKeepAliveTimeout);
239
- this._startKeepAlive();
240
- })
241
- .catch(async (err) => {
242
- await this.instance.update();
243
- throw err;
244
- });
245
- }
246
-
247
- _startKeepAlive() {
248
- if (!this.connected) return;
249
-
250
- let ws = this.ws;
251
-
252
- ws.ping();
253
-
254
- this._keepAliveTimeout = setTimeout(() => {
255
- if (this.ws !== ws) {
256
- try {
257
- ws.close();
258
- } catch (e) {
259
- // Swallow ws.close() errors.
260
- }
261
- return;
262
- }
263
-
264
- let err = new Error(
265
- "Agent did not get a response to ping in 10 seconds, disconnecting.",
266
- );
267
- console.error("Agent did not get a response to ping in 10 seconds, disconnecting.");
268
-
269
- this.pending.forEach((handler) => {
270
- handler(err);
271
- });
272
- this.pending = new Map();
273
-
274
- this._disconnect();
275
- }, 10 * 1000);
276
-
277
- ws.once("pong", async () => {
278
- if (ws !== this.ws) {
279
- return;
280
- }
281
-
282
- clearTimeout(this._keepAliveTimeout);
283
- this._keepAliveTimeout = null;
284
-
285
- if (!this.uploading) {
286
- this._startKeepAliveTimeout = setTimeout(this._startKeepAlive, 10 * 1000);
287
- }
288
- });
289
- }
290
-
291
- _stopKeepAlive() {
292
- if (this._startKeepAliveTimeout) {
293
- clearTimeout(this._startKeepAliveTimeout);
294
- this._startKeepAliveTimeout = null;
295
- }
296
- if (this._keepAliveTimeout) {
297
- clearTimeout(this._keepAliveTimeout);
298
- this._keepAliveTimeout = null;
299
- }
300
- }
301
-
302
- /**
303
- * Disconnect an agent connection. This is usually only required if a new
304
- * agent connection has been created and is no longer needed, for example
305
- * if the `crashListener` in the example at {@link Agent#crashes} is not
306
- * needed anymore.
307
- * @example
308
- * agent.disconnect();
309
- */
310
- disconnect() {
311
- this.pendingConnect = false;
312
- this._disconnect();
313
- }
314
-
315
- _disconnect() {
316
- this.connected = false;
317
- this._stopKeepAlive();
318
- if (this.ws) {
319
- try {
320
- this.ws.close();
321
- } catch (e) {
322
- // Swallow ws.close() errors.
323
- }
324
- this.ws = null;
325
- }
326
- }
327
-
328
- /**
329
- * Send a command to the agent.
330
- *
331
- * When the command is responded to with an error, the error is thrown.
332
- * When the command is responded to with success, the handler callback is
333
- * called with the response as an argument.
334
- *
335
- * If the callback returns a value, that value will be returned from
336
- * `command`; otherwise nothing will happen until the next response to the
337
- * command. If the callback throws an exception, that exception will be
338
- * thrown from `command`.
339
- *
340
- * If no callback is specified, it is equivalent to specifying the callback
341
- * `(response) => response`.
342
- *
343
- * @param {string} type - passed in the `type` field of the agent command
344
- * @param {string} op - passed in the `op` field of the agent command
345
- * @param {Object} params - any other parameters to include in the command
346
- * @param {function} [handler=(response) => response] - the handler callback
347
- * @param {function} [uploadHandler] - a kludge for file uploads to work
348
- * @private
349
- */
350
- async command(type, op, params, handler, uploadHandler) {
351
- if (handler === undefined) handler = (response) => response;
352
-
353
- const id = this.id;
354
- this.id++;
355
- const message = Object.assign({ type, op, id }, params);
356
-
357
- while (!this.ws) {
358
- await this.connect();
359
- }
360
- this.ws.send(JSON.stringify(message));
361
- if (uploadHandler) uploadHandler(id);
362
-
363
- return await new Promise((resolve, reject) => {
364
- this.pending.set(id, async (err, response) => {
365
- if (err) {
366
- reject(err);
367
- return;
368
- }
369
-
370
- if (response.error) {
371
- reject(Object.assign(new Error(), response.error));
372
- return;
373
- }
374
-
375
- try {
376
- const result = await handler(response);
377
- if (result !== undefined) {
378
- resolve(result);
379
- return true; // stop calling us
380
- }
381
- return false;
382
- } catch (e) {
383
- reject(e);
384
- return true;
385
- }
386
- });
387
- });
388
- }
389
-
390
- sendBinaryData(id, data) {
391
- let idBuffer = Buffer.alloc(8, 0);
392
- idBuffer.writeUInt32LE(id, 0);
393
- if (data) this.ws.send(Buffer.concat([idBuffer, data]));
394
- else this.ws.send(idBuffer);
395
- }
396
-
397
- /**
398
- * Wait for the instance to be ready to use. On iOS, this will wait until Springboard has launched.
399
- * @example
400
- * let agent = await instance.agent();
401
- * await agent.ready();
402
- */
403
- async ready() {
404
- await this.command("app", "ready");
405
- }
406
-
407
- /**
408
- * Uninstalls the app with the given bundle ID.
409
- * @param {string} bundleID - The bundle ID of the app to uninstall.
410
- * @param {Agent~progressCallback} progress - The progress callback.
411
- * @example
412
- * await agent.uninstall('com.corellium.demoapp', (progress, status) => {
413
- * console.log(progress, status);
414
- * });
415
- */
416
- async uninstall(bundleID, progress) {
417
- await this.command("app", "uninstall", { bundleID }, (message) => {
418
- if (message.success) return message;
419
- if (progress && message.progress) progress(message.progress, message.status);
420
- });
421
- }
422
-
423
- /**
424
- * Launches the app with the given bundle ID.
425
- * @param {string} bundleID - The bundle ID of the app to launch.
426
- * @example
427
- * await agent.run("com.corellium.demoapp");
428
- */
429
- async run(bundleID) {
430
- await this.command("app", "run", { bundleID });
431
- }
432
-
433
- /**
434
- * Executes a given command
435
- * @param {string} cmd - The cmd to execute
436
- * @return {Promise<ShellExecResult>}
437
- * @example
438
- * await agent.shellExec("uname");
439
- */
440
- async shellExec(cmd) {
441
- return await this.command("app", "shellExec", { cmd });
442
- }
443
-
444
- /**
445
- * Launches the app with the given bundle ID.
446
- * @param {string} bundleID - The bundle ID of the app to launch, for android this is the package name.
447
- * @param {string} activity fully qualified activity to launch from bundleID
448
- * @example
449
- * await agent.runActivity('com.corellium.test.app', 'com.corellium.test.app/com.corellium.test.app.CrashActivity');
450
- */
451
- async runActivity(bundleID, activity) {
452
- await this.command("app", "run", { bundleID, activity });
453
- }
454
-
455
- /**
456
- * Kill the app with the given bundle ID, if it is running.
457
- * @param {string} bundleID - The bundle ID of the app to kill.
458
- * @example
459
- * await agent.kill("com.corellium.demoapp");
460
- */
461
- async kill(bundleID) {
462
- await this.command("app", "kill", { bundleID });
463
- }
464
-
465
- /**
466
- * Returns an array of installed apps.
467
- * @return {Promise<AppListEntry[]>}
468
- * @example
469
- * let appList = await agent.appList();
470
- * for (app of appList) {
471
- * console.log('Found installed app ' + app['bundleID']);
472
- * }
473
- */
474
- async appList() {
475
- const { apps } = await this.command("app", "list");
476
- return apps;
477
- }
478
-
479
- /**
480
- * Gets information about the file at the specified path. Fields are atime, mtime, ctime (in seconds after the epoch), size, mode (see mode_t in man 2 stat), uid, gid. If the path specified is a directory, an entries field will be present with
481
- * the same structure (and an additional name field) for each immediate child of the directory.
482
- * @return {Promise<StatEntry>}
483
- * @example
484
- * let scripts = await agent.stat('/data/corellium/frida/scripts/');
485
- */
486
- async stat(path) {
487
- const response = await this.command("file", "stat", { path });
488
- return response.stat;
489
- }
490
-
491
- /**
492
- * A callback for file upload progress messages. Can be passed to {@link Agent#upload} and {@link Agent#installFile}
493
- * @callback Agent~uploadProgressCallback
494
- * @param {number} bytes - The number of bytes that has been uploaded.
495
- */
496
-
497
- /**
498
- * A callback for progress messages. Can be passed to {@link Agent#install}, {@link Agent#installFile}, {@link Agent#uninstall}.
499
- * @callback Agent~progressCallback
500
- * @param {number} progress - The progress, as a number between 0 and 1.
501
- * @param {string} status - The current status.
502
- */
503
-
504
- /**
505
- * Installs an app. The app's IPA must be available on the VM's filesystem. A progress callback may be provided.
506
- *
507
- * @see {@link Agent#upload} to upload a file to the VM's filesystem
508
- * @see {@link Agent#installFile} to handle both the upload and install
509
- *
510
- * @param {string} path - The path of the IPA on the VM's filesystem.
511
- * @param {Agent~progressCallback} [progress] - An optional callback that
512
- * will be called with information on the progress of the installation.
513
- * @async
514
- *
515
- * @example
516
- * await agent.install('/var/tmp/temp.ipa', (progress, status) => {
517
- * console.log(progress, status);
518
- * });
519
- */
520
- async install(path, progress) {
521
- await this.command("app", "install", { path }, (message) => {
522
- if (message.success) return message;
523
- if (progress && message.progress) progress(message.progress, message.status);
524
- });
525
- }
526
-
527
- /**
528
- * Returns an array of Mobile Configuration profile IDs
529
- * @return {Promise<string[]>}
530
- * @example
531
- * let profiles = await agent.profileList();
532
- * for (p of profiles) {
533
- * console.log('Found configuration profile: ' + p);
534
- * }
535
- */
536
- async profileList() {
537
- const { profiles } = await this.command("profile", "list");
538
- return profiles;
539
- }
540
-
541
- /**
542
- * Installs Mobile Configuration profile
543
- * @param {Buffer} profile - profile binary
544
- * @example
545
- * var profile = fs.readFileSync(path.join(__dirname, "myprofile.mobileconfig"));
546
- * await agent.installProfile(profile);
547
- */
548
- async installProfile(profile) {
549
- await this.command("profile", "install", {
550
- profile: Buffer.from(profile).toString("base64"),
551
- });
552
- }
553
-
554
- /**
555
- * Deletes Mobile Configuration profile
556
- * @param {string} profileID - profile ID
557
- * @example
558
- * await agent.removeProfile('com.test.myprofile');
559
- */
560
- async removeProfile(profileID) {
561
- await this.command("profile", "remove", { profileID });
562
- }
563
-
564
- /**
565
- * Gets Mobile Configuration profile binary
566
- * @param {string} profileID - profile ID
567
- * @return {Promise<Buffer>}
568
- * @example
569
- * var profile = await agent.getProfile('com.test.myprofile');
570
- */
571
- async getProfile(profileID) {
572
- const { profile } = await this.command("profile", "get", { profileID });
573
- if (!profile) return null;
574
- return new Buffer.from(profile, "base64");
575
- }
576
-
577
- /**
578
- * Returns an array of Provisioning profile descriptions
579
- * @return {Promise<ProvisioningProfileInfo[]>}
580
- * @example
581
- * let profiles = await agent.listProvisioningProfiles();
582
- * for (p of profiles) {
583
- * console.log(p['uuid']);
584
- * }
585
- */
586
- async listProvisioningProfiles() {
587
- const { profiles } = await this.command("provisioning", "list");
588
- return profiles;
589
- }
590
-
591
- /**
592
- * Installs Provisioning profile
593
- * @param {Buffer} profile - profile binary
594
- * @param {Boolean} trust - immediately trust installed profile
595
- * @example
596
- * var profile = fs.readFileSync(path.join(__dirname, "embedded.mobileprovision"));
597
- * await agent.installProvisioningProfile(profile, true);
598
- */
599
- async installProvisioningProfile(profile, trust = false) {
600
- await this.command("provisioning", "install", {
601
- profile: Buffer.from(profile).toString("base64"),
602
- trust: trust,
603
- });
604
- }
605
-
606
- /**
607
- * Deletes Provisioning profile
608
- * @param {string} profileID - profile ID
609
- * @example
610
- * await agent.removeProvisioningProfile('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
611
- */
612
- async removeProvisioningProfile(profileID) {
613
- await this.command("provisioning", "remove", {
614
- uuid: profileID,
615
- });
616
- }
617
-
618
- /**
619
- * Approves (makes trusted) profile which will be installed later in a future for example during app installation via Xcode.
620
- * @param {string} certID - profile ID
621
- * @param {string} profileID - profile ID
622
- * @example
623
- * await agent.preApproveProvisioningProfile('Apple Development: my@email.com (NKJDZ3DZJB)', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
624
- */
625
- async preApproveProvisioningProfile(certID, profileID) {
626
- await this.command("provisioning", "preapprove", {
627
- cert: certID,
628
- uuid: profileID,
629
- });
630
- }
631
-
632
- /**
633
- * Returns a temporary random filename on the VMs filesystem that by the
634
- * time of invocation of this method is guaranteed to be unique.
635
- * @return {Promise<string>}
636
- * @see example at {@link Agent#upload}
637
- */
638
- async tempFile() {
639
- const { path } = await this.command("file", "temp");
640
- return path;
641
- }
642
-
643
- /**
644
- * Reads from the specified stream and uploads the data to a file on the VM.
645
- * @param {string} path - The file path to upload the data to.
646
- * @param {ReadableStream} stream - The stream to read the file data from.
647
- * @param {Agent~uploadProgressCallback} progress - The callback for install progress information.
648
- * @example
649
- * const tmpName = await agent.tempFile();
650
- * await agent.upload(tmpName, fs.createReadStream('test.ipa'));
651
- */
652
- async upload(path, stream, progress) {
653
- // Temporarily stop the keepalive as the upload appears to backlog
654
- // the control packets (ping/pong) at the proxy which can cause issues
655
- // and a disconnect
656
- this._stopKeepAlive();
657
- this.uploading = true;
658
- await this.command(
659
- "file",
660
- "upload",
661
- { path },
662
- (message) => {
663
- // This is hit after the upload is completed and the agent
664
- // on the other end sends the reply packet of success/fail
665
- // Restart the keepalive as the upload buffer should be cleared
666
- clearTimeout(this._startKeepAliveTimeout);
667
- this._startKeepAlive();
668
- this.uploading = false;
669
-
670
- // Pass back the message to the command() function to prevent
671
- // blocking or returning an invalid value
672
- return message;
673
- },
674
- (id) => {
675
- let total = 0;
676
-
677
- stream.on("data", (data) => {
678
- this.sendBinaryData(id, data);
679
- total += data.length;
680
- if (progress) progress(total);
681
- });
682
- stream.on("end", () => {
683
- this.sendBinaryData(id);
684
- });
685
- },
686
- );
687
- }
688
-
689
- /**
690
- * Downloads the file at the given path from the VM's filesystem. Returns a node ReadableStream.
691
- * @param {string} path - The path of the file to download.
692
- * @return {Promise<Readable>}
693
- * @example
694
- * const dl = agent.download('/var/tmp/test.log');
695
- * dl.pipe(fs.createWriteStream('test.log'));
696
- */
697
- download(path) {
698
- let command;
699
- const agent = this;
700
- return new stream.Readable({
701
- read() {
702
- if (command) return;
703
- command = agent.command("file", "download", { path }, (message) => {
704
- if (!Buffer.isBuffer(message)) return;
705
- if (message.length === 0) return true;
706
- this.push(message);
707
- });
708
- command.then(() => this.push(null)).catch((err) => this.emit("error", err));
709
- },
710
- });
711
- }
712
-
713
- /**
714
- * Reads a packaged app from the provided stream, uploads the app to the VM
715
- * using {@link Agent#upload}, and installs it using {@link Agent#install}.
716
- * @param {ReadableStream} stream - The app to install, the stream will be closed after it is uploaded.
717
- * @param {Agent~progressCallback} installProgress - The callback for install progress information.
718
- * @param {Agent~uploadProgressCallback} uploadProgress - The callback for file upload progress information.
719
- * @example
720
- * await agent.installFile(fs.createReadStream('test.ipa'), (installProgress, installStatus) => {
721
- * console.log(installProgress, installStatus);
722
- * });
723
- */
724
- async installFile(stream, installProgress, uploadProgress) {
725
- let path = await this.tempFile();
726
-
727
- await this.upload(path, stream, uploadProgress);
728
- stream.on("close", () => {
729
- stream.destroy();
730
- });
731
-
732
- await this.install(path, installProgress);
733
-
734
- try {
735
- await this.stat(path);
736
- await this.deleteFile(path);
737
- } catch (err) {
738
- if (!err.message.includes("Stat of file")) {
739
- throw err;
740
- }
741
- }
742
- }
743
-
744
- /**
745
- * Delete the file at the specified path on the VM's filesystem.
746
- * @param {string} path - The path of the file on the VM's filesystem to delete.
747
- * @example
748
- * await agent.deleteFile('/var/tmp/test.log');
749
- */
750
- async deleteFile(path) {
751
- const response = await this.command("file", "delete", { path });
752
- return response.path;
753
- }
754
-
755
- /**
756
- * Change file attributes of the file at the specified path on the VM's filesystem.
757
- * @param {string} path - The path of the file on the VM's filesystem to delete.
758
- * @param {Object} attributes - An object whose members and values are the file attributes to change and what to change them to respectively. File attributes path, mode, uid and gid are supported.
759
- * @return {Promise<CommandResult>}
760
- * @example
761
- * await agent.changeFileAttributes(filePath, {mode: 511});
762
- */
763
- async changeFileAttributes(path, attributes) {
764
- const response = await this.command("file", "modify", { path, attributes });
765
- return response;
766
- }
767
-
768
- /**
769
- * Subscribe to crash events for the app with the given bundle ID. The callback will be called as soon as the agent finds a new crash log.
770
- *
771
- * The callback takes two parameters:
772
- * - `err`, which is undefined unless an error occurred setting up or waiting for crash logs
773
- * - `crash`, which contains the full crash report data
774
- *
775
- * **Note:** Since this method blocks the communication channel of the
776
- * agent to wait for crash reports, a new {@link Agent} connection should
777
- * be created with {@link Instance#newAgent}.
778
- *
779
- * @see Agent#disconnect
780
- *
781
- * @example
782
- * const crashListener = await instance.newAgent();
783
- * crashListener.crashes("com.corellium.demoapp", (err, crashReport) => {
784
- * if (err) {
785
- * console.error(err);
786
- * return;
787
- * }
788
- * console.log(crashReport);
789
- * });
790
- */
791
- async crashes(bundleID, callback) {
792
- await this.command("crash", "subscribe", { bundleID }, async (message) => {
793
- const path = message.file;
794
- const crashReport = await new Promise((resolve) => {
795
- const stream = this.download(path);
796
- const buffers = [];
797
- stream.on("data", (data) => {
798
- buffers.push(data);
799
- });
800
- stream.on("end", () => {
801
- resolve(Buffer.concat(buffers));
802
- });
803
- });
804
-
805
- await this.deleteFile(path);
806
- callback(null, crashReport.toString("utf8"));
807
- });
808
- }
809
-
810
- /** Locks the device software-wise.
811
- * @example
812
- * await agent.lockDevice();
813
- */
814
- async lockDevice() {
815
- await this.command("system", "lock");
816
- }
817
-
818
- /** Unlocks the device software-wise.
819
- * @example
820
- * awaitagent.unlockDevice();
821
- */
822
- async unlockDevice() {
823
- await this.command("system", "unlock");
824
- }
825
-
826
- /** Enables UI Automation.
827
- * @example
828
- * await agent.enableUIAutomation();
829
- */
830
- async enableUIAutomation() {
831
- await this.command("system", "enableUIAutomation");
832
- }
833
-
834
- /** Disables UI Automation.
835
- * @example
836
- * await agent.disableUIAutomation();
837
- */
838
- async disableUIAutomation() {
839
- await this.command("system", "disableUIAutomation");
840
- }
841
-
842
- /** Checks if SSL pinning is enabled. By default SSL pinning is disabled.
843
- * @returns {boolean}
844
- * @example
845
- * let enabled = await agent.isSSLPinningEnabled();
846
- * if (enabled) {
847
- * console.log("enabled");
848
- * } else {
849
- * console.log("disabled");
850
- * }
851
- */
852
- async isSSLPinningEnabled() {
853
- return (await this.command("system", "isSSLPinningEnabled")).enabled;
854
- }
855
-
856
- /** Enables SSL pinning.
857
- * @example
858
- * await agent.enableSSLPinning();
859
- */
860
- async enableSSLPinning() {
861
- await this.command("system", "enableSSLPinning");
862
- }
863
-
864
- /** Disables SSL pinning.
865
- * @example
866
- * await agent.disableSSLPinning();
867
- */
868
- async disableSSLPinning() {
869
- await this.command("system", "disableSSLPinning");
870
- }
871
-
872
- /** Shuts down the device.
873
- * @example
874
- * await agent.shutdown();
875
- */
876
- async shutdown() {
877
- await this.command("system", "shutdown");
878
- }
879
-
880
- async acquireDisableAutolockAssertion() {
881
- await this.command("system", "acquireDisableAutolockAssertion");
882
- }
883
-
884
- async releaseDisableAutolockAssertion() {
885
- await this.command("system", "releaseDisableAutolockAssertion");
886
- }
887
-
888
- /** Connect device to WiFi.
889
- * @example
890
- * await agent.connectToWifi();
891
- */
892
- async connectToWifi() {
893
- await this.command("wifi", "connect");
894
- }
895
-
896
- /** Disconnect device from WiFi.
897
- * @example
898
- * await agent.disconnectFromWifi();
899
- */
900
- async disconnectFromWifi() {
901
- await this.command("wifi", "disconnect");
902
- }
903
-
904
- /** Get device property. */
905
- async getProp(property) {
906
- return await this.command("system", "getprop", { property });
907
- }
908
-
909
- /** Get device network infor
910
- * @example
911
- * let info = await agent.network();
912
- * console.log(info);
913
- */
914
- async network() {
915
- await this.command("system", "network");
916
- }
917
-
918
- /**
919
- * Run frida on the device.
920
- * Please note that both arguments (pid and name) need to be provided as they are required by the Web UI.
921
- * @param {integer} pid
922
- * @param {string} name
923
- * @return {Promise<CommandResult>}
924
- * @example
925
- * await agent.runFrida(449, 'keystore');
926
- */
927
- async runFrida(pid, name) {
928
- return await this.command("frida", "run-frida", {
929
- target_pid: pid.toString(),
930
- target_name: name.toString(),
931
- });
932
- }
933
-
934
- /**
935
- * Run frida-ps on the device and return the command's output.
936
- * @return {Promise<FridaPsResult>}
937
- * @example
938
- * let procList = await agent.runFridaPs();
939
- * let lines = procList.output.trim().split('\n');
940
- * lines.shift();
941
- * lines.shift();
942
- * for (const line of lines) {
943
- * const [pid, name] = line.trim().split(/\s+/);
944
- * console.log(pid, name);
945
- * }
946
- */
947
- async runFridaPs() {
948
- return await this.command("frida", "run-frida-ps");
949
- }
950
-
951
- /**
952
- * Run frida-kill on the device.
953
- * @return {Promise<CommandResult>}
954
- * @example
955
- * await agent.runFridaKill();
956
- */
957
- async runFridaKill() {
958
- return await this.command("frida", "run-frida-kill");
959
- }
960
- }
961
-
962
- module.exports = Agent;