@corellium/corellium-cli 1.0.3 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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;