@corellium/corellium-cli 1.0.2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +4 -16
- package/docs/OVERVIEW.md +2 -2
- 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,47 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Returns the element within root under the path given by pathSegments.
|
3
|
-
* @param {Object} root
|
4
|
-
* @param {string[]} pathSegments
|
5
|
-
* @param {boolean} [appendIfMissing=false] - all objects are created if they do not exist
|
6
|
-
* @returns {Object} - the object under the path. If appendIsMissing is false and the path does not exist, returns null
|
7
|
-
*/
|
8
|
-
module.exports.getObject = function getObject(root, pathSegments, appendIfMissing) {
|
9
|
-
var target = root;
|
10
|
-
var pathSeg;
|
11
|
-
var i;
|
12
|
-
for (i = 0; i < pathSegments.length; i++) {
|
13
|
-
pathSeg = pathSegments[i];
|
14
|
-
if (!target.hasOwnProperty(pathSeg)) {
|
15
|
-
if (appendIfMissing) {
|
16
|
-
target[pathSeg] = {};
|
17
|
-
} else {
|
18
|
-
return null;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
target = target[pathSeg];
|
22
|
-
}
|
23
|
-
return target;
|
24
|
-
};
|
25
|
-
|
26
|
-
/**
|
27
|
-
* Writes the object to the path in root. Overwrites if an object exists.
|
28
|
-
* Note: root is edited in place!
|
29
|
-
* @param {Object} root
|
30
|
-
* @param {string[]} pathSegments
|
31
|
-
* @param {Object} obj
|
32
|
-
*/
|
33
|
-
module.exports.setObject = function setObject(root, pathSegments, obj) {
|
34
|
-
var target = root;
|
35
|
-
var pathSeg;
|
36
|
-
var i;
|
37
|
-
var max = pathSegments.length;
|
38
|
-
for (i = 0; i < max; i++) {
|
39
|
-
pathSeg = pathSegments[i];
|
40
|
-
if (i === max - 1) {
|
41
|
-
target[pathSeg] = obj;
|
42
|
-
} else if (!target.hasOwnProperty(pathSeg)) {
|
43
|
-
target[pathSeg] = {};
|
44
|
-
}
|
45
|
-
target = target[pathSeg];
|
46
|
-
}
|
47
|
-
};
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# node-hkdf
|
2
|
-
|
3
|
-
The HMAC-based Key Derivation Function for node.js.
|
4
|
-
|
5
|
-
spec: https://tools.ietf.org/html/rfc5869
|
6
|
-
|
7
|
-
## install
|
8
|
-
|
9
|
-
npm install hkdf
|
10
|
-
|
11
|
-
## use
|
12
|
-
|
13
|
-
const HKDF = require('hkdf');
|
14
|
-
|
15
|
-
var hkdf = new HKDF('sha256', 'salt123', 'initialKeyingMaterial');
|
16
|
-
hkdf.derive('info', 42, function(key) {
|
17
|
-
// key is a Buffer, that can be serialized however one desires
|
18
|
-
console.log(key.toString('hex'));
|
19
|
-
});
|
20
|
-
|
21
|
-
## license
|
22
|
-
|
23
|
-
Apache License 2.0
|
@@ -1,171 +0,0 @@
|
|
1
|
-
from hashlib import sha256, sha1
|
2
|
-
import hmac
|
3
|
-
|
4
|
-
def HKDF(SKM, dkLen, XTS=None, CTXinfo="", digest=sha256,
|
5
|
-
_test_expected_PRK=None):
|
6
|
-
hlen = len(digest("").digest())
|
7
|
-
assert dkLen <= hlen*255
|
8
|
-
if XTS is None:
|
9
|
-
XTS = "\x00"*hlen
|
10
|
-
print 'none!!!!'
|
11
|
-
|
12
|
-
# extract
|
13
|
-
PRK = hmac.new(XTS, SKM, digest).digest()
|
14
|
-
if _test_expected_PRK and _test_expected_PRK != PRK:
|
15
|
-
raise ValueError("test failed")
|
16
|
-
|
17
|
-
print "salt " + ":".join("{0:x}".format(ord(c)) for c in XTS)
|
18
|
-
print "ikm " + ":".join("{0:x}".format(ord(c)) for c in SKM)
|
19
|
-
print "PRK " + ":".join("{0:x}".format(ord(c)) for c in PRK)
|
20
|
-
print "--"
|
21
|
-
# expand
|
22
|
-
blocks = []
|
23
|
-
counter = 1
|
24
|
-
t = ""
|
25
|
-
while hlen*len(blocks) < dkLen:
|
26
|
-
tmp = t + CTXinfo + chr(counter) # t+CTXinfo+chr(counter)
|
27
|
-
#tmp = CTXinfo+chr(counter)
|
28
|
-
print len(tmp)
|
29
|
-
print " - eh?? " + ":".join("{0:x}".format(ord(c)) for c in tmp)
|
30
|
-
t = hmac.new(PRK, tmp, digest).digest()
|
31
|
-
print "next: " + ":".join("{0:x}".format(ord(c)) for c in t)
|
32
|
-
blocks.append(t)
|
33
|
-
counter += 1
|
34
|
-
|
35
|
-
print '--'
|
36
|
-
return "".join(blocks)[:dkLen]
|
37
|
-
|
38
|
-
def power_on_self_test():
|
39
|
-
from binascii import hexlify, unhexlify
|
40
|
-
|
41
|
-
def _test(IKM, salt, info, L, PRK, OKM, digest=sha256):
|
42
|
-
def remove_prefix(prefix, s):
|
43
|
-
assert s.startswith(prefix)
|
44
|
-
return s[len(prefix):]
|
45
|
-
ikm = unhexlify(remove_prefix("0x", IKM))
|
46
|
-
salt = unhexlify(remove_prefix("0x", salt))
|
47
|
-
info = unhexlify(remove_prefix("0x", info))
|
48
|
-
prk = unhexlify(remove_prefix("0x", PRK))
|
49
|
-
okm = unhexlify(remove_prefix("0x", OKM))
|
50
|
-
if digest is None:
|
51
|
-
out = HKDF(ikm, L, salt, info, _test_expected_PRK=prk)
|
52
|
-
else:
|
53
|
-
out = HKDF(ikm, L, salt, info, digest=digest,
|
54
|
-
_test_expected_PRK=prk)
|
55
|
-
if okm != out:
|
56
|
-
raise ValueError("got %s, expected %s" % (hexlify(out), hexlify(okm)))
|
57
|
-
|
58
|
-
# test vectors from RFC5869
|
59
|
-
_test(IKM="0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
|
60
|
-
salt="0x000102030405060708090a0b0c",
|
61
|
-
info="0xf0f1f2f3f4f5f6f7f8f9",
|
62
|
-
L=42,
|
63
|
-
PRK=("0x077709362c2e32df0ddc3f0dc47bba63"
|
64
|
-
"90b6c73bb50f9c3122ec844ad7c2b3e5"),
|
65
|
-
OKM=("0x3cb25f25faacd57a90434f64d0362f2a"
|
66
|
-
"2d2d0a90cf1a5a4c5db02d56ecc4c5bf"
|
67
|
-
"34007208d5b887185865"))
|
68
|
-
|
69
|
-
_test(IKM=("0x000102030405060708090a0b0c0d0e0f"
|
70
|
-
"101112131415161718191a1b1c1d1e1f"
|
71
|
-
"202122232425262728292a2b2c2d2e2f"
|
72
|
-
"303132333435363738393a3b3c3d3e3f"
|
73
|
-
"404142434445464748494a4b4c4d4e4f"),
|
74
|
-
salt=("0x606162636465666768696a6b6c6d6e6f"
|
75
|
-
"707172737475767778797a7b7c7d7e7f"
|
76
|
-
"808182838485868788898a8b8c8d8e8f"
|
77
|
-
"909192939495969798999a9b9c9d9e9f"
|
78
|
-
"a0a1a2a3a4a5a6a7a8a9aaabacadaeaf"),
|
79
|
-
info=("0xb0b1b2b3b4b5b6b7b8b9babbbcbdbebf"
|
80
|
-
"c0c1c2c3c4c5c6c7c8c9cacbcccdcecf"
|
81
|
-
"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf"
|
82
|
-
"e0e1e2e3e4e5e6e7e8e9eaebecedeeef"
|
83
|
-
"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"),
|
84
|
-
L=82,
|
85
|
-
PRK=("0x06a6b88c5853361a06104c9ceb35b45c"
|
86
|
-
"ef760014904671014a193f40c15fc244"),
|
87
|
-
OKM=("0xb11e398dc80327a1c8e7f78c596a4934"
|
88
|
-
"4f012eda2d4efad8a050cc4c19afa97c"
|
89
|
-
"59045a99cac7827271cb41c65e590e09"
|
90
|
-
"da3275600c2f09b8367793a9aca3db71"
|
91
|
-
"cc30c58179ec3e87c14c01d5c1f3434f"
|
92
|
-
"1d87"))
|
93
|
-
|
94
|
-
_test(IKM="0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
|
95
|
-
salt="0x",
|
96
|
-
info="0x",
|
97
|
-
L=42,
|
98
|
-
PRK=("0x19ef24a32c717b167f33a91d6f648bdf"
|
99
|
-
"96596776afdb6377ac434c1c293ccb04"),
|
100
|
-
OKM=("0x8da4e775a563c18f715f802a063c5a31"
|
101
|
-
"b8a11f5c5ee1879ec3454e5f3c738d2d"
|
102
|
-
"9d201395faa4b61a96c8"))
|
103
|
-
|
104
|
-
_test(digest=sha1,
|
105
|
-
IKM="0x0b0b0b0b0b0b0b0b0b0b0b",
|
106
|
-
salt="0x000102030405060708090a0b0c",
|
107
|
-
info="0xf0f1f2f3f4f5f6f7f8f9",
|
108
|
-
L=42,
|
109
|
-
PRK="0x9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243",
|
110
|
-
OKM=("0x085a01ea1b10f36933068b56efa5ad81"
|
111
|
-
"a4f14b822f5b091568a9cdd4f155fda2"
|
112
|
-
"c22e422478d305f3f896"))
|
113
|
-
_test(digest=sha1,
|
114
|
-
IKM=("0x000102030405060708090a0b0c0d0e0f"
|
115
|
-
"101112131415161718191a1b1c1d1e1f"
|
116
|
-
"202122232425262728292a2b2c2d2e2f"
|
117
|
-
"303132333435363738393a3b3c3d3e3f"
|
118
|
-
"404142434445464748494a4b4c4d4e4f"),
|
119
|
-
salt=("0x606162636465666768696a6b6c6d6e6f"
|
120
|
-
"707172737475767778797a7b7c7d7e7f"
|
121
|
-
"808182838485868788898a8b8c8d8e8f"
|
122
|
-
"909192939495969798999a9b9c9d9e9f"
|
123
|
-
"a0a1a2a3a4a5a6a7a8a9aaabacadaeaf"),
|
124
|
-
info=("0xb0b1b2b3b4b5b6b7b8b9babbbcbdbebf"
|
125
|
-
"c0c1c2c3c4c5c6c7c8c9cacbcccdcecf"
|
126
|
-
"d0d1d2d3d4d5d6d7d8d9dadbdcdddedf"
|
127
|
-
"e0e1e2e3e4e5e6e7e8e9eaebecedeeef"
|
128
|
-
"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"),
|
129
|
-
L=82,
|
130
|
-
PRK="0x8adae09a2a307059478d309b26c4115a224cfaf6",
|
131
|
-
OKM=("0x0bd770a74d1160f7c9f12cd5912a06eb"
|
132
|
-
"ff6adcae899d92191fe4305673ba2ffe"
|
133
|
-
"8fa3f1a4e5ad79f3f334b3b202b2173c"
|
134
|
-
"486ea37ce3d397ed034c7f9dfeb15c5e"
|
135
|
-
"927336d0441f4c4300e2cff0d0900b52"
|
136
|
-
"d3b4"))
|
137
|
-
_test(digest=sha1,
|
138
|
-
IKM="0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
|
139
|
-
salt="0x",
|
140
|
-
info="0x",
|
141
|
-
L=42,
|
142
|
-
PRK="0xda8c8a73c7fa77288ec6f5e7c297786aa0d32d01",
|
143
|
-
OKM=("0x0ac1af7002b3d761d1e55298da9d0506"
|
144
|
-
"b9ae52057220a306e07b6b87e8df21d0"
|
145
|
-
"ea00033de03984d34918"))
|
146
|
-
|
147
|
-
_test(digest=sha1,
|
148
|
-
IKM="0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
|
149
|
-
salt="0x",
|
150
|
-
info="0x",
|
151
|
-
L=42,
|
152
|
-
PRK="0x2adccada18779e7c2077ad2eb19d3f3e731385dd",
|
153
|
-
OKM=("0x2c91117204d745f3500d636a62f64f0a"
|
154
|
-
"b3bae548aa53d423b0d1f27ebba6f5e5"
|
155
|
-
"673a081d70cce7acfc48"))
|
156
|
-
|
157
|
-
# finally test that HKDF() without a digest= uses SHA256
|
158
|
-
|
159
|
-
_test(digest=None,
|
160
|
-
IKM="0x0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b",
|
161
|
-
salt="0x",
|
162
|
-
info="0x",
|
163
|
-
L=42,
|
164
|
-
PRK=("0x19ef24a32c717b167f33a91d6f648bdf"
|
165
|
-
"96596776afdb6377ac434c1c293ccb04"),
|
166
|
-
OKM=("0x8da4e775a563c18f715f802a063c5a31"
|
167
|
-
"b8a11f5c5ee1879ec3454e5f3c738d2d"
|
168
|
-
"9d201395faa4b61a96c8"))
|
169
|
-
#print "all test passed"
|
170
|
-
|
171
|
-
power_on_self_test()
|
Binary file
|
@@ -1 +0,0 @@
|
|
1
|
-
module.exports = require("./lib/hkdf");
|
@@ -1,55 +0,0 @@
|
|
1
|
-
//
|
2
|
-
// a straightforward implementation of HKDF
|
3
|
-
//
|
4
|
-
// https://tools.ietf.org/html/rfc5869
|
5
|
-
//
|
6
|
-
|
7
|
-
var crypto = require("crypto");
|
8
|
-
|
9
|
-
function zeros(length) {
|
10
|
-
var buf = new Buffer(length);
|
11
|
-
|
12
|
-
buf.fill(0);
|
13
|
-
|
14
|
-
return buf.toString();
|
15
|
-
}
|
16
|
-
// imk is initial keying material
|
17
|
-
function HKDF(hashAlg, salt, ikm) {
|
18
|
-
this.hashAlg = hashAlg;
|
19
|
-
|
20
|
-
// create the hash alg to see if it exists and get its length
|
21
|
-
var hash = crypto.createHash(this.hashAlg);
|
22
|
-
this.hashLength = hash.digest().length;
|
23
|
-
|
24
|
-
this.salt = salt || zeros(this.hashLength);
|
25
|
-
this.ikm = ikm;
|
26
|
-
|
27
|
-
// now we compute the PRK
|
28
|
-
var hmac = crypto.createHmac(this.hashAlg, this.salt);
|
29
|
-
hmac.update(this.ikm);
|
30
|
-
this.prk = hmac.digest();
|
31
|
-
}
|
32
|
-
|
33
|
-
HKDF.prototype = {
|
34
|
-
derive: function(info, size, cb) {
|
35
|
-
var prev = new Buffer(0);
|
36
|
-
var output;
|
37
|
-
var buffers = [];
|
38
|
-
var num_blocks = Math.ceil(size / this.hashLength);
|
39
|
-
info = new Buffer(info);
|
40
|
-
|
41
|
-
for (var i=0; i<num_blocks; i++) {
|
42
|
-
var hmac = crypto.createHmac(this.hashAlg, this.prk);
|
43
|
-
hmac.update(prev);
|
44
|
-
hmac.update(info);
|
45
|
-
hmac.update(new Buffer([i + 1]));
|
46
|
-
prev = hmac.digest();
|
47
|
-
buffers.push(prev);
|
48
|
-
}
|
49
|
-
output = Buffer.concat(buffers, size);
|
50
|
-
|
51
|
-
process.nextTick(function() {cb(output);});
|
52
|
-
}
|
53
|
-
};
|
54
|
-
|
55
|
-
module.exports = HKDF;
|
@@ -1,55 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_args": [
|
3
|
-
[
|
4
|
-
"hkdf@0.0.2",
|
5
|
-
"/Users/haydenbleasel/GitHub/corellium-cli"
|
6
|
-
]
|
7
|
-
],
|
8
|
-
"_from": "hkdf@0.0.2",
|
9
|
-
"_id": "hkdf@0.0.2",
|
10
|
-
"_inBundle": false,
|
11
|
-
"_integrity": "sha512-eSvNBqgfJzKUY/J37mdeH5Oqd+R+QOcDcqykrqQEx+LsONsSVr9rYSCdXjtRs2WrqZhhAYKBrqwa0XRL1Ps2vg==",
|
12
|
-
"_location": "/hkdf",
|
13
|
-
"_phantomChildren": {},
|
14
|
-
"_requested": {
|
15
|
-
"type": "version",
|
16
|
-
"registry": true,
|
17
|
-
"raw": "hkdf@0.0.2",
|
18
|
-
"name": "hkdf",
|
19
|
-
"escapedName": "hkdf",
|
20
|
-
"rawSpec": "0.0.2",
|
21
|
-
"saveSpec": null,
|
22
|
-
"fetchSpec": "0.0.2"
|
23
|
-
},
|
24
|
-
"_requiredBy": [
|
25
|
-
"/@corellium/corellium-api"
|
26
|
-
],
|
27
|
-
"_resolved": "https://registry.npmjs.org/hkdf/-/hkdf-0.0.2.tgz",
|
28
|
-
"_spec": "0.0.2",
|
29
|
-
"_where": "/Users/haydenbleasel/GitHub/corellium-cli",
|
30
|
-
"author": {
|
31
|
-
"name": "Ben Adida",
|
32
|
-
"email": "ben@adida.net"
|
33
|
-
},
|
34
|
-
"bugs": {
|
35
|
-
"url": "https://github.com/benadida/node-hkdf/issues"
|
36
|
-
},
|
37
|
-
"description": "HKDF key derivation function",
|
38
|
-
"devDependencies": {
|
39
|
-
"vows": "0.5.13"
|
40
|
-
},
|
41
|
-
"engines": {
|
42
|
-
"node": ">= 0.6.5"
|
43
|
-
},
|
44
|
-
"homepage": "https://github.com/benadida/node-hkdf#readme",
|
45
|
-
"main": "index",
|
46
|
-
"name": "hkdf",
|
47
|
-
"repository": {
|
48
|
-
"type": "git",
|
49
|
-
"url": "git+https://github.com/benadida/node-hkdf.git"
|
50
|
-
},
|
51
|
-
"scripts": {
|
52
|
-
"test": "./scripts/run_all_tests.sh"
|
53
|
-
},
|
54
|
-
"version": "0.0.2"
|
55
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )"
|
4
|
-
BASEDIR=$(dirname $SCRIPT_DIR)
|
5
|
-
export PATH=$PATH:$SCRIPT_DIR/../node_modules/.bin
|
6
|
-
|
7
|
-
VOWS=`which vows 2> /dev/null`
|
8
|
-
if [ ! -x "$VOWS" ]; then
|
9
|
-
echo "vows not found in your path. try: npm install"
|
10
|
-
exit 1
|
11
|
-
fi
|
12
|
-
|
13
|
-
# vows hates absolute paths. sheesh.
|
14
|
-
cd $BASEDIR
|
15
|
-
|
16
|
-
vows
|
17
|
-
|
18
|
-
# don't trigger npm doing funny stuff
|
19
|
-
exit 0
|
@@ -1,79 +0,0 @@
|
|
1
|
-
|
2
|
-
var vows = require("vows"),
|
3
|
-
assert = require("assert"),
|
4
|
-
HKDF = require("../lib/hkdf");
|
5
|
-
|
6
|
-
var suite = vows.describe('all');
|
7
|
-
|
8
|
-
suite.addBatch({
|
9
|
-
"an hkdf" : {
|
10
|
-
topic: function() {
|
11
|
-
var self = this;
|
12
|
-
var hkdf = new HKDF('sha256', 'salt123', 'initialKeyingMaterial');
|
13
|
-
hkdf.derive('info', 42, function(key) {
|
14
|
-
// key is a Buffer, that can be serialized however one desires
|
15
|
-
self.callback(null, key);
|
16
|
-
});
|
17
|
-
},
|
18
|
-
"derives keys of the right length": function(err, key) {
|
19
|
-
assert.equal(key.length, 42);
|
20
|
-
}
|
21
|
-
},
|
22
|
-
"an hkdf with no salt" : {
|
23
|
-
topic: function() {
|
24
|
-
var self = this;
|
25
|
-
var hkdf = new HKDF('sha256', null, 'initialKeyingMaterial');
|
26
|
-
hkdf.derive('info', 42, function(key) {
|
27
|
-
// key is a Buffer, that can be serialized however one desires
|
28
|
-
self.callback(null, key);
|
29
|
-
});
|
30
|
-
},
|
31
|
-
"derives keys of the right length": function(err, key) {
|
32
|
-
// expected value generated using:
|
33
|
-
// https://github.com/warner/id-keywrapping-demo/blob/master/hkdf.py
|
34
|
-
assert.equal(key.toString('hex'), "5ff4745de6729d5a523337170ab6e12f202c81611bb8cb80e4b44675a16371cadd8e62eebc777b08bf83");
|
35
|
-
}
|
36
|
-
}
|
37
|
-
});
|
38
|
-
|
39
|
-
// test vectors from RFC5869
|
40
|
-
suite.addBatch({
|
41
|
-
"test vector": {
|
42
|
-
topic: function() {
|
43
|
-
var self = this;
|
44
|
-
|
45
|
-
var ikm = new Buffer("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b", 'hex');
|
46
|
-
var salt = new Buffer("000102030405060708090a0b0c", 'hex');
|
47
|
-
var info = new Buffer("f0f1f2f3f4f5f6f7f8f9", 'hex');
|
48
|
-
|
49
|
-
var hkdf = new HKDF('sha256', salt, ikm);
|
50
|
-
hkdf.derive(info, 42, function(key) {
|
51
|
-
// key is a Buffer, that can be serialized however one desires
|
52
|
-
self.callback(null, key);
|
53
|
-
});
|
54
|
-
},
|
55
|
-
"works": function(err, output) {
|
56
|
-
assert.equal(output.toString('hex'), "3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865");
|
57
|
-
}
|
58
|
-
},
|
59
|
-
"test another vector": {
|
60
|
-
topic: function() {
|
61
|
-
var self = this;
|
62
|
-
|
63
|
-
var ikm = new Buffer("0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b", 'hex');
|
64
|
-
var salt = new Buffer(0); // empty
|
65
|
-
var info = ''; // empty
|
66
|
-
|
67
|
-
var hkdf = new HKDF('sha256', salt, ikm);
|
68
|
-
hkdf.derive(info, 42, function(key) {
|
69
|
-
// key is a Buffer, that can be serialized however one desires
|
70
|
-
self.callback(null, key);
|
71
|
-
});
|
72
|
-
},
|
73
|
-
"works": function(err, output) {
|
74
|
-
assert.equal(output.toString('hex'), "8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8");
|
75
|
-
}
|
76
|
-
}
|
77
|
-
})
|
78
|
-
|
79
|
-
suite.export(module);
|
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -1,93 +0,0 @@
|
|
1
|
-
# immediate [![Build Status](https://travis-ci.org/calvinmetcalf/immediate.svg?branch=master)](https://travis-ci.org/calvinmetcalf/immediate)
|
2
|
-
|
3
|
-
```
|
4
|
-
npm install immediate --save
|
5
|
-
```
|
6
|
-
|
7
|
-
then
|
8
|
-
|
9
|
-
```js
|
10
|
-
var immediate = require("immediate");
|
11
|
-
|
12
|
-
immediate(function () {
|
13
|
-
// this will run soon
|
14
|
-
});
|
15
|
-
|
16
|
-
immediate(function (arg1, arg2) {
|
17
|
-
// get your args like in iojs
|
18
|
-
}, thing1, thing2);
|
19
|
-
```
|
20
|
-
|
21
|
-
## Introduction
|
22
|
-
|
23
|
-
**immediate** is a microtask library, decended from [NobleJS's setImmediate](https://github.com/NobleJS/setImmediate), but including ideas from [Cujo's When](https://github.com/cujojs/when) and [RSVP][RSVP].
|
24
|
-
|
25
|
-
immediate takes the tricks from setImmedate and RSVP and combines them with the schedualer inspired (vaugly) by whens.
|
26
|
-
|
27
|
-
Note versions 2.6.5 and earlier were strictly speaking a 'macrotask' library not a microtask one, [see this for the difference](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks), if you need a macrotask library, [I got you covered](https://github.com/calvinmetcalf/macrotask).
|
28
|
-
|
29
|
-
Several new features were added in versions 3.1.0 and 3.2.0 to maintain parity with
|
30
|
-
process.nextTick, but the 3.0.x series is still being kept up to date if you just need
|
31
|
-
the small barebones version.
|
32
|
-
|
33
|
-
|
34
|
-
## The Tricks
|
35
|
-
|
36
|
-
### `process.nextTick`
|
37
|
-
|
38
|
-
Note that we check for *actual* Node.js environments, not emulated ones like those produced by browserify or similar.
|
39
|
-
|
40
|
-
### `MutationObserver`
|
41
|
-
|
42
|
-
This is what [RSVP][RSVP] uses, it's very fast, details on [MDN](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver).
|
43
|
-
|
44
|
-
|
45
|
-
### `MessageChannel`
|
46
|
-
|
47
|
-
Unfortunately, `postMessage` has completely different semantics inside web workers, and so cannot be used there. So we
|
48
|
-
turn to [`MessageChannel`][MessageChannel], which has worse browser support, but does work inside a web worker.
|
49
|
-
|
50
|
-
### `<script> onreadystatechange`
|
51
|
-
|
52
|
-
For our last trick, we pull something out to make things fast in Internet Explorer versions 6 through 8: namely,
|
53
|
-
creating a `<script>` element and firing our calls in its `onreadystatechange` event. This does execute in a future
|
54
|
-
turn of the event loop, and is also faster than `setTimeout(…, 0)`, so hey, why not?
|
55
|
-
|
56
|
-
## Tricks we don't use
|
57
|
-
|
58
|
-
### `setImmediate`
|
59
|
-
We avoid this process.nextTick in node is better suited to our needs and in Internet Explorer 10 there is a broken version of setImmediate we avoid using this.
|
60
|
-
|
61
|
-
|
62
|
-
In Node.js, do
|
63
|
-
|
64
|
-
```
|
65
|
-
npm install immediate
|
66
|
-
```
|
67
|
-
|
68
|
-
then
|
69
|
-
|
70
|
-
```js
|
71
|
-
var immediate = require("immediate");
|
72
|
-
```
|
73
|
-
|
74
|
-
|
75
|
-
## Reference and Reading
|
76
|
-
|
77
|
-
* [Efficient Script Yielding W3C Editor's Draft][spec]
|
78
|
-
* [W3C mailing list post introducing the specification][list-post]
|
79
|
-
* [IE Test Drive demo][ie-demo]
|
80
|
-
* [Introductory blog post by Nicholas C. Zakas][ncz]
|
81
|
-
* I wrote a couple blog pots on this, [part 1][my-blog-1] and [part 2][my-blog-2]
|
82
|
-
|
83
|
-
[RSVP]: https://github.com/tildeio/rsvp.js
|
84
|
-
[spec]: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/setImmediate/Overview.html
|
85
|
-
[list-post]: http://lists.w3.org/Archives/Public/public-web-perf/2011Jun/0100.html
|
86
|
-
[ie-demo]: http://ie.microsoft.com/testdrive/Performance/setImmediateSorting/Default.html
|
87
|
-
[ncz]: http://www.nczonline.net/blog/2011/09/19/script-yielding-with-setimmediate/
|
88
|
-
[nextTick]: http://nodejs.org/docs/v0.8.16/api/process.html#process_process_nexttick_callback
|
89
|
-
[postMessage]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#posting-messages
|
90
|
-
[MessageChannel]: http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#channel-messaging
|
91
|
-
[cross-browser-demo]: http://calvinmetcalf.github.io/setImmediate-shim-demo
|
92
|
-
[my-blog-1]:http://calvinmetcalf.com/post/61672207151/setimmediate-etc
|
93
|
-
[my-blog-2]:http://calvinmetcalf.com/post/61761231881/javascript-schedulers
|