fsevents 1.2.6 → 1.2.7
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fsevents might be problematic. Click here for more details.
- package/node_modules/abbrev/LICENSE +46 -0
- package/node_modules/abbrev/README.md +23 -0
- package/node_modules/abbrev/abbrev.js +61 -0
- package/node_modules/abbrev/package.json +57 -0
- package/node_modules/ansi-regex/index.js +4 -0
- package/node_modules/ansi-regex/license +21 -0
- package/node_modules/ansi-regex/package.json +108 -0
- package/node_modules/ansi-regex/readme.md +39 -0
- package/node_modules/aproba/LICENSE +14 -0
- package/node_modules/aproba/README.md +94 -0
- package/node_modules/aproba/index.js +105 -0
- package/node_modules/aproba/package.json +62 -0
- package/node_modules/are-we-there-yet/CHANGES.md +37 -0
- package/node_modules/are-we-there-yet/LICENSE +5 -0
- package/node_modules/are-we-there-yet/README.md +195 -0
- package/node_modules/are-we-there-yet/index.js +4 -0
- package/node_modules/are-we-there-yet/package.json +63 -0
- package/node_modules/are-we-there-yet/tracker-base.js +11 -0
- package/node_modules/are-we-there-yet/tracker-group.js +107 -0
- package/node_modules/are-we-there-yet/tracker-stream.js +36 -0
- package/node_modules/are-we-there-yet/tracker.js +30 -0
- package/node_modules/balanced-match/.npmignore +5 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +91 -0
- package/node_modules/balanced-match/index.js +59 -0
- package/node_modules/balanced-match/package.json +77 -0
- package/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/brace-expansion/package.json +75 -0
- package/node_modules/chownr/LICENSE +15 -0
- package/node_modules/chownr/README.md +3 -0
- package/node_modules/chownr/chownr.js +88 -0
- package/node_modules/chownr/package.json +59 -0
- package/node_modules/code-point-at/index.js +32 -0
- package/node_modules/code-point-at/license +21 -0
- package/node_modules/code-point-at/package.json +70 -0
- package/node_modules/code-point-at/readme.md +32 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +88 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/console-control-strings/LICENSE +13 -0
- package/node_modules/console-control-strings/README.md +145 -0
- package/node_modules/console-control-strings/README.md~ +140 -0
- package/node_modules/console-control-strings/index.js +125 -0
- package/node_modules/console-control-strings/package.json +61 -0
- package/node_modules/core-util-is/LICENSE +19 -0
- package/node_modules/core-util-is/README.md +3 -0
- package/node_modules/core-util-is/float.patch +604 -0
- package/node_modules/core-util-is/lib/util.js +107 -0
- package/node_modules/core-util-is/package.json +62 -0
- package/node_modules/core-util-is/test.js +68 -0
- package/node_modules/debug/.coveralls.yml +1 -0
- package/node_modules/debug/.eslintrc +11 -0
- package/node_modules/debug/.npmignore +9 -0
- package/node_modules/debug/.travis.yml +14 -0
- package/node_modules/debug/CHANGELOG.md +362 -0
- package/node_modules/debug/LICENSE +19 -0
- package/node_modules/debug/Makefile +50 -0
- package/node_modules/debug/README.md +312 -0
- package/node_modules/debug/component.json +19 -0
- package/node_modules/debug/karma.conf.js +70 -0
- package/node_modules/debug/node.js +1 -0
- package/node_modules/debug/package.json +88 -0
- package/node_modules/debug/src/browser.js +185 -0
- package/node_modules/debug/src/debug.js +202 -0
- package/node_modules/debug/src/index.js +10 -0
- package/node_modules/debug/src/inspector-log.js +15 -0
- package/node_modules/debug/src/node.js +248 -0
- package/node_modules/deep-extend/CHANGELOG.md +46 -0
- package/node_modules/deep-extend/LICENSE +20 -0
- package/node_modules/deep-extend/README.md +91 -0
- package/node_modules/deep-extend/index.js +1 -0
- package/node_modules/deep-extend/lib/deep-extend.js +150 -0
- package/node_modules/deep-extend/package.json +92 -0
- package/node_modules/delegates/.npmignore +1 -0
- package/node_modules/delegates/History.md +22 -0
- package/node_modules/delegates/License +20 -0
- package/node_modules/delegates/Makefile +8 -0
- package/node_modules/delegates/Readme.md +94 -0
- package/node_modules/delegates/index.js +121 -0
- package/node_modules/delegates/package.json +48 -0
- package/node_modules/delegates/test/index.js +94 -0
- package/node_modules/detect-libc/.npmignore +7 -0
- package/node_modules/detect-libc/LICENSE +201 -0
- package/node_modules/detect-libc/README.md +78 -0
- package/node_modules/detect-libc/bin/detect-libc.js +18 -0
- package/node_modules/detect-libc/lib/detect-libc.js +92 -0
- package/node_modules/detect-libc/package.json +70 -0
- package/node_modules/fs-minipass/LICENSE +15 -0
- package/node_modules/fs-minipass/README.md +70 -0
- package/node_modules/fs-minipass/index.js +386 -0
- package/node_modules/fs-minipass/package.json +62 -0
- package/node_modules/fs.realpath/LICENSE +43 -0
- package/node_modules/fs.realpath/README.md +33 -0
- package/node_modules/fs.realpath/index.js +66 -0
- package/node_modules/fs.realpath/old.js +303 -0
- package/node_modules/fs.realpath/package.json +59 -0
- package/node_modules/gauge/CHANGELOG.md +160 -0
- package/node_modules/gauge/LICENSE +13 -0
- package/node_modules/gauge/README.md +399 -0
- package/node_modules/gauge/base-theme.js +14 -0
- package/node_modules/gauge/error.js +24 -0
- package/node_modules/gauge/has-color.js +12 -0
- package/node_modules/gauge/index.js +233 -0
- package/node_modules/gauge/package.json +91 -0
- package/node_modules/gauge/plumbing.js +48 -0
- package/node_modules/gauge/process.js +3 -0
- package/node_modules/gauge/progress-bar.js +35 -0
- package/node_modules/gauge/render-template.js +181 -0
- package/node_modules/gauge/set-immediate.js +7 -0
- package/node_modules/gauge/set-interval.js +3 -0
- package/node_modules/gauge/spin.js +5 -0
- package/node_modules/gauge/template-item.js +73 -0
- package/node_modules/gauge/theme-set.js +115 -0
- package/node_modules/gauge/themes.js +54 -0
- package/node_modules/gauge/wide-truncate.js +25 -0
- package/node_modules/glob/LICENSE +15 -0
- package/node_modules/glob/README.md +368 -0
- package/node_modules/glob/changelog.md +67 -0
- package/node_modules/glob/common.js +240 -0
- package/node_modules/glob/glob.js +790 -0
- package/node_modules/glob/package.json +76 -0
- package/node_modules/glob/sync.js +486 -0
- package/node_modules/has-unicode/LICENSE +14 -0
- package/node_modules/has-unicode/README.md +43 -0
- package/node_modules/has-unicode/index.js +16 -0
- package/node_modules/has-unicode/package.json +58 -0
- package/node_modules/iconv-lite/Changelog.md +162 -0
- package/node_modules/iconv-lite/LICENSE +21 -0
- package/node_modules/iconv-lite/README.md +156 -0
- package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- package/node_modules/iconv-lite/encodings/index.js +22 -0
- package/node_modules/iconv-lite/encodings/internal.js +188 -0
- package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/node_modules/iconv-lite/encodings/utf16.js +177 -0
- package/node_modules/iconv-lite/encodings/utf7.js +290 -0
- package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- package/node_modules/iconv-lite/lib/extend-node.js +217 -0
- package/node_modules/iconv-lite/lib/index.d.ts +24 -0
- package/node_modules/iconv-lite/lib/index.js +153 -0
- package/node_modules/iconv-lite/lib/streams.js +121 -0
- package/node_modules/iconv-lite/package.json +76 -0
- package/node_modules/ignore-walk/LICENSE +15 -0
- package/node_modules/ignore-walk/README.md +60 -0
- package/node_modules/ignore-walk/index.js +265 -0
- package/node_modules/ignore-walk/package.json +71 -0
- package/node_modules/inflight/LICENSE +15 -0
- package/node_modules/inflight/README.md +37 -0
- package/node_modules/inflight/inflight.js +54 -0
- package/node_modules/inflight/package.json +58 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +7 -0
- package/node_modules/inherits/inherits_browser.js +23 -0
- package/node_modules/inherits/package.json +64 -0
- package/node_modules/ini/LICENSE +15 -0
- package/node_modules/ini/README.md +102 -0
- package/node_modules/ini/ini.js +194 -0
- package/node_modules/ini/package.json +63 -0
- package/node_modules/is-fullwidth-code-point/index.js +46 -0
- package/node_modules/is-fullwidth-code-point/license +21 -0
- package/node_modules/is-fullwidth-code-point/package.json +77 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/isarray/.npmignore +1 -0
- package/node_modules/isarray/.travis.yml +4 -0
- package/node_modules/isarray/Makefile +6 -0
- package/node_modules/isarray/README.md +60 -0
- package/node_modules/isarray/component.json +19 -0
- package/node_modules/isarray/index.js +5 -0
- package/node_modules/isarray/package.json +73 -0
- package/node_modules/isarray/test.js +20 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +209 -0
- package/node_modules/minimatch/minimatch.js +923 -0
- package/node_modules/minimatch/package.json +64 -0
- package/node_modules/minimist/.travis.yml +4 -0
- package/node_modules/minimist/LICENSE +18 -0
- package/node_modules/minimist/example/parse.js +2 -0
- package/node_modules/minimist/index.js +187 -0
- package/node_modules/minimist/package.json +71 -0
- package/node_modules/minimist/readme.markdown +73 -0
- package/node_modules/minimist/test/dash.js +24 -0
- package/node_modules/minimist/test/default_bool.js +20 -0
- package/node_modules/minimist/test/dotted.js +16 -0
- package/node_modules/minimist/test/long.js +31 -0
- package/node_modules/minimist/test/parse.js +318 -0
- package/node_modules/minimist/test/parse_modified.js +9 -0
- package/node_modules/minimist/test/short.js +67 -0
- package/node_modules/minimist/test/whitespace.js +8 -0
- package/node_modules/minipass/LICENSE +15 -0
- package/node_modules/minipass/README.md +124 -0
- package/node_modules/minipass/index.js +375 -0
- package/node_modules/minipass/package.json +69 -0
- package/node_modules/minizlib/LICENSE +26 -0
- package/node_modules/minizlib/README.md +44 -0
- package/node_modules/minizlib/constants.js +46 -0
- package/node_modules/minizlib/index.js +335 -0
- package/node_modules/minizlib/package.json +71 -0
- package/node_modules/mkdirp/.travis.yml +8 -0
- package/node_modules/mkdirp/LICENSE +21 -0
- package/node_modules/mkdirp/bin/cmd.js +33 -0
- package/node_modules/mkdirp/bin/usage.txt +12 -0
- package/node_modules/mkdirp/examples/pow.js +6 -0
- package/node_modules/mkdirp/index.js +98 -0
- package/node_modules/mkdirp/package.json +64 -0
- package/node_modules/mkdirp/readme.markdown +100 -0
- package/node_modules/mkdirp/test/chmod.js +41 -0
- package/node_modules/mkdirp/test/clobber.js +38 -0
- package/node_modules/mkdirp/test/mkdirp.js +28 -0
- package/node_modules/mkdirp/test/opts_fs.js +29 -0
- package/node_modules/mkdirp/test/opts_fs_sync.js +27 -0
- package/node_modules/mkdirp/test/perm.js +32 -0
- package/node_modules/mkdirp/test/perm_sync.js +36 -0
- package/node_modules/mkdirp/test/race.js +37 -0
- package/node_modules/mkdirp/test/rel.js +32 -0
- package/node_modules/mkdirp/test/return.js +25 -0
- package/node_modules/mkdirp/test/return_sync.js +24 -0
- package/node_modules/mkdirp/test/root.js +19 -0
- package/node_modules/mkdirp/test/sync.js +32 -0
- package/node_modules/mkdirp/test/umask.js +28 -0
- package/node_modules/mkdirp/test/umask_sync.js +32 -0
- package/node_modules/ms/index.js +152 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +69 -0
- package/node_modules/ms/readme.md +51 -0
- package/node_modules/needle/README.md +594 -0
- package/node_modules/needle/bin/needle +40 -0
- package/node_modules/needle/examples/deflated-stream.js +22 -0
- package/node_modules/needle/examples/digest-auth.js +16 -0
- package/node_modules/needle/examples/download-to-file.js +18 -0
- package/node_modules/needle/examples/multipart-stream.js +25 -0
- package/node_modules/needle/examples/parsed-stream.js +23 -0
- package/node_modules/needle/examples/parsed-stream2.js +21 -0
- package/node_modules/needle/examples/stream-events.js +23 -0
- package/node_modules/needle/examples/stream-to-file.js +14 -0
- package/node_modules/needle/examples/upload-image.js +51 -0
- package/node_modules/needle/lib/auth.js +110 -0
- package/node_modules/needle/lib/cookies.js +79 -0
- package/node_modules/needle/lib/decoder.js +53 -0
- package/node_modules/needle/lib/multipart.js +98 -0
- package/node_modules/needle/lib/needle.js +795 -0
- package/node_modules/needle/lib/parsers.js +120 -0
- package/node_modules/needle/lib/querystring.js +49 -0
- package/node_modules/needle/license.txt +19 -0
- package/node_modules/needle/note.xml +7 -0
- package/node_modules/needle/note.xml.1 +7 -0
- package/node_modules/needle/package.json +102 -0
- package/node_modules/needle/test/basic_auth_spec.js +196 -0
- package/node_modules/needle/test/compression_spec.js +94 -0
- package/node_modules/needle/test/cookies_spec.js +305 -0
- package/node_modules/needle/test/decoder_spec.js +86 -0
- package/node_modules/needle/test/errors_spec.js +286 -0
- package/node_modules/needle/test/headers_spec.js +198 -0
- package/node_modules/needle/test/helpers.js +72 -0
- package/node_modules/needle/test/long_string_spec.js +34 -0
- package/node_modules/needle/test/output_spec.js +254 -0
- package/node_modules/needle/test/parsing_spec.js +494 -0
- package/node_modules/needle/test/post_data_spec.js +1021 -0
- package/node_modules/needle/test/proxy_spec.js +202 -0
- package/node_modules/needle/test/querystring_spec.js +128 -0
- package/node_modules/needle/test/redirect_spec.js +392 -0
- package/node_modules/needle/test/redirect_with_timeout.js +45 -0
- package/node_modules/needle/test/request_stream_spec.js +202 -0
- package/node_modules/needle/test/response_stream_spec.js +139 -0
- package/node_modules/needle/test/socket_pool_spec.js +66 -0
- package/node_modules/needle/test/url_spec.js +155 -0
- package/node_modules/needle/test/utils/formidable.js +17 -0
- package/node_modules/needle/test/utils/proxy.js +62 -0
- package/node_modules/needle/test/utils/test.js +104 -0
- package/node_modules/node-pre-gyp/CHANGELOG.md +422 -0
- package/node_modules/node-pre-gyp/LICENSE +27 -0
- package/node_modules/node-pre-gyp/README.md +658 -0
- package/node_modules/node-pre-gyp/appveyor.yml +30 -0
- package/node_modules/node-pre-gyp/bin/node-pre-gyp +134 -0
- package/node_modules/node-pre-gyp/bin/node-pre-gyp.cmd +2 -0
- package/node_modules/node-pre-gyp/contributing.md +10 -0
- package/node_modules/node-pre-gyp/lib/build.js +51 -0
- package/node_modules/node-pre-gyp/lib/clean.js +32 -0
- package/node_modules/node-pre-gyp/lib/configure.js +52 -0
- package/node_modules/node-pre-gyp/lib/info.js +40 -0
- package/node_modules/node-pre-gyp/lib/install.js +243 -0
- package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +203 -0
- package/node_modules/node-pre-gyp/lib/package.js +56 -0
- package/node_modules/node-pre-gyp/lib/pre-binding.js +30 -0
- package/node_modules/node-pre-gyp/lib/publish.js +79 -0
- package/node_modules/node-pre-gyp/lib/rebuild.js +21 -0
- package/node_modules/node-pre-gyp/lib/reinstall.js +20 -0
- package/node_modules/node-pre-gyp/lib/reveal.js +33 -0
- package/node_modules/node-pre-gyp/lib/testbinary.js +81 -0
- package/node_modules/node-pre-gyp/lib/testpackage.js +55 -0
- package/node_modules/node-pre-gyp/lib/unpublish.js +43 -0
- package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +1782 -0
- package/node_modules/node-pre-gyp/lib/util/compile.js +87 -0
- package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +100 -0
- package/node_modules/node-pre-gyp/lib/util/napi.js +156 -0
- package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html +26 -0
- package/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/package.json +9 -0
- package/node_modules/node-pre-gyp/lib/util/s3_setup.js +27 -0
- package/node_modules/node-pre-gyp/lib/util/versioning.js +330 -0
- package/node_modules/node-pre-gyp/package.json +86 -0
- package/node_modules/nopt/.npmignore +1 -0
- package/node_modules/nopt/.travis.yml +8 -0
- package/node_modules/nopt/CHANGELOG.md +58 -0
- package/node_modules/nopt/LICENSE +15 -0
- package/node_modules/nopt/README.md +213 -0
- package/node_modules/nopt/bin/nopt.js +54 -0
- package/node_modules/nopt/examples/my-program.js +30 -0
- package/node_modules/nopt/lib/nopt.js +436 -0
- package/node_modules/nopt/package.json +58 -0
- package/node_modules/nopt/test/basic.js +303 -0
- package/node_modules/npm-bundled/LICENSE +15 -0
- package/node_modules/npm-bundled/README.md +48 -0
- package/node_modules/npm-bundled/index.js +229 -0
- package/node_modules/npm-bundled/package.json +60 -0
- package/node_modules/npm-packlist/LICENSE +15 -0
- package/node_modules/npm-packlist/README.md +68 -0
- package/node_modules/npm-packlist/index.js +229 -0
- package/node_modules/npm-packlist/package.json +66 -0
- package/node_modules/npmlog/CHANGELOG.md +49 -0
- package/node_modules/npmlog/LICENSE +15 -0
- package/node_modules/npmlog/README.md +216 -0
- package/node_modules/npmlog/log.js +309 -0
- package/node_modules/npmlog/package.json +61 -0
- package/node_modules/number-is-nan/index.js +4 -0
- package/node_modules/number-is-nan/license +21 -0
- package/node_modules/number-is-nan/package.json +67 -0
- package/node_modules/number-is-nan/readme.md +28 -0
- package/node_modules/object-assign/index.js +90 -0
- package/node_modules/object-assign/license +21 -0
- package/node_modules/object-assign/package.json +74 -0
- package/node_modules/object-assign/readme.md +61 -0
- package/node_modules/once/LICENSE +15 -0
- package/node_modules/once/README.md +79 -0
- package/node_modules/once/once.js +42 -0
- package/node_modules/once/package.json +67 -0
- package/node_modules/os-homedir/index.js +24 -0
- package/node_modules/os-homedir/license +21 -0
- package/node_modules/os-homedir/package.json +73 -0
- package/node_modules/os-homedir/readme.md +31 -0
- package/node_modules/os-tmpdir/index.js +25 -0
- package/node_modules/os-tmpdir/license +21 -0
- package/node_modules/os-tmpdir/package.json +73 -0
- package/node_modules/os-tmpdir/readme.md +32 -0
- package/node_modules/osenv/LICENSE +15 -0
- package/node_modules/osenv/README.md +63 -0
- package/node_modules/osenv/osenv.js +72 -0
- package/node_modules/osenv/package.json +73 -0
- package/node_modules/path-is-absolute/index.js +20 -0
- package/node_modules/path-is-absolute/license +21 -0
- package/node_modules/path-is-absolute/package.json +75 -0
- package/node_modules/path-is-absolute/readme.md +59 -0
- package/node_modules/process-nextick-args/index.js +44 -0
- package/node_modules/process-nextick-args/license.md +19 -0
- package/node_modules/process-nextick-args/package.json +50 -0
- package/node_modules/process-nextick-args/readme.md +18 -0
- package/node_modules/rc/LICENSE.APACHE2 +15 -0
- package/node_modules/rc/LICENSE.BSD +26 -0
- package/node_modules/rc/LICENSE.MIT +24 -0
- package/node_modules/rc/README.md +227 -0
- package/node_modules/rc/browser.js +7 -0
- package/node_modules/rc/cli.js +4 -0
- package/node_modules/rc/index.js +53 -0
- package/node_modules/rc/lib/utils.js +104 -0
- package/node_modules/rc/node_modules/minimist/.travis.yml +8 -0
- package/node_modules/rc/node_modules/minimist/LICENSE +18 -0
- package/node_modules/rc/node_modules/minimist/example/parse.js +2 -0
- package/node_modules/rc/node_modules/minimist/index.js +236 -0
- package/node_modules/rc/node_modules/minimist/package.json +73 -0
- package/node_modules/rc/node_modules/minimist/readme.markdown +91 -0
- package/node_modules/rc/node_modules/minimist/test/all_bool.js +32 -0
- package/node_modules/rc/node_modules/minimist/test/bool.js +166 -0
- package/node_modules/rc/node_modules/minimist/test/dash.js +31 -0
- package/node_modules/rc/node_modules/minimist/test/default_bool.js +35 -0
- package/node_modules/rc/node_modules/minimist/test/dotted.js +22 -0
- package/node_modules/rc/node_modules/minimist/test/kv_short.js +16 -0
- package/node_modules/rc/node_modules/minimist/test/long.js +31 -0
- package/node_modules/rc/node_modules/minimist/test/num.js +36 -0
- package/node_modules/rc/node_modules/minimist/test/parse.js +197 -0
- package/node_modules/rc/node_modules/minimist/test/parse_modified.js +9 -0
- package/node_modules/rc/node_modules/minimist/test/short.js +67 -0
- package/node_modules/rc/node_modules/minimist/test/stop_early.js +15 -0
- package/node_modules/rc/node_modules/minimist/test/unknown.js +102 -0
- package/node_modules/rc/node_modules/minimist/test/whitespace.js +8 -0
- package/node_modules/rc/package.json +64 -0
- package/node_modules/rc/test/ini.js +16 -0
- package/node_modules/rc/test/nested-env-vars.js +50 -0
- package/node_modules/rc/test/test.js +59 -0
- package/node_modules/readable-stream/.travis.yml +55 -0
- package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
- package/node_modules/readable-stream/GOVERNANCE.md +136 -0
- package/node_modules/readable-stream/LICENSE +47 -0
- package/node_modules/readable-stream/README.md +58 -0
- package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
- package/node_modules/readable-stream/duplex-browser.js +1 -0
- package/node_modules/readable-stream/duplex.js +1 -0
- package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
- package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
- package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
- package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
- package/node_modules/readable-stream/lib/_stream_writable.js +687 -0
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +79 -0
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
- package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
- package/node_modules/readable-stream/package.json +81 -0
- package/node_modules/readable-stream/passthrough.js +1 -0
- package/node_modules/readable-stream/readable-browser.js +7 -0
- package/node_modules/readable-stream/readable.js +19 -0
- package/node_modules/readable-stream/transform.js +1 -0
- package/node_modules/readable-stream/writable-browser.js +1 -0
- package/node_modules/readable-stream/writable.js +8 -0
- package/node_modules/rimraf/LICENSE +15 -0
- package/node_modules/rimraf/README.md +101 -0
- package/node_modules/rimraf/bin.js +50 -0
- package/node_modules/rimraf/package.json +67 -0
- package/node_modules/rimraf/rimraf.js +364 -0
- package/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/safe-buffer/index.js +62 -0
- package/node_modules/safe-buffer/package.json +65 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +60 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/sax/LICENSE +41 -0
- package/node_modules/sax/README.md +225 -0
- package/node_modules/sax/lib/sax.js +1565 -0
- package/node_modules/sax/package.json +61 -0
- package/node_modules/semver/LICENSE +15 -0
- package/node_modules/semver/README.md +399 -0
- package/node_modules/semver/bin/semver +153 -0
- package/node_modules/semver/package.json +54 -0
- package/node_modules/semver/range.bnf +16 -0
- package/node_modules/semver/semver.js +1352 -0
- package/node_modules/set-blocking/CHANGELOG.md +26 -0
- package/node_modules/set-blocking/LICENSE.txt +14 -0
- package/node_modules/set-blocking/README.md +31 -0
- package/node_modules/set-blocking/index.js +7 -0
- package/node_modules/set-blocking/package.json +70 -0
- package/node_modules/signal-exit/CHANGELOG.md +27 -0
- package/node_modules/signal-exit/LICENSE.txt +16 -0
- package/node_modules/signal-exit/README.md +40 -0
- package/node_modules/signal-exit/index.js +157 -0
- package/node_modules/signal-exit/package.json +66 -0
- package/node_modules/signal-exit/signals.js +53 -0
- package/node_modules/string-width/index.js +37 -0
- package/node_modules/string-width/license +21 -0
- package/node_modules/string-width/package.json +89 -0
- package/node_modules/string-width/readme.md +42 -0
- package/node_modules/string_decoder/.travis.yml +50 -0
- package/node_modules/string_decoder/LICENSE +48 -0
- package/node_modules/string_decoder/README.md +47 -0
- package/node_modules/string_decoder/lib/string_decoder.js +296 -0
- package/node_modules/string_decoder/package.json +59 -0
- package/node_modules/strip-ansi/index.js +6 -0
- package/node_modules/strip-ansi/license +21 -0
- package/node_modules/strip-ansi/package.json +102 -0
- package/node_modules/strip-ansi/readme.md +33 -0
- package/node_modules/strip-json-comments/index.js +70 -0
- package/node_modules/strip-json-comments/license +21 -0
- package/node_modules/strip-json-comments/package.json +74 -0
- package/node_modules/strip-json-comments/readme.md +64 -0
- package/node_modules/tar/LICENSE +15 -0
- package/node_modules/tar/README.md +954 -0
- package/node_modules/tar/index.js +18 -0
- package/node_modules/tar/lib/buffer.js +11 -0
- package/node_modules/tar/lib/create.js +105 -0
- package/node_modules/tar/lib/extract.js +112 -0
- package/node_modules/tar/lib/header.js +289 -0
- package/node_modules/tar/lib/high-level-opt.js +29 -0
- package/node_modules/tar/lib/large-numbers.js +92 -0
- package/node_modules/tar/lib/list.js +130 -0
- package/node_modules/tar/lib/mkdir.js +206 -0
- package/node_modules/tar/lib/mode-fix.js +14 -0
- package/node_modules/tar/lib/pack.js +404 -0
- package/node_modules/tar/lib/parse.js +423 -0
- package/node_modules/tar/lib/pax.js +146 -0
- package/node_modules/tar/lib/read-entry.js +94 -0
- package/node_modules/tar/lib/replace.js +220 -0
- package/node_modules/tar/lib/types.js +44 -0
- package/node_modules/tar/lib/unpack.js +621 -0
- package/node_modules/tar/lib/update.js +36 -0
- package/node_modules/tar/lib/warn-mixin.js +14 -0
- package/node_modules/tar/lib/winchars.js +23 -0
- package/node_modules/tar/lib/write-entry.js +422 -0
- package/node_modules/tar/package.json +78 -0
- package/node_modules/util-deprecate/History.md +16 -0
- package/node_modules/util-deprecate/LICENSE +24 -0
- package/node_modules/util-deprecate/README.md +53 -0
- package/node_modules/util-deprecate/browser.js +67 -0
- package/node_modules/util-deprecate/node.js +6 -0
- package/node_modules/util-deprecate/package.json +56 -0
- package/node_modules/wide-align/LICENSE +14 -0
- package/node_modules/wide-align/README.md +47 -0
- package/node_modules/wide-align/align.js +65 -0
- package/node_modules/wide-align/package.json +66 -0
- package/node_modules/wrappy/LICENSE +15 -0
- package/node_modules/wrappy/README.md +36 -0
- package/node_modules/wrappy/package.json +59 -0
- package/node_modules/wrappy/wrappy.js +33 -0
- package/node_modules/yallist/LICENSE +15 -0
- package/node_modules/yallist/README.md +204 -0
- package/node_modules/yallist/iterator.js +8 -0
- package/node_modules/yallist/package.json +63 -0
- package/node_modules/yallist/yallist.js +376 -0
- package/package.json +1 -1
@@ -0,0 +1,423 @@
|
|
1
|
+
'use strict'
|
2
|
+
|
3
|
+
// this[BUFFER] is the remainder of a chunk if we're waiting for
|
4
|
+
// the full 512 bytes of a header to come in. We will Buffer.concat()
|
5
|
+
// it to the next write(), which is a mem copy, but a small one.
|
6
|
+
//
|
7
|
+
// this[QUEUE] is a Yallist of entries that haven't been emitted
|
8
|
+
// yet this can only get filled up if the user keeps write()ing after
|
9
|
+
// a write() returns false, or does a write() with more than one entry
|
10
|
+
//
|
11
|
+
// We don't buffer chunks, we always parse them and either create an
|
12
|
+
// entry, or push it into the active entry. The ReadEntry class knows
|
13
|
+
// to throw data away if .ignore=true
|
14
|
+
//
|
15
|
+
// Shift entry off the buffer when it emits 'end', and emit 'entry' for
|
16
|
+
// the next one in the list.
|
17
|
+
//
|
18
|
+
// At any time, we're pushing body chunks into the entry at WRITEENTRY,
|
19
|
+
// and waiting for 'end' on the entry at READENTRY
|
20
|
+
//
|
21
|
+
// ignored entries get .resume() called on them straight away
|
22
|
+
|
23
|
+
const warner = require('./warn-mixin.js')
|
24
|
+
const path = require('path')
|
25
|
+
const Header = require('./header.js')
|
26
|
+
const EE = require('events')
|
27
|
+
const Yallist = require('yallist')
|
28
|
+
const maxMetaEntrySize = 1024 * 1024
|
29
|
+
const Entry = require('./read-entry.js')
|
30
|
+
const Pax = require('./pax.js')
|
31
|
+
const zlib = require('minizlib')
|
32
|
+
const Buffer = require('./buffer.js')
|
33
|
+
|
34
|
+
const gzipHeader = Buffer.from([0x1f, 0x8b])
|
35
|
+
const STATE = Symbol('state')
|
36
|
+
const WRITEENTRY = Symbol('writeEntry')
|
37
|
+
const READENTRY = Symbol('readEntry')
|
38
|
+
const NEXTENTRY = Symbol('nextEntry')
|
39
|
+
const PROCESSENTRY = Symbol('processEntry')
|
40
|
+
const EX = Symbol('extendedHeader')
|
41
|
+
const GEX = Symbol('globalExtendedHeader')
|
42
|
+
const META = Symbol('meta')
|
43
|
+
const EMITMETA = Symbol('emitMeta')
|
44
|
+
const BUFFER = Symbol('buffer')
|
45
|
+
const QUEUE = Symbol('queue')
|
46
|
+
const ENDED = Symbol('ended')
|
47
|
+
const EMITTEDEND = Symbol('emittedEnd')
|
48
|
+
const EMIT = Symbol('emit')
|
49
|
+
const UNZIP = Symbol('unzip')
|
50
|
+
const CONSUMECHUNK = Symbol('consumeChunk')
|
51
|
+
const CONSUMECHUNKSUB = Symbol('consumeChunkSub')
|
52
|
+
const CONSUMEBODY = Symbol('consumeBody')
|
53
|
+
const CONSUMEMETA = Symbol('consumeMeta')
|
54
|
+
const CONSUMEHEADER = Symbol('consumeHeader')
|
55
|
+
const CONSUMING = Symbol('consuming')
|
56
|
+
const BUFFERCONCAT = Symbol('bufferConcat')
|
57
|
+
const MAYBEEND = Symbol('maybeEnd')
|
58
|
+
const WRITING = Symbol('writing')
|
59
|
+
const ABORTED = Symbol('aborted')
|
60
|
+
const DONE = Symbol('onDone')
|
61
|
+
|
62
|
+
const noop = _ => true
|
63
|
+
|
64
|
+
module.exports = warner(class Parser extends EE {
|
65
|
+
constructor (opt) {
|
66
|
+
opt = opt || {}
|
67
|
+
super(opt)
|
68
|
+
|
69
|
+
if (opt.ondone)
|
70
|
+
this.on(DONE, opt.ondone)
|
71
|
+
else
|
72
|
+
this.on(DONE, _ => {
|
73
|
+
this.emit('prefinish')
|
74
|
+
this.emit('finish')
|
75
|
+
this.emit('end')
|
76
|
+
this.emit('close')
|
77
|
+
})
|
78
|
+
|
79
|
+
this.strict = !!opt.strict
|
80
|
+
this.maxMetaEntrySize = opt.maxMetaEntrySize || maxMetaEntrySize
|
81
|
+
this.filter = typeof opt.filter === 'function' ? opt.filter : noop
|
82
|
+
|
83
|
+
// have to set this so that streams are ok piping into it
|
84
|
+
this.writable = true
|
85
|
+
this.readable = false
|
86
|
+
|
87
|
+
this[QUEUE] = new Yallist()
|
88
|
+
this[BUFFER] = null
|
89
|
+
this[READENTRY] = null
|
90
|
+
this[WRITEENTRY] = null
|
91
|
+
this[STATE] = 'begin'
|
92
|
+
this[META] = ''
|
93
|
+
this[EX] = null
|
94
|
+
this[GEX] = null
|
95
|
+
this[ENDED] = false
|
96
|
+
this[UNZIP] = null
|
97
|
+
this[ABORTED] = false
|
98
|
+
if (typeof opt.onwarn === 'function')
|
99
|
+
this.on('warn', opt.onwarn)
|
100
|
+
if (typeof opt.onentry === 'function')
|
101
|
+
this.on('entry', opt.onentry)
|
102
|
+
}
|
103
|
+
|
104
|
+
[CONSUMEHEADER] (chunk, position) {
|
105
|
+
const header = new Header(chunk, position, this[EX], this[GEX])
|
106
|
+
|
107
|
+
if (header.nullBlock)
|
108
|
+
this[EMIT]('nullBlock')
|
109
|
+
else if (!header.cksumValid)
|
110
|
+
this.warn('invalid entry', header)
|
111
|
+
else if (!header.path)
|
112
|
+
this.warn('invalid: path is required', header)
|
113
|
+
else {
|
114
|
+
const type = header.type
|
115
|
+
if (/^(Symbolic)?Link$/.test(type) && !header.linkpath)
|
116
|
+
this.warn('invalid: linkpath required', header)
|
117
|
+
else if (!/^(Symbolic)?Link$/.test(type) && header.linkpath)
|
118
|
+
this.warn('invalid: linkpath forbidden', header)
|
119
|
+
else {
|
120
|
+
const entry = this[WRITEENTRY] = new Entry(header, this[EX], this[GEX])
|
121
|
+
|
122
|
+
if (entry.meta) {
|
123
|
+
if (entry.size > this.maxMetaEntrySize) {
|
124
|
+
entry.ignore = true
|
125
|
+
this[EMIT]('ignoredEntry', entry)
|
126
|
+
this[STATE] = 'ignore'
|
127
|
+
} else if (entry.size > 0) {
|
128
|
+
this[META] = ''
|
129
|
+
entry.on('data', c => this[META] += c)
|
130
|
+
this[STATE] = 'meta'
|
131
|
+
}
|
132
|
+
} else {
|
133
|
+
|
134
|
+
this[EX] = null
|
135
|
+
entry.ignore = entry.ignore || !this.filter(entry.path, entry)
|
136
|
+
if (entry.ignore) {
|
137
|
+
this[EMIT]('ignoredEntry', entry)
|
138
|
+
this[STATE] = entry.remain ? 'ignore' : 'begin'
|
139
|
+
} else {
|
140
|
+
if (entry.remain)
|
141
|
+
this[STATE] = 'body'
|
142
|
+
else {
|
143
|
+
this[STATE] = 'begin'
|
144
|
+
entry.end()
|
145
|
+
}
|
146
|
+
|
147
|
+
if (!this[READENTRY]) {
|
148
|
+
this[QUEUE].push(entry)
|
149
|
+
this[NEXTENTRY]()
|
150
|
+
} else
|
151
|
+
this[QUEUE].push(entry)
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
[PROCESSENTRY] (entry) {
|
159
|
+
let go = true
|
160
|
+
|
161
|
+
if (!entry) {
|
162
|
+
this[READENTRY] = null
|
163
|
+
go = false
|
164
|
+
} else if (Array.isArray(entry))
|
165
|
+
this.emit.apply(this, entry)
|
166
|
+
else {
|
167
|
+
this[READENTRY] = entry
|
168
|
+
this.emit('entry', entry)
|
169
|
+
if (!entry.emittedEnd) {
|
170
|
+
entry.on('end', _ => this[NEXTENTRY]())
|
171
|
+
go = false
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
return go
|
176
|
+
}
|
177
|
+
|
178
|
+
[NEXTENTRY] () {
|
179
|
+
do {} while (this[PROCESSENTRY](this[QUEUE].shift()))
|
180
|
+
|
181
|
+
if (!this[QUEUE].length) {
|
182
|
+
// At this point, there's nothing in the queue, but we may have an
|
183
|
+
// entry which is being consumed (readEntry).
|
184
|
+
// If we don't, then we definitely can handle more data.
|
185
|
+
// If we do, and either it's flowing, or it has never had any data
|
186
|
+
// written to it, then it needs more.
|
187
|
+
// The only other possibility is that it has returned false from a
|
188
|
+
// write() call, so we wait for the next drain to continue.
|
189
|
+
const re = this[READENTRY]
|
190
|
+
const drainNow = !re || re.flowing || re.size === re.remain
|
191
|
+
if (drainNow) {
|
192
|
+
if (!this[WRITING])
|
193
|
+
this.emit('drain')
|
194
|
+
} else
|
195
|
+
re.once('drain', _ => this.emit('drain'))
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
[CONSUMEBODY] (chunk, position) {
|
200
|
+
// write up to but no more than writeEntry.blockRemain
|
201
|
+
const entry = this[WRITEENTRY]
|
202
|
+
const br = entry.blockRemain
|
203
|
+
const c = (br >= chunk.length && position === 0) ? chunk
|
204
|
+
: chunk.slice(position, position + br)
|
205
|
+
|
206
|
+
entry.write(c)
|
207
|
+
|
208
|
+
if (!entry.blockRemain) {
|
209
|
+
this[STATE] = 'begin'
|
210
|
+
this[WRITEENTRY] = null
|
211
|
+
entry.end()
|
212
|
+
}
|
213
|
+
|
214
|
+
return c.length
|
215
|
+
}
|
216
|
+
|
217
|
+
[CONSUMEMETA] (chunk, position) {
|
218
|
+
const entry = this[WRITEENTRY]
|
219
|
+
const ret = this[CONSUMEBODY](chunk, position)
|
220
|
+
|
221
|
+
// if we finished, then the entry is reset
|
222
|
+
if (!this[WRITEENTRY])
|
223
|
+
this[EMITMETA](entry)
|
224
|
+
|
225
|
+
return ret
|
226
|
+
}
|
227
|
+
|
228
|
+
[EMIT] (ev, data, extra) {
|
229
|
+
if (!this[QUEUE].length && !this[READENTRY])
|
230
|
+
this.emit(ev, data, extra)
|
231
|
+
else
|
232
|
+
this[QUEUE].push([ev, data, extra])
|
233
|
+
}
|
234
|
+
|
235
|
+
[EMITMETA] (entry) {
|
236
|
+
this[EMIT]('meta', this[META])
|
237
|
+
switch (entry.type) {
|
238
|
+
case 'ExtendedHeader':
|
239
|
+
case 'OldExtendedHeader':
|
240
|
+
this[EX] = Pax.parse(this[META], this[EX], false)
|
241
|
+
break
|
242
|
+
|
243
|
+
case 'GlobalExtendedHeader':
|
244
|
+
this[GEX] = Pax.parse(this[META], this[GEX], true)
|
245
|
+
break
|
246
|
+
|
247
|
+
case 'NextFileHasLongPath':
|
248
|
+
case 'OldGnuLongPath':
|
249
|
+
this[EX] = this[EX] || Object.create(null)
|
250
|
+
this[EX].path = this[META].replace(/\0.*/, '')
|
251
|
+
break
|
252
|
+
|
253
|
+
case 'NextFileHasLongLinkpath':
|
254
|
+
this[EX] = this[EX] || Object.create(null)
|
255
|
+
this[EX].linkpath = this[META].replace(/\0.*/, '')
|
256
|
+
break
|
257
|
+
|
258
|
+
/* istanbul ignore next */
|
259
|
+
default: throw new Error('unknown meta: ' + entry.type)
|
260
|
+
}
|
261
|
+
}
|
262
|
+
|
263
|
+
abort (msg, error) {
|
264
|
+
this[ABORTED] = true
|
265
|
+
this.warn(msg, error)
|
266
|
+
this.emit('abort', error)
|
267
|
+
this.emit('error', error)
|
268
|
+
}
|
269
|
+
|
270
|
+
write (chunk) {
|
271
|
+
if (this[ABORTED])
|
272
|
+
return
|
273
|
+
|
274
|
+
// first write, might be gzipped
|
275
|
+
if (this[UNZIP] === null && chunk) {
|
276
|
+
if (this[BUFFER]) {
|
277
|
+
chunk = Buffer.concat([this[BUFFER], chunk])
|
278
|
+
this[BUFFER] = null
|
279
|
+
}
|
280
|
+
if (chunk.length < gzipHeader.length) {
|
281
|
+
this[BUFFER] = chunk
|
282
|
+
return true
|
283
|
+
}
|
284
|
+
for (let i = 0; this[UNZIP] === null && i < gzipHeader.length; i++) {
|
285
|
+
if (chunk[i] !== gzipHeader[i])
|
286
|
+
this[UNZIP] = false
|
287
|
+
}
|
288
|
+
if (this[UNZIP] === null) {
|
289
|
+
const ended = this[ENDED]
|
290
|
+
this[ENDED] = false
|
291
|
+
this[UNZIP] = new zlib.Unzip()
|
292
|
+
this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk))
|
293
|
+
this[UNZIP].on('error', er =>
|
294
|
+
this.abort(er.message, er))
|
295
|
+
this[UNZIP].on('end', _ => {
|
296
|
+
this[ENDED] = true
|
297
|
+
this[CONSUMECHUNK]()
|
298
|
+
})
|
299
|
+
this[WRITING] = true
|
300
|
+
const ret = this[UNZIP][ended ? 'end' : 'write' ](chunk)
|
301
|
+
this[WRITING] = false
|
302
|
+
return ret
|
303
|
+
}
|
304
|
+
}
|
305
|
+
|
306
|
+
this[WRITING] = true
|
307
|
+
if (this[UNZIP])
|
308
|
+
this[UNZIP].write(chunk)
|
309
|
+
else
|
310
|
+
this[CONSUMECHUNK](chunk)
|
311
|
+
this[WRITING] = false
|
312
|
+
|
313
|
+
// return false if there's a queue, or if the current entry isn't flowing
|
314
|
+
const ret =
|
315
|
+
this[QUEUE].length ? false :
|
316
|
+
this[READENTRY] ? this[READENTRY].flowing :
|
317
|
+
true
|
318
|
+
|
319
|
+
// if we have no queue, then that means a clogged READENTRY
|
320
|
+
if (!ret && !this[QUEUE].length)
|
321
|
+
this[READENTRY].once('drain', _ => this.emit('drain'))
|
322
|
+
|
323
|
+
return ret
|
324
|
+
}
|
325
|
+
|
326
|
+
[BUFFERCONCAT] (c) {
|
327
|
+
if (c && !this[ABORTED])
|
328
|
+
this[BUFFER] = this[BUFFER] ? Buffer.concat([this[BUFFER], c]) : c
|
329
|
+
}
|
330
|
+
|
331
|
+
[MAYBEEND] () {
|
332
|
+
if (this[ENDED] &&
|
333
|
+
!this[EMITTEDEND] &&
|
334
|
+
!this[ABORTED] &&
|
335
|
+
!this[CONSUMING]) {
|
336
|
+
this[EMITTEDEND] = true
|
337
|
+
const entry = this[WRITEENTRY]
|
338
|
+
if (entry && entry.blockRemain) {
|
339
|
+
const have = this[BUFFER] ? this[BUFFER].length : 0
|
340
|
+
this.warn('Truncated input (needed ' + entry.blockRemain +
|
341
|
+
' more bytes, only ' + have + ' available)', entry)
|
342
|
+
if (this[BUFFER])
|
343
|
+
entry.write(this[BUFFER])
|
344
|
+
entry.end()
|
345
|
+
}
|
346
|
+
this[EMIT](DONE)
|
347
|
+
}
|
348
|
+
}
|
349
|
+
|
350
|
+
[CONSUMECHUNK] (chunk) {
|
351
|
+
if (this[CONSUMING]) {
|
352
|
+
this[BUFFERCONCAT](chunk)
|
353
|
+
} else if (!chunk && !this[BUFFER]) {
|
354
|
+
this[MAYBEEND]()
|
355
|
+
} else {
|
356
|
+
this[CONSUMING] = true
|
357
|
+
if (this[BUFFER]) {
|
358
|
+
this[BUFFERCONCAT](chunk)
|
359
|
+
const c = this[BUFFER]
|
360
|
+
this[BUFFER] = null
|
361
|
+
this[CONSUMECHUNKSUB](c)
|
362
|
+
} else {
|
363
|
+
this[CONSUMECHUNKSUB](chunk)
|
364
|
+
}
|
365
|
+
|
366
|
+
while (this[BUFFER] && this[BUFFER].length >= 512 && !this[ABORTED]) {
|
367
|
+
const c = this[BUFFER]
|
368
|
+
this[BUFFER] = null
|
369
|
+
this[CONSUMECHUNKSUB](c)
|
370
|
+
}
|
371
|
+
this[CONSUMING] = false
|
372
|
+
}
|
373
|
+
|
374
|
+
if (!this[BUFFER] || this[ENDED])
|
375
|
+
this[MAYBEEND]()
|
376
|
+
}
|
377
|
+
|
378
|
+
[CONSUMECHUNKSUB] (chunk) {
|
379
|
+
// we know that we are in CONSUMING mode, so anything written goes into
|
380
|
+
// the buffer. Advance the position and put any remainder in the buffer.
|
381
|
+
let position = 0
|
382
|
+
let length = chunk.length
|
383
|
+
while (position + 512 <= length && !this[ABORTED]) {
|
384
|
+
switch (this[STATE]) {
|
385
|
+
case 'begin':
|
386
|
+
this[CONSUMEHEADER](chunk, position)
|
387
|
+
position += 512
|
388
|
+
break
|
389
|
+
|
390
|
+
case 'ignore':
|
391
|
+
case 'body':
|
392
|
+
position += this[CONSUMEBODY](chunk, position)
|
393
|
+
break
|
394
|
+
|
395
|
+
case 'meta':
|
396
|
+
position += this[CONSUMEMETA](chunk, position)
|
397
|
+
break
|
398
|
+
|
399
|
+
/* istanbul ignore next */
|
400
|
+
default:
|
401
|
+
throw new Error('invalid state: ' + this[STATE])
|
402
|
+
}
|
403
|
+
}
|
404
|
+
|
405
|
+
if (position < length) {
|
406
|
+
if (this[BUFFER])
|
407
|
+
this[BUFFER] = Buffer.concat([chunk.slice(position), this[BUFFER]])
|
408
|
+
else
|
409
|
+
this[BUFFER] = chunk.slice(position)
|
410
|
+
}
|
411
|
+
}
|
412
|
+
|
413
|
+
end (chunk) {
|
414
|
+
if (!this[ABORTED]) {
|
415
|
+
if (this[UNZIP])
|
416
|
+
this[UNZIP].end(chunk)
|
417
|
+
else {
|
418
|
+
this[ENDED] = true
|
419
|
+
this.write(chunk)
|
420
|
+
}
|
421
|
+
}
|
422
|
+
}
|
423
|
+
})
|
@@ -0,0 +1,146 @@
|
|
1
|
+
'use strict'
|
2
|
+
const Buffer = require('./buffer.js')
|
3
|
+
const Header = require('./header.js')
|
4
|
+
const path = require('path')
|
5
|
+
|
6
|
+
class Pax {
|
7
|
+
constructor (obj, global) {
|
8
|
+
this.atime = obj.atime || null
|
9
|
+
this.charset = obj.charset || null
|
10
|
+
this.comment = obj.comment || null
|
11
|
+
this.ctime = obj.ctime || null
|
12
|
+
this.gid = obj.gid || null
|
13
|
+
this.gname = obj.gname || null
|
14
|
+
this.linkpath = obj.linkpath || null
|
15
|
+
this.mtime = obj.mtime || null
|
16
|
+
this.path = obj.path || null
|
17
|
+
this.size = obj.size || null
|
18
|
+
this.uid = obj.uid || null
|
19
|
+
this.uname = obj.uname || null
|
20
|
+
this.dev = obj.dev || null
|
21
|
+
this.ino = obj.ino || null
|
22
|
+
this.nlink = obj.nlink || null
|
23
|
+
this.global = global || false
|
24
|
+
}
|
25
|
+
|
26
|
+
encode () {
|
27
|
+
const body = this.encodeBody()
|
28
|
+
if (body === '')
|
29
|
+
return null
|
30
|
+
|
31
|
+
const bodyLen = Buffer.byteLength(body)
|
32
|
+
// round up to 512 bytes
|
33
|
+
// add 512 for header
|
34
|
+
const bufLen = 512 * Math.ceil(1 + bodyLen / 512)
|
35
|
+
const buf = Buffer.allocUnsafe(bufLen)
|
36
|
+
|
37
|
+
// 0-fill the header section, it might not hit every field
|
38
|
+
for (let i = 0; i < 512; i++) {
|
39
|
+
buf[i] = 0
|
40
|
+
}
|
41
|
+
|
42
|
+
new Header({
|
43
|
+
// XXX split the path
|
44
|
+
// then the path should be PaxHeader + basename, but less than 99,
|
45
|
+
// prepend with the dirname
|
46
|
+
path: ('PaxHeader/' + path.basename(this.path)).slice(0, 99),
|
47
|
+
mode: this.mode || 0o644,
|
48
|
+
uid: this.uid || null,
|
49
|
+
gid: this.gid || null,
|
50
|
+
size: bodyLen,
|
51
|
+
mtime: this.mtime || null,
|
52
|
+
type: this.global ? 'GlobalExtendedHeader' : 'ExtendedHeader',
|
53
|
+
linkpath: '',
|
54
|
+
uname: this.uname || '',
|
55
|
+
gname: this.gname || '',
|
56
|
+
devmaj: 0,
|
57
|
+
devmin: 0,
|
58
|
+
atime: this.atime || null,
|
59
|
+
ctime: this.ctime || null
|
60
|
+
}).encode(buf)
|
61
|
+
|
62
|
+
buf.write(body, 512, bodyLen, 'utf8')
|
63
|
+
|
64
|
+
// null pad after the body
|
65
|
+
for (let i = bodyLen + 512; i < buf.length; i++) {
|
66
|
+
buf[i] = 0
|
67
|
+
}
|
68
|
+
|
69
|
+
return buf
|
70
|
+
}
|
71
|
+
|
72
|
+
encodeBody () {
|
73
|
+
return (
|
74
|
+
this.encodeField('path') +
|
75
|
+
this.encodeField('ctime') +
|
76
|
+
this.encodeField('atime') +
|
77
|
+
this.encodeField('dev') +
|
78
|
+
this.encodeField('ino') +
|
79
|
+
this.encodeField('nlink') +
|
80
|
+
this.encodeField('charset') +
|
81
|
+
this.encodeField('comment') +
|
82
|
+
this.encodeField('gid') +
|
83
|
+
this.encodeField('gname') +
|
84
|
+
this.encodeField('linkpath') +
|
85
|
+
this.encodeField('mtime') +
|
86
|
+
this.encodeField('size') +
|
87
|
+
this.encodeField('uid') +
|
88
|
+
this.encodeField('uname')
|
89
|
+
)
|
90
|
+
}
|
91
|
+
|
92
|
+
encodeField (field) {
|
93
|
+
if (this[field] === null || this[field] === undefined)
|
94
|
+
return ''
|
95
|
+
const v = this[field] instanceof Date ? this[field].getTime() / 1000
|
96
|
+
: this[field]
|
97
|
+
const s = ' ' +
|
98
|
+
(field === 'dev' || field === 'ino' || field === 'nlink'
|
99
|
+
? 'SCHILY.' : '') +
|
100
|
+
field + '=' + v + '\n'
|
101
|
+
const byteLen = Buffer.byteLength(s)
|
102
|
+
// the digits includes the length of the digits in ascii base-10
|
103
|
+
// so if it's 9 characters, then adding 1 for the 9 makes it 10
|
104
|
+
// which makes it 11 chars.
|
105
|
+
let digits = Math.floor(Math.log(byteLen) / Math.log(10)) + 1
|
106
|
+
if (byteLen + digits >= Math.pow(10, digits))
|
107
|
+
digits += 1
|
108
|
+
const len = digits + byteLen
|
109
|
+
return len + s
|
110
|
+
}
|
111
|
+
}
|
112
|
+
|
113
|
+
Pax.parse = (string, ex, g) => new Pax(merge(parseKV(string), ex), g)
|
114
|
+
|
115
|
+
const merge = (a, b) =>
|
116
|
+
b ? Object.keys(a).reduce((s, k) => (s[k] = a[k], s), b) : a
|
117
|
+
|
118
|
+
const parseKV = string =>
|
119
|
+
string
|
120
|
+
.replace(/\n$/, '')
|
121
|
+
.split('\n')
|
122
|
+
.reduce(parseKVLine, Object.create(null))
|
123
|
+
|
124
|
+
const parseKVLine = (set, line) => {
|
125
|
+
const n = parseInt(line, 10)
|
126
|
+
|
127
|
+
// XXX Values with \n in them will fail this.
|
128
|
+
// Refactor to not be a naive line-by-line parse.
|
129
|
+
if (n !== Buffer.byteLength(line) + 1)
|
130
|
+
return set
|
131
|
+
|
132
|
+
line = line.substr((n + ' ').length)
|
133
|
+
const kv = line.split('=')
|
134
|
+
const k = kv.shift().replace(/^SCHILY\.(dev|ino|nlink)/, '$1')
|
135
|
+
if (!k)
|
136
|
+
return set
|
137
|
+
|
138
|
+
const v = kv.join('=')
|
139
|
+
set[k] = /^([A-Z]+\.)?([mac]|birth|creation)time$/.test(k)
|
140
|
+
? new Date(v * 1000)
|
141
|
+
: /^[0-9]+$/.test(v) ? +v
|
142
|
+
: v
|
143
|
+
return set
|
144
|
+
}
|
145
|
+
|
146
|
+
module.exports = Pax
|
@@ -0,0 +1,94 @@
|
|
1
|
+
'use strict'
|
2
|
+
const types = require('./types.js')
|
3
|
+
const MiniPass = require('minipass')
|
4
|
+
|
5
|
+
const SLURP = Symbol('slurp')
|
6
|
+
module.exports = class ReadEntry extends MiniPass {
|
7
|
+
constructor (header, ex, gex) {
|
8
|
+
super()
|
9
|
+
this.extended = ex
|
10
|
+
this.globalExtended = gex
|
11
|
+
this.header = header
|
12
|
+
this.startBlockSize = 512 * Math.ceil(header.size / 512)
|
13
|
+
this.blockRemain = this.startBlockSize
|
14
|
+
this.remain = header.size
|
15
|
+
this.type = header.type
|
16
|
+
this.meta = false
|
17
|
+
this.ignore = false
|
18
|
+
switch (this.type) {
|
19
|
+
case 'File':
|
20
|
+
case 'OldFile':
|
21
|
+
case 'Link':
|
22
|
+
case 'SymbolicLink':
|
23
|
+
case 'CharacterDevice':
|
24
|
+
case 'BlockDevice':
|
25
|
+
case 'Directory':
|
26
|
+
case 'FIFO':
|
27
|
+
case 'ContiguousFile':
|
28
|
+
case 'GNUDumpDir':
|
29
|
+
break
|
30
|
+
|
31
|
+
case 'NextFileHasLongLinkpath':
|
32
|
+
case 'NextFileHasLongPath':
|
33
|
+
case 'OldGnuLongPath':
|
34
|
+
case 'GlobalExtendedHeader':
|
35
|
+
case 'ExtendedHeader':
|
36
|
+
case 'OldExtendedHeader':
|
37
|
+
this.meta = true
|
38
|
+
break
|
39
|
+
|
40
|
+
// NOTE: gnutar and bsdtar treat unrecognized types as 'File'
|
41
|
+
// it may be worth doing the same, but with a warning.
|
42
|
+
default:
|
43
|
+
this.ignore = true
|
44
|
+
}
|
45
|
+
|
46
|
+
this.path = header.path
|
47
|
+
this.mode = header.mode
|
48
|
+
if (this.mode)
|
49
|
+
this.mode = this.mode & 0o7777
|
50
|
+
this.uid = header.uid
|
51
|
+
this.gid = header.gid
|
52
|
+
this.uname = header.uname
|
53
|
+
this.gname = header.gname
|
54
|
+
this.size = header.size
|
55
|
+
this.mtime = header.mtime
|
56
|
+
this.atime = header.atime
|
57
|
+
this.ctime = header.ctime
|
58
|
+
this.linkpath = header.linkpath
|
59
|
+
this.uname = header.uname
|
60
|
+
this.gname = header.gname
|
61
|
+
|
62
|
+
if (ex) this[SLURP](ex)
|
63
|
+
if (gex) this[SLURP](gex, true)
|
64
|
+
}
|
65
|
+
|
66
|
+
write (data) {
|
67
|
+
const writeLen = data.length
|
68
|
+
if (writeLen > this.blockRemain)
|
69
|
+
throw new Error('writing more to entry than is appropriate')
|
70
|
+
|
71
|
+
const r = this.remain
|
72
|
+
const br = this.blockRemain
|
73
|
+
this.remain = Math.max(0, r - writeLen)
|
74
|
+
this.blockRemain = Math.max(0, br - writeLen)
|
75
|
+
if (this.ignore)
|
76
|
+
return true
|
77
|
+
|
78
|
+
if (r >= writeLen)
|
79
|
+
return super.write(data)
|
80
|
+
|
81
|
+
// r < writeLen
|
82
|
+
return super.write(data.slice(0, r))
|
83
|
+
}
|
84
|
+
|
85
|
+
[SLURP] (ex, global) {
|
86
|
+
for (let k in ex) {
|
87
|
+
// we slurp in everything except for the path attribute in
|
88
|
+
// a global extended header, because that's weird.
|
89
|
+
if (ex[k] !== null && ex[k] !== undefined &&
|
90
|
+
!(global && k === 'path'))
|
91
|
+
this[k] = ex[k]
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|