@corellium/corellium-cli 1.2.2 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -19,3 +19,10 @@ npm install -g @corellium/corellium-cli
19
19
  3. Link with `npm link`
20
20
 
21
21
  *Note*: if you are running it locally create `.env` file and put the following line there `NODE_TLS_REJECT_UNAUTHORIZED=0`
22
+
23
+ ## Publishing
24
+ To publish Corellium CLI to the official Corellium npm registry, create a tag with the format
25
+ ```
26
+ v#.#.#
27
+ ```
28
+ This creates a GitLab pipeline which runs npm publish with the appropriate permissions
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" ?>
2
2
  <!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
3
- <coverage lines-valid="0" lines-covered="0" line-rate="NaN" branches-valid="0" branches-covered="0" branch-rate="NaN" timestamp="1710433471600" complexity="0" version="0.1">
3
+ <coverage lines-valid="0" lines-covered="0" line-rate="NaN" branches-valid="0" branches-covered="0" branch-rate="NaN" timestamp="1713906557236" complexity="0" version="0.1">
4
4
  <sources>
5
5
  <source>/builds/middleware/corellium-cli</source>
6
6
  </sources>
@@ -86,7 +86,7 @@
86
86
  <div class='footer quiet pad2 space-top1 center small'>
87
87
  Code coverage generated by
88
88
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
89
- at 2024-03-14T16:24:31.607Z
89
+ at 2024-04-23T21:09:17.243Z
90
90
  </div>
91
91
  <script src="prettify.js"></script>
92
92
  <script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corellium/corellium-cli",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "description": "Corellium CLI Tool",
5
5
  "scripts": {
6
6
  "corellium": "node index.js",
@@ -87,6 +87,9 @@ class Client {
87
87
  case 'DELETE':
88
88
  response = await axios.delete(`${this._profile.endpoint}/api/${path}`, { headers })
89
89
  break
90
+ case 'HEAD':
91
+ response = await axios.head(`${this._profile.endpoint}/api/${path}`, { headers })
92
+ break
90
93
  }
91
94
  if (response.status >= 400) { throw new Error(response.statusText) }
92
95
  return response.data || {}
@@ -24,6 +24,13 @@ async function builder (yargs) {
24
24
  describe: 'virtual device id',
25
25
  default: process.env.INSTANCE
26
26
  })
27
+ .option('format', {
28
+ alias: 'f',
29
+ type: 'string',
30
+ describe: 'The desired format of the report.',
31
+ choices: ['html', 'json'],
32
+ default: 'html'
33
+ })
27
34
  .option('verbose', {
28
35
  alias: 'v',
29
36
  type: 'boolean',
@@ -33,10 +40,10 @@ async function builder (yargs) {
33
40
  }
34
41
 
35
42
  async function handler (argv) {
36
- const { assessment, instance, verbose } = argv
43
+ const { assessment, instance, format, verbose } = argv
37
44
  const client = new Client(argv)
38
45
  try {
39
- const res = await client._fetch('GET', `${MAST_API_BASE_PATH}/${instance}/assessments/${assessment}/download`)
46
+ const res = await client._fetch('GET', `${MAST_API_BASE_PATH}/${instance}/assessments/${assessment}/download?format=${format}`)
40
47
  console.log(res)
41
48
  } catch (error) {
42
49
  handleError(error, 'download-report failed', verbose)
@@ -1,4 +1,3 @@
1
-
2
1
  const Client = require('../../clients/Client')
3
2
  const { handleError } = require('../../error')
4
3
  const { MAST_API_BASE_PATH } = require('./constants')
@@ -0,0 +1,44 @@
1
+ const Client = require('../../clients/Client')
2
+ const { handleError } = require('../../error')
3
+ const { MAST_API_BASE_PATH } = require('./constants')
4
+
5
+ /**
6
+ * Get assessments for an instance via corellium-mast API.
7
+ *
8
+ * @param yargs
9
+ * @returns {Promise<void>}
10
+ */
11
+ async function builder (yargs) {
12
+ yargs
13
+ .option('instance', {
14
+ alias: 'i',
15
+ type: 'string',
16
+ demandOption: true,
17
+ describe: 'virtual device id',
18
+ default: process.env.INSTANCE
19
+ })
20
+ .option('verbose', {
21
+ alias: 'v',
22
+ type: 'boolean',
23
+ describe: 'console will receive verbose error output',
24
+ default: false
25
+ })
26
+ }
27
+
28
+ async function handler (argv) {
29
+ const { instance, verbose } = argv
30
+ const client = new Client(argv)
31
+ try {
32
+ const res = await client._fetch('GET', `${MAST_API_BASE_PATH}/${instance}/instances/${instance}/assessments`)
33
+ console.log(JSON.stringify(res))
34
+ } catch (error) {
35
+ handleError(error, 'get-assessments failed', verbose)
36
+ }
37
+ }
38
+
39
+ module.exports = {
40
+ builder,
41
+ handler,
42
+ command: 'get-assessments',
43
+ describe: 'Get all MAST assessments for a given instance'
44
+ }
@@ -2,6 +2,7 @@ const subcommands = [
2
2
  require('./create-assessment'),
3
3
  require('./delete-assessment'),
4
4
  require('./get-assessment'),
5
+ require('./get-assessments'),
5
6
  require('./start-monitor'),
6
7
  require('./stop-monitor'),
7
8
  require('./test'),