@corellium/corellium-cli 1.0.2 → 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/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,749 +0,0 @@
|
|
|
1
|
-
var fs = require("fs");
|
|
2
|
-
var Transform = require("stream").Transform;
|
|
3
|
-
var PassThrough = require("stream").PassThrough;
|
|
4
|
-
var zlib = require("zlib");
|
|
5
|
-
var util = require("util");
|
|
6
|
-
var EventEmitter = require("events").EventEmitter;
|
|
7
|
-
var crc32 = require("buffer-crc32");
|
|
8
|
-
|
|
9
|
-
exports.ZipFile = ZipFile;
|
|
10
|
-
exports.dateToDosDateTime = dateToDosDateTime;
|
|
11
|
-
|
|
12
|
-
util.inherits(ZipFile, EventEmitter);
|
|
13
|
-
function ZipFile() {
|
|
14
|
-
this.outputStream = new PassThrough();
|
|
15
|
-
this.entries = [];
|
|
16
|
-
this.outputStreamCursor = 0;
|
|
17
|
-
this.ended = false; // .end() sets this
|
|
18
|
-
this.allDone = false; // set when we've written the last bytes
|
|
19
|
-
this.forceZip64Eocd = false; // configurable in .end()
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
ZipFile.prototype.addFile = function(realPath, metadataPath, options) {
|
|
23
|
-
var self = this;
|
|
24
|
-
metadataPath = validateMetadataPath(metadataPath, false);
|
|
25
|
-
if (options == null) options = {};
|
|
26
|
-
|
|
27
|
-
var entry = new Entry(metadataPath, false, options);
|
|
28
|
-
self.entries.push(entry);
|
|
29
|
-
fs.stat(realPath, function(err, stats) {
|
|
30
|
-
if (err) return self.emit("error", err);
|
|
31
|
-
if (!stats.isFile()) return self.emit("error", new Error("not a file: " + realPath));
|
|
32
|
-
entry.uncompressedSize = stats.size;
|
|
33
|
-
if (options.mtime == null) entry.setLastModDate(stats.mtime);
|
|
34
|
-
if (options.mode == null) entry.setFileAttributesMode(stats.mode);
|
|
35
|
-
entry.setFileDataPumpFunction(function() {
|
|
36
|
-
var readStream = fs.createReadStream(realPath);
|
|
37
|
-
entry.state = Entry.FILE_DATA_IN_PROGRESS;
|
|
38
|
-
readStream.on("error", function(err) {
|
|
39
|
-
self.emit("error", err);
|
|
40
|
-
});
|
|
41
|
-
pumpFileDataReadStream(self, entry, readStream);
|
|
42
|
-
});
|
|
43
|
-
pumpEntries(self);
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
ZipFile.prototype.addReadStream = function(readStream, metadataPath, options) {
|
|
48
|
-
var self = this;
|
|
49
|
-
metadataPath = validateMetadataPath(metadataPath, false);
|
|
50
|
-
if (options == null) options = {};
|
|
51
|
-
var entry = new Entry(metadataPath, false, options);
|
|
52
|
-
self.entries.push(entry);
|
|
53
|
-
entry.setFileDataPumpFunction(function() {
|
|
54
|
-
entry.state = Entry.FILE_DATA_IN_PROGRESS;
|
|
55
|
-
pumpFileDataReadStream(self, entry, readStream);
|
|
56
|
-
});
|
|
57
|
-
pumpEntries(self);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
ZipFile.prototype.addBuffer = function(buffer, metadataPath, options) {
|
|
61
|
-
var self = this;
|
|
62
|
-
metadataPath = validateMetadataPath(metadataPath, false);
|
|
63
|
-
if (buffer.length > 0x3fffffff) throw new Error("buffer too large: " + buffer.length + " > " + 0x3fffffff);
|
|
64
|
-
if (options == null) options = {};
|
|
65
|
-
if (options.size != null) throw new Error("options.size not allowed");
|
|
66
|
-
var entry = new Entry(metadataPath, false, options);
|
|
67
|
-
entry.uncompressedSize = buffer.length;
|
|
68
|
-
entry.crc32 = crc32.unsigned(buffer);
|
|
69
|
-
entry.crcAndFileSizeKnown = true;
|
|
70
|
-
self.entries.push(entry);
|
|
71
|
-
if (!entry.compress) {
|
|
72
|
-
setCompressedBuffer(buffer);
|
|
73
|
-
} else {
|
|
74
|
-
zlib.deflateRaw(buffer, function(err, compressedBuffer) {
|
|
75
|
-
setCompressedBuffer(compressedBuffer);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function setCompressedBuffer(compressedBuffer) {
|
|
79
|
-
entry.compressedSize = compressedBuffer.length;
|
|
80
|
-
entry.setFileDataPumpFunction(function() {
|
|
81
|
-
writeToOutputStream(self, compressedBuffer);
|
|
82
|
-
writeToOutputStream(self, entry.getDataDescriptor());
|
|
83
|
-
entry.state = Entry.FILE_DATA_DONE;
|
|
84
|
-
|
|
85
|
-
// don't call pumpEntries() recursively.
|
|
86
|
-
// (also, don't call process.nextTick recursively.)
|
|
87
|
-
setImmediate(function() {
|
|
88
|
-
pumpEntries(self);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
pumpEntries(self);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
ZipFile.prototype.addEmptyDirectory = function(metadataPath, options) {
|
|
96
|
-
var self = this;
|
|
97
|
-
metadataPath = validateMetadataPath(metadataPath, true);
|
|
98
|
-
if (options == null) options = {};
|
|
99
|
-
if (options.size != null) throw new Error("options.size not allowed");
|
|
100
|
-
if (options.compress != null) throw new Error("options.compress not allowed");
|
|
101
|
-
var entry = new Entry(metadataPath, true, options);
|
|
102
|
-
self.entries.push(entry);
|
|
103
|
-
entry.setFileDataPumpFunction(function() {
|
|
104
|
-
writeToOutputStream(self, entry.getDataDescriptor());
|
|
105
|
-
entry.state = Entry.FILE_DATA_DONE;
|
|
106
|
-
pumpEntries(self);
|
|
107
|
-
});
|
|
108
|
-
pumpEntries(self);
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
var eocdrSignatureBuffer = bufferFrom([0x50, 0x4b, 0x05, 0x06]);
|
|
112
|
-
|
|
113
|
-
ZipFile.prototype.end = function(options, finalSizeCallback) {
|
|
114
|
-
if (typeof options === "function") {
|
|
115
|
-
finalSizeCallback = options;
|
|
116
|
-
options = null;
|
|
117
|
-
}
|
|
118
|
-
if (options == null) options = {};
|
|
119
|
-
if (this.ended) return;
|
|
120
|
-
this.ended = true;
|
|
121
|
-
this.finalSizeCallback = finalSizeCallback;
|
|
122
|
-
this.forceZip64Eocd = !!options.forceZip64Format;
|
|
123
|
-
if (options.comment) {
|
|
124
|
-
if (typeof options.comment === "string") {
|
|
125
|
-
this.comment = encodeCp437(options.comment);
|
|
126
|
-
} else {
|
|
127
|
-
// It should be a Buffer
|
|
128
|
-
this.comment = options.comment;
|
|
129
|
-
}
|
|
130
|
-
if (this.comment.length > 0xffff) throw new Error("comment is too large");
|
|
131
|
-
// gotta check for this, because the zipfile format is actually ambiguous.
|
|
132
|
-
if (bufferIncludes(this.comment, eocdrSignatureBuffer)) throw new Error("comment contains end of central directory record signature");
|
|
133
|
-
} else {
|
|
134
|
-
// no comment.
|
|
135
|
-
this.comment = EMPTY_BUFFER;
|
|
136
|
-
}
|
|
137
|
-
pumpEntries(this);
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
function writeToOutputStream(self, buffer) {
|
|
141
|
-
self.outputStream.write(buffer);
|
|
142
|
-
self.outputStreamCursor += buffer.length;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function pumpFileDataReadStream(self, entry, readStream) {
|
|
146
|
-
var crc32Watcher = new Crc32Watcher();
|
|
147
|
-
var uncompressedSizeCounter = new ByteCounter();
|
|
148
|
-
var compressor = entry.compress ? new zlib.DeflateRaw() : new PassThrough();
|
|
149
|
-
var compressedSizeCounter = new ByteCounter();
|
|
150
|
-
readStream.pipe(crc32Watcher)
|
|
151
|
-
.pipe(uncompressedSizeCounter)
|
|
152
|
-
.pipe(compressor)
|
|
153
|
-
.pipe(compressedSizeCounter)
|
|
154
|
-
.pipe(self.outputStream, {end: false});
|
|
155
|
-
compressedSizeCounter.on("end", function() {
|
|
156
|
-
entry.crc32 = crc32Watcher.crc32;
|
|
157
|
-
if (entry.uncompressedSize == null) {
|
|
158
|
-
entry.uncompressedSize = uncompressedSizeCounter.byteCount;
|
|
159
|
-
} else {
|
|
160
|
-
if (entry.uncompressedSize !== uncompressedSizeCounter.byteCount) return self.emit("error", new Error("file data stream has unexpected number of bytes"));
|
|
161
|
-
}
|
|
162
|
-
entry.compressedSize = compressedSizeCounter.byteCount;
|
|
163
|
-
self.outputStreamCursor += entry.compressedSize;
|
|
164
|
-
writeToOutputStream(self, entry.getDataDescriptor());
|
|
165
|
-
entry.state = Entry.FILE_DATA_DONE;
|
|
166
|
-
pumpEntries(self);
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
function pumpEntries(self) {
|
|
171
|
-
if (self.allDone) return;
|
|
172
|
-
// first check if finalSize is finally known
|
|
173
|
-
if (self.ended && self.finalSizeCallback != null) {
|
|
174
|
-
var finalSize = calculateFinalSize(self);
|
|
175
|
-
if (finalSize != null) {
|
|
176
|
-
// we have an answer
|
|
177
|
-
self.finalSizeCallback(finalSize);
|
|
178
|
-
self.finalSizeCallback = null;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// pump entries
|
|
183
|
-
var entry = getFirstNotDoneEntry();
|
|
184
|
-
function getFirstNotDoneEntry() {
|
|
185
|
-
for (var i = 0; i < self.entries.length; i++) {
|
|
186
|
-
var entry = self.entries[i];
|
|
187
|
-
if (entry.state < Entry.FILE_DATA_DONE) return entry;
|
|
188
|
-
}
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
if (entry != null) {
|
|
192
|
-
// this entry is not done yet
|
|
193
|
-
if (entry.state < Entry.READY_TO_PUMP_FILE_DATA) return; // input file not open yet
|
|
194
|
-
if (entry.state === Entry.FILE_DATA_IN_PROGRESS) return; // we'll get there
|
|
195
|
-
// start with local file header
|
|
196
|
-
entry.relativeOffsetOfLocalHeader = self.outputStreamCursor;
|
|
197
|
-
var localFileHeader = entry.getLocalFileHeader();
|
|
198
|
-
writeToOutputStream(self, localFileHeader);
|
|
199
|
-
entry.doFileDataPump();
|
|
200
|
-
} else {
|
|
201
|
-
// all cought up on writing entries
|
|
202
|
-
if (self.ended) {
|
|
203
|
-
// head for the exit
|
|
204
|
-
self.offsetOfStartOfCentralDirectory = self.outputStreamCursor;
|
|
205
|
-
self.entries.forEach(function(entry) {
|
|
206
|
-
var centralDirectoryRecord = entry.getCentralDirectoryRecord();
|
|
207
|
-
writeToOutputStream(self, centralDirectoryRecord);
|
|
208
|
-
});
|
|
209
|
-
writeToOutputStream(self, getEndOfCentralDirectoryRecord(self));
|
|
210
|
-
self.outputStream.end();
|
|
211
|
-
self.allDone = true;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function calculateFinalSize(self) {
|
|
217
|
-
var pretendOutputCursor = 0;
|
|
218
|
-
var centralDirectorySize = 0;
|
|
219
|
-
for (var i = 0; i < self.entries.length; i++) {
|
|
220
|
-
var entry = self.entries[i];
|
|
221
|
-
// compression is too hard to predict
|
|
222
|
-
if (entry.compress) return -1;
|
|
223
|
-
if (entry.state >= Entry.READY_TO_PUMP_FILE_DATA) {
|
|
224
|
-
// if addReadStream was called without providing the size, we can't predict the final size
|
|
225
|
-
if (entry.uncompressedSize == null) return -1;
|
|
226
|
-
} else {
|
|
227
|
-
// if we're still waiting for fs.stat, we might learn the size someday
|
|
228
|
-
if (entry.uncompressedSize == null) return null;
|
|
229
|
-
}
|
|
230
|
-
// we know this for sure, and this is important to know if we need ZIP64 format.
|
|
231
|
-
entry.relativeOffsetOfLocalHeader = pretendOutputCursor;
|
|
232
|
-
var useZip64Format = entry.useZip64Format();
|
|
233
|
-
|
|
234
|
-
pretendOutputCursor += LOCAL_FILE_HEADER_FIXED_SIZE + entry.utf8FileName.length;
|
|
235
|
-
pretendOutputCursor += entry.uncompressedSize;
|
|
236
|
-
if (!entry.crcAndFileSizeKnown) {
|
|
237
|
-
// use a data descriptor
|
|
238
|
-
if (useZip64Format) {
|
|
239
|
-
pretendOutputCursor += ZIP64_DATA_DESCRIPTOR_SIZE;
|
|
240
|
-
} else {
|
|
241
|
-
pretendOutputCursor += DATA_DESCRIPTOR_SIZE;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
centralDirectorySize += CENTRAL_DIRECTORY_RECORD_FIXED_SIZE + entry.utf8FileName.length + entry.fileComment.length;
|
|
246
|
-
if (useZip64Format) {
|
|
247
|
-
centralDirectorySize += ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
var endOfCentralDirectorySize = 0;
|
|
252
|
-
if (self.forceZip64Eocd ||
|
|
253
|
-
self.entries.length >= 0xffff ||
|
|
254
|
-
centralDirectorySize >= 0xffff ||
|
|
255
|
-
pretendOutputCursor >= 0xffffffff) {
|
|
256
|
-
// use zip64 end of central directory stuff
|
|
257
|
-
endOfCentralDirectorySize += ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE;
|
|
258
|
-
}
|
|
259
|
-
endOfCentralDirectorySize += END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self.comment.length;
|
|
260
|
-
return pretendOutputCursor + centralDirectorySize + endOfCentralDirectorySize;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
var ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE = 56;
|
|
264
|
-
var ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE = 20;
|
|
265
|
-
var END_OF_CENTRAL_DIRECTORY_RECORD_SIZE = 22;
|
|
266
|
-
function getEndOfCentralDirectoryRecord(self, actuallyJustTellMeHowLongItWouldBe) {
|
|
267
|
-
var needZip64Format = false;
|
|
268
|
-
var normalEntriesLength = self.entries.length;
|
|
269
|
-
if (self.forceZip64Eocd || self.entries.length >= 0xffff) {
|
|
270
|
-
normalEntriesLength = 0xffff;
|
|
271
|
-
needZip64Format = true;
|
|
272
|
-
}
|
|
273
|
-
var sizeOfCentralDirectory = self.outputStreamCursor - self.offsetOfStartOfCentralDirectory;
|
|
274
|
-
var normalSizeOfCentralDirectory = sizeOfCentralDirectory;
|
|
275
|
-
if (self.forceZip64Eocd || sizeOfCentralDirectory >= 0xffffffff) {
|
|
276
|
-
normalSizeOfCentralDirectory = 0xffffffff;
|
|
277
|
-
needZip64Format = true;
|
|
278
|
-
}
|
|
279
|
-
var normalOffsetOfStartOfCentralDirectory = self.offsetOfStartOfCentralDirectory;
|
|
280
|
-
if (self.forceZip64Eocd || self.offsetOfStartOfCentralDirectory >= 0xffffffff) {
|
|
281
|
-
normalOffsetOfStartOfCentralDirectory = 0xffffffff;
|
|
282
|
-
needZip64Format = true;
|
|
283
|
-
}
|
|
284
|
-
if (actuallyJustTellMeHowLongItWouldBe) {
|
|
285
|
-
if (needZip64Format) {
|
|
286
|
-
return (
|
|
287
|
-
ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE +
|
|
288
|
-
ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE +
|
|
289
|
-
END_OF_CENTRAL_DIRECTORY_RECORD_SIZE
|
|
290
|
-
);
|
|
291
|
-
} else {
|
|
292
|
-
return END_OF_CENTRAL_DIRECTORY_RECORD_SIZE;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
var eocdrBuffer = bufferAlloc(END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self.comment.length);
|
|
297
|
-
// end of central dir signature 4 bytes (0x06054b50)
|
|
298
|
-
eocdrBuffer.writeUInt32LE(0x06054b50, 0);
|
|
299
|
-
// number of this disk 2 bytes
|
|
300
|
-
eocdrBuffer.writeUInt16LE(0, 4);
|
|
301
|
-
// number of the disk with the start of the central directory 2 bytes
|
|
302
|
-
eocdrBuffer.writeUInt16LE(0, 6);
|
|
303
|
-
// total number of entries in the central directory on this disk 2 bytes
|
|
304
|
-
eocdrBuffer.writeUInt16LE(normalEntriesLength, 8);
|
|
305
|
-
// total number of entries in the central directory 2 bytes
|
|
306
|
-
eocdrBuffer.writeUInt16LE(normalEntriesLength, 10);
|
|
307
|
-
// size of the central directory 4 bytes
|
|
308
|
-
eocdrBuffer.writeUInt32LE(normalSizeOfCentralDirectory, 12);
|
|
309
|
-
// offset of start of central directory with respect to the starting disk number 4 bytes
|
|
310
|
-
eocdrBuffer.writeUInt32LE(normalOffsetOfStartOfCentralDirectory, 16);
|
|
311
|
-
// .ZIP file comment length 2 bytes
|
|
312
|
-
eocdrBuffer.writeUInt16LE(self.comment.length, 20);
|
|
313
|
-
// .ZIP file comment (variable size)
|
|
314
|
-
self.comment.copy(eocdrBuffer, 22);
|
|
315
|
-
|
|
316
|
-
if (!needZip64Format) return eocdrBuffer;
|
|
317
|
-
|
|
318
|
-
// ZIP64 format
|
|
319
|
-
// ZIP64 End of Central Directory Record
|
|
320
|
-
var zip64EocdrBuffer = bufferAlloc(ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE);
|
|
321
|
-
// zip64 end of central dir signature 4 bytes (0x06064b50)
|
|
322
|
-
zip64EocdrBuffer.writeUInt32LE(0x06064b50, 0);
|
|
323
|
-
// size of zip64 end of central directory record 8 bytes
|
|
324
|
-
writeUInt64LE(zip64EocdrBuffer, ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE - 12, 4);
|
|
325
|
-
// version made by 2 bytes
|
|
326
|
-
zip64EocdrBuffer.writeUInt16LE(VERSION_MADE_BY, 12);
|
|
327
|
-
// version needed to extract 2 bytes
|
|
328
|
-
zip64EocdrBuffer.writeUInt16LE(VERSION_NEEDED_TO_EXTRACT_ZIP64, 14);
|
|
329
|
-
// number of this disk 4 bytes
|
|
330
|
-
zip64EocdrBuffer.writeUInt32LE(0, 16);
|
|
331
|
-
// number of the disk with the start of the central directory 4 bytes
|
|
332
|
-
zip64EocdrBuffer.writeUInt32LE(0, 20);
|
|
333
|
-
// total number of entries in the central directory on this disk 8 bytes
|
|
334
|
-
writeUInt64LE(zip64EocdrBuffer, self.entries.length, 24);
|
|
335
|
-
// total number of entries in the central directory 8 bytes
|
|
336
|
-
writeUInt64LE(zip64EocdrBuffer, self.entries.length, 32);
|
|
337
|
-
// size of the central directory 8 bytes
|
|
338
|
-
writeUInt64LE(zip64EocdrBuffer, sizeOfCentralDirectory, 40);
|
|
339
|
-
// offset of start of central directory with respect to the starting disk number 8 bytes
|
|
340
|
-
writeUInt64LE(zip64EocdrBuffer, self.offsetOfStartOfCentralDirectory, 48);
|
|
341
|
-
// zip64 extensible data sector (variable size)
|
|
342
|
-
// nothing in the zip64 extensible data sector
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
// ZIP64 End of Central Directory Locator
|
|
346
|
-
var zip64EocdlBuffer = bufferAlloc(ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE);
|
|
347
|
-
// zip64 end of central dir locator signature 4 bytes (0x07064b50)
|
|
348
|
-
zip64EocdlBuffer.writeUInt32LE(0x07064b50, 0);
|
|
349
|
-
// number of the disk with the start of the zip64 end of central directory 4 bytes
|
|
350
|
-
zip64EocdlBuffer.writeUInt32LE(0, 4);
|
|
351
|
-
// relative offset of the zip64 end of central directory record 8 bytes
|
|
352
|
-
writeUInt64LE(zip64EocdlBuffer, self.outputStreamCursor, 8);
|
|
353
|
-
// total number of disks 4 bytes
|
|
354
|
-
zip64EocdlBuffer.writeUInt32LE(1, 16);
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
return Buffer.concat([
|
|
358
|
-
zip64EocdrBuffer,
|
|
359
|
-
zip64EocdlBuffer,
|
|
360
|
-
eocdrBuffer,
|
|
361
|
-
]);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
function validateMetadataPath(metadataPath, isDirectory) {
|
|
365
|
-
if (metadataPath === "") throw new Error("empty metadataPath");
|
|
366
|
-
metadataPath = metadataPath.replace(/\\/g, "/");
|
|
367
|
-
if (/^[a-zA-Z]:/.test(metadataPath) || /^\//.test(metadataPath)) throw new Error("absolute path: " + metadataPath);
|
|
368
|
-
if (metadataPath.split("/").indexOf("..") !== -1) throw new Error("invalid relative path: " + metadataPath);
|
|
369
|
-
var looksLikeDirectory = /\/$/.test(metadataPath);
|
|
370
|
-
if (isDirectory) {
|
|
371
|
-
// append a trailing '/' if necessary.
|
|
372
|
-
if (!looksLikeDirectory) metadataPath += "/";
|
|
373
|
-
} else {
|
|
374
|
-
if (looksLikeDirectory) throw new Error("file path cannot end with '/': " + metadataPath);
|
|
375
|
-
}
|
|
376
|
-
return metadataPath;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
var EMPTY_BUFFER = bufferAlloc(0);
|
|
380
|
-
|
|
381
|
-
// this class is not part of the public API
|
|
382
|
-
function Entry(metadataPath, isDirectory, options) {
|
|
383
|
-
this.utf8FileName = bufferFrom(metadataPath);
|
|
384
|
-
if (this.utf8FileName.length > 0xffff) throw new Error("utf8 file name too long. " + utf8FileName.length + " > " + 0xffff);
|
|
385
|
-
this.isDirectory = isDirectory;
|
|
386
|
-
this.state = Entry.WAITING_FOR_METADATA;
|
|
387
|
-
this.setLastModDate(options.mtime != null ? options.mtime : new Date());
|
|
388
|
-
if (options.mode != null) {
|
|
389
|
-
this.setFileAttributesMode(options.mode);
|
|
390
|
-
} else {
|
|
391
|
-
this.setFileAttributesMode(isDirectory ? 0o40775 : 0o100664);
|
|
392
|
-
}
|
|
393
|
-
if (isDirectory) {
|
|
394
|
-
this.crcAndFileSizeKnown = true;
|
|
395
|
-
this.crc32 = 0;
|
|
396
|
-
this.uncompressedSize = 0;
|
|
397
|
-
this.compressedSize = 0;
|
|
398
|
-
} else {
|
|
399
|
-
// unknown so far
|
|
400
|
-
this.crcAndFileSizeKnown = false;
|
|
401
|
-
this.crc32 = null;
|
|
402
|
-
this.uncompressedSize = null;
|
|
403
|
-
this.compressedSize = null;
|
|
404
|
-
if (options.size != null) this.uncompressedSize = options.size;
|
|
405
|
-
}
|
|
406
|
-
if (isDirectory) {
|
|
407
|
-
this.compress = false;
|
|
408
|
-
} else {
|
|
409
|
-
this.compress = true; // default
|
|
410
|
-
if (options.compress != null) this.compress = !!options.compress;
|
|
411
|
-
}
|
|
412
|
-
this.forceZip64Format = !!options.forceZip64Format;
|
|
413
|
-
if (options.fileComment) {
|
|
414
|
-
if (typeof options.fileComment === "string") {
|
|
415
|
-
this.fileComment = bufferFrom(options.fileComment, "utf-8");
|
|
416
|
-
} else {
|
|
417
|
-
// It should be a Buffer
|
|
418
|
-
this.fileComment = options.fileComment;
|
|
419
|
-
}
|
|
420
|
-
if (this.fileComment.length > 0xffff) throw new Error("fileComment is too large");
|
|
421
|
-
} else {
|
|
422
|
-
// no comment.
|
|
423
|
-
this.fileComment = EMPTY_BUFFER;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
Entry.WAITING_FOR_METADATA = 0;
|
|
427
|
-
Entry.READY_TO_PUMP_FILE_DATA = 1;
|
|
428
|
-
Entry.FILE_DATA_IN_PROGRESS = 2;
|
|
429
|
-
Entry.FILE_DATA_DONE = 3;
|
|
430
|
-
Entry.prototype.setLastModDate = function(date) {
|
|
431
|
-
var dosDateTime = dateToDosDateTime(date);
|
|
432
|
-
this.lastModFileTime = dosDateTime.time;
|
|
433
|
-
this.lastModFileDate = dosDateTime.date;
|
|
434
|
-
};
|
|
435
|
-
Entry.prototype.setFileAttributesMode = function(mode) {
|
|
436
|
-
if ((mode & 0xffff) !== mode) throw new Error("invalid mode. expected: 0 <= " + mode + " <= " + 0xffff);
|
|
437
|
-
// http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute/14727#14727
|
|
438
|
-
this.externalFileAttributes = (mode << 16) >>> 0;
|
|
439
|
-
};
|
|
440
|
-
// doFileDataPump() should not call pumpEntries() directly. see issue #9.
|
|
441
|
-
Entry.prototype.setFileDataPumpFunction = function(doFileDataPump) {
|
|
442
|
-
this.doFileDataPump = doFileDataPump;
|
|
443
|
-
this.state = Entry.READY_TO_PUMP_FILE_DATA;
|
|
444
|
-
};
|
|
445
|
-
Entry.prototype.useZip64Format = function() {
|
|
446
|
-
return (
|
|
447
|
-
(this.forceZip64Format) ||
|
|
448
|
-
(this.uncompressedSize != null && this.uncompressedSize > 0xfffffffe) ||
|
|
449
|
-
(this.compressedSize != null && this.compressedSize > 0xfffffffe) ||
|
|
450
|
-
(this.relativeOffsetOfLocalHeader != null && this.relativeOffsetOfLocalHeader > 0xfffffffe)
|
|
451
|
-
);
|
|
452
|
-
}
|
|
453
|
-
var LOCAL_FILE_HEADER_FIXED_SIZE = 30;
|
|
454
|
-
var VERSION_NEEDED_TO_EXTRACT_UTF8 = 20;
|
|
455
|
-
var VERSION_NEEDED_TO_EXTRACT_ZIP64 = 45;
|
|
456
|
-
// 3 = unix. 63 = spec version 6.3
|
|
457
|
-
var VERSION_MADE_BY = (3 << 8) | 63;
|
|
458
|
-
var FILE_NAME_IS_UTF8 = 1 << 11;
|
|
459
|
-
var UNKNOWN_CRC32_AND_FILE_SIZES = 1 << 3;
|
|
460
|
-
Entry.prototype.getLocalFileHeader = function() {
|
|
461
|
-
var crc32 = 0;
|
|
462
|
-
var compressedSize = 0;
|
|
463
|
-
var uncompressedSize = 0;
|
|
464
|
-
if (this.crcAndFileSizeKnown) {
|
|
465
|
-
crc32 = this.crc32;
|
|
466
|
-
compressedSize = this.compressedSize;
|
|
467
|
-
uncompressedSize = this.uncompressedSize;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
var fixedSizeStuff = bufferAlloc(LOCAL_FILE_HEADER_FIXED_SIZE);
|
|
471
|
-
var generalPurposeBitFlag = FILE_NAME_IS_UTF8;
|
|
472
|
-
if (!this.crcAndFileSizeKnown) generalPurposeBitFlag |= UNKNOWN_CRC32_AND_FILE_SIZES;
|
|
473
|
-
|
|
474
|
-
// local file header signature 4 bytes (0x04034b50)
|
|
475
|
-
fixedSizeStuff.writeUInt32LE(0x04034b50, 0);
|
|
476
|
-
// version needed to extract 2 bytes
|
|
477
|
-
fixedSizeStuff.writeUInt16LE(VERSION_NEEDED_TO_EXTRACT_UTF8, 4);
|
|
478
|
-
// general purpose bit flag 2 bytes
|
|
479
|
-
fixedSizeStuff.writeUInt16LE(generalPurposeBitFlag, 6);
|
|
480
|
-
// compression method 2 bytes
|
|
481
|
-
fixedSizeStuff.writeUInt16LE(this.getCompressionMethod(), 8);
|
|
482
|
-
// last mod file time 2 bytes
|
|
483
|
-
fixedSizeStuff.writeUInt16LE(this.lastModFileTime, 10);
|
|
484
|
-
// last mod file date 2 bytes
|
|
485
|
-
fixedSizeStuff.writeUInt16LE(this.lastModFileDate, 12);
|
|
486
|
-
// crc-32 4 bytes
|
|
487
|
-
fixedSizeStuff.writeUInt32LE(crc32, 14);
|
|
488
|
-
// compressed size 4 bytes
|
|
489
|
-
fixedSizeStuff.writeUInt32LE(compressedSize, 18);
|
|
490
|
-
// uncompressed size 4 bytes
|
|
491
|
-
fixedSizeStuff.writeUInt32LE(uncompressedSize, 22);
|
|
492
|
-
// file name length 2 bytes
|
|
493
|
-
fixedSizeStuff.writeUInt16LE(this.utf8FileName.length, 26);
|
|
494
|
-
// extra field length 2 bytes
|
|
495
|
-
fixedSizeStuff.writeUInt16LE(0, 28);
|
|
496
|
-
return Buffer.concat([
|
|
497
|
-
fixedSizeStuff,
|
|
498
|
-
// file name (variable size)
|
|
499
|
-
this.utf8FileName,
|
|
500
|
-
// extra field (variable size)
|
|
501
|
-
// no extra fields
|
|
502
|
-
]);
|
|
503
|
-
};
|
|
504
|
-
var DATA_DESCRIPTOR_SIZE = 16;
|
|
505
|
-
var ZIP64_DATA_DESCRIPTOR_SIZE = 24;
|
|
506
|
-
Entry.prototype.getDataDescriptor = function() {
|
|
507
|
-
if (this.crcAndFileSizeKnown) {
|
|
508
|
-
// the Mac Archive Utility requires this not be present unless we set general purpose bit 3
|
|
509
|
-
return EMPTY_BUFFER;
|
|
510
|
-
}
|
|
511
|
-
if (!this.useZip64Format()) {
|
|
512
|
-
var buffer = bufferAlloc(DATA_DESCRIPTOR_SIZE);
|
|
513
|
-
// optional signature (required according to Archive Utility)
|
|
514
|
-
buffer.writeUInt32LE(0x08074b50, 0);
|
|
515
|
-
// crc-32 4 bytes
|
|
516
|
-
buffer.writeUInt32LE(this.crc32, 4);
|
|
517
|
-
// compressed size 4 bytes
|
|
518
|
-
buffer.writeUInt32LE(this.compressedSize, 8);
|
|
519
|
-
// uncompressed size 4 bytes
|
|
520
|
-
buffer.writeUInt32LE(this.uncompressedSize, 12);
|
|
521
|
-
return buffer;
|
|
522
|
-
} else {
|
|
523
|
-
// ZIP64 format
|
|
524
|
-
var buffer = bufferAlloc(ZIP64_DATA_DESCRIPTOR_SIZE);
|
|
525
|
-
// optional signature (unknown if anyone cares about this)
|
|
526
|
-
buffer.writeUInt32LE(0x08074b50, 0);
|
|
527
|
-
// crc-32 4 bytes
|
|
528
|
-
buffer.writeUInt32LE(this.crc32, 4);
|
|
529
|
-
// compressed size 8 bytes
|
|
530
|
-
writeUInt64LE(buffer, this.compressedSize, 8);
|
|
531
|
-
// uncompressed size 8 bytes
|
|
532
|
-
writeUInt64LE(buffer, this.uncompressedSize, 16);
|
|
533
|
-
return buffer;
|
|
534
|
-
}
|
|
535
|
-
};
|
|
536
|
-
var CENTRAL_DIRECTORY_RECORD_FIXED_SIZE = 46;
|
|
537
|
-
var ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE = 28;
|
|
538
|
-
Entry.prototype.getCentralDirectoryRecord = function() {
|
|
539
|
-
var fixedSizeStuff = bufferAlloc(CENTRAL_DIRECTORY_RECORD_FIXED_SIZE);
|
|
540
|
-
var generalPurposeBitFlag = FILE_NAME_IS_UTF8;
|
|
541
|
-
if (!this.crcAndFileSizeKnown) generalPurposeBitFlag |= UNKNOWN_CRC32_AND_FILE_SIZES;
|
|
542
|
-
|
|
543
|
-
var normalCompressedSize = this.compressedSize;
|
|
544
|
-
var normalUncompressedSize = this.uncompressedSize;
|
|
545
|
-
var normalRelativeOffsetOfLocalHeader = this.relativeOffsetOfLocalHeader;
|
|
546
|
-
var versionNeededToExtract;
|
|
547
|
-
var zeiefBuffer;
|
|
548
|
-
if (this.useZip64Format()) {
|
|
549
|
-
normalCompressedSize = 0xffffffff;
|
|
550
|
-
normalUncompressedSize = 0xffffffff;
|
|
551
|
-
normalRelativeOffsetOfLocalHeader = 0xffffffff;
|
|
552
|
-
versionNeededToExtract = VERSION_NEEDED_TO_EXTRACT_ZIP64;
|
|
553
|
-
|
|
554
|
-
// ZIP64 extended information extra field
|
|
555
|
-
zeiefBuffer = bufferAlloc(ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE);
|
|
556
|
-
// 0x0001 2 bytes Tag for this "extra" block type
|
|
557
|
-
zeiefBuffer.writeUInt16LE(0x0001, 0);
|
|
558
|
-
// Size 2 bytes Size of this "extra" block
|
|
559
|
-
zeiefBuffer.writeUInt16LE(ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE - 4, 2);
|
|
560
|
-
// Original Size 8 bytes Original uncompressed file size
|
|
561
|
-
writeUInt64LE(zeiefBuffer, this.uncompressedSize, 4);
|
|
562
|
-
// Compressed Size 8 bytes Size of compressed data
|
|
563
|
-
writeUInt64LE(zeiefBuffer, this.compressedSize, 12);
|
|
564
|
-
// Relative Header Offset 8 bytes Offset of local header record
|
|
565
|
-
writeUInt64LE(zeiefBuffer, this.relativeOffsetOfLocalHeader, 20);
|
|
566
|
-
// Disk Start Number 4 bytes Number of the disk on which this file starts
|
|
567
|
-
// (omit)
|
|
568
|
-
} else {
|
|
569
|
-
versionNeededToExtract = VERSION_NEEDED_TO_EXTRACT_UTF8;
|
|
570
|
-
zeiefBuffer = EMPTY_BUFFER;
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
// central file header signature 4 bytes (0x02014b50)
|
|
574
|
-
fixedSizeStuff.writeUInt32LE(0x02014b50, 0);
|
|
575
|
-
// version made by 2 bytes
|
|
576
|
-
fixedSizeStuff.writeUInt16LE(VERSION_MADE_BY, 4);
|
|
577
|
-
// version needed to extract 2 bytes
|
|
578
|
-
fixedSizeStuff.writeUInt16LE(versionNeededToExtract, 6);
|
|
579
|
-
// general purpose bit flag 2 bytes
|
|
580
|
-
fixedSizeStuff.writeUInt16LE(generalPurposeBitFlag, 8);
|
|
581
|
-
// compression method 2 bytes
|
|
582
|
-
fixedSizeStuff.writeUInt16LE(this.getCompressionMethod(), 10);
|
|
583
|
-
// last mod file time 2 bytes
|
|
584
|
-
fixedSizeStuff.writeUInt16LE(this.lastModFileTime, 12);
|
|
585
|
-
// last mod file date 2 bytes
|
|
586
|
-
fixedSizeStuff.writeUInt16LE(this.lastModFileDate, 14);
|
|
587
|
-
// crc-32 4 bytes
|
|
588
|
-
fixedSizeStuff.writeUInt32LE(this.crc32, 16);
|
|
589
|
-
// compressed size 4 bytes
|
|
590
|
-
fixedSizeStuff.writeUInt32LE(normalCompressedSize, 20);
|
|
591
|
-
// uncompressed size 4 bytes
|
|
592
|
-
fixedSizeStuff.writeUInt32LE(normalUncompressedSize, 24);
|
|
593
|
-
// file name length 2 bytes
|
|
594
|
-
fixedSizeStuff.writeUInt16LE(this.utf8FileName.length, 28);
|
|
595
|
-
// extra field length 2 bytes
|
|
596
|
-
fixedSizeStuff.writeUInt16LE(zeiefBuffer.length, 30);
|
|
597
|
-
// file comment length 2 bytes
|
|
598
|
-
fixedSizeStuff.writeUInt16LE(this.fileComment.length, 32);
|
|
599
|
-
// disk number start 2 bytes
|
|
600
|
-
fixedSizeStuff.writeUInt16LE(0, 34);
|
|
601
|
-
// internal file attributes 2 bytes
|
|
602
|
-
fixedSizeStuff.writeUInt16LE(0, 36);
|
|
603
|
-
// external file attributes 4 bytes
|
|
604
|
-
fixedSizeStuff.writeUInt32LE(this.externalFileAttributes, 38);
|
|
605
|
-
// relative offset of local header 4 bytes
|
|
606
|
-
fixedSizeStuff.writeUInt32LE(normalRelativeOffsetOfLocalHeader, 42);
|
|
607
|
-
|
|
608
|
-
return Buffer.concat([
|
|
609
|
-
fixedSizeStuff,
|
|
610
|
-
// file name (variable size)
|
|
611
|
-
this.utf8FileName,
|
|
612
|
-
// extra field (variable size)
|
|
613
|
-
zeiefBuffer,
|
|
614
|
-
// file comment (variable size)
|
|
615
|
-
this.fileComment,
|
|
616
|
-
]);
|
|
617
|
-
};
|
|
618
|
-
Entry.prototype.getCompressionMethod = function() {
|
|
619
|
-
var NO_COMPRESSION = 0;
|
|
620
|
-
var DEFLATE_COMPRESSION = 8;
|
|
621
|
-
return this.compress ? DEFLATE_COMPRESSION : NO_COMPRESSION;
|
|
622
|
-
};
|
|
623
|
-
|
|
624
|
-
function dateToDosDateTime(jsDate) {
|
|
625
|
-
var date = 0;
|
|
626
|
-
date |= jsDate.getDate() & 0x1f; // 1-31
|
|
627
|
-
date |= ((jsDate.getMonth() + 1) & 0xf) << 5; // 0-11, 1-12
|
|
628
|
-
date |= ((jsDate.getFullYear() - 1980) & 0x7f) << 9; // 0-128, 1980-2108
|
|
629
|
-
|
|
630
|
-
var time = 0;
|
|
631
|
-
time |= Math.floor(jsDate.getSeconds() / 2); // 0-59, 0-29 (lose odd numbers)
|
|
632
|
-
time |= (jsDate.getMinutes() & 0x3f) << 5; // 0-59
|
|
633
|
-
time |= (jsDate.getHours() & 0x1f) << 11; // 0-23
|
|
634
|
-
|
|
635
|
-
return {date: date, time: time};
|
|
636
|
-
}
|
|
637
|
-
|
|
638
|
-
function writeUInt64LE(buffer, n, offset) {
|
|
639
|
-
// can't use bitshift here, because JavaScript only allows bitshifting on 32-bit integers.
|
|
640
|
-
var high = Math.floor(n / 0x100000000);
|
|
641
|
-
var low = n % 0x100000000;
|
|
642
|
-
buffer.writeUInt32LE(low, offset);
|
|
643
|
-
buffer.writeUInt32LE(high, offset + 4);
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
function defaultCallback(err) {
|
|
647
|
-
if (err) throw err;
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
util.inherits(ByteCounter, Transform);
|
|
651
|
-
function ByteCounter(options) {
|
|
652
|
-
Transform.call(this, options);
|
|
653
|
-
this.byteCount = 0;
|
|
654
|
-
}
|
|
655
|
-
ByteCounter.prototype._transform = function(chunk, encoding, cb) {
|
|
656
|
-
this.byteCount += chunk.length;
|
|
657
|
-
cb(null, chunk);
|
|
658
|
-
};
|
|
659
|
-
|
|
660
|
-
util.inherits(Crc32Watcher, Transform);
|
|
661
|
-
function Crc32Watcher(options) {
|
|
662
|
-
Transform.call(this, options);
|
|
663
|
-
this.crc32 = 0;
|
|
664
|
-
}
|
|
665
|
-
Crc32Watcher.prototype._transform = function(chunk, encoding, cb) {
|
|
666
|
-
this.crc32 = crc32.unsigned(chunk, this.crc32);
|
|
667
|
-
cb(null, chunk);
|
|
668
|
-
};
|
|
669
|
-
|
|
670
|
-
var cp437 = '\u0000☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ';
|
|
671
|
-
if (cp437.length !== 256) throw new Error("assertion failure");
|
|
672
|
-
var reverseCp437 = null;
|
|
673
|
-
|
|
674
|
-
function encodeCp437(string) {
|
|
675
|
-
if (/^[\x20-\x7e]*$/.test(string)) {
|
|
676
|
-
// CP437, ASCII, and UTF-8 overlap in this range.
|
|
677
|
-
return bufferFrom(string, "utf-8");
|
|
678
|
-
}
|
|
679
|
-
|
|
680
|
-
// This is the slow path.
|
|
681
|
-
if (reverseCp437 == null) {
|
|
682
|
-
// cache this once
|
|
683
|
-
reverseCp437 = {};
|
|
684
|
-
for (var i = 0; i < cp437.length; i++) {
|
|
685
|
-
reverseCp437[cp437[i]] = i;
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
var result = bufferAlloc(string.length);
|
|
690
|
-
for (var i = 0; i < string.length; i++) {
|
|
691
|
-
var b = reverseCp437[string[i]];
|
|
692
|
-
if (b == null) throw new Error("character not encodable in CP437: " + JSON.stringify(string[i]));
|
|
693
|
-
result[i] = b;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
return result;
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
function bufferAlloc(size) {
|
|
700
|
-
bufferAlloc = modern;
|
|
701
|
-
try {
|
|
702
|
-
return bufferAlloc(size);
|
|
703
|
-
} catch (e) {
|
|
704
|
-
bufferAlloc = legacy;
|
|
705
|
-
return bufferAlloc(size);
|
|
706
|
-
}
|
|
707
|
-
function modern(size) {
|
|
708
|
-
return Buffer.allocUnsafe(size);
|
|
709
|
-
}
|
|
710
|
-
function legacy(size) {
|
|
711
|
-
return new Buffer(size);
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
function bufferFrom(something, encoding) {
|
|
715
|
-
bufferFrom = modern;
|
|
716
|
-
try {
|
|
717
|
-
return bufferFrom(something, encoding);
|
|
718
|
-
} catch (e) {
|
|
719
|
-
bufferFrom = legacy;
|
|
720
|
-
return bufferFrom(something, encoding);
|
|
721
|
-
}
|
|
722
|
-
function modern(something, encoding) {
|
|
723
|
-
return Buffer.from(something, encoding);
|
|
724
|
-
}
|
|
725
|
-
function legacy(something, encoding) {
|
|
726
|
-
return new Buffer(something, encoding);
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
function bufferIncludes(buffer, content) {
|
|
730
|
-
bufferIncludes = modern;
|
|
731
|
-
try {
|
|
732
|
-
return bufferIncludes(buffer, content);
|
|
733
|
-
} catch (e) {
|
|
734
|
-
bufferIncludes = legacy;
|
|
735
|
-
return bufferIncludes(buffer, content);
|
|
736
|
-
}
|
|
737
|
-
function modern(buffer, content) {
|
|
738
|
-
return buffer.includes(content);
|
|
739
|
-
}
|
|
740
|
-
function legacy(buffer, content) {
|
|
741
|
-
for (var i = 0; i <= buffer.length - content.length; i++) {
|
|
742
|
-
for (var j = 0;; j++) {
|
|
743
|
-
if (j === content.length) return true;
|
|
744
|
-
if (buffer[i + j] !== content[j]) break;
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
return false;
|
|
748
|
-
}
|
|
749
|
-
}
|