@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
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const { fetch, fetchApi, CorelliumError } = require("./util/fetch");
|
|
4
|
-
const Project = require("./project");
|
|
5
|
-
const Team = require("./team");
|
|
6
|
-
const User = require("./user");
|
|
7
|
-
const Role = require("./role");
|
|
8
|
-
const { I } = require("./input");
|
|
9
|
-
const { listImagesMetaData } = require("./images");
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {object} SupportedDevice
|
|
13
|
-
* @property {string} type
|
|
14
|
-
* @property {string} name
|
|
15
|
-
* @property {string} flavor
|
|
16
|
-
* @property {string} description
|
|
17
|
-
* @property {string} model
|
|
18
|
-
* @property {Object} firmwares
|
|
19
|
-
* @property {string} firmwares.version
|
|
20
|
-
* @property {string} firmwares.buildid
|
|
21
|
-
* @property {string} firmwares.sha256sum
|
|
22
|
-
* @property {string} firmwares.sha1sum
|
|
23
|
-
* @property {string} firmwares.md5sum
|
|
24
|
-
* @property {integer} firmwares.size
|
|
25
|
-
* @property {string} firmwares.uniqueid
|
|
26
|
-
* @property {string} firmwares.metadata
|
|
27
|
-
* @property {string} firmwares.releasedate - ISO datetime string
|
|
28
|
-
* @property {string} firmwares.uploaddate - ISO datetime string
|
|
29
|
-
* @property {string} firmwares.url
|
|
30
|
-
* @property {string} firmwares.orig_url
|
|
31
|
-
* @property {string} firmwares.filename
|
|
32
|
-
* @property {Object} quotas
|
|
33
|
-
* @property {integer} quotas.cores
|
|
34
|
-
* @property {integer} quotas.cpus
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* The Corellium API client.
|
|
39
|
-
*/
|
|
40
|
-
class Corellium {
|
|
41
|
-
/**
|
|
42
|
-
* Create a new Corellium client.
|
|
43
|
-
* @constructor
|
|
44
|
-
* @param {Object} options
|
|
45
|
-
* @param {string} options.endpoint - Endpoint URL
|
|
46
|
-
* @param {string?} options.apiToken - Login apiToken
|
|
47
|
-
* @param {string?} options.username - Login username
|
|
48
|
-
* @param {string?} options.password - Login password
|
|
49
|
-
* @param {string?} options.totpToken - Login TOTP (Timebased One Time Password)
|
|
50
|
-
* @example
|
|
51
|
-
* const corellium = new Corellium({
|
|
52
|
-
* endpoint: 'https://app.corellium.com',
|
|
53
|
-
* username: 'username',
|
|
54
|
-
* password: 'password',
|
|
55
|
-
* totpToken: '123456',
|
|
56
|
-
* });
|
|
57
|
-
*/
|
|
58
|
-
constructor(options) {
|
|
59
|
-
this.options = options;
|
|
60
|
-
this.api = options.endpoint + "/api/v1";
|
|
61
|
-
this.token = options.token || null;
|
|
62
|
-
this.supportedDevices = null;
|
|
63
|
-
this._teams = null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Returns refreshed authentication token
|
|
68
|
-
* @return {string} token
|
|
69
|
-
* @example
|
|
70
|
-
* let token = await corellium.getToken()
|
|
71
|
-
*/
|
|
72
|
-
async getToken() {
|
|
73
|
-
const token = await this.token;
|
|
74
|
-
|
|
75
|
-
// If the token is more than 15 minutes from expiring, we don't need to refresh it.
|
|
76
|
-
if (token && token.expiration > new Date(new Date().getTime() + 15 * 60 * 1000))
|
|
77
|
-
return token.token;
|
|
78
|
-
|
|
79
|
-
var postData = {};
|
|
80
|
-
if (this.options.apiToken) {
|
|
81
|
-
postData.apiToken = this.options.apiToken;
|
|
82
|
-
} else {
|
|
83
|
-
postData.username = this.options.username;
|
|
84
|
-
postData.password = this.options.password;
|
|
85
|
-
postData.totpToken = this.options.totpToken;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
this.token = (async () => {
|
|
89
|
-
const res = await fetch(`${this.api}/tokens`, {
|
|
90
|
-
method: "POST",
|
|
91
|
-
json: postData,
|
|
92
|
-
});
|
|
93
|
-
return {
|
|
94
|
-
token: res.token,
|
|
95
|
-
expiration: new Date(res.expiration),
|
|
96
|
-
};
|
|
97
|
-
})();
|
|
98
|
-
return (await this.token).token;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Generate an API token to be used with the API. This is
|
|
103
|
-
* non-recoverable, so if it is lost, you must generate a new one.
|
|
104
|
-
*
|
|
105
|
-
* This can be used to for the login method by passing it as the apiToken
|
|
106
|
-
*
|
|
107
|
-
* @returns {string} apiToken
|
|
108
|
-
*/
|
|
109
|
-
async generateApiToken() {
|
|
110
|
-
const response = await fetchApi(this, "/apitoken", {
|
|
111
|
-
method: "POST",
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
return response;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Remove the currently active api token from this user account.
|
|
119
|
-
*/
|
|
120
|
-
async removeApiToken() {
|
|
121
|
-
await fetchApi(this, "/apitoken", {
|
|
122
|
-
method: "DELETE",
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Logs into the Corellium API and obtains an authentication token. Does
|
|
128
|
-
* nothing if the current authentication token is up to date.
|
|
129
|
-
*
|
|
130
|
-
* Calling this method is not required, as calling any other method that
|
|
131
|
-
* needs an authentication token will do the same thing.
|
|
132
|
-
* @example
|
|
133
|
-
* await corellium.login();
|
|
134
|
-
*/
|
|
135
|
-
async login() {
|
|
136
|
-
await this.getToken();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Returns an array of {@link Project}s that this client is allowed to
|
|
141
|
-
* access.
|
|
142
|
-
* @returns {Project[]}
|
|
143
|
-
* @example
|
|
144
|
-
* let projects = await corellium.projects();
|
|
145
|
-
* let project = projects.find(project => project.name === "Demo Project");
|
|
146
|
-
*/
|
|
147
|
-
async projects() {
|
|
148
|
-
const projects = await fetchApi(this, "/projects?ids_only=1");
|
|
149
|
-
return await Promise.all(projects.map((project) => this.getProject(project.id)));
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Returns an array of {@link Image}s that this client is allowed to
|
|
154
|
-
* access.
|
|
155
|
-
* @returns {Promise<Image[]>}
|
|
156
|
-
* @example
|
|
157
|
-
* let images = await corellium.files();
|
|
158
|
-
*/
|
|
159
|
-
files() {
|
|
160
|
-
return listImagesMetaData(this);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Returns teams and users belonging to the domain.
|
|
165
|
-
*
|
|
166
|
-
* This function is only available to administrators.
|
|
167
|
-
*
|
|
168
|
-
* @returns {Promise<{ teams: Map<string, Team>, users: Map<string, User>}>}
|
|
169
|
-
* @example
|
|
170
|
-
* let teamsAndUsers = await corellium.getTeamsAndUsers();
|
|
171
|
-
*/
|
|
172
|
-
async getTeamsAndUsers() {
|
|
173
|
-
const teams = (this._teams = new Map());
|
|
174
|
-
for (const team of await fetchApi(this, "/teams")) {
|
|
175
|
-
teams.set(team.id, new Team(this, team));
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
const users = (this._users = new Map());
|
|
179
|
-
for (const user of teams.get("all-users").info.users) {
|
|
180
|
-
users.set(user.id, new User(this, user));
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return { teams, users };
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Returns {@link Role}s belonging to the domain.
|
|
188
|
-
*
|
|
189
|
-
* This function is only available to domain and project administrators.
|
|
190
|
-
* @return {Promise<Map<string, Role[]>>}
|
|
191
|
-
* @example
|
|
192
|
-
* let roles = await corellium.roles();
|
|
193
|
-
*/
|
|
194
|
-
async roles() {
|
|
195
|
-
const roles = (this._roles = new Map());
|
|
196
|
-
|
|
197
|
-
for (const role of await fetchApi(this, "/roles")) {
|
|
198
|
-
let rolesForProject = roles.get(role.project);
|
|
199
|
-
if (!rolesForProject) {
|
|
200
|
-
rolesForProject = [];
|
|
201
|
-
roles.set(role.project, rolesForProject);
|
|
202
|
-
}
|
|
203
|
-
rolesForProject.push(new Role(this, role));
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return roles;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
* Returns {@link Team}s belonging to the domain.
|
|
211
|
-
*
|
|
212
|
-
* This function is only available to domain and project administrators.
|
|
213
|
-
* @return {Promise<Map<string, Team>>}
|
|
214
|
-
* @example
|
|
215
|
-
* let teams = await corellium.teams();
|
|
216
|
-
*/
|
|
217
|
-
async teams() {
|
|
218
|
-
return (await this.getTeamsAndUsers()).teams;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Returns {@link User}s belonging to the domain.
|
|
223
|
-
*
|
|
224
|
-
* This function is only available to domain and project administrators.
|
|
225
|
-
* @return {Promise<Map<string, User>>}
|
|
226
|
-
* @example
|
|
227
|
-
* let users = await corellium.users();
|
|
228
|
-
*/
|
|
229
|
-
async users() {
|
|
230
|
-
return (await this.getTeamsAndUsers()).users;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* Given a user id, returns the {@link User}.
|
|
235
|
-
*
|
|
236
|
-
* This function is only available to domain and project administrators.
|
|
237
|
-
* @returns {Promise<User>}
|
|
238
|
-
* @example
|
|
239
|
-
* let user = await instance.getUser('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
240
|
-
*/
|
|
241
|
-
getUser(id) {
|
|
242
|
-
return this._users.get(id);
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/**
|
|
246
|
-
* Given a team id, returns the {@link Team}.
|
|
247
|
-
*
|
|
248
|
-
* This function is only available to domain and project administrators.
|
|
249
|
-
* @returns {Promise<Team>}
|
|
250
|
-
* @example
|
|
251
|
-
* let team = await instance.getTeam('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
252
|
-
*/
|
|
253
|
-
getTeam(id) {
|
|
254
|
-
return this._teams.get(id);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Creates a new user in the domain.
|
|
259
|
-
*
|
|
260
|
-
* This function is only available to domain administrators.
|
|
261
|
-
* @returns {Promise<User>}
|
|
262
|
-
* @example
|
|
263
|
-
* let user = await instance.createUser("login", "User Name", "user@email.com", "password");
|
|
264
|
-
*/
|
|
265
|
-
async createUser(login, name, email, password) {
|
|
266
|
-
const response = await fetchApi(this, "/users", {
|
|
267
|
-
method: "POST",
|
|
268
|
-
json: {
|
|
269
|
-
label: name,
|
|
270
|
-
name: login,
|
|
271
|
-
email,
|
|
272
|
-
password,
|
|
273
|
-
},
|
|
274
|
-
});
|
|
275
|
-
|
|
276
|
-
await this.getTeamsAndUsers();
|
|
277
|
-
return this.getUser(response.id);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Destroys a user in the domain.
|
|
282
|
-
*
|
|
283
|
-
* This function is only available to domain administrators.
|
|
284
|
-
* @param {string} id - user ID
|
|
285
|
-
* @example
|
|
286
|
-
* instance.destroyUser('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
287
|
-
*/
|
|
288
|
-
async destroyUser(id) {
|
|
289
|
-
await fetchApi(this, `/users/${id}`, {
|
|
290
|
-
method: "DELETE",
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* Creates a {@link Role} for a {@link Project} and a {@link Team} or {@link User}.
|
|
296
|
-
* @param {string} project - project ID
|
|
297
|
-
* @param {User|Team} grantee - must be an instance of {@link User} or {@link Team}
|
|
298
|
-
* @param {string} type - user ID
|
|
299
|
-
* @example
|
|
300
|
-
* instance.createRole(project.id, grantee, 'user');
|
|
301
|
-
*/
|
|
302
|
-
async createRole(project, grantee, type = "user") {
|
|
303
|
-
let usersOrTeams = grantee instanceof User && "users";
|
|
304
|
-
if (!usersOrTeams) usersOrTeams = grantee instanceof Team && "teams";
|
|
305
|
-
if (!usersOrTeams) throw "Grantee not User or Team";
|
|
306
|
-
|
|
307
|
-
await fetchApi(
|
|
308
|
-
this,
|
|
309
|
-
`/roles/projects/${project}/${usersOrTeams}/${grantee.id}/roles/${type}`,
|
|
310
|
-
{
|
|
311
|
-
method: "PUT",
|
|
312
|
-
},
|
|
313
|
-
);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Destroys a {@link Role}
|
|
318
|
-
* @param {Role} role - role object
|
|
319
|
-
* @example
|
|
320
|
-
* instance.destroyRole(role);
|
|
321
|
-
*/
|
|
322
|
-
async destroyRole(role) {
|
|
323
|
-
let usersOrTeams = role.isUser ? "users" : "teams";
|
|
324
|
-
await fetchApi(
|
|
325
|
-
this,
|
|
326
|
-
`/roles/projects/${role.project}/${usersOrTeams}/${role.grantee.id}/roles/{$role.type}`,
|
|
327
|
-
{
|
|
328
|
-
method: "DELETE",
|
|
329
|
-
},
|
|
330
|
-
);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* Returns the {@link Project} with the given ID.
|
|
335
|
-
* @param {string} projectId - project ID
|
|
336
|
-
* @returns {Promise<Project>}
|
|
337
|
-
* @example
|
|
338
|
-
* let project = await corellium.getProject('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
339
|
-
*/
|
|
340
|
-
async getProject(projectId) {
|
|
341
|
-
const project = new Project(this, projectId);
|
|
342
|
-
await project.refresh();
|
|
343
|
-
return project;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Creates a {@link Project} with the given name {@link Color} and {@link ProjectSettings}.
|
|
348
|
-
* @param {string} name - project name
|
|
349
|
-
* @param {integer} color - color
|
|
350
|
-
* @param {Object} [settings] - project settings
|
|
351
|
-
* @param {integer} settings.version
|
|
352
|
-
* @param {boolean} settings.internet-access
|
|
353
|
-
* @returns {Promise<Project>}
|
|
354
|
-
* @example
|
|
355
|
-
* corellium.createProject("TestProject");
|
|
356
|
-
*/
|
|
357
|
-
async createProject(name, color = 1, settings = { version: 1, "internet-access": true }) {
|
|
358
|
-
const response = await fetchApi(this, "/projects", {
|
|
359
|
-
method: "POST",
|
|
360
|
-
json: {
|
|
361
|
-
name,
|
|
362
|
-
color,
|
|
363
|
-
settings,
|
|
364
|
-
},
|
|
365
|
-
});
|
|
366
|
-
|
|
367
|
-
return await this.getProject(response.id);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Returns the {@link Project} with the given name. If the project doesn't
|
|
372
|
-
* exist, returns undefined.
|
|
373
|
-
* @param {string} name - project name to match
|
|
374
|
-
* @returns {Promise<Project>}
|
|
375
|
-
* @example
|
|
376
|
-
* let project = await corellium.projectNamed('Default Project');
|
|
377
|
-
*/
|
|
378
|
-
async projectNamed(name) {
|
|
379
|
-
const projects = await this.projects();
|
|
380
|
-
return projects.find((project) => project.name === name);
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/** Returns supported device list
|
|
384
|
-
* @return {SupportedDevice[]}
|
|
385
|
-
* @example
|
|
386
|
-
* let supported = await corellium.supported();
|
|
387
|
-
*/
|
|
388
|
-
async supported() {
|
|
389
|
-
if (!this.supportedDevices) this.supportedDevices = await fetchApi(this, "/supported");
|
|
390
|
-
return this.supportedDevices;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
/** Returns all keys for the project
|
|
394
|
-
* @param {string} project - project ID
|
|
395
|
-
* @return {ProjectKey[]}
|
|
396
|
-
* @example
|
|
397
|
-
* let keys = instance.projectKeys(project.id);
|
|
398
|
-
* for(let key of keys)
|
|
399
|
-
* console.log(key);
|
|
400
|
-
*/
|
|
401
|
-
async projectKeys(project) {
|
|
402
|
-
return await fetchApi(this, `/projects/${project}/keys`);
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/** Adds key to the project
|
|
406
|
-
* @param {string} project - project ID
|
|
407
|
-
* @param {string} key - public key
|
|
408
|
-
* @param {string} kind - key type ('ssh'/'abd')
|
|
409
|
-
* @param {string} [label] - key label
|
|
410
|
-
* @return {string} key ID
|
|
411
|
-
* @example
|
|
412
|
-
* let project = instance.getProjectNamed('TestProject');
|
|
413
|
-
* instance.addProjectKey(project.id, key, 'ssh', 'SSH Key');
|
|
414
|
-
*/
|
|
415
|
-
async addProjectKey(project, key, kind = "ssh", label = null) {
|
|
416
|
-
return await fetchApi(this, `/projects/${project}/keys`, {
|
|
417
|
-
method: "POST",
|
|
418
|
-
json: {
|
|
419
|
-
key,
|
|
420
|
-
label,
|
|
421
|
-
kind,
|
|
422
|
-
},
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
|
|
426
|
-
/** Adds key to the project
|
|
427
|
-
* @param {string} project - project ID
|
|
428
|
-
* @param {string} keyId - key ID
|
|
429
|
-
* @example
|
|
430
|
-
* let project = instance.getProjectNamed('TestProject');
|
|
431
|
-
* instance.deleteProjectKey(project.id, 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
432
|
-
*/
|
|
433
|
-
async deleteProjectKey(project, keyId) {
|
|
434
|
-
return await fetchApi(this, `/projects/${project}/keys/${keyId}`, {
|
|
435
|
-
method: "DELETE",
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
module.exports = {
|
|
441
|
-
Corellium,
|
|
442
|
-
CorelliumError,
|
|
443
|
-
I,
|
|
444
|
-
};
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const fs = require("fs");
|
|
4
|
-
const os = require("os");
|
|
5
|
-
const path = require("path");
|
|
6
|
-
const util = require("util");
|
|
7
|
-
const { fetchApi } = require("./util/fetch");
|
|
8
|
-
const Resumable = require("../resumable");
|
|
9
|
-
const yazl = require("yazl");
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {object} KernelImage
|
|
13
|
-
* @property {string} id
|
|
14
|
-
* @property {string} name
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @typedef {object} PartitionImage
|
|
19
|
-
* @property {string} id
|
|
20
|
-
* @property {string} name
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @typedef {object} FirmwareImage
|
|
25
|
-
* @property {string} id
|
|
26
|
-
* @property {string} name
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @typedef {object} Image
|
|
31
|
-
* @property {string} status - "active"
|
|
32
|
-
* @property {string} id - uuid needed to pass to a createInstance call if this is a kernel
|
|
33
|
-
* @property {string} name - "Image"
|
|
34
|
-
* @property {string} type - "kernel"
|
|
35
|
-
* @property {string} self - uri
|
|
36
|
-
* @property {string} file - file uri
|
|
37
|
-
* @property {number} size
|
|
38
|
-
* @property {string} checksum
|
|
39
|
-
* @property {string} encoding - "encrypted"
|
|
40
|
-
* @property {string} project - Project uuid
|
|
41
|
-
* @property {string} createdAt - ISO datetime string
|
|
42
|
-
* @property {string} updatedAt - ISO datetime string
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
class File {
|
|
46
|
-
constructor({ filePath, type, size }) {
|
|
47
|
-
this.path = filePath;
|
|
48
|
-
this.name = path.basename(filePath);
|
|
49
|
-
this.type = type;
|
|
50
|
-
this.size = size;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
slice(start, end, _contentType) {
|
|
54
|
-
return fs.createReadStream(this.path, { start, end });
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function listImagesMetaData(client) {
|
|
59
|
-
return fetchApi(client, `/images`, {
|
|
60
|
-
method: "GET",
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function isCompressed(data) {
|
|
65
|
-
return Buffer.compare(data.slice(0, 4), Buffer.from([0x50, 0x4b, 0x03, 0x04])) === 0;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
async function compress(data, name) {
|
|
69
|
-
const tmpFile = path.join(os.tmpdir(), name);
|
|
70
|
-
const zipFile = new yazl.ZipFile();
|
|
71
|
-
zipFile.addBuffer(data, name);
|
|
72
|
-
zipFile.end();
|
|
73
|
-
await new Promise((resolve, reject) => {
|
|
74
|
-
zipFile.outputStream
|
|
75
|
-
.pipe(fs.createWriteStream(tmpFile))
|
|
76
|
-
.on("close", resolve)
|
|
77
|
-
.on("error", reject);
|
|
78
|
-
});
|
|
79
|
-
return tmpFile;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
async function uploadFile(token, url, filePath, progress) {
|
|
83
|
-
return new Promise((resolve, reject) => {
|
|
84
|
-
const r = new Resumable({
|
|
85
|
-
target: url,
|
|
86
|
-
headers: {
|
|
87
|
-
authorization: token,
|
|
88
|
-
"x-corellium-image-encoding": "plain",
|
|
89
|
-
},
|
|
90
|
-
uploadMethod: "PUT",
|
|
91
|
-
chunkSize: 5 * 1024 * 1024,
|
|
92
|
-
prioritizeFirstAndLastChunk: true,
|
|
93
|
-
method: "octet",
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
r.on("fileAdded", (_file) => {
|
|
97
|
-
r.upload();
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
r.on("progress", () => {
|
|
101
|
-
if (progress) progress(r.progress());
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
r.on("fileError", (_file, message) => {
|
|
105
|
-
reject(message);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
r.on("fileSuccess", (_file, message) => {
|
|
109
|
-
resolve(JSON.parse(message));
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
return util
|
|
113
|
-
.promisify(fs.stat)(filePath)
|
|
114
|
-
.then((stat) => {
|
|
115
|
-
const file = new File({
|
|
116
|
-
filePath: filePath,
|
|
117
|
-
type: "application/octet-stream",
|
|
118
|
-
size: stat.size,
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
r.addFile(file);
|
|
122
|
-
});
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
module.exports = {
|
|
127
|
-
listImagesMetaData,
|
|
128
|
-
isCompressed,
|
|
129
|
-
compress,
|
|
130
|
-
uploadFile,
|
|
131
|
-
};
|