@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.
- package/README.md +5 -17
- package/docs/OVERVIEW.md +1 -1
- package/jenkinsbuild/build.sh +1 -1
- package/package.json +3 -3
- package/src/TrialAccount.js +76 -0
- package/src/commands/Client.js +2 -2
- package/src/commands/agent/Agent.js +10 -19
- package/src/commands/agent/apps.js +2 -1
- package/src/commands/agent/file.js +2 -1
- package/src/commands/agent/index.js +1 -0
- package/src/commands/agent/ready.js +43 -0
- package/src/commands/extensions/delete.js +2 -1
- package/src/commands/extensions/list.js +2 -1
- package/src/commands/extensions/load.js +2 -1
- package/src/commands/extensions/validate.js +2 -1
- package/src/commands/firmware/list.js +2 -1
- package/src/commands/firmware/load.js +2 -1
- package/src/commands/images/create.js +2 -1
- package/src/commands/images/delete.js +2 -1
- package/src/commands/images/list.js +2 -1
- package/src/commands/instances/Instance.js +27 -0
- package/src/commands/instances/create.js +11 -4
- package/src/commands/instances/delete.js +20 -5
- package/src/commands/instances/index.js +2 -1
- package/src/commands/instances/list.js +11 -5
- package/src/commands/instances/start.js +2 -1
- package/src/commands/instances/stop.js +2 -1
- package/src/commands/instances/upgrade.js +90 -0
- package/src/commands/login.js +14 -2
- package/src/commands/logout.js +2 -1
- package/src/commands/projects/create.js +2 -1
- package/src/commands/projects/delete.js +2 -1
- package/src/commands/projects/list.js +2 -1
- package/src/commands/signup.js +14 -5
- package/src/commands/webplayer/WebPlayer.js +2 -1
- package/src/commands/webplayer/create.js +8 -1
- package/src/commands/webplayer/destroy.js +2 -1
- package/src/commands/webplayer/list.js +19 -17
- package/src/commands/webplayer/login.js +2 -1
- package/src/error.js +14 -1
- package/src/logging.js +1 -1
- package/src/profile.js +12 -9
- package/src/resumable.js +1314 -0
- package/src/table.js +7 -2
- package/src/upload.js +64 -2
- package/src/utils.js +11 -4
- package/test/test.js +89 -0
- package/example/WebPlayerSample.js +0 -263
- package/node_modules/@corellium/corellium-api/README.md +0 -1210
- package/node_modules/@corellium/corellium-api/node_modules/form-data/License +0 -19
- package/node_modules/@corellium/corellium-api/node_modules/form-data/README.md.bak +0 -356
- package/node_modules/@corellium/corellium-api/node_modules/form-data/Readme.md +0 -356
- package/node_modules/@corellium/corellium-api/node_modules/form-data/index.d.ts +0 -62
- package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/browser.js +0 -2
- package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/form_data.js +0 -498
- package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/populate.js +0 -10
- package/node_modules/@corellium/corellium-api/node_modules/form-data/package.json +0 -104
- package/node_modules/@corellium/corellium-api/node_modules/uuid/AUTHORS +0 -5
- package/node_modules/@corellium/corellium-api/node_modules/uuid/CHANGELOG.md +0 -119
- package/node_modules/@corellium/corellium-api/node_modules/uuid/LICENSE.md +0 -21
- package/node_modules/@corellium/corellium-api/node_modules/uuid/README.md +0 -276
- package/node_modules/@corellium/corellium-api/node_modules/uuid/bin/uuid +0 -65
- package/node_modules/@corellium/corellium-api/node_modules/uuid/index.js +0 -8
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/bytesToUuid.js +0 -26
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5-browser.js +0 -216
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5.js +0 -25
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng-browser.js +0 -34
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng.js +0 -8
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1-browser.js +0 -89
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1.js +0 -25
- package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/v35.js +0 -57
- package/node_modules/@corellium/corellium-api/node_modules/uuid/package.json +0 -103
- package/node_modules/@corellium/corellium-api/node_modules/uuid/v1.js +0 -109
- package/node_modules/@corellium/corellium-api/node_modules/uuid/v3.js +0 -4
- package/node_modules/@corellium/corellium-api/node_modules/uuid/v4.js +0 -29
- package/node_modules/@corellium/corellium-api/node_modules/uuid/v5.js +0 -3
- package/node_modules/@corellium/corellium-api/package.json +0 -106
- package/node_modules/@corellium/corellium-api/resumable.js +0 -1312
- package/node_modules/@corellium/corellium-api/src/agent.js +0 -962
- package/node_modules/@corellium/corellium-api/src/corellium.js +0 -444
- package/node_modules/@corellium/corellium-api/src/images.js +0 -131
- package/node_modules/@corellium/corellium-api/src/input.js +0 -178
- package/node_modules/@corellium/corellium-api/src/instance-updater.js +0 -56
- package/node_modules/@corellium/corellium-api/src/instance.js +0 -1031
- package/node_modules/@corellium/corellium-api/src/netmon.js +0 -308
- package/node_modules/@corellium/corellium-api/src/project.js +0 -393
- package/node_modules/@corellium/corellium-api/src/role.js +0 -65
- package/node_modules/@corellium/corellium-api/src/snapshot.js +0 -77
- package/node_modules/@corellium/corellium-api/src/team.js +0 -29
- package/node_modules/@corellium/corellium-api/src/user.js +0 -51
- package/node_modules/@corellium/corellium-api/src/util/fetch.js +0 -62
- package/node_modules/@corellium/corellium-api/src/util/sleep.js +0 -7
- package/node_modules/@corellium/corellium-api/test/integration-tests.js +0 -1292
- package/node_modules/@corellium/corellium-api/test/root-hook-set-flag-if-test-failed.js +0 -7
- package/node_modules/async-limiter/.eslintignore +0 -2
- package/node_modules/async-limiter/.nycrc +0 -10
- package/node_modules/async-limiter/.travis.yml +0 -9
- package/node_modules/async-limiter/LICENSE +0 -8
- package/node_modules/async-limiter/index.js +0 -67
- package/node_modules/async-limiter/package.json +0 -72
- package/node_modules/async-limiter/readme.md +0 -132
- package/node_modules/buffer-crc32/LICENSE +0 -19
- package/node_modules/buffer-crc32/README.md +0 -47
- package/node_modules/buffer-crc32/index.js +0 -111
- package/node_modules/buffer-crc32/package.json +0 -72
- package/node_modules/cross-fetch/LICENSE +0 -21
- package/node_modules/cross-fetch/README.md +0 -169
- package/node_modules/cross-fetch/dist/browser-polyfill.js +0 -532
- package/node_modules/cross-fetch/dist/browser-ponyfill.js +0 -554
- package/node_modules/cross-fetch/dist/cross-fetch.js +0 -2
- package/node_modules/cross-fetch/dist/cross-fetch.js.map +0 -1
- package/node_modules/cross-fetch/dist/node-polyfill.js +0 -11
- package/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
- package/node_modules/cross-fetch/dist/react-native-polyfill.js +0 -12
- package/node_modules/cross-fetch/dist/react-native-ponyfill.js +0 -6
- package/node_modules/cross-fetch/index.d.ts +0 -14
- package/node_modules/cross-fetch/package.json +0 -160
- package/node_modules/cross-fetch/polyfill/package.json +0 -8
- package/node_modules/duplexify/.travis.yml +0 -6
- package/node_modules/duplexify/LICENSE +0 -21
- package/node_modules/duplexify/README.md +0 -97
- package/node_modules/duplexify/example.js +0 -21
- package/node_modules/duplexify/index.js +0 -234
- package/node_modules/duplexify/package.json +0 -69
- package/node_modules/duplexify/test.js +0 -295
- package/node_modules/end-of-stream/LICENSE +0 -21
- package/node_modules/end-of-stream/README.md +0 -54
- package/node_modules/end-of-stream/index.js +0 -94
- package/node_modules/end-of-stream/package.json +0 -69
- package/node_modules/fast-stable-stringify/.npmignore +0 -4
- package/node_modules/fast-stable-stringify/.travis.yml +0 -10
- package/node_modules/fast-stable-stringify/LICENSE +0 -21
- package/node_modules/fast-stable-stringify/README.md +0 -81
- package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +0 -67
- package/node_modules/fast-stable-stringify/cli/format-table.js +0 -70
- package/node_modules/fast-stable-stringify/cli/index.js +0 -19
- package/node_modules/fast-stable-stringify/fixtures/index.js +0 -5
- package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +0 -191
- package/node_modules/fast-stable-stringify/fixtures/log-result.json +0 -22
- package/node_modules/fast-stable-stringify/fixtures/log.txt +0 -24
- package/node_modules/fast-stable-stringify/index.js +0 -73
- package/node_modules/fast-stable-stringify/karma.conf.js +0 -124
- package/node_modules/fast-stable-stringify/karma.conf.travis.js +0 -95
- package/node_modules/fast-stable-stringify/package.json +0 -77
- package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
- package/node_modules/fast-stable-stringify/results/escape.md +0 -20
- package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
- package/node_modules/fast-stable-stringify/results/itar.md +0 -20
- package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +0 -35
- package/node_modules/fast-stable-stringify/results/iter.md +0 -14
- package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
- package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -46
- package/node_modules/fast-stable-stringify/results/libs.md +0 -15
- package/node_modules/fast-stable-stringify/test/escape-long.js +0 -147
- package/node_modules/fast-stable-stringify/test/escape-short.js +0 -147
- package/node_modules/fast-stable-stringify/test/index.js +0 -6
- package/node_modules/fast-stable-stringify/test/itar-long.js +0 -52
- package/node_modules/fast-stable-stringify/test/itar-short.js +0 -52
- package/node_modules/fast-stable-stringify/test/iter.js +0 -84
- package/node_modules/fast-stable-stringify/test/libs.js +0 -57
- package/node_modules/fast-stable-stringify/test/travis.js +0 -43
- package/node_modules/fast-stable-stringify/test/validate.js +0 -24
- package/node_modules/fast-stable-stringify/util/eachRecursive.js +0 -9
- package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +0 -21
- package/node_modules/fast-stable-stringify/util/get-lib-info.js +0 -22
- package/node_modules/fast-stable-stringify/util/object-path.js +0 -47
- package/node_modules/fast-stable-stringify/v8-profile/bench.js +0 -8
- package/node_modules/fast-stable-stringify/v8-profile/run.sh +0 -2
- package/node_modules/fast-stable-stringify/zuul-local.sh +0 -2
- package/node_modules/hkdf/.npmignore +0 -2
- package/node_modules/hkdf/README.md +0 -23
- package/node_modules/hkdf/hkdf.py +0 -171
- package/node_modules/hkdf/hkdf.pyc +0 -0
- package/node_modules/hkdf/index.js +0 -1
- package/node_modules/hkdf/lib/hkdf.js +0 -55
- package/node_modules/hkdf/package.json +0 -55
- package/node_modules/hkdf/scripts/run_all_tests.sh +0 -19
- package/node_modules/hkdf/test/all-test.js +0 -79
- package/node_modules/hkdf/test.py +0 -11
- package/node_modules/immediate/LICENSE.txt +0 -20
- package/node_modules/immediate/README.md +0 -93
- package/node_modules/immediate/dist/immediate.js +0 -75
- package/node_modules/immediate/dist/immediate.min.js +0 -1
- package/node_modules/immediate/lib/browser.js +0 -69
- package/node_modules/immediate/lib/index.js +0 -73
- package/node_modules/immediate/package.json +0 -86
- package/node_modules/isarray/.npmignore +0 -1
- package/node_modules/isarray/.travis.yml +0 -4
- package/node_modules/isarray/Makefile +0 -6
- package/node_modules/isarray/README.md +0 -60
- package/node_modules/isarray/component.json +0 -19
- package/node_modules/isarray/index.js +0 -5
- package/node_modules/isarray/package.json +0 -77
- package/node_modules/isarray/test.js +0 -20
- package/node_modules/jszip/.codeclimate.yml +0 -16
- package/node_modules/jszip/.editorconfig +0 -8
- package/node_modules/jszip/.github/workflows/pr.yaml +0 -41
- package/node_modules/jszip/.jshintignore +0 -1
- package/node_modules/jszip/.jshintrc +0 -21
- package/node_modules/jszip/.travis.yml +0 -17
- package/node_modules/jszip/CHANGES.md +0 -192
- package/node_modules/jszip/LICENSE.markdown +0 -651
- package/node_modules/jszip/README.markdown +0 -33
- package/node_modules/jszip/dist/jszip.js +0 -11583
- package/node_modules/jszip/dist/jszip.min.js +0 -13
- package/node_modules/jszip/index.d.ts +0 -335
- package/node_modules/jszip/lib/base64.js +0 -106
- package/node_modules/jszip/lib/compressedObject.js +0 -74
- package/node_modules/jszip/lib/compressions.js +0 -14
- package/node_modules/jszip/lib/crc32.js +0 -77
- package/node_modules/jszip/lib/defaults.js +0 -11
- package/node_modules/jszip/lib/external.js +0 -19
- package/node_modules/jszip/lib/flate.js +0 -85
- package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
- package/node_modules/jszip/lib/generate/index.js +0 -57
- package/node_modules/jszip/lib/index.js +0 -55
- package/node_modules/jszip/lib/license_header.js +0 -11
- package/node_modules/jszip/lib/load.js +0 -88
- package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
- package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
- package/node_modules/jszip/lib/nodejsUtils.js +0 -57
- package/node_modules/jszip/lib/object.js +0 -389
- package/node_modules/jszip/lib/readable-stream-browser.js +0 -9
- package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
- package/node_modules/jszip/lib/reader/DataReader.js +0 -116
- package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
- package/node_modules/jszip/lib/reader/StringReader.js +0 -38
- package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
- package/node_modules/jszip/lib/reader/readerFor.js +0 -28
- package/node_modules/jszip/lib/signature.js +0 -7
- package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
- package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
- package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
- package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
- package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
- package/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
- package/node_modules/jszip/lib/support.js +0 -38
- package/node_modules/jszip/lib/utf8.js +0 -275
- package/node_modules/jszip/lib/utils.js +0 -501
- package/node_modules/jszip/lib/zipEntries.js +0 -262
- package/node_modules/jszip/lib/zipEntry.js +0 -294
- package/node_modules/jszip/lib/zipObject.js +0 -133
- package/node_modules/jszip/package.json +0 -99
- package/node_modules/jszip/tsconfig.json +0 -101
- package/node_modules/jszip/vendor/FileSaver.js +0 -247
- package/node_modules/lie/README.md +0 -62
- package/node_modules/lie/dist/lie.js +0 -350
- package/node_modules/lie/dist/lie.min.js +0 -1
- package/node_modules/lie/dist/lie.polyfill.js +0 -358
- package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
- package/node_modules/lie/lib/browser.js +0 -273
- package/node_modules/lie/lib/index.js +0 -298
- package/node_modules/lie/license.md +0 -7
- package/node_modules/lie/lie.d.ts +0 -244
- package/node_modules/lie/package.json +0 -98
- package/node_modules/lie/polyfill.js +0 -4
- package/node_modules/p-finally/index.js +0 -15
- package/node_modules/p-finally/license +0 -21
- package/node_modules/p-finally/package.json +0 -77
- package/node_modules/p-finally/readme.md +0 -47
- package/node_modules/p-retry/index.js +0 -52
- package/node_modules/p-retry/license +0 -9
- package/node_modules/p-retry/package.json +0 -83
- package/node_modules/p-retry/readme.md +0 -109
- package/node_modules/p-timeout/index.d.ts +0 -72
- package/node_modules/p-timeout/index.js +0 -57
- package/node_modules/p-timeout/license +0 -9
- package/node_modules/p-timeout/package.json +0 -80
- package/node_modules/p-timeout/readme.md +0 -87
- package/node_modules/pako/CHANGELOG.md +0 -164
- package/node_modules/pako/LICENSE +0 -21
- package/node_modules/pako/README.md +0 -191
- package/node_modules/pako/dist/pako.js +0 -6818
- package/node_modules/pako/dist/pako.min.js +0 -1
- package/node_modules/pako/dist/pako_deflate.js +0 -3997
- package/node_modules/pako/dist/pako_deflate.min.js +0 -1
- package/node_modules/pako/dist/pako_inflate.js +0 -3300
- package/node_modules/pako/dist/pako_inflate.min.js +0 -1
- package/node_modules/pako/index.js +0 -14
- package/node_modules/pako/lib/deflate.js +0 -400
- package/node_modules/pako/lib/inflate.js +0 -423
- package/node_modules/pako/lib/utils/common.js +0 -105
- package/node_modules/pako/lib/utils/strings.js +0 -187
- package/node_modules/pako/lib/zlib/README +0 -59
- package/node_modules/pako/lib/zlib/adler32.js +0 -51
- package/node_modules/pako/lib/zlib/constants.js +0 -68
- package/node_modules/pako/lib/zlib/crc32.js +0 -59
- package/node_modules/pako/lib/zlib/deflate.js +0 -1874
- package/node_modules/pako/lib/zlib/gzheader.js +0 -58
- package/node_modules/pako/lib/zlib/inffast.js +0 -345
- package/node_modules/pako/lib/zlib/inflate.js +0 -1556
- package/node_modules/pako/lib/zlib/inftrees.js +0 -343
- package/node_modules/pako/lib/zlib/messages.js +0 -32
- package/node_modules/pako/lib/zlib/trees.js +0 -1222
- package/node_modules/pako/lib/zlib/zstream.js +0 -47
- package/node_modules/pako/package.json +0 -94
- package/node_modules/process-nextick-args/index.js +0 -45
- package/node_modules/process-nextick-args/license.md +0 -19
- package/node_modules/process-nextick-args/package.json +0 -53
- package/node_modules/process-nextick-args/readme.md +0 -18
- package/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/readable-stream/README.md +0 -58
- package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/readable-stream/package.json +0 -86
- package/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/retry/.npmignore +0 -3
- package/node_modules/retry/.travis.yml +0 -15
- package/node_modules/retry/License +0 -21
- package/node_modules/retry/Makefile +0 -18
- package/node_modules/retry/README.md +0 -227
- package/node_modules/retry/equation.gif +0 -0
- package/node_modules/retry/example/dns.js +0 -31
- package/node_modules/retry/example/stop.js +0 -40
- package/node_modules/retry/index.js +0 -1
- package/node_modules/retry/lib/retry.js +0 -100
- package/node_modules/retry/lib/retry_operation.js +0 -158
- package/node_modules/retry/package.json +0 -67
- package/node_modules/retry/test/common.js +0 -10
- package/node_modules/retry/test/integration/test-forever.js +0 -24
- package/node_modules/retry/test/integration/test-retry-operation.js +0 -258
- package/node_modules/retry/test/integration/test-retry-wrap.js +0 -101
- package/node_modules/retry/test/integration/test-timeouts.js +0 -69
- package/node_modules/setimmediate/LICENSE.txt +0 -20
- package/node_modules/setimmediate/package.json +0 -77
- package/node_modules/setimmediate/setImmediate.js +0 -186
- package/node_modules/split/.npmignore +0 -3
- package/node_modules/split/.travis.yml +0 -3
- package/node_modules/split/LICENCE +0 -22
- package/node_modules/split/examples/pretty.js +0 -26
- package/node_modules/split/index.js +0 -63
- package/node_modules/split/package.json +0 -65
- package/node_modules/split/readme.markdown +0 -72
- package/node_modules/split/test/options.asynct.js +0 -46
- package/node_modules/split/test/partitioned_unicode.js +0 -34
- package/node_modules/split/test/split.asynct.js +0 -137
- package/node_modules/split/test/try_catch.asynct.js +0 -51
- package/node_modules/stream-shift/.travis.yml +0 -6
- package/node_modules/stream-shift/LICENSE +0 -21
- package/node_modules/stream-shift/README.md +0 -25
- package/node_modules/stream-shift/index.js +0 -20
- package/node_modules/stream-shift/package.json +0 -56
- package/node_modules/stream-shift/test.js +0 -48
- package/node_modules/ultron/LICENSE +0 -22
- package/node_modules/ultron/README.md +0 -113
- package/node_modules/ultron/index.js +0 -136
- package/node_modules/ultron/package.json +0 -71
- package/node_modules/websocket-stream/LICENSE +0 -8
- package/node_modules/websocket-stream/collaborators.md +0 -11
- package/node_modules/websocket-stream/echo-server.js +0 -51
- package/node_modules/websocket-stream/index.d.ts +0 -27
- package/node_modules/websocket-stream/index.js +0 -6
- package/node_modules/websocket-stream/package.json +0 -82
- package/node_modules/websocket-stream/readme.md +0 -148
- package/node_modules/websocket-stream/server.js +0 -29
- package/node_modules/websocket-stream/stream.js +0 -189
- package/node_modules/websocket-stream/test-client.js +0 -74
- package/node_modules/websocket-stream/test-server.js +0 -56
- package/node_modules/websocket-stream/test.js +0 -338
- package/node_modules/websocket-stream/ts-tests.ts +0 -69
- package/node_modules/websocket-stream/ws-fallback.js +0 -12
- package/node_modules/ws/LICENSE +0 -21
- package/node_modules/ws/README.md +0 -341
- package/node_modules/ws/index.js +0 -15
- package/node_modules/ws/lib/.DS_Store +0 -0
- package/node_modules/ws/lib/BufferUtil.js +0 -71
- package/node_modules/ws/lib/Constants.js +0 -10
- package/node_modules/ws/lib/ErrorCodes.js +0 -28
- package/node_modules/ws/lib/EventTarget.js +0 -151
- package/node_modules/ws/lib/Extensions.js +0 -203
- package/node_modules/ws/lib/PerMessageDeflate.js +0 -507
- package/node_modules/ws/lib/Receiver.js +0 -553
- package/node_modules/ws/lib/Sender.js +0 -412
- package/node_modules/ws/lib/Validation.js +0 -17
- package/node_modules/ws/lib/WebSocket.js +0 -717
- package/node_modules/ws/lib/WebSocketServer.js +0 -326
- package/node_modules/ws/package.json +0 -83
- package/node_modules/xhr2/CONTRIBUTING.md +0 -33
- package/node_modules/xhr2/Cakefile +0 -131
- package/node_modules/xhr2/LICENSE.txt +0 -19
- package/node_modules/xhr2/README.md +0 -142
- package/node_modules/xhr2/lib/browser.js +0 -1
- package/node_modules/xhr2/lib/xhr2.js +0 -1244
- package/node_modules/xhr2/package.json +0 -103
- package/node_modules/xhr2/src/000-xml_http_request_event_target.coffee +0 -89
- package/node_modules/xhr2/src/001-xml_http_request.coffee +0 -781
- package/node_modules/xhr2/src/errors.coffee +0 -31
- package/node_modules/xhr2/src/progress_event.coffee +0 -39
- package/node_modules/xhr2/src/xml_http_request_upload.coffee +0 -95
- package/node_modules/xhr2/test/fixtures/hello.json +0 -1
- package/node_modules/xhr2/test/fixtures/hello.txt +0 -1
- package/node_modules/xhr2/test/fixtures/xhr2.png +0 -0
- package/node_modules/xhr2/test/html/browser_test.html +0 -30
- package/node_modules/xhr2/test/src/event_target_test.coffee +0 -85
- package/node_modules/xhr2/test/src/events_test.coffee +0 -204
- package/node_modules/xhr2/test/src/headers_test.coffee +0 -168
- package/node_modules/xhr2/test/src/helpers/browser_mocha_runner.coffee +0 -10
- package/node_modules/xhr2/test/src/helpers/browser_mocha_setup.coffee +0 -1
- package/node_modules/xhr2/test/src/helpers/setup.coffee +0 -38
- package/node_modules/xhr2/test/src/helpers/xhr_server.coffee +0 -156
- package/node_modules/xhr2/test/src/nodejs_set_test.coffee +0 -162
- package/node_modules/xhr2/test/src/redirect_test.coffee +0 -57
- package/node_modules/xhr2/test/src/response_type_test.coffee +0 -88
- package/node_modules/xhr2/test/src/responseurl_test.coffee +0 -18
- package/node_modules/xhr2/test/src/send_test.coffee +0 -89
- package/node_modules/xhr2/test/src/status_test.coffee +0 -47
- package/node_modules/xhr2/test/src/xhr_test.coffee +0 -102
- package/node_modules/xtend/.jshintrc +0 -30
- package/node_modules/xtend/LICENSE +0 -20
- package/node_modules/xtend/README.md +0 -32
- package/node_modules/xtend/immutable.js +0 -19
- package/node_modules/xtend/mutable.js +0 -17
- package/node_modules/xtend/package.json +0 -89
- package/node_modules/xtend/test.js +0 -103
- package/node_modules/yazl/LICENSE +0 -21
- package/node_modules/yazl/README.md +0 -389
- package/node_modules/yazl/index.js +0 -749
- package/node_modules/yazl/package.json +0 -69
- package/src/commands/CorelliumAPI.js +0 -76
- 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(
|
|
10
|
-
return filteredFields.map(
|
|
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
|
|
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
|
|
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(
|
|
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
|
-
})
|