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