@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
package/src/table.js CHANGED
@@ -6,8 +6,13 @@ async function displayTable (format, data, filteredFields, columnWidths) {
6
6
  const displayJson = JSON.stringify(data, null, 2)
7
7
  log.plain(displayJson)
8
8
  } else {
9
- let rows = data.map(i => {
10
- return filteredFields.map(key => `${i[key]}`)
9
+ let rows = data.map(d => {
10
+ return filteredFields.map(field => {
11
+ // Not perfect, but this is to avoid the [object Object] scenario for json fields in DB
12
+ return typeof d[field] === 'object' && d[field] !== null
13
+ ? JSON.stringify(d[field])
14
+ : d[field]
15
+ })
11
16
  })
12
17
 
13
18
  if (format === 'csv') {
package/src/upload.js CHANGED
@@ -1,7 +1,69 @@
1
- const images = require('@corellium/corellium-api/src/images')
1
+ const fs = require('fs')
2
+ const path = require('path')
3
+ const util = require('util')
4
+ const Resumable = require('./resumable')
2
5
  const { basename } = require('path')
3
6
  const { getErrorMessage } = require('./error')
4
7
 
8
+ class File {
9
+ constructor ({ filePath, type, size }) {
10
+ this.path = filePath
11
+ this.name = path.basename(filePath)
12
+ this.type = type
13
+ this.size = size
14
+ }
15
+
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
+ slice (start, end, _contentType) {
18
+ return fs.createReadStream(this.path, { start, end })
19
+ }
20
+ }
21
+
22
+ async function uploadFile (token, url, filePath, progress) {
23
+ return new Promise((resolve, reject) => {
24
+ const r = new Resumable({
25
+ target: url,
26
+ headers: {
27
+ authorization: token,
28
+ 'x-corellium-image-encoding': 'plain'
29
+ },
30
+ uploadMethod: 'PUT',
31
+ chunkSize: 5 * 1024 * 1024,
32
+ prioritizeFirstAndLastChunk: true,
33
+ method: 'octet'
34
+ })
35
+
36
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
+ r.on('fileAdded', (_file) => {
38
+ r.upload()
39
+ })
40
+
41
+ r.on('progress', () => {
42
+ if (progress) progress(r.progress())
43
+ })
44
+
45
+ r.on('fileError', (_file, message) => {
46
+ reject(message)
47
+ })
48
+
49
+ r.on('fileSuccess', (_file, message) => {
50
+ resolve(JSON.parse(message))
51
+ })
52
+
53
+ return util
54
+ .promisify(fs.stat)(filePath)
55
+ .then((stat) => {
56
+ const file = new File({
57
+ filePath: filePath,
58
+ type: 'application/octet-stream',
59
+ size: stat.size
60
+ })
61
+
62
+ r.addFile(file)
63
+ })
64
+ })
65
+ }
66
+
5
67
  async function uploadWithProgress (url, token, file, multi) {
6
68
  const fileName = basename(file)
7
69
 
@@ -13,7 +75,7 @@ async function uploadWithProgress (url, token, file, multi) {
13
75
  })
14
76
 
15
77
  try {
16
- const res = await images.uploadFile(
78
+ const res = await uploadFile(
17
79
  token,
18
80
  url,
19
81
  file,
package/src/utils.js CHANGED
@@ -9,6 +9,8 @@ axios.defaults.headers.common['User-Agent'] = `corellium-cli v${require('../pack
9
9
  const superagent = require('superagent')
10
10
  const https = require('https')
11
11
 
12
+ const waitForIntervalMilliSec = 5000
13
+
12
14
  const planOptions = (planId) => {
13
15
  let usageBased = false
14
16
  let cores, licenseType
@@ -50,11 +52,14 @@ const sleep = (milliseconds) => {
50
52
  return new Promise((resolve) => setTimeout(resolve, milliseconds))
51
53
  }
52
54
 
53
- const waitForState = async (instanceId, fn, state, attempts = 20) => {
55
+ const waitForState = async (instanceId, fn, state, attempts = 20, reporterFn = null) => {
54
56
  const response = await fn(instanceId)
57
+ if (typeof reporterFn === 'function') {
58
+ reporterFn(response)
59
+ }
55
60
  if (response.state !== state && attempts > 0) {
56
- await sleep(5000)
57
- await waitForState(instanceId, fn, state, --attempts)
61
+ await sleep(waitForIntervalMilliSec)
62
+ await waitForState(instanceId, fn, state, --attempts, reporterFn)
58
63
  }
59
64
  }
60
65
 
@@ -143,5 +148,7 @@ module.exports = {
143
148
  getApi,
144
149
  getAxios,
145
150
  validateNonEmpty,
146
- getCACert
151
+ getCACert,
152
+ sleep,
153
+ waitForIntervalMilliSec
147
154
  }
package/test/test.js ADDED
@@ -0,0 +1,89 @@
1
+ const { exec } = require('child_process')
2
+ const { promisify } = require('util')
3
+ const path = require('path')
4
+ const execp = promisify(exec)
5
+ const assert = require('node:assert').strict
6
+
7
+ test()
8
+ .catch(e => console.error(e))
9
+
10
+ async function test () {
11
+ await testProjects()
12
+ await testInstances()
13
+ }
14
+
15
+ async function testInstances () {
16
+ const projectId = (await ej('project create --cores 20 --instances 10 --ram 5000 CoolNewProject'))[0].id
17
+
18
+ const { state, id: instanceId } = (await ej(`instance create ranchu 12.0.0 ${projectId}`))[0]
19
+ assert.equal(state, 'creating')
20
+
21
+ const instances = await ej('instance list')
22
+ assert.ok(instances.map(p => p.id).includes(instanceId))
23
+ // TODO: instance stop
24
+ // TODO: instance start
25
+ await e(`instance delete ${instanceId}`)
26
+
27
+ await pollUntilNoThrow(instanceId)
28
+
29
+ // Cleanup
30
+ await e(`project delete ${projectId}`)
31
+ }
32
+
33
+ async function testProjects () {
34
+ const { id: projectId } = (await ej('project create --cores 10 --instances 2 --ram 2000 CoolNewProject'))[0]
35
+
36
+ // The list has the newly created project in it
37
+ let projects = await ej('project list')
38
+ assert.ok(projects.map(p => p.id).includes(projectId))
39
+
40
+ await e(`project delete ${projectId}`)
41
+
42
+ // The list has no longer has the project
43
+ projects = await ej('project list')
44
+ assert.equal(-1, projects.map(p => p.id).indexOf(projectId))
45
+ }
46
+
47
+ async function sleep (ms) {
48
+ return new Promise((resolve) => setTimeout(resolve, ms))
49
+ }
50
+
51
+ async function pollUntilNoThrow (instanceId, tries = 1) {
52
+ if (tries > 10) {
53
+ return
54
+ }
55
+ console.log(`try ${tries} looking for ${instanceId}`)
56
+
57
+ try {
58
+ const instances = await ej('instance list')
59
+ assert.equal(-1, instances.map(i => i.id).indexOf(instanceId))
60
+ } catch (err) {
61
+ if (err.code === 'ERR_ASSERTION') {
62
+ const ms = 1 + Math.random() * (2 ** tries * 10)
63
+ await sleep(ms)
64
+ await pollUntilNoThrow(instanceId, tries + 1)
65
+ } else {
66
+ throw err
67
+ }
68
+ }
69
+ }
70
+
71
+ // short for "execJSON"
72
+ // Used to exec things we want the return value of
73
+ async function ej (s) {
74
+ const { stdout, stderr } = await execp(`node index.js ${s} --format json`, { cwd: path.join(__dirname, '../') })
75
+ if (stderr) {
76
+ console.log(stderr)
77
+ }
78
+ return JSON.parse(stdout)
79
+ }
80
+
81
+ // short for "exec"
82
+ // Used mainly for deletes, which have no --format flag and return no parseable data (204, generally)
83
+ async function e (s) {
84
+ const { stdout, stderr } = await execp(`node index.js ${s}`, { cwd: path.join(__dirname, '../') })
85
+ if (stderr) {
86
+ console.log(stderr)
87
+ }
88
+ return stdout
89
+ }
@@ -1,263 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const path = require('path')
4
- const asciiArt = require('../node_modules/ascii-art')
5
- const { exec } = require('child_process')
6
- const { promisify } = require('util')
7
- const execp = promisify(exec)
8
-
9
- require('dotenv').config()
10
-
11
- const endpoint = process.env.ENDPOINT
12
- const username = process.env.USERNAME
13
- const password = process.env.PASSWORD
14
- const project = process.env.PROJECT
15
- const flavor = process.env.FLAVOR
16
- const version = process.env.VERSION
17
- const apitoken = process.env.APIKEY // Admin's API token
18
- const expiration = 15 * 60 // seconds (15 minutes), Set < 15 mins to test automatic token renewal
19
- let projectId, instanceId
20
-
21
- const frontendFeatureSet = {
22
- apps: true,
23
- connect: true,
24
- console: true,
25
- coretrace: true,
26
- deviceControl: true,
27
- deviceDelete: true,
28
- files: true,
29
- frida: true,
30
- images: true,
31
- messaging: true,
32
- netmon: true,
33
- network: true,
34
- portForwarding: true,
35
- powerManagement: true,
36
- profile: true,
37
- sensors: true,
38
- settings: true,
39
- snapshots: true,
40
- strace: true,
41
- system: true
42
- }
43
- const features = JSON.stringify(JSON.stringify(frontendFeatureSet))
44
-
45
- const execOptions = { cwd: path.join(__dirname, '../.') }
46
-
47
- /**
48
- * Return a timestamp as delta T formatted -> mm:ss.msec
49
- * @return {string}
50
- */
51
- const INFO_COLOR = 'green'
52
- const CMD_COLOR = 'magenta'
53
- const ERROR_COLOR = 'red'
54
- const TIMESTAMP_COLOR = 'cyan'
55
- const startTime = new Date().getTime()
56
- const ts = () => asciiArt.style(new Date((new Date().getTime() - startTime)).toISOString().slice(14, 23) + ':', TIMESTAMP_COLOR, true)
57
- /**
58
- * Logging with timestamp
59
- * @param args
60
- */
61
- const logInfo = (...args) => {
62
- args.unshift(ts())
63
- console.log.bind(console, ...args)()
64
- }
65
-
66
- const logResult = (...args) => {
67
- args.unshift(asciiArt.style('', INFO_COLOR))
68
- args.unshift(ts())
69
- args[2] = '\b' + args[2]
70
- args.push(asciiArt.style('', INFO_COLOR, true))
71
- console.log.bind(console, ...args)()
72
- }
73
-
74
- const logError = (...args) => {
75
- args.unshift(asciiArt.style('', ERROR_COLOR))
76
- args.unshift(ts())
77
- args[2] = '\b' + args[2]
78
- args.push(asciiArt.style('', ERROR_COLOR, true))
79
- console.error.bind(console, ...args)()
80
- }
81
-
82
- /**
83
- * Execute a command on the local host
84
- * @param {string} cmd
85
- * @return {Promise<{stdout, stderr}>}
86
- */
87
- async function execLocal (cmd) {
88
- logInfo(asciiArt.style('[CorelliumCLI] ' + cmd, CMD_COLOR, true))
89
- let { stdout, stderr } = await execp(cmd, execOptions)
90
- stdout = stdout && stdout.trim()
91
- stderr = stderr && stderr.trim()
92
- // if (stdout && stdout.length) logResult('[execLocal] stdout.:', stdout)
93
- // if (stderr && stderr.length) logError('[execLocal] stderr.:', stderr)
94
- return { stdout, stderr }
95
- }
96
-
97
- /**
98
- * Parse command results
99
- * @param {any} data
100
- * @returns {any}
101
- */
102
- const parse = (data) => { try { return JSON.parse(data) } catch (_e) { return data } }
103
-
104
- /**
105
- * List All Web Players
106
- */
107
- const listSessions = async (sessionId) => {
108
- const session = sessionId ? ` --session ${sessionId}` : ''
109
- const { stdout } = await execLocal(`node index.js webplayer list --project ${projectId}${session} --format json`)
110
- const sessions = parse(stdout)
111
- if (Array.isArray(sessions)) {
112
- logResult('Existing WebPlayers:', sessions.map(s => s.identifier))
113
- } else {
114
- logError('[listSessions]', sessions)
115
- }
116
- }
117
-
118
- // Find project by name or identifier
119
- const findProject = async (id) => {
120
- const { stdout: result } = await execLocal('node index.js project list --format json')
121
- // logInfo(result)
122
- const projects = parse(result)
123
- if (Array.isArray(projects)) {
124
- const proj = projects.find(p => p.id === id || p.name === id)
125
- if (!proj) {
126
- throw new Error(`Could not find project ${id}`)
127
- }
128
- logResult(`Found project ${proj.id} - ${proj.name}`)
129
- return proj
130
- }
131
- }
132
-
133
- /**
134
- * @return {Promise<object | undefined>}
135
- */
136
- const createInstance = async () => {
137
- const { stdout: result } = await execLocal(`node index.js instance create ${flavor} ${version} ${projectId} --format json`)
138
- logResult(`"${result}"`)
139
- try {
140
- const instances = parse(result)
141
- if (Array.isArray(instances)) {
142
- return instances[0]
143
- }
144
- } catch (err) {
145
- console.error(err)
146
- }
147
- }
148
-
149
- const findInstance = async (id) => {
150
- let { stdout: result } = await execLocal(`node index.js instance list --project ${projectId} --format json`)
151
- // logResult(`"${result}"`)
152
- if (result === '') { result = '[]' }
153
- const instances = parse(result)
154
- if (Array.isArray(instances)) {
155
- const inst = instances.find(i => i.id === id || i.name === id || i.flavor === id)
156
- if (inst) {
157
- logInfo(`Found instance ${inst.id} - ${inst.name || inst.flavor}`)
158
- return inst
159
- }
160
- return await createInstance()
161
- }
162
- }
163
-
164
- const startInstance = async () => {
165
- let { stdout: result } = await execLocal(`node index.js instance list --project ${projectId} --format json`)
166
- // logResult(`"${result}"`)
167
- const instances = parse(result)
168
- if (Array.isArray(instances)) {
169
- const inst = instances.find(i => i.id === instanceId)
170
- if (!inst) {
171
- throw new Error(`Could not find instance ${instanceId}`)
172
- }
173
- logInfo(`Found instance ${instanceId} - ${inst.name || inst.flavor}`)
174
- if (inst.state === 'on') {
175
- logInfo(`${inst.name || inst.flavor} is ON`)
176
- } else {
177
- logInfo(`${inst.name || inst.flavor} is OFF. Turning on ${inst.name || inst.flavor}...`);
178
- ({ stdout: result } = await execLocal(`node index.js instance start ${instanceId}`))
179
- logInfo(result)
180
- }
181
- }
182
- // Kind of a lie, but this is a good place for this msg because...
183
- // if the instance has just started, the agent can take an uncomfortable
184
- // amount of time to become available.
185
- logInfo('Waiting for an agent to become available...')
186
- }
187
-
188
- // Log in as administrator
189
- const adminLogin = async () => {
190
- let cmd
191
- if (apitoken) {
192
- cmd = `node index.js login --endpoint ${endpoint} --apitoken ${apitoken}`
193
- } else {
194
- cmd = `node index.js login --endpoint ${endpoint} --username ${username} --password ${password}`
195
- }
196
- const { stdout: result } = await execLocal(cmd)
197
- logResult(result)
198
- }
199
-
200
- /**
201
- * Main script
202
- */
203
- (async () => {
204
- await adminLogin()
205
-
206
- // Locate project
207
- const p = await findProject(project)
208
- if (p) projectId = p.id
209
- if (!projectId) throw new Error('Missing projectId')
210
-
211
- // Locate project
212
- const i = await findInstance(flavor)
213
- if (i) instanceId = i.id
214
- if (!instanceId) throw new Error('Missing instanceId')
215
-
216
- // Show existing sessions
217
- logInfo('Show all sessions')
218
- await listSessions()
219
-
220
- // Create a Web Player session and extract the new session ID
221
- let { stdout: result } = await execLocal(`node index.js webplayer create --project ${projectId} --features ${features} --expiresIn ${expiration}`)
222
- const parsed = parse(result)
223
- if (!Array.isArray(parsed)) { throw new Error('Web Player creation failed') }
224
- const { identifier: sessionId } = parsed[0]
225
- logResult(`Created Web Player Session ${sessionId}`)
226
-
227
- logInfo('Show all sessions')
228
- await listSessions()
229
-
230
- // Verify listing a single session
231
- logInfo('Show newly created session only')
232
- await listSessions(sessionId);
233
-
234
- // Log into the Web Player session
235
- ({ stdout: result } = await execLocal(`node index.js webplayer login --project ${projectId} --session ${sessionId}`))
236
- logResult(result)
237
-
238
- // Device must be ON before using agent
239
- await startInstance();
240
-
241
- // List files
242
- ({ stdout: result } = await execLocal(`node index.js agent files --project ${projectId} --instance ${instanceId}`))
243
- logResult('\n', result);
244
-
245
- // List apps
246
- ({ stdout: result } = await execLocal(`node index.js agent apps --project ${projectId} --instance ${instanceId}`))
247
- logResult('\n', result)
248
-
249
- // Re-login in as administrator since the session has been destroyed
250
- await adminLogin();
251
-
252
- // Destroy the Web Player session
253
- ({ stdout: result } = await execLocal(`node index.js webplayer destroy --project ${projectId} --session ${sessionId}`))
254
- logResult(result)
255
-
256
- await listSessions()
257
- })()
258
- .then(() => {
259
- logInfo('-=DONE=-\n\n')
260
- })
261
- .catch(e => {
262
- logError(e)
263
- })