@corellium/corellium-cli 1.0.3 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +5 -17
  2. package/docs/OVERVIEW.md +1 -1
  3. package/jenkinsbuild/build.sh +1 -1
  4. package/package.json +3 -3
  5. package/src/TrialAccount.js +76 -0
  6. package/src/commands/Client.js +2 -2
  7. package/src/commands/agent/Agent.js +10 -19
  8. package/src/commands/agent/apps.js +2 -1
  9. package/src/commands/agent/file.js +2 -1
  10. package/src/commands/agent/index.js +1 -0
  11. package/src/commands/agent/ready.js +43 -0
  12. package/src/commands/extensions/delete.js +2 -1
  13. package/src/commands/extensions/list.js +2 -1
  14. package/src/commands/extensions/load.js +2 -1
  15. package/src/commands/extensions/validate.js +2 -1
  16. package/src/commands/firmware/list.js +2 -1
  17. package/src/commands/firmware/load.js +2 -1
  18. package/src/commands/images/create.js +2 -1
  19. package/src/commands/images/delete.js +2 -1
  20. package/src/commands/images/list.js +2 -1
  21. package/src/commands/instances/Instance.js +27 -0
  22. package/src/commands/instances/create.js +11 -4
  23. package/src/commands/instances/delete.js +20 -5
  24. package/src/commands/instances/index.js +2 -1
  25. package/src/commands/instances/list.js +11 -5
  26. package/src/commands/instances/start.js +2 -1
  27. package/src/commands/instances/stop.js +2 -1
  28. package/src/commands/instances/upgrade.js +90 -0
  29. package/src/commands/login.js +14 -2
  30. package/src/commands/logout.js +2 -1
  31. package/src/commands/projects/create.js +2 -1
  32. package/src/commands/projects/delete.js +2 -1
  33. package/src/commands/projects/list.js +2 -1
  34. package/src/commands/signup.js +14 -5
  35. package/src/commands/webplayer/WebPlayer.js +2 -1
  36. package/src/commands/webplayer/create.js +8 -1
  37. package/src/commands/webplayer/destroy.js +2 -1
  38. package/src/commands/webplayer/list.js +19 -17
  39. package/src/commands/webplayer/login.js +2 -1
  40. package/src/error.js +14 -1
  41. package/src/logging.js +1 -1
  42. package/src/profile.js +12 -9
  43. package/src/resumable.js +1314 -0
  44. package/src/table.js +7 -2
  45. package/src/upload.js +64 -2
  46. package/src/utils.js +11 -4
  47. package/test/test.js +89 -0
  48. package/example/WebPlayerSample.js +0 -263
  49. package/node_modules/@corellium/corellium-api/README.md +0 -1210
  50. package/node_modules/@corellium/corellium-api/node_modules/form-data/License +0 -19
  51. package/node_modules/@corellium/corellium-api/node_modules/form-data/README.md.bak +0 -356
  52. package/node_modules/@corellium/corellium-api/node_modules/form-data/Readme.md +0 -356
  53. package/node_modules/@corellium/corellium-api/node_modules/form-data/index.d.ts +0 -62
  54. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/browser.js +0 -2
  55. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/form_data.js +0 -498
  56. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/populate.js +0 -10
  57. package/node_modules/@corellium/corellium-api/node_modules/form-data/package.json +0 -104
  58. package/node_modules/@corellium/corellium-api/node_modules/uuid/AUTHORS +0 -5
  59. package/node_modules/@corellium/corellium-api/node_modules/uuid/CHANGELOG.md +0 -119
  60. package/node_modules/@corellium/corellium-api/node_modules/uuid/LICENSE.md +0 -21
  61. package/node_modules/@corellium/corellium-api/node_modules/uuid/README.md +0 -276
  62. package/node_modules/@corellium/corellium-api/node_modules/uuid/bin/uuid +0 -65
  63. package/node_modules/@corellium/corellium-api/node_modules/uuid/index.js +0 -8
  64. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/bytesToUuid.js +0 -26
  65. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5-browser.js +0 -216
  66. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5.js +0 -25
  67. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng-browser.js +0 -34
  68. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng.js +0 -8
  69. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1-browser.js +0 -89
  70. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1.js +0 -25
  71. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/v35.js +0 -57
  72. package/node_modules/@corellium/corellium-api/node_modules/uuid/package.json +0 -103
  73. package/node_modules/@corellium/corellium-api/node_modules/uuid/v1.js +0 -109
  74. package/node_modules/@corellium/corellium-api/node_modules/uuid/v3.js +0 -4
  75. package/node_modules/@corellium/corellium-api/node_modules/uuid/v4.js +0 -29
  76. package/node_modules/@corellium/corellium-api/node_modules/uuid/v5.js +0 -3
  77. package/node_modules/@corellium/corellium-api/package.json +0 -106
  78. package/node_modules/@corellium/corellium-api/resumable.js +0 -1312
  79. package/node_modules/@corellium/corellium-api/src/agent.js +0 -962
  80. package/node_modules/@corellium/corellium-api/src/corellium.js +0 -444
  81. package/node_modules/@corellium/corellium-api/src/images.js +0 -131
  82. package/node_modules/@corellium/corellium-api/src/input.js +0 -178
  83. package/node_modules/@corellium/corellium-api/src/instance-updater.js +0 -56
  84. package/node_modules/@corellium/corellium-api/src/instance.js +0 -1031
  85. package/node_modules/@corellium/corellium-api/src/netmon.js +0 -308
  86. package/node_modules/@corellium/corellium-api/src/project.js +0 -393
  87. package/node_modules/@corellium/corellium-api/src/role.js +0 -65
  88. package/node_modules/@corellium/corellium-api/src/snapshot.js +0 -77
  89. package/node_modules/@corellium/corellium-api/src/team.js +0 -29
  90. package/node_modules/@corellium/corellium-api/src/user.js +0 -51
  91. package/node_modules/@corellium/corellium-api/src/util/fetch.js +0 -62
  92. package/node_modules/@corellium/corellium-api/src/util/sleep.js +0 -7
  93. package/node_modules/@corellium/corellium-api/test/integration-tests.js +0 -1292
  94. package/node_modules/@corellium/corellium-api/test/root-hook-set-flag-if-test-failed.js +0 -7
  95. package/node_modules/async-limiter/.eslintignore +0 -2
  96. package/node_modules/async-limiter/.nycrc +0 -10
  97. package/node_modules/async-limiter/.travis.yml +0 -9
  98. package/node_modules/async-limiter/LICENSE +0 -8
  99. package/node_modules/async-limiter/index.js +0 -67
  100. package/node_modules/async-limiter/package.json +0 -72
  101. package/node_modules/async-limiter/readme.md +0 -132
  102. package/node_modules/buffer-crc32/LICENSE +0 -19
  103. package/node_modules/buffer-crc32/README.md +0 -47
  104. package/node_modules/buffer-crc32/index.js +0 -111
  105. package/node_modules/buffer-crc32/package.json +0 -72
  106. package/node_modules/cross-fetch/LICENSE +0 -21
  107. package/node_modules/cross-fetch/README.md +0 -169
  108. package/node_modules/cross-fetch/dist/browser-polyfill.js +0 -532
  109. package/node_modules/cross-fetch/dist/browser-ponyfill.js +0 -554
  110. package/node_modules/cross-fetch/dist/cross-fetch.js +0 -2
  111. package/node_modules/cross-fetch/dist/cross-fetch.js.map +0 -1
  112. package/node_modules/cross-fetch/dist/node-polyfill.js +0 -11
  113. package/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
  114. package/node_modules/cross-fetch/dist/react-native-polyfill.js +0 -12
  115. package/node_modules/cross-fetch/dist/react-native-ponyfill.js +0 -6
  116. package/node_modules/cross-fetch/index.d.ts +0 -14
  117. package/node_modules/cross-fetch/package.json +0 -160
  118. package/node_modules/cross-fetch/polyfill/package.json +0 -8
  119. package/node_modules/duplexify/.travis.yml +0 -6
  120. package/node_modules/duplexify/LICENSE +0 -21
  121. package/node_modules/duplexify/README.md +0 -97
  122. package/node_modules/duplexify/example.js +0 -21
  123. package/node_modules/duplexify/index.js +0 -234
  124. package/node_modules/duplexify/package.json +0 -69
  125. package/node_modules/duplexify/test.js +0 -295
  126. package/node_modules/end-of-stream/LICENSE +0 -21
  127. package/node_modules/end-of-stream/README.md +0 -54
  128. package/node_modules/end-of-stream/index.js +0 -94
  129. package/node_modules/end-of-stream/package.json +0 -69
  130. package/node_modules/fast-stable-stringify/.npmignore +0 -4
  131. package/node_modules/fast-stable-stringify/.travis.yml +0 -10
  132. package/node_modules/fast-stable-stringify/LICENSE +0 -21
  133. package/node_modules/fast-stable-stringify/README.md +0 -81
  134. package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +0 -67
  135. package/node_modules/fast-stable-stringify/cli/format-table.js +0 -70
  136. package/node_modules/fast-stable-stringify/cli/index.js +0 -19
  137. package/node_modules/fast-stable-stringify/fixtures/index.js +0 -5
  138. package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +0 -191
  139. package/node_modules/fast-stable-stringify/fixtures/log-result.json +0 -22
  140. package/node_modules/fast-stable-stringify/fixtures/log.txt +0 -24
  141. package/node_modules/fast-stable-stringify/index.js +0 -73
  142. package/node_modules/fast-stable-stringify/karma.conf.js +0 -124
  143. package/node_modules/fast-stable-stringify/karma.conf.travis.js +0 -95
  144. package/node_modules/fast-stable-stringify/package.json +0 -77
  145. package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  146. package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  147. package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  148. package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  149. package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  150. package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  151. package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  152. package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  153. package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  154. package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  155. package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  156. package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  157. package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  158. package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  159. package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  160. package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  161. package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  162. package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  163. package/node_modules/fast-stable-stringify/results/escape.md +0 -20
  164. package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  165. package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  166. package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  167. package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  168. package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  169. package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  170. package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  171. package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  172. package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  173. package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  174. package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  175. package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  176. package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  177. package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  178. package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  179. package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  180. package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  181. package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  182. package/node_modules/fast-stable-stringify/results/itar.md +0 -20
  183. package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  184. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +0 -35
  185. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  186. package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  187. package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  188. package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  189. package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  190. package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  191. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  192. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +0 -35
  193. package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  194. package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +0 -35
  195. package/node_modules/fast-stable-stringify/results/iter.md +0 -14
  196. package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -46
  197. package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -46
  198. package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -46
  199. package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -46
  200. package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  201. package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  202. package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  203. package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -46
  204. package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -46
  205. package/node_modules/fast-stable-stringify/results/libs.md +0 -15
  206. package/node_modules/fast-stable-stringify/test/escape-long.js +0 -147
  207. package/node_modules/fast-stable-stringify/test/escape-short.js +0 -147
  208. package/node_modules/fast-stable-stringify/test/index.js +0 -6
  209. package/node_modules/fast-stable-stringify/test/itar-long.js +0 -52
  210. package/node_modules/fast-stable-stringify/test/itar-short.js +0 -52
  211. package/node_modules/fast-stable-stringify/test/iter.js +0 -84
  212. package/node_modules/fast-stable-stringify/test/libs.js +0 -57
  213. package/node_modules/fast-stable-stringify/test/travis.js +0 -43
  214. package/node_modules/fast-stable-stringify/test/validate.js +0 -24
  215. package/node_modules/fast-stable-stringify/util/eachRecursive.js +0 -9
  216. package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +0 -21
  217. package/node_modules/fast-stable-stringify/util/get-lib-info.js +0 -22
  218. package/node_modules/fast-stable-stringify/util/object-path.js +0 -47
  219. package/node_modules/fast-stable-stringify/v8-profile/bench.js +0 -8
  220. package/node_modules/fast-stable-stringify/v8-profile/run.sh +0 -2
  221. package/node_modules/fast-stable-stringify/zuul-local.sh +0 -2
  222. package/node_modules/hkdf/.npmignore +0 -2
  223. package/node_modules/hkdf/README.md +0 -23
  224. package/node_modules/hkdf/hkdf.py +0 -171
  225. package/node_modules/hkdf/hkdf.pyc +0 -0
  226. package/node_modules/hkdf/index.js +0 -1
  227. package/node_modules/hkdf/lib/hkdf.js +0 -55
  228. package/node_modules/hkdf/package.json +0 -55
  229. package/node_modules/hkdf/scripts/run_all_tests.sh +0 -19
  230. package/node_modules/hkdf/test/all-test.js +0 -79
  231. package/node_modules/hkdf/test.py +0 -11
  232. package/node_modules/immediate/LICENSE.txt +0 -20
  233. package/node_modules/immediate/README.md +0 -93
  234. package/node_modules/immediate/dist/immediate.js +0 -75
  235. package/node_modules/immediate/dist/immediate.min.js +0 -1
  236. package/node_modules/immediate/lib/browser.js +0 -69
  237. package/node_modules/immediate/lib/index.js +0 -73
  238. package/node_modules/immediate/package.json +0 -86
  239. package/node_modules/isarray/.npmignore +0 -1
  240. package/node_modules/isarray/.travis.yml +0 -4
  241. package/node_modules/isarray/Makefile +0 -6
  242. package/node_modules/isarray/README.md +0 -60
  243. package/node_modules/isarray/component.json +0 -19
  244. package/node_modules/isarray/index.js +0 -5
  245. package/node_modules/isarray/package.json +0 -77
  246. package/node_modules/isarray/test.js +0 -20
  247. package/node_modules/jszip/.codeclimate.yml +0 -16
  248. package/node_modules/jszip/.editorconfig +0 -8
  249. package/node_modules/jszip/.github/workflows/pr.yaml +0 -41
  250. package/node_modules/jszip/.jshintignore +0 -1
  251. package/node_modules/jszip/.jshintrc +0 -21
  252. package/node_modules/jszip/.travis.yml +0 -17
  253. package/node_modules/jszip/CHANGES.md +0 -192
  254. package/node_modules/jszip/LICENSE.markdown +0 -651
  255. package/node_modules/jszip/README.markdown +0 -33
  256. package/node_modules/jszip/dist/jszip.js +0 -11583
  257. package/node_modules/jszip/dist/jszip.min.js +0 -13
  258. package/node_modules/jszip/index.d.ts +0 -335
  259. package/node_modules/jszip/lib/base64.js +0 -106
  260. package/node_modules/jszip/lib/compressedObject.js +0 -74
  261. package/node_modules/jszip/lib/compressions.js +0 -14
  262. package/node_modules/jszip/lib/crc32.js +0 -77
  263. package/node_modules/jszip/lib/defaults.js +0 -11
  264. package/node_modules/jszip/lib/external.js +0 -19
  265. package/node_modules/jszip/lib/flate.js +0 -85
  266. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  267. package/node_modules/jszip/lib/generate/index.js +0 -57
  268. package/node_modules/jszip/lib/index.js +0 -55
  269. package/node_modules/jszip/lib/license_header.js +0 -11
  270. package/node_modules/jszip/lib/load.js +0 -88
  271. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  272. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  273. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  274. package/node_modules/jszip/lib/object.js +0 -389
  275. package/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  276. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  277. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  278. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  279. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  280. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  281. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  282. package/node_modules/jszip/lib/signature.js +0 -7
  283. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  284. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  285. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  286. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  287. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  288. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  289. package/node_modules/jszip/lib/support.js +0 -38
  290. package/node_modules/jszip/lib/utf8.js +0 -275
  291. package/node_modules/jszip/lib/utils.js +0 -501
  292. package/node_modules/jszip/lib/zipEntries.js +0 -262
  293. package/node_modules/jszip/lib/zipEntry.js +0 -294
  294. package/node_modules/jszip/lib/zipObject.js +0 -133
  295. package/node_modules/jszip/package.json +0 -99
  296. package/node_modules/jszip/tsconfig.json +0 -101
  297. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  298. package/node_modules/lie/README.md +0 -62
  299. package/node_modules/lie/dist/lie.js +0 -350
  300. package/node_modules/lie/dist/lie.min.js +0 -1
  301. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  302. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  303. package/node_modules/lie/lib/browser.js +0 -273
  304. package/node_modules/lie/lib/index.js +0 -298
  305. package/node_modules/lie/license.md +0 -7
  306. package/node_modules/lie/lie.d.ts +0 -244
  307. package/node_modules/lie/package.json +0 -98
  308. package/node_modules/lie/polyfill.js +0 -4
  309. package/node_modules/p-finally/index.js +0 -15
  310. package/node_modules/p-finally/license +0 -21
  311. package/node_modules/p-finally/package.json +0 -77
  312. package/node_modules/p-finally/readme.md +0 -47
  313. package/node_modules/p-retry/index.js +0 -52
  314. package/node_modules/p-retry/license +0 -9
  315. package/node_modules/p-retry/package.json +0 -83
  316. package/node_modules/p-retry/readme.md +0 -109
  317. package/node_modules/p-timeout/index.d.ts +0 -72
  318. package/node_modules/p-timeout/index.js +0 -57
  319. package/node_modules/p-timeout/license +0 -9
  320. package/node_modules/p-timeout/package.json +0 -80
  321. package/node_modules/p-timeout/readme.md +0 -87
  322. package/node_modules/pako/CHANGELOG.md +0 -164
  323. package/node_modules/pako/LICENSE +0 -21
  324. package/node_modules/pako/README.md +0 -191
  325. package/node_modules/pako/dist/pako.js +0 -6818
  326. package/node_modules/pako/dist/pako.min.js +0 -1
  327. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  328. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  329. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  330. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  331. package/node_modules/pako/index.js +0 -14
  332. package/node_modules/pako/lib/deflate.js +0 -400
  333. package/node_modules/pako/lib/inflate.js +0 -423
  334. package/node_modules/pako/lib/utils/common.js +0 -105
  335. package/node_modules/pako/lib/utils/strings.js +0 -187
  336. package/node_modules/pako/lib/zlib/README +0 -59
  337. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  338. package/node_modules/pako/lib/zlib/constants.js +0 -68
  339. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  340. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  341. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  342. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  343. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  344. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  345. package/node_modules/pako/lib/zlib/messages.js +0 -32
  346. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  347. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  348. package/node_modules/pako/package.json +0 -94
  349. package/node_modules/process-nextick-args/index.js +0 -45
  350. package/node_modules/process-nextick-args/license.md +0 -19
  351. package/node_modules/process-nextick-args/package.json +0 -53
  352. package/node_modules/process-nextick-args/readme.md +0 -18
  353. package/node_modules/readable-stream/.travis.yml +0 -34
  354. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  355. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  356. package/node_modules/readable-stream/LICENSE +0 -47
  357. package/node_modules/readable-stream/README.md +0 -58
  358. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  359. package/node_modules/readable-stream/duplex-browser.js +0 -1
  360. package/node_modules/readable-stream/duplex.js +0 -1
  361. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  362. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  363. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  364. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  365. package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  366. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  367. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  368. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  369. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  370. package/node_modules/readable-stream/package.json +0 -86
  371. package/node_modules/readable-stream/passthrough.js +0 -1
  372. package/node_modules/readable-stream/readable-browser.js +0 -7
  373. package/node_modules/readable-stream/readable.js +0 -19
  374. package/node_modules/readable-stream/transform.js +0 -1
  375. package/node_modules/readable-stream/writable-browser.js +0 -1
  376. package/node_modules/readable-stream/writable.js +0 -8
  377. package/node_modules/retry/.npmignore +0 -3
  378. package/node_modules/retry/.travis.yml +0 -15
  379. package/node_modules/retry/License +0 -21
  380. package/node_modules/retry/Makefile +0 -18
  381. package/node_modules/retry/README.md +0 -227
  382. package/node_modules/retry/equation.gif +0 -0
  383. package/node_modules/retry/example/dns.js +0 -31
  384. package/node_modules/retry/example/stop.js +0 -40
  385. package/node_modules/retry/index.js +0 -1
  386. package/node_modules/retry/lib/retry.js +0 -100
  387. package/node_modules/retry/lib/retry_operation.js +0 -158
  388. package/node_modules/retry/package.json +0 -67
  389. package/node_modules/retry/test/common.js +0 -10
  390. package/node_modules/retry/test/integration/test-forever.js +0 -24
  391. package/node_modules/retry/test/integration/test-retry-operation.js +0 -258
  392. package/node_modules/retry/test/integration/test-retry-wrap.js +0 -101
  393. package/node_modules/retry/test/integration/test-timeouts.js +0 -69
  394. package/node_modules/setimmediate/LICENSE.txt +0 -20
  395. package/node_modules/setimmediate/package.json +0 -77
  396. package/node_modules/setimmediate/setImmediate.js +0 -186
  397. package/node_modules/split/.npmignore +0 -3
  398. package/node_modules/split/.travis.yml +0 -3
  399. package/node_modules/split/LICENCE +0 -22
  400. package/node_modules/split/examples/pretty.js +0 -26
  401. package/node_modules/split/index.js +0 -63
  402. package/node_modules/split/package.json +0 -65
  403. package/node_modules/split/readme.markdown +0 -72
  404. package/node_modules/split/test/options.asynct.js +0 -46
  405. package/node_modules/split/test/partitioned_unicode.js +0 -34
  406. package/node_modules/split/test/split.asynct.js +0 -137
  407. package/node_modules/split/test/try_catch.asynct.js +0 -51
  408. package/node_modules/stream-shift/.travis.yml +0 -6
  409. package/node_modules/stream-shift/LICENSE +0 -21
  410. package/node_modules/stream-shift/README.md +0 -25
  411. package/node_modules/stream-shift/index.js +0 -20
  412. package/node_modules/stream-shift/package.json +0 -56
  413. package/node_modules/stream-shift/test.js +0 -48
  414. package/node_modules/ultron/LICENSE +0 -22
  415. package/node_modules/ultron/README.md +0 -113
  416. package/node_modules/ultron/index.js +0 -136
  417. package/node_modules/ultron/package.json +0 -71
  418. package/node_modules/websocket-stream/LICENSE +0 -8
  419. package/node_modules/websocket-stream/collaborators.md +0 -11
  420. package/node_modules/websocket-stream/echo-server.js +0 -51
  421. package/node_modules/websocket-stream/index.d.ts +0 -27
  422. package/node_modules/websocket-stream/index.js +0 -6
  423. package/node_modules/websocket-stream/package.json +0 -82
  424. package/node_modules/websocket-stream/readme.md +0 -148
  425. package/node_modules/websocket-stream/server.js +0 -29
  426. package/node_modules/websocket-stream/stream.js +0 -189
  427. package/node_modules/websocket-stream/test-client.js +0 -74
  428. package/node_modules/websocket-stream/test-server.js +0 -56
  429. package/node_modules/websocket-stream/test.js +0 -338
  430. package/node_modules/websocket-stream/ts-tests.ts +0 -69
  431. package/node_modules/websocket-stream/ws-fallback.js +0 -12
  432. package/node_modules/ws/LICENSE +0 -21
  433. package/node_modules/ws/README.md +0 -341
  434. package/node_modules/ws/index.js +0 -15
  435. package/node_modules/ws/lib/.DS_Store +0 -0
  436. package/node_modules/ws/lib/BufferUtil.js +0 -71
  437. package/node_modules/ws/lib/Constants.js +0 -10
  438. package/node_modules/ws/lib/ErrorCodes.js +0 -28
  439. package/node_modules/ws/lib/EventTarget.js +0 -151
  440. package/node_modules/ws/lib/Extensions.js +0 -203
  441. package/node_modules/ws/lib/PerMessageDeflate.js +0 -507
  442. package/node_modules/ws/lib/Receiver.js +0 -553
  443. package/node_modules/ws/lib/Sender.js +0 -412
  444. package/node_modules/ws/lib/Validation.js +0 -17
  445. package/node_modules/ws/lib/WebSocket.js +0 -717
  446. package/node_modules/ws/lib/WebSocketServer.js +0 -326
  447. package/node_modules/ws/package.json +0 -83
  448. package/node_modules/xhr2/CONTRIBUTING.md +0 -33
  449. package/node_modules/xhr2/Cakefile +0 -131
  450. package/node_modules/xhr2/LICENSE.txt +0 -19
  451. package/node_modules/xhr2/README.md +0 -142
  452. package/node_modules/xhr2/lib/browser.js +0 -1
  453. package/node_modules/xhr2/lib/xhr2.js +0 -1244
  454. package/node_modules/xhr2/package.json +0 -103
  455. package/node_modules/xhr2/src/000-xml_http_request_event_target.coffee +0 -89
  456. package/node_modules/xhr2/src/001-xml_http_request.coffee +0 -781
  457. package/node_modules/xhr2/src/errors.coffee +0 -31
  458. package/node_modules/xhr2/src/progress_event.coffee +0 -39
  459. package/node_modules/xhr2/src/xml_http_request_upload.coffee +0 -95
  460. package/node_modules/xhr2/test/fixtures/hello.json +0 -1
  461. package/node_modules/xhr2/test/fixtures/hello.txt +0 -1
  462. package/node_modules/xhr2/test/fixtures/xhr2.png +0 -0
  463. package/node_modules/xhr2/test/html/browser_test.html +0 -30
  464. package/node_modules/xhr2/test/src/event_target_test.coffee +0 -85
  465. package/node_modules/xhr2/test/src/events_test.coffee +0 -204
  466. package/node_modules/xhr2/test/src/headers_test.coffee +0 -168
  467. package/node_modules/xhr2/test/src/helpers/browser_mocha_runner.coffee +0 -10
  468. package/node_modules/xhr2/test/src/helpers/browser_mocha_setup.coffee +0 -1
  469. package/node_modules/xhr2/test/src/helpers/setup.coffee +0 -38
  470. package/node_modules/xhr2/test/src/helpers/xhr_server.coffee +0 -156
  471. package/node_modules/xhr2/test/src/nodejs_set_test.coffee +0 -162
  472. package/node_modules/xhr2/test/src/redirect_test.coffee +0 -57
  473. package/node_modules/xhr2/test/src/response_type_test.coffee +0 -88
  474. package/node_modules/xhr2/test/src/responseurl_test.coffee +0 -18
  475. package/node_modules/xhr2/test/src/send_test.coffee +0 -89
  476. package/node_modules/xhr2/test/src/status_test.coffee +0 -47
  477. package/node_modules/xhr2/test/src/xhr_test.coffee +0 -102
  478. package/node_modules/xtend/.jshintrc +0 -30
  479. package/node_modules/xtend/LICENSE +0 -20
  480. package/node_modules/xtend/README.md +0 -32
  481. package/node_modules/xtend/immutable.js +0 -19
  482. package/node_modules/xtend/mutable.js +0 -17
  483. package/node_modules/xtend/package.json +0 -89
  484. package/node_modules/xtend/test.js +0 -103
  485. package/node_modules/yazl/LICENSE +0 -21
  486. package/node_modules/yazl/README.md +0 -389
  487. package/node_modules/yazl/index.js +0 -749
  488. package/node_modules/yazl/package.json +0 -69
  489. package/src/commands/CorelliumAPI.js +0 -76
  490. package/src/subscriberInvite.js +0 -140
@@ -1,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;