@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,308 +0,0 @@
1
- "use strict";
2
-
3
- const WebSocket = require("ws");
4
- const { fetchApi } = require("./util/fetch");
5
-
6
- /**
7
- * @typedef {object} NetmonEntry
8
- * @property {Object} request
9
- * @property {Object} response
10
- * @property {integer} startedDateTime
11
- * @property {integer} duration
12
- */
13
-
14
- /**
15
- * A connection to the network monitor running on an instance.
16
- *
17
- * Instances of this class
18
- * are returned from {@link Instance#networkMonitor} and {@link Instance#newNetworkMonitor}. They
19
- * should not be created using the constructor.
20
- * @hideconstructor
21
- */
22
- class NetworkMonitor {
23
- constructor(instance) {
24
- this.instance = instance;
25
- this.connected = false;
26
- this.connectPromise = null;
27
- this.id = 0;
28
- this.handler = null;
29
- this._keepAliveTimeout = null;
30
- this._lastPong = null;
31
- this._lastPing = null;
32
- }
33
-
34
- /**
35
- * A callback for file upload progress messages. Can be passed to {@link NetworkMonitor#handleMessage}
36
- * @callback NetworkMonitor~newEntryCallback
37
- * @param {NetmonEntry} entry - {@link NetmonEntry} object.
38
- * @example
39
- * let netmon = await instance.newNetworkMonitor();
40
- * netmon.handleMessage((message) => {
41
- * let host = message.request.headers.find(entry => entry.key === 'Host');
42
- * console.log(message.response.status, message.request.method, message.response.body.size, host.value);
43
- * });
44
- */
45
-
46
- /**
47
- * Ensure the network monitor is connected.
48
- * @private
49
- */
50
- async connect() {
51
- this.pendingConnect = true;
52
- if (!this.connected) await this.reconnect();
53
- }
54
-
55
- /**
56
- * Ensure the network monitor is disconnected, then connect the network monitor.
57
- * @private
58
- */
59
- async reconnect() {
60
- if (this.connected) this.disconnect();
61
-
62
- if (this.connectPromise) return this.connectPromise;
63
-
64
- this.connectPromise = (async () => {
65
- while (this.pendingConnect) {
66
- try {
67
- await this._connect();
68
- break;
69
- } catch (e) {
70
- await new Promise((resolve) => setTimeout(resolve, 1000));
71
- }
72
- }
73
-
74
- this.connectPromise = null;
75
- })();
76
-
77
- return this.connectPromise;
78
- }
79
-
80
- async _connect() {
81
- const endpoint = await this.instance.netmonEndpoint();
82
-
83
- // Detect if a disconnection happened before we were able to get the network monitor endpoint.
84
- if (!this.pendingConnect) throw new Error("connection cancelled");
85
-
86
- let ws = new WebSocket(endpoint);
87
-
88
- this.ws = ws;
89
-
90
- ws.on("message", (data) => {
91
- try {
92
- let message;
93
- if (typeof data === "string") {
94
- message = JSON.parse(data);
95
- } else if (data.length >= 8) {
96
- message = data.slice(8);
97
- }
98
-
99
- if (this.handler) {
100
- this.handler(message);
101
- }
102
- } catch (err) {
103
- console.error("error in agent message handler", err);
104
- }
105
- });
106
-
107
- ws.on("close", () => {
108
- this._disconnect();
109
- });
110
-
111
- await new Promise((resolve, reject) => {
112
- ws.once("open", () => {
113
- if (this.ws !== ws) {
114
- try {
115
- ws.close();
116
- } catch (e) {
117
- // Swallow ws.close() errors.
118
- }
119
-
120
- reject(new Error("connection cancelled"));
121
- return;
122
- }
123
-
124
- ws.on("error", (err) => {
125
- if (this.ws === ws) {
126
- this._disconnect();
127
- } else {
128
- try {
129
- ws.close();
130
- } catch (e) {
131
- // Swallow ws.close() errors.
132
- }
133
- }
134
-
135
- console.error("error in netmon socket", err);
136
- });
137
-
138
- resolve();
139
- });
140
-
141
- ws.once("error", (err) => {
142
- if (this.ws === ws) {
143
- this._disconnect();
144
- } else {
145
- try {
146
- ws.close();
147
- } catch (e) {
148
- // Swallow ws.close() errors.
149
- }
150
- }
151
-
152
- reject(err);
153
- });
154
- });
155
-
156
- this.connected = true;
157
- this._startKeepAlive();
158
- }
159
-
160
- _startKeepAlive() {
161
- if (!this.connected) return;
162
-
163
- let ws = this.ws;
164
-
165
- ws.ping();
166
-
167
- this._keepAliveTimeout = setTimeout(() => {
168
- if (this.ws !== ws) {
169
- try {
170
- ws.close();
171
- } catch (e) {
172
- // Swallow ws.close() errors.
173
- }
174
- return;
175
- }
176
-
177
- console.error("Netmon did not get a response to pong in 10 seconds, disconnecting.");
178
-
179
- this._disconnect();
180
- }, 10000);
181
-
182
- ws.once("pong", async () => {
183
- if (ws !== this.ws) return;
184
-
185
- clearTimeout(this._keepAliveTimeout);
186
- this._keepAliveTimeout = null;
187
-
188
- await new Promise((resolve) => setTimeout(resolve, 10000));
189
-
190
- this._startKeepAlive();
191
- });
192
- }
193
-
194
- _stopKeepAlive() {
195
- if (this._keepAliveTimeout) {
196
- clearTimeout(this._keepAliveTimeout);
197
- this._keepAliveTimeout = null;
198
- }
199
- }
200
-
201
- /**
202
- * Disconnect an network monitor connection. This is usually only required if a new
203
- * network monitor connection has been created and is no longer needed
204
- * @example
205
- * netmon.disconnect();
206
- */
207
- disconnect() {
208
- this.pendingConnect = false;
209
- this._disconnect();
210
- }
211
-
212
- _disconnect() {
213
- this.connected = false;
214
- this.handler = null;
215
- this._stopKeepAlive();
216
- if (this.ws) {
217
- try {
218
- this.ws.close();
219
- } catch (e) {
220
- // Swallow ws.close() errors.
221
- }
222
- this.ws = null;
223
- }
224
- }
225
-
226
- /** Start Network Monitor
227
- * @example
228
- * let netmon = await instance.newNetworkMonitor();
229
- * netmon.start();
230
- */
231
- async start() {
232
- await this.connect();
233
- await this._fetch("/sslsplit/enable", { method: "POST" });
234
- await this.instance._waitFor(() => {
235
- return this.instance.info.netmon && this.instance.info.netmon.enabled;
236
- });
237
- return true;
238
- }
239
-
240
- /** Set message handler
241
- * @param {NetworkMonitor~newEntryCallback} handler - the callback for captured entry
242
- * @example
243
- * let netmon = await instance.newNetworkMonitor();
244
- * netmon.handleMessage((message) => {
245
- * let host = message.request.headers.find(entry => entry.key === 'Host');
246
- * console.log(message.response.status, message.request.method, message.response.body.size, host.value);
247
- * });
248
- */
249
- async handleMessage(handler) {
250
- this.handler = handler;
251
- }
252
-
253
- /** Clear captured Network Monitor data
254
- * @example
255
- * let netmon = await instance.newNetworkMonitor();
256
- * netmon.clearLog();
257
- */
258
- async clearLog() {
259
- let disconnectAfter = false;
260
- if (!this.connected) {
261
- await this.connect();
262
- disconnectAfter = true;
263
- }
264
- await this.ws.send(JSON.stringify({ type: "clear" }));
265
- if (disconnectAfter) {
266
- await this.disconnect();
267
- }
268
- }
269
-
270
- /** Stop Network Monitor
271
- * @example
272
- * let netmon = await instance.newNetworkMonitor();
273
- * netmon.stop();
274
- */
275
- async stop() {
276
- await this._fetch("/sslsplit/disable", { method: "POST" });
277
- await this.disconnect();
278
- await this.instance._waitFor(() => {
279
- return !(this.instance.info.netmon && this.instance.info.netmon.enabled);
280
- });
281
- return (await this.isEnabled()) === false;
282
- }
283
-
284
- /** Check if Network Monitor is enabled
285
- * @returns {boolean}
286
- * @example
287
- * let enabled = await netmon.isEnabled();
288
- * if (enabled) {
289
- * console.log("enabled");
290
- * } else {
291
- * console.log("disabled");
292
- * }
293
- */
294
- async isEnabled() {
295
- let info = await fetchApi(this.instance.project, `/instances/${this.instance.id}`);
296
- return info ? (info.netmon ? info.netmon.enabled : false) : false;
297
- }
298
-
299
- async _fetch(endpoint = "", options = {}) {
300
- return await fetchApi(
301
- this.instance.project,
302
- `/instances/${this.instance.id}${endpoint}`,
303
- options,
304
- );
305
- }
306
- }
307
-
308
- module.exports = NetworkMonitor;
@@ -1,393 +0,0 @@
1
- "use strict";
2
-
3
- const { fetchApi } = require("./util/fetch");
4
- const Instance = require("./instance");
5
- const InstanceUpdater = require("./instance-updater");
6
- const uuidv4 = require("uuid/v4");
7
- const util = require("util");
8
- const fs = require("fs");
9
- const { compress, uploadFile } = require("./images");
10
-
11
- /**
12
- * @typedef {object} ProjectKey
13
- * @property {string} identifier
14
- * @property {string} label
15
- * @property {string} key
16
- * @property {'ssh'|'adb'} kind - public key
17
- * @property {string} fingerprint
18
- * @property {string} createdAt - ISO datetime string
19
- * @property {string} updatedAt - ISO datetime string
20
- */
21
-
22
- /**
23
- * @typedef {object} ProjectQuotas
24
- * @property {number} cores - Number of available CPU cores
25
- */
26
-
27
- /**
28
- * Instances of this class are returned from {@link Corellium#projects}, {@link
29
- * Corellium#getProject}, and {@link Corellium#projectNamed}. They should not
30
- * be created using the constructor.
31
- * @hideconstructor
32
- */
33
- class Project {
34
- constructor(client, id) {
35
- this.client = client;
36
- this.api = this.client.api;
37
- this.id = id;
38
- this.token = null;
39
- this.updater = new InstanceUpdater(this);
40
- }
41
-
42
- /**
43
- * Reload the project info. This currently consists of name and quotas, but
44
- * will likely include more in the future.
45
- * @example
46
- * project.refresh();
47
- */
48
- async refresh() {
49
- this.info = await fetchApi(this, `/projects/${this.id}`);
50
- }
51
-
52
- /**
53
- * Returns refreshed authentication token
54
- * @return {string} token
55
- * @example
56
- * let token = await project.getToken()
57
- */
58
- async getToken() {
59
- return await this.client.getToken();
60
- }
61
-
62
- /**
63
- * Returns an array of the {@link Instance}s in this project.
64
- * @returns {Promise<Instance[]>} The instances in this project
65
- * @example <caption>Finding the first instance with a given name</caption>
66
- * const instances = await project.instances();
67
- * const instance = instances.find(instance => instance.name === 'Test Device');
68
- */
69
- async instances() {
70
- const instances = await fetchApi(this, `/projects/${this.id}/instances`);
71
- return await Promise.all(instances.map((info) => new Instance(this, info)));
72
- }
73
-
74
- /**
75
- * Returns the {@link Instance} with the given ID.
76
- * @param {string} id
77
- * @returns {Promise<Instance>}
78
- * @example
79
- * await project.getInstance('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
80
- */
81
- async getInstance(id) {
82
- const info = await fetchApi(this, `/instances/${id}`);
83
- return new Instance(this, info);
84
- }
85
-
86
- /**
87
- * @typedef {Object} vmmio - paremeters to export a VM address space range (and IRQ & DMA functionality)
88
- * over TCP to different models running on different machines or inside a different VM
89
- * @property {string} start - start address for beginning of vMMIO range
90
- * @property {string} size - size of the range to use for vMMIO
91
- * @property {string} irq - system IRQs, 1-16 ranges must be specified
92
- * @property {string} port - tcp port for vMMIO usage
93
- */
94
-
95
- /**
96
- * Creates an instance and returns the {@link Instance} object. The options
97
- * are passed directly to the API.
98
- *
99
- * @param {Object} options - The options for instance creation. These are
100
- * the same as the JSON options passed to the instance creation API
101
- * endpoint. For a full list of possible options, see the API documentation.
102
- * @param {string} options.flavor - The device flavor, such as `iphone6`
103
- * @param {string} options.os - The device operating system version
104
- * @param {string} options.ipsw - The ID of a previously uploaded image in the project to use as the firmware
105
- * @param {string} options.osbuild - The device operating system build
106
- * @param {string} [options.snapshot] - The ID of snapshot to clone this device off of
107
- * @param {string} [options.name] - The device name
108
- * @param {string} [options.patches] - Instance patches, such as `jailbroken` (default), `nonjailbroken` or `corelliumd` which is non-jailbroken with API agent.
109
- * @param {Object} [options.bootOptions] - Boot options for the instance
110
- * @param {string} [options.bootOptions.kernelSlide] - Change the Kernel slide value for an iOS device.
111
- * When not set, the slide will default to zero. When set to an empty value, the slide will be randomized.
112
- * @param {string} [options.bootOptions.udid] - Predefined Unique Device ID (UDID) for iOS device
113
- * @param {string} [options.bootOptions.screen] - Change the screen metrics for Ranchu devices `XxY[:DPI]`, e.g. `720x1280:280`
114
- * @param {string[]} [options.bootOptions.additionalTags] - Addition features to utilize for the device, valid options include:<br>
115
- * `kalloc` : Enable kalloc/kfree trace access via GDB (Enterprise only)<br>
116
- * `gpu` : Enable cloud GPU acceleration (Extra costs incurred, cloud only)
117
- * @param {KernelImage} [options.bootOptions.kernel] - Custom kernel to pass to the device on creation.
118
- * @param {vmmio[]} [vmmio] - VMMIO options for external MMIO support
119
- * @returns {Promise<Instance>}
120
- *
121
- * @example <caption>Creating an instance and waiting for it to start its first boot</caption>
122
- * const instance = await project.createInstance({
123
- * flavor: 'iphone6',
124
- * os: '11.3',
125
- * name: 'Test Device',
126
- * osbuild: '15E216',
127
- * patches: 'corelliumd',
128
- * bootOptions: {
129
- * udid: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
130
- * },
131
- * });
132
- * await instance.finishRestore();
133
- */
134
- async createInstance(options) {
135
- const { id } = await fetchApi(this, "/instances", {
136
- method: "POST",
137
- json: Object.assign({}, options, { project: this.id }),
138
- });
139
- return await this.getInstance(id);
140
- }
141
-
142
- /**
143
- * Get the VPN configuration to connect to the project network. This is only
144
- * available for cloud. At least one instance must be on in the project.
145
- *
146
- * @param {string} type - Could be either "ovpn" or "tblk" to select between OpenVPN and TunnelBlick configuration formats.
147
- * TunnelBlick files are delivered as a ZIP file and OpenVPN configuration is just a text file.
148
- * @param {string} clientUUID - An arbitrary UUID to uniquely associate this VPN configuration with so it can be later identified
149
- * in a list of connected clients. Optional.
150
- * @returns {Promise<Buffer>}
151
- * @example
152
- * await project.vpnConfig('ovpn', undefined)
153
- */
154
- async vpnConfig(type = "ovpn", clientUUID) {
155
- if (!clientUUID) clientUUID = uuidv4();
156
-
157
- const response = await fetchApi(
158
- this,
159
- `/projects/${this.id}/vpn-configs/${clientUUID}.${type}`,
160
- { response: "raw" },
161
- );
162
- return await response.buffer();
163
- }
164
-
165
- /** Destroy this project.
166
- * @example
167
- * project.destroy();
168
- */
169
- async destroy() {
170
- return await fetchApi(this, `/projects/${this.id}`, {
171
- method: "DELETE",
172
- });
173
- }
174
-
175
- /**
176
- * The project quotas.
177
- * @returns {ProjectQuotas}
178
- * @example
179
- * // Create map of supported devices.
180
- * let supported = {};
181
- * (await corellium.supported()).forEach(modelInfo => {
182
- * supported[modelInfo.name] = modelInfo;
183
- * });
184
- *
185
- * // Get how many CPUs we're currently using.
186
- * let cpusUsed = 0;
187
- * instances.forEach(instance => {
188
- * cpusUsed += supported[instance.flavor].quotas.cpus;
189
- * });
190
- *
191
- * console.log('Used: ' + cpusUsed + '/' + project.quotas.cpus);
192
- */
193
- get quotas() {
194
- return this.info.quotas;
195
- }
196
-
197
- set quotas(quotas) {
198
- this.setQuotas(quotas);
199
- }
200
-
201
- /**
202
- * Sets the project quotas. Only the cores property is currently respected.
203
- *
204
- * @param {ProjectQuotas} quotas
205
- */
206
- async setQuotas(quotas) {
207
- this.info.quotas = Object.assign({}, this.info.quotas, quotas);
208
- await fetchApi(this, `/projects/${this.id}`, {
209
- method: "PATCH",
210
- json: {
211
- quotas: {
212
- cores: quotas.cores || quotas.cpus,
213
- },
214
- },
215
- });
216
- }
217
-
218
- /**
219
- * How much of the project's quotas are currently used. To ensure this information is up to date, call {@link Project#refresh()} first.
220
- * @property {number} cores - Number of used CPU cores
221
- * @example
222
- * project.quotasUsed();
223
- */
224
- get quotasUsed() {
225
- return this.info.quotasUsed;
226
- }
227
-
228
- /** The project's name.
229
- * @example
230
- * project.name();
231
- */
232
- get name() {
233
- return this.info.name;
234
- }
235
-
236
- /**
237
- * Returns a list of {@link Role}s associated with this project, showing who has permissions over this project.
238
- *
239
- * This function is only available to domain and project administrators.
240
- * @return {Role[]}
241
- * @example
242
- * await project.roles();
243
- */
244
- async roles() {
245
- const roles = await this.client.roles();
246
- return roles.get(this.id);
247
- }
248
-
249
- /**
250
- * Give permissions to this project for a {@link Team} or a {@link User} (adds a {@link Role}).
251
- *
252
- * This function is only available to domain and project administrators.
253
- * @param {User|Team} grantee - must be an instance of {@link User} or {@link Team}
254
- * @param {string} type - user ID
255
- * @example
256
- * project.createRole(grantee, 'user');
257
- */
258
- async createRole(grantee, type = "user") {
259
- await this.client.createRole(this.id, grantee, type);
260
- }
261
-
262
- /**
263
- * Returns a list of authorized keys associated with the project. When a new
264
- * instance is created in this project, its authorized_keys (iOS) or adbkeys
265
- * (Android) will be populated with these keys by default. Adding or
266
- * removing keys from the project will have no effect on existing instances.
267
- *
268
- * @returns {Promise<ProjectKey[]>}
269
- * @example
270
- * let keys = project.keys();
271
- * for(let key of keys)
272
- * console.log(key);
273
- */
274
- async keys() {
275
- return await this.client.projectKeys(this.id);
276
- }
277
-
278
- /**
279
- * Add a public key to project.
280
- *
281
- * @param {string} key - the public key, as formatted in a .pub file
282
- * @param {'ssh'|'adb'} kind
283
- * @param {string} [label] - defaults to the public key comment, if present
284
- *
285
- * @returns {Promise<ProjectKey>}
286
- * @example
287
- * project.addKey(key, 'ssh', 'SSH Key');
288
- */
289
- async addKey(key, kind = "ssh", label = null) {
290
- return await this.client.addProjectKey(this.id, key, kind, label);
291
- }
292
-
293
- /**
294
- * Delete public key from the project
295
- * @param {string} keyId
296
- * @example
297
- * project.deleteKey('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
298
- */
299
- async deleteKey(keyId) {
300
- return await this.client.deleteProjectKey(this.id, keyId);
301
- }
302
-
303
- /**
304
- * Delete an IoT firmware
305
- * @param {FirmwareImage} firmwareImage
306
- */
307
- async deleteIotFirmware(firmwareImage) {
308
- return await this.deleteImage(firmwareImage);
309
- }
310
-
311
- /**
312
- * Delete a kernel
313
- * @param {KernelImage} kernelImage
314
- */
315
- async deleteKernel(kernelImage) {
316
- return await this.deleteImage(kernelImage);
317
- }
318
-
319
- /**
320
- * Delete a Image
321
- * @param {Image} image
322
- */
323
- async deleteImage(image) {
324
- return await fetchApi(this, `/images/${image.id}`, {
325
- method: "DELETE",
326
- });
327
- }
328
-
329
- /**
330
- * Add a custom IoT firmware image to a project for use in creating new instances.
331
- *
332
- * @param {string} filePath - The path on the local file system to get the firmware file.
333
- * @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
334
- * @param {Project~progressCallback} [progress] - The callback for file upload progress information.
335
- *
336
- * @returns {Promise<FirmwareImage>}
337
- */
338
- async uploadIotFirmware(filePath, name, progress) {
339
- return await this.uploadKernel(filePath, name, progress);
340
- }
341
-
342
- /**
343
- * Add a kernel image to a project for use in creating new instances.
344
- *
345
- * @param {string} filePath - The path on the local file system to get the kernel file.
346
- * @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
347
- * @param {Project~progressCallback} [progress] - The callback for file upload progress information.
348
- *
349
- * @returns {Promise<KernelImage>}
350
- */
351
- async uploadKernel(filePath, name, progress) {
352
- let tmpfile = null;
353
- const data = await util.promisify(fs.readFile)(filePath);
354
-
355
- tmpfile = await compress(data, name);
356
-
357
- let image = await this.uploadImage("kernel", tmpfile, name, progress);
358
-
359
- if (tmpfile) {
360
- fs.unlinkSync(tmpfile);
361
- }
362
-
363
- return { id: image.id, name: image.name };
364
- }
365
-
366
- /**
367
- * Add an image to the project. These images may be removed at any time and are meant to facilitate creating a new Instance with images.
368
- *
369
- * @param {string} type - E.g. fw for the main firmware image.
370
- * @param {string} filePath - The path on the local file system to get the file.
371
- * @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
372
- * @param {Project~progressCallback} [progress] - The callback for file upload progress information.
373
- *
374
- * @returns {Promise<Image>}
375
- */
376
- async uploadImage(type, filePath, name, progress) {
377
- const token = await this.getToken();
378
- const url =
379
- this.api +
380
- "/projects/" +
381
- encodeURIComponent(this.id) +
382
- "/image-upload/" +
383
- encodeURIComponent(type) +
384
- "/" +
385
- encodeURIComponent(uuidv4()) +
386
- "/" +
387
- encodeURIComponent(name);
388
-
389
- return await uploadFile(token, url, filePath, progress);
390
- }
391
- }
392
-
393
- module.exports = Project;