@corellium/corellium-cli 1.0.3 → 1.0.4
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 +4 -16
- package/example/WebPlayerSample.js +93 -37
- package/jenkinsbuild/build.sh +1 -1
- package/node_modules/@babel/cli/node_modules/commander/package.json +27 -58
- package/node_modules/@babel/cli/node_modules/make-dir/package.json +62 -93
- package/node_modules/@babel/cli/node_modules/pify/package.json +54 -85
- package/node_modules/@babel/cli/node_modules/semver/package.json +20 -51
- package/node_modules/@babel/cli/node_modules/slash/package.json +37 -68
- package/node_modules/@babel/cli/package.json +37 -69
- package/node_modules/@corellium/client-api/package.json +15 -40
- package/node_modules/@jridgewell/resolve-uri/package.json +40 -75
- package/node_modules/@jridgewell/sourcemap-codec/package.json +43 -74
- package/node_modules/@jridgewell/trace-mapping/package.json +40 -72
- package/node_modules/@mapbox/node-pre-gyp/package.json +27 -61
- package/node_modules/@nicolo-ribaudo/chokidar-2/package.json +22 -55
- package/node_modules/abbrev/package.json +18 -52
- package/node_modules/agent-base/package.json +33 -62
- package/node_modules/ansi-regex/package.json +58 -89
- package/node_modules/ansi-styles/package.json +59 -95
- package/node_modules/anymatch/package.json +28 -56
- package/node_modules/aproba/package.json +23 -50
- package/node_modules/are-we-there-yet/node_modules/readable-stream/package.json +32 -60
- package/node_modules/are-we-there-yet/package.json +32 -62
- package/node_modules/ascii-art/package.json +51 -83
- package/node_modules/ascii-art-ansi/package.json +30 -61
- package/node_modules/ascii-art-braille/package.json +7 -32
- package/node_modules/ascii-art-font/package.json +17 -47
- package/node_modules/ascii-art-graph/package.json +10 -34
- package/node_modules/ascii-art-image/node_modules/ascii-art-braille/package.json +7 -32
- package/node_modules/ascii-art-image/package.json +11 -36
- package/node_modules/ascii-art-table/package.json +10 -35
- package/node_modules/ascii-art-utf/package.json +18 -47
- package/node_modules/async/package.json +29 -55
- package/node_modules/async-arrays/package.json +34 -62
- package/node_modules/asynckit/package.json +45 -74
- package/node_modules/axios/package.json +46 -72
- package/node_modules/balanced-match/package.json +22 -49
- package/node_modules/binary-extensions/package.json +41 -73
- package/node_modules/brace-expansion/package.json +23 -50
- package/node_modules/braces/package.json +30 -76
- package/node_modules/call-bind/package.json +83 -125
- package/node_modules/canvas/package.json +43 -86
- package/node_modules/chokidar/package.json +40 -74
- package/node_modules/chownr/package.json +24 -56
- package/node_modules/cli/package.json +23 -70
- package/node_modules/cliui/package.json +53 -87
- package/node_modules/color/node_modules/color-convert/package.json +26 -60
- package/node_modules/color/node_modules/color-name/package.json +18 -45
- package/node_modules/color/package.json +26 -57
- package/node_modules/color-convert/package.json +25 -59
- package/node_modules/color-difference/package.json +26 -52
- package/node_modules/color-model/package.json +17 -44
- package/node_modules/color-name/package.json +32 -60
- package/node_modules/color-string/package.json +26 -67
- package/node_modules/color-support/package.json +26 -60
- package/node_modules/combined-stream/package.json +19 -52
- package/node_modules/component-emitter/package.json +17 -45
- package/node_modules/concat-map/package.json +45 -89
- package/node_modules/console-control-strings/package.json +22 -55
- package/node_modules/convert-source-map/package.json +28 -55
- package/node_modules/cookiejar/package.json +16 -44
- package/node_modules/core-util-is/package.json +21 -51
- package/node_modules/d3/package.json +43 -70
- package/node_modules/d3-array/package.json +24 -55
- package/node_modules/d3-axis/package.json +27 -54
- package/node_modules/d3-brush/package.json +33 -60
- package/node_modules/d3-chord/package.json +28 -55
- package/node_modules/d3-collection/package.json +25 -54
- package/node_modules/d3-color/package.json +2 -2
- package/node_modules/d3-contour/package.json +27 -54
- package/node_modules/d3-dispatch/package.json +28 -60
- package/node_modules/d3-drag/package.json +32 -61
- package/node_modules/d3-dsv/node_modules/commander/package.json +25 -56
- package/node_modules/d3-dsv/package.json +36 -64
- package/node_modules/d3-ease/package.json +28 -56
- package/node_modules/d3-fetch/package.json +31 -58
- package/node_modules/d3-force/package.json +30 -57
- package/node_modules/d3-format/package.json +29 -57
- package/node_modules/d3-geo/package.json +35 -62
- package/node_modules/d3-hierarchy/package.json +33 -60
- package/node_modules/d3-interpolate/package.json +31 -63
- package/node_modules/d3-path/package.json +28 -57
- package/node_modules/d3-polygon/package.json +28 -55
- package/node_modules/d3-quadtree/package.json +29 -57
- package/node_modules/d3-random/package.json +26 -53
- package/node_modules/d3-scale/package.json +29 -56
- package/node_modules/d3-scale-chromatic/package.json +33 -60
- package/node_modules/d3-selection/package.json +29 -60
- package/node_modules/d3-shape/package.json +32 -59
- package/node_modules/d3-time/package.json +28 -57
- package/node_modules/d3-time-format/package.json +33 -61
- package/node_modules/d3-timer/package.json +28 -57
- package/node_modules/d3-transition/package.json +35 -64
- package/node_modules/d3-voronoi/package.json +24 -51
- package/node_modules/d3-zoom/package.json +34 -61
- package/node_modules/debug/package.json +37 -87
- package/node_modules/decompress-response/package.json +53 -84
- package/node_modules/delayed-stream/package.json +19 -53
- package/node_modules/delegates/package.json +11 -45
- package/node_modules/detect-libc/package.json +26 -60
- package/node_modules/dirname-shim/package.json +26 -60
- package/node_modules/dotenv/package.json +37 -64
- package/node_modules/duplexer/package.json +18 -49
- package/node_modules/emoji-regex/package.json +32 -58
- package/node_modules/escalade/package.json +28 -59
- package/node_modules/extended-emitter/package.json +37 -65
- package/node_modules/fast-safe-stringify/package.json +33 -73
- package/node_modules/fill-range/package.json +28 -72
- package/node_modules/follow-redirects/package.json +42 -77
- package/node_modules/form-data/package.json +42 -74
- package/node_modules/formidable/package.json +22 -52
- package/node_modules/fs-minipass/package.json +24 -52
- package/node_modules/fs-readdir-recursive/package.json +20 -50
- package/node_modules/fs.realpath/package.json +21 -53
- package/node_modules/fsevents/package.json +38 -63
- package/node_modules/ftp-response-parser/node_modules/isarray/package.json +22 -54
- package/node_modules/ftp-response-parser/node_modules/readable-stream/package.json +22 -55
- package/node_modules/ftp-response-parser/node_modules/string_decoder/package.json +17 -45
- package/node_modules/ftp-response-parser/package.json +23 -64
- package/node_modules/function-bind/package.json +28 -61
- package/node_modules/gauge/package.json +25 -52
- package/node_modules/generate-password/package.json +28 -54
- package/node_modules/get-caller-file/package.json +27 -53
- package/node_modules/get-intrinsic/package.json +91 -124
- package/node_modules/glob/package.json +34 -68
- package/node_modules/glob-parent/package.json +27 -70
- package/node_modules/has/package.json +26 -55
- package/node_modules/has-symbols/package.json +104 -133
- package/node_modules/has-unicode/package.json +25 -52
- package/node_modules/https-proxy-agent/package.json +30 -59
- package/node_modules/iconv-lite/package.json +48 -77
- package/node_modules/inflight/package.json +20 -48
- package/node_modules/inherits/package.json +17 -54
- package/node_modules/is-binary-path/package.json +43 -75
- package/node_modules/is-extglob/package.json +22 -52
- package/node_modules/is-fullwidth-code-point/package.json +45 -79
- package/node_modules/is-glob/package.json +26 -68
- package/node_modules/is-number/package.json +26 -65
- package/node_modules/jsftp/node_modules/debug/package.json +28 -67
- package/node_modules/jsftp/package.json +22 -59
- package/node_modules/json2csv/node_modules/commander/package.json +25 -56
- package/node_modules/json2csv/package.json +37 -64
- package/node_modules/jsonparse/package.json +18 -53
- package/node_modules/lodash/package.json +15 -61
- package/node_modules/lodash.get/package.json +16 -67
- package/node_modules/lru-cache/package.json +27 -61
- package/node_modules/make-dir/node_modules/semver/package.json +20 -51
- package/node_modules/make-dir/package.json +62 -93
- package/node_modules/maplex/package.json +22 -54
- package/node_modules/methods/package.json +22 -64
- package/node_modules/mime/package.json +20 -48
- package/node_modules/mime-db/package.json +25 -67
- package/node_modules/mime-types/package.json +20 -64
- package/node_modules/mimic-response/package.json +45 -76
- package/node_modules/minimatch/package.json +25 -61
- package/node_modules/minipass/package.json +30 -64
- package/node_modules/minizlib/package.json +27 -59
- package/node_modules/mkdirp/package.json +27 -57
- package/node_modules/ms/package.json +24 -58
- package/node_modules/multi-progress/package.json +20 -46
- package/node_modules/nan/package.json +27 -87
- package/node_modules/node-fetch/package.json +77 -104
- package/node_modules/nopt/package.json +22 -54
- package/node_modules/normalize-path/package.json +25 -63
- package/node_modules/npmlog/package.json +23 -55
- package/node_modules/object-assign/package.json +20 -51
- package/node_modules/object-inspect/package.json +53 -81
- package/node_modules/once/package.json +19 -56
- package/node_modules/parse-listing/package.json +27 -56
- package/node_modules/path-is-absolute/package.json +16 -47
- package/node_modules/picomatch/package.json +28 -60
- package/node_modules/progress/package.json +21 -65
- package/node_modules/qs/package.json +78 -105
- package/node_modules/readdirp/package.json +47 -83
- package/node_modules/require-directory/package.json +29 -57
- package/node_modules/rimraf/package.json +23 -61
- package/node_modules/rw/package.json +19 -46
- package/node_modules/safe-buffer/package.json +10 -38
- package/node_modules/safer-buffer/package.json +18 -43
- package/node_modules/semver/package.json +36 -70
- package/node_modules/set-blocking/package.json +29 -56
- package/node_modules/side-channel/package.json +70 -98
- package/node_modules/sift/package.json +30 -62
- package/node_modules/signal-exit/package.json +29 -58
- package/node_modules/simple-concat/package.json +22 -46
- package/node_modules/simple-get/package.json +9 -33
- package/node_modules/simple-swizzle/node_modules/is-arrayish/package.json +28 -59
- package/node_modules/simple-swizzle/package.json +23 -57
- package/node_modules/strangler/package.json +39 -67
- package/node_modules/stream-combiner/package.json +15 -48
- package/node_modules/string-tools/package.json +16 -50
- package/node_modules/string-width/package.json +59 -97
- package/node_modules/string_decoder/package.json +18 -47
- package/node_modules/strip-ansi/package.json +57 -94
- package/node_modules/superagent/node_modules/form-data/package.json +42 -74
- package/node_modules/superagent/node_modules/readable-stream/package.json +32 -60
- package/node_modules/superagent/package.json +13 -59
- package/node_modules/tar/package.json +27 -59
- package/node_modules/through/package.json +17 -50
- package/node_modules/to-regex-range/package.json +25 -61
- package/node_modules/tr46/package.json +24 -51
- package/node_modules/unorm/package.json +34 -75
- package/node_modules/util-deprecate/package.json +19 -49
- package/node_modules/uuid/package.json +74 -102
- package/node_modules/webidl-conversions/package.json +18 -53
- package/node_modules/whatwg-url/package.json +15 -49
- package/node_modules/wide-align/package.json +21 -53
- package/node_modules/wolfy87-eventemitter/package.json +25 -49
- package/node_modules/wrap-ansi/package.json +65 -97
- package/node_modules/wrappy/package.json +21 -50
- package/node_modules/y18n/package.json +43 -73
- package/node_modules/yallist/package.json +20 -55
- package/node_modules/yargs/package.json +72 -99
- package/node_modules/yargs-parser/package.json +52 -83
- package/package.json +2 -3
- package/src/TrialAccount.js +76 -0
- package/src/commands/agent/Agent.js +10 -19
- package/src/commands/agent/index.js +1 -0
- package/src/commands/agent/ready.js +42 -0
- package/src/commands/instances/list.js +8 -3
- package/src/commands/signup.js +14 -5
- package/src/commands/webplayer/WebPlayer.js +2 -1
- package/src/commands/webplayer/create.js +6 -0
- package/src/commands/webplayer/list.js +17 -16
- 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/test/test.js +89 -0
- 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,308 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const WebSocket = require("ws");
|
|
4
|
-
const { fetchApi } = require("./util/fetch");
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @typedef {object} NetmonEntry
|
|
8
|
-
* @property {Object} request
|
|
9
|
-
* @property {Object} response
|
|
10
|
-
* @property {integer} startedDateTime
|
|
11
|
-
* @property {integer} duration
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* A connection to the network monitor running on an instance.
|
|
16
|
-
*
|
|
17
|
-
* Instances of this class
|
|
18
|
-
* are returned from {@link Instance#networkMonitor} and {@link Instance#newNetworkMonitor}. They
|
|
19
|
-
* should not be created using the constructor.
|
|
20
|
-
* @hideconstructor
|
|
21
|
-
*/
|
|
22
|
-
class NetworkMonitor {
|
|
23
|
-
constructor(instance) {
|
|
24
|
-
this.instance = instance;
|
|
25
|
-
this.connected = false;
|
|
26
|
-
this.connectPromise = null;
|
|
27
|
-
this.id = 0;
|
|
28
|
-
this.handler = null;
|
|
29
|
-
this._keepAliveTimeout = null;
|
|
30
|
-
this._lastPong = null;
|
|
31
|
-
this._lastPing = null;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* A callback for file upload progress messages. Can be passed to {@link NetworkMonitor#handleMessage}
|
|
36
|
-
* @callback NetworkMonitor~newEntryCallback
|
|
37
|
-
* @param {NetmonEntry} entry - {@link NetmonEntry} object.
|
|
38
|
-
* @example
|
|
39
|
-
* let netmon = await instance.newNetworkMonitor();
|
|
40
|
-
* netmon.handleMessage((message) => {
|
|
41
|
-
* let host = message.request.headers.find(entry => entry.key === 'Host');
|
|
42
|
-
* console.log(message.response.status, message.request.method, message.response.body.size, host.value);
|
|
43
|
-
* });
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Ensure the network monitor is connected.
|
|
48
|
-
* @private
|
|
49
|
-
*/
|
|
50
|
-
async connect() {
|
|
51
|
-
this.pendingConnect = true;
|
|
52
|
-
if (!this.connected) await this.reconnect();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Ensure the network monitor is disconnected, then connect the network monitor.
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
async reconnect() {
|
|
60
|
-
if (this.connected) this.disconnect();
|
|
61
|
-
|
|
62
|
-
if (this.connectPromise) return this.connectPromise;
|
|
63
|
-
|
|
64
|
-
this.connectPromise = (async () => {
|
|
65
|
-
while (this.pendingConnect) {
|
|
66
|
-
try {
|
|
67
|
-
await this._connect();
|
|
68
|
-
break;
|
|
69
|
-
} catch (e) {
|
|
70
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
this.connectPromise = null;
|
|
75
|
-
})();
|
|
76
|
-
|
|
77
|
-
return this.connectPromise;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
async _connect() {
|
|
81
|
-
const endpoint = await this.instance.netmonEndpoint();
|
|
82
|
-
|
|
83
|
-
// Detect if a disconnection happened before we were able to get the network monitor endpoint.
|
|
84
|
-
if (!this.pendingConnect) throw new Error("connection cancelled");
|
|
85
|
-
|
|
86
|
-
let ws = new WebSocket(endpoint);
|
|
87
|
-
|
|
88
|
-
this.ws = ws;
|
|
89
|
-
|
|
90
|
-
ws.on("message", (data) => {
|
|
91
|
-
try {
|
|
92
|
-
let message;
|
|
93
|
-
if (typeof data === "string") {
|
|
94
|
-
message = JSON.parse(data);
|
|
95
|
-
} else if (data.length >= 8) {
|
|
96
|
-
message = data.slice(8);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (this.handler) {
|
|
100
|
-
this.handler(message);
|
|
101
|
-
}
|
|
102
|
-
} catch (err) {
|
|
103
|
-
console.error("error in agent message handler", err);
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
ws.on("close", () => {
|
|
108
|
-
this._disconnect();
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
await new Promise((resolve, reject) => {
|
|
112
|
-
ws.once("open", () => {
|
|
113
|
-
if (this.ws !== ws) {
|
|
114
|
-
try {
|
|
115
|
-
ws.close();
|
|
116
|
-
} catch (e) {
|
|
117
|
-
// Swallow ws.close() errors.
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
reject(new Error("connection cancelled"));
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
ws.on("error", (err) => {
|
|
125
|
-
if (this.ws === ws) {
|
|
126
|
-
this._disconnect();
|
|
127
|
-
} else {
|
|
128
|
-
try {
|
|
129
|
-
ws.close();
|
|
130
|
-
} catch (e) {
|
|
131
|
-
// Swallow ws.close() errors.
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
console.error("error in netmon socket", err);
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
resolve();
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
ws.once("error", (err) => {
|
|
142
|
-
if (this.ws === ws) {
|
|
143
|
-
this._disconnect();
|
|
144
|
-
} else {
|
|
145
|
-
try {
|
|
146
|
-
ws.close();
|
|
147
|
-
} catch (e) {
|
|
148
|
-
// Swallow ws.close() errors.
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
reject(err);
|
|
153
|
-
});
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
this.connected = true;
|
|
157
|
-
this._startKeepAlive();
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
_startKeepAlive() {
|
|
161
|
-
if (!this.connected) return;
|
|
162
|
-
|
|
163
|
-
let ws = this.ws;
|
|
164
|
-
|
|
165
|
-
ws.ping();
|
|
166
|
-
|
|
167
|
-
this._keepAliveTimeout = setTimeout(() => {
|
|
168
|
-
if (this.ws !== ws) {
|
|
169
|
-
try {
|
|
170
|
-
ws.close();
|
|
171
|
-
} catch (e) {
|
|
172
|
-
// Swallow ws.close() errors.
|
|
173
|
-
}
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
console.error("Netmon did not get a response to pong in 10 seconds, disconnecting.");
|
|
178
|
-
|
|
179
|
-
this._disconnect();
|
|
180
|
-
}, 10000);
|
|
181
|
-
|
|
182
|
-
ws.once("pong", async () => {
|
|
183
|
-
if (ws !== this.ws) return;
|
|
184
|
-
|
|
185
|
-
clearTimeout(this._keepAliveTimeout);
|
|
186
|
-
this._keepAliveTimeout = null;
|
|
187
|
-
|
|
188
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
189
|
-
|
|
190
|
-
this._startKeepAlive();
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
_stopKeepAlive() {
|
|
195
|
-
if (this._keepAliveTimeout) {
|
|
196
|
-
clearTimeout(this._keepAliveTimeout);
|
|
197
|
-
this._keepAliveTimeout = null;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Disconnect an network monitor connection. This is usually only required if a new
|
|
203
|
-
* network monitor connection has been created and is no longer needed
|
|
204
|
-
* @example
|
|
205
|
-
* netmon.disconnect();
|
|
206
|
-
*/
|
|
207
|
-
disconnect() {
|
|
208
|
-
this.pendingConnect = false;
|
|
209
|
-
this._disconnect();
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
_disconnect() {
|
|
213
|
-
this.connected = false;
|
|
214
|
-
this.handler = null;
|
|
215
|
-
this._stopKeepAlive();
|
|
216
|
-
if (this.ws) {
|
|
217
|
-
try {
|
|
218
|
-
this.ws.close();
|
|
219
|
-
} catch (e) {
|
|
220
|
-
// Swallow ws.close() errors.
|
|
221
|
-
}
|
|
222
|
-
this.ws = null;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/** Start Network Monitor
|
|
227
|
-
* @example
|
|
228
|
-
* let netmon = await instance.newNetworkMonitor();
|
|
229
|
-
* netmon.start();
|
|
230
|
-
*/
|
|
231
|
-
async start() {
|
|
232
|
-
await this.connect();
|
|
233
|
-
await this._fetch("/sslsplit/enable", { method: "POST" });
|
|
234
|
-
await this.instance._waitFor(() => {
|
|
235
|
-
return this.instance.info.netmon && this.instance.info.netmon.enabled;
|
|
236
|
-
});
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/** Set message handler
|
|
241
|
-
* @param {NetworkMonitor~newEntryCallback} handler - the callback for captured entry
|
|
242
|
-
* @example
|
|
243
|
-
* let netmon = await instance.newNetworkMonitor();
|
|
244
|
-
* netmon.handleMessage((message) => {
|
|
245
|
-
* let host = message.request.headers.find(entry => entry.key === 'Host');
|
|
246
|
-
* console.log(message.response.status, message.request.method, message.response.body.size, host.value);
|
|
247
|
-
* });
|
|
248
|
-
*/
|
|
249
|
-
async handleMessage(handler) {
|
|
250
|
-
this.handler = handler;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
/** Clear captured Network Monitor data
|
|
254
|
-
* @example
|
|
255
|
-
* let netmon = await instance.newNetworkMonitor();
|
|
256
|
-
* netmon.clearLog();
|
|
257
|
-
*/
|
|
258
|
-
async clearLog() {
|
|
259
|
-
let disconnectAfter = false;
|
|
260
|
-
if (!this.connected) {
|
|
261
|
-
await this.connect();
|
|
262
|
-
disconnectAfter = true;
|
|
263
|
-
}
|
|
264
|
-
await this.ws.send(JSON.stringify({ type: "clear" }));
|
|
265
|
-
if (disconnectAfter) {
|
|
266
|
-
await this.disconnect();
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
/** Stop Network Monitor
|
|
271
|
-
* @example
|
|
272
|
-
* let netmon = await instance.newNetworkMonitor();
|
|
273
|
-
* netmon.stop();
|
|
274
|
-
*/
|
|
275
|
-
async stop() {
|
|
276
|
-
await this._fetch("/sslsplit/disable", { method: "POST" });
|
|
277
|
-
await this.disconnect();
|
|
278
|
-
await this.instance._waitFor(() => {
|
|
279
|
-
return !(this.instance.info.netmon && this.instance.info.netmon.enabled);
|
|
280
|
-
});
|
|
281
|
-
return (await this.isEnabled()) === false;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/** Check if Network Monitor is enabled
|
|
285
|
-
* @returns {boolean}
|
|
286
|
-
* @example
|
|
287
|
-
* let enabled = await netmon.isEnabled();
|
|
288
|
-
* if (enabled) {
|
|
289
|
-
* console.log("enabled");
|
|
290
|
-
* } else {
|
|
291
|
-
* console.log("disabled");
|
|
292
|
-
* }
|
|
293
|
-
*/
|
|
294
|
-
async isEnabled() {
|
|
295
|
-
let info = await fetchApi(this.instance.project, `/instances/${this.instance.id}`);
|
|
296
|
-
return info ? (info.netmon ? info.netmon.enabled : false) : false;
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
async _fetch(endpoint = "", options = {}) {
|
|
300
|
-
return await fetchApi(
|
|
301
|
-
this.instance.project,
|
|
302
|
-
`/instances/${this.instance.id}${endpoint}`,
|
|
303
|
-
options,
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
module.exports = NetworkMonitor;
|
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const { fetchApi } = require("./util/fetch");
|
|
4
|
-
const Instance = require("./instance");
|
|
5
|
-
const InstanceUpdater = require("./instance-updater");
|
|
6
|
-
const uuidv4 = require("uuid/v4");
|
|
7
|
-
const util = require("util");
|
|
8
|
-
const fs = require("fs");
|
|
9
|
-
const { compress, uploadFile } = require("./images");
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @typedef {object} ProjectKey
|
|
13
|
-
* @property {string} identifier
|
|
14
|
-
* @property {string} label
|
|
15
|
-
* @property {string} key
|
|
16
|
-
* @property {'ssh'|'adb'} kind - public key
|
|
17
|
-
* @property {string} fingerprint
|
|
18
|
-
* @property {string} createdAt - ISO datetime string
|
|
19
|
-
* @property {string} updatedAt - ISO datetime string
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @typedef {object} ProjectQuotas
|
|
24
|
-
* @property {number} cores - Number of available CPU cores
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Instances of this class are returned from {@link Corellium#projects}, {@link
|
|
29
|
-
* Corellium#getProject}, and {@link Corellium#projectNamed}. They should not
|
|
30
|
-
* be created using the constructor.
|
|
31
|
-
* @hideconstructor
|
|
32
|
-
*/
|
|
33
|
-
class Project {
|
|
34
|
-
constructor(client, id) {
|
|
35
|
-
this.client = client;
|
|
36
|
-
this.api = this.client.api;
|
|
37
|
-
this.id = id;
|
|
38
|
-
this.token = null;
|
|
39
|
-
this.updater = new InstanceUpdater(this);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Reload the project info. This currently consists of name and quotas, but
|
|
44
|
-
* will likely include more in the future.
|
|
45
|
-
* @example
|
|
46
|
-
* project.refresh();
|
|
47
|
-
*/
|
|
48
|
-
async refresh() {
|
|
49
|
-
this.info = await fetchApi(this, `/projects/${this.id}`);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Returns refreshed authentication token
|
|
54
|
-
* @return {string} token
|
|
55
|
-
* @example
|
|
56
|
-
* let token = await project.getToken()
|
|
57
|
-
*/
|
|
58
|
-
async getToken() {
|
|
59
|
-
return await this.client.getToken();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Returns an array of the {@link Instance}s in this project.
|
|
64
|
-
* @returns {Promise<Instance[]>} The instances in this project
|
|
65
|
-
* @example <caption>Finding the first instance with a given name</caption>
|
|
66
|
-
* const instances = await project.instances();
|
|
67
|
-
* const instance = instances.find(instance => instance.name === 'Test Device');
|
|
68
|
-
*/
|
|
69
|
-
async instances() {
|
|
70
|
-
const instances = await fetchApi(this, `/projects/${this.id}/instances`);
|
|
71
|
-
return await Promise.all(instances.map((info) => new Instance(this, info)));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Returns the {@link Instance} with the given ID.
|
|
76
|
-
* @param {string} id
|
|
77
|
-
* @returns {Promise<Instance>}
|
|
78
|
-
* @example
|
|
79
|
-
* await project.getInstance('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
80
|
-
*/
|
|
81
|
-
async getInstance(id) {
|
|
82
|
-
const info = await fetchApi(this, `/instances/${id}`);
|
|
83
|
-
return new Instance(this, info);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @typedef {Object} vmmio - paremeters to export a VM address space range (and IRQ & DMA functionality)
|
|
88
|
-
* over TCP to different models running on different machines or inside a different VM
|
|
89
|
-
* @property {string} start - start address for beginning of vMMIO range
|
|
90
|
-
* @property {string} size - size of the range to use for vMMIO
|
|
91
|
-
* @property {string} irq - system IRQs, 1-16 ranges must be specified
|
|
92
|
-
* @property {string} port - tcp port for vMMIO usage
|
|
93
|
-
*/
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Creates an instance and returns the {@link Instance} object. The options
|
|
97
|
-
* are passed directly to the API.
|
|
98
|
-
*
|
|
99
|
-
* @param {Object} options - The options for instance creation. These are
|
|
100
|
-
* the same as the JSON options passed to the instance creation API
|
|
101
|
-
* endpoint. For a full list of possible options, see the API documentation.
|
|
102
|
-
* @param {string} options.flavor - The device flavor, such as `iphone6`
|
|
103
|
-
* @param {string} options.os - The device operating system version
|
|
104
|
-
* @param {string} options.ipsw - The ID of a previously uploaded image in the project to use as the firmware
|
|
105
|
-
* @param {string} options.osbuild - The device operating system build
|
|
106
|
-
* @param {string} [options.snapshot] - The ID of snapshot to clone this device off of
|
|
107
|
-
* @param {string} [options.name] - The device name
|
|
108
|
-
* @param {string} [options.patches] - Instance patches, such as `jailbroken` (default), `nonjailbroken` or `corelliumd` which is non-jailbroken with API agent.
|
|
109
|
-
* @param {Object} [options.bootOptions] - Boot options for the instance
|
|
110
|
-
* @param {string} [options.bootOptions.kernelSlide] - Change the Kernel slide value for an iOS device.
|
|
111
|
-
* When not set, the slide will default to zero. When set to an empty value, the slide will be randomized.
|
|
112
|
-
* @param {string} [options.bootOptions.udid] - Predefined Unique Device ID (UDID) for iOS device
|
|
113
|
-
* @param {string} [options.bootOptions.screen] - Change the screen metrics for Ranchu devices `XxY[:DPI]`, e.g. `720x1280:280`
|
|
114
|
-
* @param {string[]} [options.bootOptions.additionalTags] - Addition features to utilize for the device, valid options include:<br>
|
|
115
|
-
* `kalloc` : Enable kalloc/kfree trace access via GDB (Enterprise only)<br>
|
|
116
|
-
* `gpu` : Enable cloud GPU acceleration (Extra costs incurred, cloud only)
|
|
117
|
-
* @param {KernelImage} [options.bootOptions.kernel] - Custom kernel to pass to the device on creation.
|
|
118
|
-
* @param {vmmio[]} [vmmio] - VMMIO options for external MMIO support
|
|
119
|
-
* @returns {Promise<Instance>}
|
|
120
|
-
*
|
|
121
|
-
* @example <caption>Creating an instance and waiting for it to start its first boot</caption>
|
|
122
|
-
* const instance = await project.createInstance({
|
|
123
|
-
* flavor: 'iphone6',
|
|
124
|
-
* os: '11.3',
|
|
125
|
-
* name: 'Test Device',
|
|
126
|
-
* osbuild: '15E216',
|
|
127
|
-
* patches: 'corelliumd',
|
|
128
|
-
* bootOptions: {
|
|
129
|
-
* udid: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
130
|
-
* },
|
|
131
|
-
* });
|
|
132
|
-
* await instance.finishRestore();
|
|
133
|
-
*/
|
|
134
|
-
async createInstance(options) {
|
|
135
|
-
const { id } = await fetchApi(this, "/instances", {
|
|
136
|
-
method: "POST",
|
|
137
|
-
json: Object.assign({}, options, { project: this.id }),
|
|
138
|
-
});
|
|
139
|
-
return await this.getInstance(id);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Get the VPN configuration to connect to the project network. This is only
|
|
144
|
-
* available for cloud. At least one instance must be on in the project.
|
|
145
|
-
*
|
|
146
|
-
* @param {string} type - Could be either "ovpn" or "tblk" to select between OpenVPN and TunnelBlick configuration formats.
|
|
147
|
-
* TunnelBlick files are delivered as a ZIP file and OpenVPN configuration is just a text file.
|
|
148
|
-
* @param {string} clientUUID - An arbitrary UUID to uniquely associate this VPN configuration with so it can be later identified
|
|
149
|
-
* in a list of connected clients. Optional.
|
|
150
|
-
* @returns {Promise<Buffer>}
|
|
151
|
-
* @example
|
|
152
|
-
* await project.vpnConfig('ovpn', undefined)
|
|
153
|
-
*/
|
|
154
|
-
async vpnConfig(type = "ovpn", clientUUID) {
|
|
155
|
-
if (!clientUUID) clientUUID = uuidv4();
|
|
156
|
-
|
|
157
|
-
const response = await fetchApi(
|
|
158
|
-
this,
|
|
159
|
-
`/projects/${this.id}/vpn-configs/${clientUUID}.${type}`,
|
|
160
|
-
{ response: "raw" },
|
|
161
|
-
);
|
|
162
|
-
return await response.buffer();
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/** Destroy this project.
|
|
166
|
-
* @example
|
|
167
|
-
* project.destroy();
|
|
168
|
-
*/
|
|
169
|
-
async destroy() {
|
|
170
|
-
return await fetchApi(this, `/projects/${this.id}`, {
|
|
171
|
-
method: "DELETE",
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* The project quotas.
|
|
177
|
-
* @returns {ProjectQuotas}
|
|
178
|
-
* @example
|
|
179
|
-
* // Create map of supported devices.
|
|
180
|
-
* let supported = {};
|
|
181
|
-
* (await corellium.supported()).forEach(modelInfo => {
|
|
182
|
-
* supported[modelInfo.name] = modelInfo;
|
|
183
|
-
* });
|
|
184
|
-
*
|
|
185
|
-
* // Get how many CPUs we're currently using.
|
|
186
|
-
* let cpusUsed = 0;
|
|
187
|
-
* instances.forEach(instance => {
|
|
188
|
-
* cpusUsed += supported[instance.flavor].quotas.cpus;
|
|
189
|
-
* });
|
|
190
|
-
*
|
|
191
|
-
* console.log('Used: ' + cpusUsed + '/' + project.quotas.cpus);
|
|
192
|
-
*/
|
|
193
|
-
get quotas() {
|
|
194
|
-
return this.info.quotas;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
set quotas(quotas) {
|
|
198
|
-
this.setQuotas(quotas);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Sets the project quotas. Only the cores property is currently respected.
|
|
203
|
-
*
|
|
204
|
-
* @param {ProjectQuotas} quotas
|
|
205
|
-
*/
|
|
206
|
-
async setQuotas(quotas) {
|
|
207
|
-
this.info.quotas = Object.assign({}, this.info.quotas, quotas);
|
|
208
|
-
await fetchApi(this, `/projects/${this.id}`, {
|
|
209
|
-
method: "PATCH",
|
|
210
|
-
json: {
|
|
211
|
-
quotas: {
|
|
212
|
-
cores: quotas.cores || quotas.cpus,
|
|
213
|
-
},
|
|
214
|
-
},
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* How much of the project's quotas are currently used. To ensure this information is up to date, call {@link Project#refresh()} first.
|
|
220
|
-
* @property {number} cores - Number of used CPU cores
|
|
221
|
-
* @example
|
|
222
|
-
* project.quotasUsed();
|
|
223
|
-
*/
|
|
224
|
-
get quotasUsed() {
|
|
225
|
-
return this.info.quotasUsed;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/** The project's name.
|
|
229
|
-
* @example
|
|
230
|
-
* project.name();
|
|
231
|
-
*/
|
|
232
|
-
get name() {
|
|
233
|
-
return this.info.name;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Returns a list of {@link Role}s associated with this project, showing who has permissions over this project.
|
|
238
|
-
*
|
|
239
|
-
* This function is only available to domain and project administrators.
|
|
240
|
-
* @return {Role[]}
|
|
241
|
-
* @example
|
|
242
|
-
* await project.roles();
|
|
243
|
-
*/
|
|
244
|
-
async roles() {
|
|
245
|
-
const roles = await this.client.roles();
|
|
246
|
-
return roles.get(this.id);
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Give permissions to this project for a {@link Team} or a {@link User} (adds a {@link Role}).
|
|
251
|
-
*
|
|
252
|
-
* This function is only available to domain and project administrators.
|
|
253
|
-
* @param {User|Team} grantee - must be an instance of {@link User} or {@link Team}
|
|
254
|
-
* @param {string} type - user ID
|
|
255
|
-
* @example
|
|
256
|
-
* project.createRole(grantee, 'user');
|
|
257
|
-
*/
|
|
258
|
-
async createRole(grantee, type = "user") {
|
|
259
|
-
await this.client.createRole(this.id, grantee, type);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* Returns a list of authorized keys associated with the project. When a new
|
|
264
|
-
* instance is created in this project, its authorized_keys (iOS) or adbkeys
|
|
265
|
-
* (Android) will be populated with these keys by default. Adding or
|
|
266
|
-
* removing keys from the project will have no effect on existing instances.
|
|
267
|
-
*
|
|
268
|
-
* @returns {Promise<ProjectKey[]>}
|
|
269
|
-
* @example
|
|
270
|
-
* let keys = project.keys();
|
|
271
|
-
* for(let key of keys)
|
|
272
|
-
* console.log(key);
|
|
273
|
-
*/
|
|
274
|
-
async keys() {
|
|
275
|
-
return await this.client.projectKeys(this.id);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Add a public key to project.
|
|
280
|
-
*
|
|
281
|
-
* @param {string} key - the public key, as formatted in a .pub file
|
|
282
|
-
* @param {'ssh'|'adb'} kind
|
|
283
|
-
* @param {string} [label] - defaults to the public key comment, if present
|
|
284
|
-
*
|
|
285
|
-
* @returns {Promise<ProjectKey>}
|
|
286
|
-
* @example
|
|
287
|
-
* project.addKey(key, 'ssh', 'SSH Key');
|
|
288
|
-
*/
|
|
289
|
-
async addKey(key, kind = "ssh", label = null) {
|
|
290
|
-
return await this.client.addProjectKey(this.id, key, kind, label);
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Delete public key from the project
|
|
295
|
-
* @param {string} keyId
|
|
296
|
-
* @example
|
|
297
|
-
* project.deleteKey('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
|
|
298
|
-
*/
|
|
299
|
-
async deleteKey(keyId) {
|
|
300
|
-
return await this.client.deleteProjectKey(this.id, keyId);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Delete an IoT firmware
|
|
305
|
-
* @param {FirmwareImage} firmwareImage
|
|
306
|
-
*/
|
|
307
|
-
async deleteIotFirmware(firmwareImage) {
|
|
308
|
-
return await this.deleteImage(firmwareImage);
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Delete a kernel
|
|
313
|
-
* @param {KernelImage} kernelImage
|
|
314
|
-
*/
|
|
315
|
-
async deleteKernel(kernelImage) {
|
|
316
|
-
return await this.deleteImage(kernelImage);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Delete a Image
|
|
321
|
-
* @param {Image} image
|
|
322
|
-
*/
|
|
323
|
-
async deleteImage(image) {
|
|
324
|
-
return await fetchApi(this, `/images/${image.id}`, {
|
|
325
|
-
method: "DELETE",
|
|
326
|
-
});
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Add a custom IoT firmware image to a project for use in creating new instances.
|
|
331
|
-
*
|
|
332
|
-
* @param {string} filePath - The path on the local file system to get the firmware file.
|
|
333
|
-
* @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
|
|
334
|
-
* @param {Project~progressCallback} [progress] - The callback for file upload progress information.
|
|
335
|
-
*
|
|
336
|
-
* @returns {Promise<FirmwareImage>}
|
|
337
|
-
*/
|
|
338
|
-
async uploadIotFirmware(filePath, name, progress) {
|
|
339
|
-
return await this.uploadKernel(filePath, name, progress);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Add a kernel image to a project for use in creating new instances.
|
|
344
|
-
*
|
|
345
|
-
* @param {string} filePath - The path on the local file system to get the kernel file.
|
|
346
|
-
* @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
|
|
347
|
-
* @param {Project~progressCallback} [progress] - The callback for file upload progress information.
|
|
348
|
-
*
|
|
349
|
-
* @returns {Promise<KernelImage>}
|
|
350
|
-
*/
|
|
351
|
-
async uploadKernel(filePath, name, progress) {
|
|
352
|
-
let tmpfile = null;
|
|
353
|
-
const data = await util.promisify(fs.readFile)(filePath);
|
|
354
|
-
|
|
355
|
-
tmpfile = await compress(data, name);
|
|
356
|
-
|
|
357
|
-
let image = await this.uploadImage("kernel", tmpfile, name, progress);
|
|
358
|
-
|
|
359
|
-
if (tmpfile) {
|
|
360
|
-
fs.unlinkSync(tmpfile);
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
return { id: image.id, name: image.name };
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Add an image to the project. These images may be removed at any time and are meant to facilitate creating a new Instance with images.
|
|
368
|
-
*
|
|
369
|
-
* @param {string} type - E.g. fw for the main firmware image.
|
|
370
|
-
* @param {string} filePath - The path on the local file system to get the file.
|
|
371
|
-
* @param {string} name - The name of the file to identify the file on the server. Usually the basename of the path.
|
|
372
|
-
* @param {Project~progressCallback} [progress] - The callback for file upload progress information.
|
|
373
|
-
*
|
|
374
|
-
* @returns {Promise<Image>}
|
|
375
|
-
*/
|
|
376
|
-
async uploadImage(type, filePath, name, progress) {
|
|
377
|
-
const token = await this.getToken();
|
|
378
|
-
const url =
|
|
379
|
-
this.api +
|
|
380
|
-
"/projects/" +
|
|
381
|
-
encodeURIComponent(this.id) +
|
|
382
|
-
"/image-upload/" +
|
|
383
|
-
encodeURIComponent(type) +
|
|
384
|
-
"/" +
|
|
385
|
-
encodeURIComponent(uuidv4()) +
|
|
386
|
-
"/" +
|
|
387
|
-
encodeURIComponent(name);
|
|
388
|
-
|
|
389
|
-
return await uploadFile(token, url, filePath, progress);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
module.exports = Project;
|