diff options
Diffstat (limited to 'node_modules/vinyl-fs')
46 files changed, 2696 insertions, 0 deletions
diff --git a/node_modules/vinyl-fs/CHANGELOG.md b/node_modules/vinyl-fs/CHANGELOG.md new file mode 100644 index 000000000..43b775373 --- /dev/null +++ b/node_modules/vinyl-fs/CHANGELOG.md @@ -0,0 +1,369 @@ +## Change Log + +### v2.4.2 (2016/03/03 19:59 +00:00) +- [5edb75a](https://github.com/gulpjs/vinyl-fs/commit/5edb75a10935fdc89e29d5e2413694aca77a3e85) 2.4.2 (@phated) +- [f445987](https://github.com/gulpjs/vinyl-fs/commit/f445987ce905659e62dcb27a8ad69f4ed2fb8198) upgrade glob-stream and remove path.normalize workaround (@phated) + +### v2.4.1 (2016/03/02 20:53 +00:00) +- [caac041](https://github.com/gulpjs/vinyl-fs/commit/caac041836436577d52468d32b9844c00d666265) 2.4.1 (@phated) +- [#154](https://github.com/gulpjs/vinyl-fs/pull/154) Don't pass `read` option from `src` to `through2` (@erikkemperman) + +### v2.4.0 (2016/03/01 22:40 +00:00) +- [926a9ad](https://github.com/gulpjs/vinyl-fs/commit/926a9ad3cf40d133120eb6f90d26234dc9f00138) 2.4.0 (@phated) +- [#160](https://github.com/gulpjs/vinyl-fs/pull/160) Allow specify dest sourcemaps option as string (@TrySound) +- [ebaffbe](https://github.com/gulpjs/vinyl-fs/commit/ebaffbecd642d3f8dd7d6edd6a19a1e768e7d2d1) Upgrade documentation (@TrySound) +- [7a0c94a](https://github.com/gulpjs/vinyl-fs/commit/7a0c94ae97de5e46392efe9a08ee3c68885dd7ba) Allow specify dest sourcemaps option as string (@TrySound) + +### v2.3.4 (2016/02/26 21:48 +00:00) +- [cd8a992](https://github.com/gulpjs/vinyl-fs/commit/cd8a992294228eea1d08957efc823794baa48fba) 2.3.4 (@phated) +- [8b50f49](https://github.com/gulpjs/vinyl-fs/commit/8b50f495c9b782d2afc64b38c0b7181a21c20b62) revert string handling from previous release, add support for SlowBuffer support (@phated) + +### v2.3.3 (2016/02/26 20:08 +00:00) +- [a75feda](https://github.com/gulpjs/vinyl-fs/commit/a75feda20131177a8f5a5008483f24169d0b3df3) 2.3.3 (@phated) +- [165149c](https://github.com/gulpjs/vinyl-fs/commit/165149c6a676ac867933173db28300cf3bab2a5f) support strings in writeFile (@phated) +- [3b67921](https://github.com/gulpjs/vinyl-fs/commit/3b67921fe5ddd925fc12acef2bd03777b0081dc3) Don't pass `read` option from `src` to `through2` (@erikkemperman) +- [5918841](https://github.com/gulpjs/vinyl-fs/commit/5918841bbd2c5256413b86c000e28ac3fff516e7) update changelog (@phated) + +### v2.3.2 (2016/02/26 01:17 +00:00) +- [6ed1793](https://github.com/gulpjs/vinyl-fs/commit/6ed179380da7caa4e3506f78b8864ea59164992e) 2.3.2 (@phated) +- [#151](https://github.com/gulpjs/vinyl-fs/pull/151) Feature metadata refactor (@gulpjs) +- [0cd8f22](https://github.com/gulpjs/vinyl-fs/commit/0cd8f2229d7788477a3fa2613dbf93e019503198) add docs for changes (@phated) +- [8d55978](https://github.com/gulpjs/vinyl-fs/commit/8d55978c3640ac25db8331ac4d7314579eb04da9) skip broken tests that were not testing the right thing (@phated) +- [550edd5](https://github.com/gulpjs/vinyl-fs/commit/550edd56f555240c36068ad060b2136213b135f6) test on latest node 4 instead of old ones (@phated) +- [6f4c2eb](https://github.com/gulpjs/vinyl-fs/commit/6f4c2eb396b78a91dcf41f5063eee27b66b35fe0) `sourcemaps` is not a valid option to gulp-sourcemaps (@phated) +- [011320b](https://github.com/gulpjs/vinyl-fs/commit/011320b1f988ecd7846ef04f7a597ee4b25d7285) add appveyor to test on windows & get tests to actually pass (@phated) +- [84cf3c2](https://github.com/gulpjs/vinyl-fs/commit/84cf3c2e1901bd700c089edac06ce0c75f8e701d) refactor and lots of tests for updating of metadata (@phated) +- [90a1189](https://github.com/gulpjs/vinyl-fs/commit/90a11894472d29abe9e34b80df0dfab9907f11e7) Make the tests pass again, some more refactoring of metadata handling (@erikkemperman) +- [35e9b3a](https://github.com/gulpjs/vinyl-fs/commit/35e9b3a68907167b51fa31edd0701ae24915fd84) Use filedescriptors where possible, refactor handling of stats metadata in dest (@piranna) +- [#150](https://github.com/gulpjs/vinyl-fs/pull/150) Update license year from initial date of release to current (@pra85) +- [ec48559](https://github.com/gulpjs/vinyl-fs/commit/ec485592d7a96562acc97ccd8b39a12cf17ed319) Update license year from initial date of release to current (@pra85) +- [#149](https://github.com/gulpjs/vinyl-fs/pull/149) chore: add NPM script for changelog (@T1st3) +- [0010bd3](https://github.com/gulpjs/vinyl-fs/commit/0010bd3b3c49e7b60e0d69dacdd8fd1b87a6c3dd) chore: add NPM script for changelog (@t1st3) +- [#148](https://github.com/gulpjs/vinyl-fs/pull/148) docs: add CHANGELOG.md (@T1st3) +- [da4cd0b](https://github.com/gulpjs/vinyl-fs/commit/da4cd0b449f8e9bd4bd0842fe2eb2b4eceea6c0b) docs: add changelog (@t1st3) + +### v2.3.1 (2016/01/14 09:13 +00:00) +- [7d2fcba](https://github.com/gulpjs/vinyl-fs/commit/7d2fcbaa49c78087fa975a4183fee38d422b9d4a) 2.3.1 +- [#145](https://github.com/gulpjs/vinyl-fs/pull/145) Allow things to listen for data or readable events and avoid sinking in those cases (@gulpjs) +- [a7fae5a](https://github.com/gulpjs/vinyl-fs/commit/a7fae5a2e2f349237614fc3cb3f371b6f10f5df3) keep style consistent +- [1b02a46](https://github.com/gulpjs/vinyl-fs/commit/1b02a46aff9650afbfdf36aea386d177508d45fa) more updates, nextTick the removable of listeners in tests +- [3a0cf5b](https://github.com/gulpjs/vinyl-fs/commit/3a0cf5b098d4a4f2f407f7622cbccc4b29ddbf0e) DRY up listenerCount check +- [dcfc8b8](https://github.com/gulpjs/vinyl-fs/commit/dcfc8b8b2e93486703449960a69fef87b495a7e9) new sink removal impl +- [8cec809](https://github.com/gulpjs/vinyl-fs/commit/8cec80998516b20a6fc43c3e865b588a34236899) more tests, better tests +- [5167080](https://github.com/gulpjs/vinyl-fs/commit/5167080b13bfecd307da3b04be3b1892a9e8996c) harden event handling +- [ef0b8e0](https://github.com/gulpjs/vinyl-fs/commit/ef0b8e043eb3c3ff72f09d7597b4ae9ed105ba6d) Fix sink from preventing the readable event to fire on the underlying stream (@benurb) + +### v2.3.0 (2016/01/12 01:46 +00:00) +- [941b040](https://github.com/gulpjs/vinyl-fs/commit/941b040905616eb0408a44213d5efe010388cb9d) 2.3.0 +- [#121](https://github.com/gulpjs/vinyl-fs/pull/121) Fix file descriptor exhaustion when streaming many files (@Klowner) +- [1f3af33](https://github.com/gulpjs/vinyl-fs/commit/1f3af33b1693b07fa2af5ed325ba8f0c0380b5f0) Add test for unbuffered file descriptor exhaustion issue (@Klowner) +- [38b032c](https://github.com/gulpjs/vinyl-fs/commit/38b032cd9b481a1c16d88f1b7968dd51c6a5ed15) Add 20 second timeout to dest's afterEach wipeOut task (@Klowner) +- [c63a797](https://github.com/gulpjs/vinyl-fs/commit/c63a79749a4b2ea500c519e1be5e073a87e4b940) Use lazystream for streamFile to avoid fd exhaustion (@Klowner) +- [00ece7e](https://github.com/gulpjs/vinyl-fs/commit/00ece7ef6b794fd1999695fde2d88bba8d69f5d0) avoid else-if and isFatal variable +- [6b9912e](https://github.com/gulpjs/vinyl-fs/commit/6b9912e14a3a7504bbba9d176c04b35e69208b64) get max statements warning for future cleanup +- [a2be0d6](https://github.com/gulpjs/vinyl-fs/commit/a2be0d69de86af9e09ab1193b740d1a0736009fc) ESLint and JSCS plus fixup (@pdehaan) +- [24119a8](https://github.com/gulpjs/vinyl-fs/commit/24119a862ad062f39ed15db767feff459843c2d8) Rework writeStream to prevent issue with futimes (@Klowner) +- [17ef52e](https://github.com/gulpjs/vinyl-fs/commit/17ef52ec014ea6a72abda35d104e92786904f92b) Add test for streaming with buffering disabled (@Klowner) +- [6934485](https://github.com/gulpjs/vinyl-fs/commit/69344858edb85e7c904621fa5d45782aa9825878) drastically improve docs +- [80add99](https://github.com/gulpjs/vinyl-fs/commit/80add99101bd41f5161ff90c8b4a9b3ba496c73d) big timeout for slow node +- [d553e74](https://github.com/gulpjs/vinyl-fs/commit/d553e7474ebb65b89e496dfc3916292b59eec4c2) Send options to through2 (@vineethawal) +- [#134](https://github.com/gulpjs/vinyl-fs/pull/134) Make tests ignore gid (@gulpjs) +- [e33b632](https://github.com/gulpjs/vinyl-fs/commit/e33b632ffb139599922bc414f76e4c5b81c82f70) adjust realMode method to avoid gid in the parse - fixes #103 +- [4adb4d9](https://github.com/gulpjs/vinyl-fs/commit/4adb4d9d35a148d0c2507a5f06946951b54d443e) setgid on test directory - make travis fail as per #103 +- [#130](https://github.com/gulpjs/vinyl-fs/pull/130) #129 - Update documentation to more clearly explain what happens for default base option values. (@treshugart) +- [#126](https://github.com/gulpjs/vinyl-fs/pull/126) read from the stream once we finish processing a file, this avoids highWaterMark being hit - add test (@gulpjs) +- [df97b14](https://github.com/gulpjs/vinyl-fs/commit/df97b1482200e7bc5dd01a49f0bdedeed2b6bd08) sink the saveStream on nextTick to start flowing and avoid highWaterMark - add tests +- [#133](https://github.com/gulpjs/vinyl-fs/pull/133) fix TypeError when the dest sourcemaps option is a boolean (@chocolateboy) +- [df874af](https://github.com/gulpjs/vinyl-fs/commit/df874af6c3dce1b8f008230b06f3ef9ef0e30d1a) add test for the boolean (true) source-map option (@chocolateboy) +- [6ab48dd](https://github.com/gulpjs/vinyl-fs/commit/6ab48dd66899141d1c8e7f14e1ccb1ccc62c261e) fix TypeError when the dest sourcemaps option is a boolean (@chocolateboy) +- [edb9caa](https://github.com/gulpjs/vinyl-fs/commit/edb9caa91e57690ddaace09aafb863f5bbac3ed8) #129 - Update documentation to more clearly explain what happens for default base option values. (@treshugart) +- [#125](https://github.com/gulpjs/vinyl-fs/pull/125) Use `fs.futimes` to retain sub-second precision in `atime` and `mtime` (@erikkemperman) +- [e3849f2](https://github.com/gulpjs/vinyl-fs/commit/e3849f2a19fa967842506fe4d34eeb8f6565464b) Use `fs.futimes` to retain sub-second precision in `atime` and `mtime` (@erikkemperman) +- [be8d1fd](https://github.com/gulpjs/vinyl-fs/commit/be8d1fd878ae2c6332851aa15a669a1cd128c6cb) guarantee 5.2.0 glob-stream and update test +- [#119](https://github.com/gulpjs/vinyl-fs/pull/119) Check if `atime` Date object is invalid and set a new one explicitly (@NodeOS) +- [#122](https://github.com/gulpjs/vinyl-fs/pull/122) Change writeStream callbacks from cb to complete (@Klowner) +- [8f93a48](https://github.com/gulpjs/vinyl-fs/commit/8f93a48c98ff75bab09bed47b989c9c1dbb5aaa0) Change writeStream callbacks from cb to complete (@Klowner) +- [f575377](https://github.com/gulpjs/vinyl-fs/commit/f5753770962df157023e37dfadca2dcce6aa18b5) Check if `atime` Date object is invalid and set a new one explicitly (@piranna) + +### v2.2.1 (2015/10/20 01:06 +00:00) +- [a28ba42](https://github.com/gulpjs/vinyl-fs/commit/a28ba42d87eeaecc2ae3de9174270019fab76fe3) 2.2.1 +- [7f539dd](https://github.com/gulpjs/vinyl-fs/commit/7f539dd562e501e904ab6401892f6f4c68a4da25) simplify utimes helper +- [c2beec8](https://github.com/gulpjs/vinyl-fs/commit/c2beec86ddab2ef51a3a6fa7077907c74d1eadd7) fix tests for invalid dates +- [97ff9ce](https://github.com/gulpjs/vinyl-fs/commit/97ff9ce60efba49a3d6cafcece3c9dce95aa670a) Test for invalid atime and mtime (@piranna) +- [624d7f5](https://github.com/gulpjs/vinyl-fs/commit/624d7f59090a4ae8e7e5c83178b199e13973c635) [Fix] Ignore atime and mtime if they are invalid (@piranna) + +### v2.2.0 (2015/10/16 02:02 +00:00) +- [bf7edd3](https://github.com/gulpjs/vinyl-fs/commit/bf7edd37cb0207951b75879d4e07402c51ac8770) 2.2.0 +- [039d689](https://github.com/gulpjs/vinyl-fs/commit/039d68920cc5bde6f0f12375daee2713260a1ecf) make tests pass +- [6f36372](https://github.com/gulpjs/vinyl-fs/commit/6f36372b9d0b0bf10087b3ac863f858b15e54bb9) Test for vynil stat not modified (FAIL) (@piranna) +- [dbc606b](https://github.com/gulpjs/vinyl-fs/commit/dbc606bb091008215fd586e4a1eee6ec8bdb22d3) Don't modify vynil stat when atime is not defined (@piranna) +- [573b8b6](https://github.com/gulpjs/vinyl-fs/commit/573b8b656032e1b486f7e4bca9f5916ceb6def54) Tests for atime and mtime (@piranna) +- [d7a53d5](https://github.com/gulpjs/vinyl-fs/commit/d7a53d5f557c23aa26d9d5d179645288204a6faa) Style improvements (@piranna) +- [9237100](https://github.com/gulpjs/vinyl-fs/commit/92371008a2bafa74ba87450b57578d0ace17b194) Fix mtime test to 1 second resolution as Node.js does (@piranna) +- [801da1c](https://github.com/gulpjs/vinyl-fs/commit/801da1c04696736df9c9c2ad47645faadab970d2) Test for mtime (fail on second decimals) (@piranna) +- [def6815](https://github.com/gulpjs/vinyl-fs/commit/def68150d0e42ad870afe314cd3b7cea760e9c48) Updated style & made utility function (@piranna) +- [d55fd11](https://github.com/gulpjs/vinyl-fs/commit/d55fd119718a3166cf3f76362a896bfa8e91427d) Made atime optional ("cpio" don't have it, and sometimes "tar" too) (@piranna) +- [9a10c15](https://github.com/gulpjs/vinyl-fs/commit/9a10c15aeb1ef3f0b3c1e39c7c7c94f5295449d2) Set utimes of files if they are provided (@piranna) +- [#108](https://github.com/gulpjs/vinyl-fs/pull/108) Fix links, spacing in README (@moshen) +- [c603138](https://github.com/gulpjs/vinyl-fs/commit/c603138077df416cf7892f82a2e3a91daa3456fd) Fix links, spacing in README (@moshen) +- [#105](https://github.com/gulpjs/vinyl-fs/pull/105) updated to test on nodejs 4 (@ckross01) +- [3148943](https://github.com/gulpjs/vinyl-fs/commit/3148943032a834ad1c82c951576e735d4824d6f0) updated to test on nodejs 4 (@ckross01) +- [#102](https://github.com/gulpjs/vinyl-fs/pull/102) Update tests to 'strict mode' (@OnkelTem) +- [85c1286](https://github.com/gulpjs/vinyl-fs/commit/85c128604b521d2e465f1e78548d128c95f4719c) Update tests to 'strict mode' (@OnkelTem) + +### v2.1.1 (2015/09/28 09:55 +00:00) +- [812c696](https://github.com/gulpjs/vinyl-fs/commit/812c696709a16f0de2e06e03b5fe41a45fbfe4f2) 2.1.1 (@contra) +- [0a4caf6](https://github.com/gulpjs/vinyl-fs/commit/0a4caf61f5745e3a0f368be9d285d006fd7cbf4c) more elegant sourcemap handling, more docs (@contra) +- [0ac5a2c](https://github.com/gulpjs/vinyl-fs/commit/0ac5a2cb072111917e561c655441aa10a8ee1718) only pass buffer files to sourcemaps (@contra) + +### v2.1.0 (2015/09/27 22:01 +00:00) +- [dbf2a25](https://github.com/gulpjs/vinyl-fs/commit/dbf2a25dc9273e1d5bfa592e6b8564d245294e55) 2.1.0 (@contra) +- [#100](https://github.com/gulpjs/vinyl-fs/pull/100) allow a function to be used as value for the overwrite option - closes #68 (@gulpjs) +- [#99](https://github.com/gulpjs/vinyl-fs/pull/99) add option to strip BOM, default to true - closes #83 (@gulpjs) +- [b966d51](https://github.com/gulpjs/vinyl-fs/commit/b966d517906116021b5cec4ab7d41bbe8dd23168) update docs +- [13c853a](https://github.com/gulpjs/vinyl-fs/commit/13c853a1ae0a829f0fd33347ed791f9b92593d18) allow a function to be used as value for the overwrite option - closes #68 +- [870551c](https://github.com/gulpjs/vinyl-fs/commit/870551c43d69547accd4b4918142b06926f20e99) add option to strip BOM, default to true - closes #83 +- [50c9e33](https://github.com/gulpjs/vinyl-fs/commit/50c9e33149a7f365d039cd0115526c79145a5534) more sourcemaps docs (@contra) + +### v2.0.0 (2015/09/25 22:43 +00:00) +- [de7bf7b](https://github.com/gulpjs/vinyl-fs/commit/de7bf7ba79acf33610d8d8e58626dc39d8ed2611) 2.0.0 (@contra) +- [59620dc](https://github.com/gulpjs/vinyl-fs/commit/59620dce078d0a458d96ba0c82416f24b82cb95f) update vinyl (@contra) + +### v1.0.0 (2015/03/01 23:10 +00:00) +- [db025fe](https://github.com/gulpjs/vinyl-fs/commit/db025fe85b190414b28512c1f5ef08662564d4eb) 1.0.0 (@contra) +- [c7195ed](https://github.com/gulpjs/vinyl-fs/commit/c7195ed3a7c93b5206ba9a1035e84da479888f4e) 1.0.0 (@contra) +- [4a70dd6](https://github.com/gulpjs/vinyl-fs/commit/4a70dd63386db8abfeeb985630406e1a39f776a5) update dep, remove engineStrict (@contra) +- [#59](https://github.com/gulpjs/vinyl-fs/pull/59) Implemented `overwrite` option in `dest()` (@derekslife) +- [c4750b2](https://github.com/gulpjs/vinyl-fs/commit/c4750b2efccd840e4ae840dc55b01cb7051f2f48) Encapsulated error filtering logic into `isErrorFatal` func (@derekslife) +- [32fc5c8](https://github.com/gulpjs/vinyl-fs/commit/32fc5c805ec6209c3d2145036ff2eabff79845be) Updated docs for `overwrite` option (@derekslife) +- [5572793](https://github.com/gulpjs/vinyl-fs/commit/5572793954b63e1ec00983bad716af01e02476ef) Implemented `overwrite` option in `dest()` (@derekslife) +- [2dfe290](https://github.com/gulpjs/vinyl-fs/commit/2dfe2901cc329f5db86d0f2272d4292a2078d5a3) update watch to fix a bug with .remove (@contra) +- [#57](https://github.com/gulpjs/vinyl-fs/pull/57) Follow symlinks (@valeriangalliat) +- [a4ea945](https://github.com/gulpjs/vinyl-fs/commit/a4ea945cf04660fc007266c87caa43d345a5b1bc) Follow symlinks (@valeriangalliat) +- [041de1b](https://github.com/gulpjs/vinyl-fs/commit/041de1b6f20434a7bd6146fdf0a3425dfe301f96) update should (@contra) +- [#55](https://github.com/gulpjs/vinyl-fs/pull/55) Add `passthrough` option, fixes #25, fixes gulpjs/gulp#840 (@UltCombo) +- [972c8ad](https://github.com/gulpjs/vinyl-fs/commit/972c8ad3ac377ff7b4a03edeb04f52409d383dd4) Code style (@UltCombo) +- [b9629ea](https://github.com/gulpjs/vinyl-fs/commit/b9629ea6e9b9b797b518ab8192f4a2ec446ea325) Add `passthrough` option, fixes #25, fixes gulpjs/gulp#840 (@UltCombo) +- [318a983](https://github.com/gulpjs/vinyl-fs/commit/318a983832408ddc5500b27cfcb8c5cb07c8af11) new glob-watcher (@contra) +- [#53](https://github.com/gulpjs/vinyl-fs/pull/53) Remove unnecessary `coveralls` from devDependencies (@shinnn) +- [1ccdc53](https://github.com/gulpjs/vinyl-fs/commit/1ccdc53e22e2449a8b1f9fdc9dfbe7cd526f1dec) remove unnecessary `coveralls` from devDeps (@shinnn) +- [#52](https://github.com/gulpjs/vinyl-fs/pull/52) Update dotfiles and readme (@shinnn) +- [87c36ed](https://github.com/gulpjs/vinyl-fs/commit/87c36ede9da5e1508e62a984da4ebc9c8412f6d2) introduce istanbul-coveralls (@shinnn) +- [fb1a0fa](https://github.com/gulpjs/vinyl-fs/commit/fb1a0fa6bf4028f54629014f89fee0dd148945b6) use sag badges instead of png badges (@shinnn) +- [5e1b24b](https://github.com/gulpjs/vinyl-fs/commit/5e1b24b4d2a811a02ae7b6449d4f0de778bbe4ef) update dotfiles (@shinnn) +- [96c721f](https://github.com/gulpjs/vinyl-fs/commit/96c721f07b59964849b15d737ab8abaf52377312) clean up empty object allocation (@contra) +- [6e97447](https://github.com/gulpjs/vinyl-fs/commit/6e97447dab806b1da7df52d9d4da337d49fe71cb) logic consolidation (@contra) +- [6f8f045](https://github.com/gulpjs/vinyl-fs/commit/6f8f0459e51fe4c1065a0e693fbcdc26776b6e78) more style normalization (@contra) +- [141ff43](https://github.com/gulpjs/vinyl-fs/commit/141ff43302dec6535d086cf27d538530161952c5) style normalization (@contra) +- [500f5cf](https://github.com/gulpjs/vinyl-fs/commit/500f5cf9100256db5ea2d180773385bacaca251e) logic cleanups (@contra) +- [f081c21](https://github.com/gulpjs/vinyl-fs/commit/f081c21cb264164fee8896056bd0337f734c1904) code cleanups in dest logic (@contra) +- [2692230](https://github.com/gulpjs/vinyl-fs/commit/269223036d24fe700dba8b5b9f04ad4023eadb2a) fix dest memory leak when writing streams (@contra) +- [3d2c6c0](https://github.com/gulpjs/vinyl-fs/commit/3d2c6c0350407b3b98c7d2e7950f999f3832b2de) report errors preparing write on symlinks (@contra) +- [4481668](https://github.com/gulpjs/vinyl-fs/commit/448166864ba6c973055eb205575c3e392cf0f39a) add dirMode param to dest and symlink, closes #36 (@contra) +- [#49](https://github.com/gulpjs/vinyl-fs/pull/49) Add symlink support (Fixes #42) (@JonAbrams) +- [558f374](https://github.com/gulpjs/vinyl-fs/commit/558f3744489d5e671f4172453b24ba62bfd9b102) new glob ordering (@contra) +- [5876564](https://github.com/gulpjs/vinyl-fs/commit/587656487d7cd8a56cadd57d311d28af820377a0) Match function to prepareWrite.js filename (@JonAbrams) +- [21d7528](https://github.com/gulpjs/vinyl-fs/commit/21d7528f04afbc88529a69e81e4c64823edbbfe9) Move and rename to prepareWrite.js (@JonAbrams) +- [b447d5e](https://github.com/gulpjs/vinyl-fs/commit/b447d5ea22bbd9a54bcdceccac8e94c0bd0e18e7) Fix jshint warnings (@JonAbrams) +- [15af3e5](https://github.com/gulpjs/vinyl-fs/commit/15af3e58512c2cdfb00fcc6f8850cfffa69ef431) De-dup common code between dest + symlink (#42) (@JonAbrams) +- [4392605](https://github.com/gulpjs/vinyl-fs/commit/439260503481296ac8f3482ee901434fd7e3969e) Add symlink support (Fixes #42) (@JonAbrams) +- [#47](https://github.com/gulpjs/vinyl-fs/pull/47) option.since implementation (@doowb) +- [8cca620](https://github.com/gulpjs/vinyl-fs/commit/8cca62066c07ce4cc75f390aeb523c228cd887c3) updates per @contra (@doowb) +- [cec31c6](https://github.com/gulpjs/vinyl-fs/commit/cec31c66d03c0e9c57b6e7223ea2e1029b0b5110) docs (@doowb) +- [3d440b3](https://github.com/gulpjs/vinyl-fs/commit/3d440b3dfe745261239071335b3839a8a12460b7) check for instance of Date (@doowb) +- [44cc193](https://github.com/gulpjs/vinyl-fs/commit/44cc193a9984a012f93082fa940516ad6249023f) since implementation (@doowb) +- [#44](https://github.com/gulpjs/vinyl-fs/pull/44) Swap defaults dependency with object-assign. (@ben-eb) +- [c07074c](https://github.com/gulpjs/vinyl-fs/commit/c07074c835cae9361973c1046a3f0522565a919d) Swap defaults dep with object-assign. (@ben-eb) + +### v0.3.14 (2015/09/21 23:57 +00:00) +- [5b056f6](https://github.com/gulpjs/vinyl-fs/commit/5b056f66c476ff32687c172d5fe79eaf47b2e80e) update object-assign dep (@contra) +- [27983ef](https://github.com/gulpjs/vinyl-fs/commit/27983ef0114ceb16abd82a5c47557cb0be95ae62) merge (@contra) +- [7ca959e](https://github.com/gulpjs/vinyl-fs/commit/7ca959e8ac89034e0e09714da76eb06b7b55d61c) remove watch #92 (@contra) +- [#90](https://github.com/gulpjs/vinyl-fs/pull/90) Updated merge-stream version to 1.0.0 (@davidbarrows) +- [22e5e13](https://github.com/gulpjs/vinyl-fs/commit/22e5e13f8edf399cf286f5d908a1bd6766308408) Updated merge-stream version to 1.0.0 (@davidbarrows) +- [#88](https://github.com/gulpjs/vinyl-fs/pull/88) fix wrong event name in README.md (@kketch) +- [65445ec](https://github.com/gulpjs/vinyl-fs/commit/65445ec16f1546b268c6a66c2ee798baa94883c8) fix wrong event name in README.md (@kketch) +- [#85](https://github.com/gulpjs/vinyl-fs/pull/85) Add symlink passthrough with `followSymlinks` (@Klowner) +- [9f5f6e8](https://github.com/gulpjs/vinyl-fs/commit/9f5f6e8770b4e1364381bfdc832a1c4aacd68274) Add symlink copy with `followSymlinks` option (@Klowner) +- [#82](https://github.com/gulpjs/vinyl-fs/pull/82) symlink opt.base should be the same as dest (@stevemao) +- [0b3eed2](https://github.com/gulpjs/vinyl-fs/commit/0b3eed2d84a7b8c134b990a2234916b24e54906b) symlink opt.base should be the same as dest (@stevemao) +- [3e2a5ef](https://github.com/gulpjs/vinyl-fs/commit/3e2a5ef63c98b9ef44b3d05cdc6c03bdb9c2392b) base can be a function now, also add better error messaging. closes #78 (@contra) +- [#81](https://github.com/gulpjs/vinyl-fs/pull/81) use valid semver range for `engine` (@silverwind) +- [69090c4](https://github.com/gulpjs/vinyl-fs/commit/69090c41d79bcb7c492fab6c4ac1a7788a0e8dc7) use valid semver range for `engine` (@silverwind) +- [65090b8](https://github.com/gulpjs/vinyl-fs/commit/65090b81b98c8ed80fda247495d8015701d62813) Merge branch 'master' of https://github.com/wearefractal/vinyl-fs (@contra) +- [b481130](https://github.com/gulpjs/vinyl-fs/commit/b48113066f04fa5a240770132fbf1e57af12687c) fix filter-since (@contra) +- [#79](https://github.com/gulpjs/vinyl-fs/pull/79) add missing test for f7516ebac102104ad0f39437f7739bf5aedec165 (@stevemao) +- [8e8135c](https://github.com/gulpjs/vinyl-fs/commit/8e8135c3f99c4669129295e65b54581c45535191) update vinyl-filter-since (@contra) +- [cb86d86](https://github.com/gulpjs/vinyl-fs/commit/cb86d86deefa593f3099d2494e06cbc59b69e9bc) add missing test for f7516ebac102104ad0f39437f7739bf5aedec165 (@stevemao) +- [a8161c8](https://github.com/gulpjs/vinyl-fs/commit/a8161c87f38d465497c63ec3158f0f033868b60b) update vinyl filter since (@contra) +- [99db7de](https://github.com/gulpjs/vinyl-fs/commit/99db7de8f0485c5ca158c79126b53b8fdab9d821) add sourcemaps to dest, clear up some dead src code now that empty arrays arent valid globs, dep updates (@contra) +- [d32876f](https://github.com/gulpjs/vinyl-fs/commit/d32876f8df5a8a28f71b476ae907644ab5d35c07) update deps (@contra) +- [#77](https://github.com/gulpjs/vinyl-fs/pull/77) Improvements (@stevemao) +- [f7516eb](https://github.com/gulpjs/vinyl-fs/commit/f7516ebac102104ad0f39437f7739bf5aedec165) Expose `options.base` for `dest` (@stevemao) +- [435c401](https://github.com/gulpjs/vinyl-fs/commit/435c40193acebdaca62a9d688ceec5875b1ece15) test on iojs and 0.12 (@stevemao) +- [a3b1aa6](https://github.com/gulpjs/vinyl-fs/commit/a3b1aa6d5446760bf18de77ebf2aa199bef9f9b0) Make readme more consistent (@stevemao) +- [#75](https://github.com/gulpjs/vinyl-fs/pull/75) Fix default option in README (@stevemao) +- [a0820f4](https://github.com/gulpjs/vinyl-fs/commit/a0820f4ec4737ab826999cde2dda6ee0dae2db03) Fix default option in README (@stevemao) +- [812d0e6](https://github.com/gulpjs/vinyl-fs/commit/812d0e6ef55ac7ecd6e7dc83ef6f58e324837354) add new glob tests, empty string is a failing glob now. https://github.com/google/material-design-lite/issues/790 (@contra) +- [1b7322d](https://github.com/gulpjs/vinyl-fs/commit/1b7322d800008095596da9472801a2ddabcdf938) Merge branch 'master' of https://github.com/wearefractal/vinyl-fs (@contra) +- [5af3ed8](https://github.com/gulpjs/vinyl-fs/commit/5af3ed844d4dac6a84cf836aa09373ad2d3193dd) fix dir symlinks on windows, closes #74 (@contra) +- [#73](https://github.com/gulpjs/vinyl-fs/pull/73) using is-valid-glob module to handle nested arrays properly (@doowb) +- [0a6bcb1](https://github.com/gulpjs/vinyl-fs/commit/0a6bcb15067f2ac0b534d17c0f66aa9616c2bd54) using is-valid-glob module to handle nested arrays properly (@doowb) +- [baf97e1](https://github.com/gulpjs/vinyl-fs/commit/baf97e1f66caa4f1a9f9630620233c8c927f7509) passing options through to readers is still a good idea, so not a full revert. #72 (@contra) +- [f6ead3c](https://github.com/gulpjs/vinyl-fs/commit/f6ead3cec64c27a86f2a2e497d75e8a4f235339c) remove stripBOM flag, document BOM stripping. #72 (@contra) +- [#71](https://github.com/gulpjs/vinyl-fs/pull/71) Update vinyl to 0.5.x (@lijunle) +- [3a44b5d](https://github.com/gulpjs/vinyl-fs/commit/3a44b5da290c1d0279381a4d13f8816bc2ebb014) Update vinyl to 0.5.x (@lijunle) +- [#69](https://github.com/gulpjs/vinyl-fs/pull/69) update license attribute (@pgilad) +- [23640fd](https://github.com/gulpjs/vinyl-fs/commit/23640fde7378465625b2e0579bb661c7501b0e04) update license attribute (@pgilad) +- [60685eb](https://github.com/gulpjs/vinyl-fs/commit/60685eb89e57f61c4462855532f43d75f0a616db) fix problem where you couldnt catch singular glob errors. add sourcemaps into src (@contra) +- [12dec99](https://github.com/gulpjs/vinyl-fs/commit/12dec99a99af362ddfa2a0f7af7a39063803f182) dep updates (@contra) +- [#63](https://github.com/gulpjs/vinyl-fs/pull/63) export `filterSince` to `vinyl-filter-since` (@tunnckoCore) +- [9bbf989](https://github.com/gulpjs/vinyl-fs/commit/9bbf989151a912307686d36dc6ee4ef01cdbd38f) bump to `vinyl-filter-since@v2` (@tunnckoCore) +- [1a788e8](https://github.com/gulpjs/vinyl-fs/commit/1a788e826951939e81ab1a2505f2aaf2a9cde264) Merge github.com:wearefractal/vinyl-fs (@tunnckoCore) +- [#65](https://github.com/gulpjs/vinyl-fs/pull/65) Remove realMode equality test on special bit test (@Meroje) +- [627ace7](https://github.com/gulpjs/vinyl-fs/commit/627ace7702895c35f313d439c357e6387961d05a) Remove realMode equality test on special bit test (@Meroje) +- [fd9388d](https://github.com/gulpjs/vinyl-fs/commit/fd9388db1a15afe1e3c748d3859ab969c34ba1db) merge in blaines changes (@contra) +- [fda2a71](https://github.com/gulpjs/vinyl-fs/commit/fda2a71b8d26580f8dc564636005f78514e2b791) fix some tests, update deps (@contra) +- [#64](https://github.com/gulpjs/vinyl-fs/pull/64) switch to glob-watcher 2.0 (@phated) +- [6524088](https://github.com/gulpjs/vinyl-fs/commit/65240883f15b9f0aa792735a2f358c3ee5761c51) switch to glob-watcher 2.0 +- [5d9f058](https://github.com/gulpjs/vinyl-fs/commit/5d9f0581b0d3985d135b507086dbd464e4aaafb9) export `filterSince` to `vinyl-filter-since` (@tunnckoCore) +- [#62](https://github.com/gulpjs/vinyl-fs/pull/62) Fix mode comparison (@Meroje) +- [ba57ce7](https://github.com/gulpjs/vinyl-fs/commit/ba57ce76e978850f79f78bba9b8aa1a73ac5fb2f) Test for chmod with additional bits (@Meroje) +- [0c3516b](https://github.com/gulpjs/vinyl-fs/commit/0c3516bd67ca56810f3e587cda12584caced223e) Fix mode comparison (@Meroje) + +### v0.3.13 (2014/11/13 23:18 +00:00) +- [315e76a](https://github.com/gulpjs/vinyl-fs/commit/315e76a248e9d150f228e4ef50b61de15dc55123) 0.3.13 (@contra) +- [ac5b449](https://github.com/gulpjs/vinyl-fs/commit/ac5b449ec49b4de5f10313d31fd8e8effed0421b) switch off lodash to reduce size (@contra) + +### v0.3.12 (2014/11/13 23:01 +00:00) +- [84a3fe9](https://github.com/gulpjs/vinyl-fs/commit/84a3fe96dd162041eac9c9d4465cc1369659027a) 0.3.12 (@contra) +- [b963614](https://github.com/gulpjs/vinyl-fs/commit/b963614bf206862f9bed60bab16ed7038f554c42) exclude files to save space (@contra) + +### v0.3.11 (2014/11/04 18:56 +00:00) +- [5ee1404](https://github.com/gulpjs/vinyl-fs/commit/5ee1404cc25b54fc338e6f84909e87be2eb09e84) 0.3.11 (@contra) +- [#41](https://github.com/gulpjs/vinyl-fs/pull/41) use default mode for new files and directories (@joachimgit) +- [99661c5](https://github.com/gulpjs/vinyl-fs/commit/99661c5881cf2b22545be688c68318c6b7541df1) use default mode for new files and directories (@joachimgit) +- [c0cf9d0](https://github.com/gulpjs/vinyl-fs/commit/c0cf9d0663460881f9ee97310f44e382d9a09fbe) small style fix (@contra) + +### v0.3.10 (2014/10/22 06:48 +00:00) +- [c6e7433](https://github.com/gulpjs/vinyl-fs/commit/c6e7433a93d052905611680dc3f6f87c8e629376) 0.3.10 (@contra) +- [793f538](https://github.com/gulpjs/vinyl-fs/commit/793f538beaa275a6d31f67e5499cb96949654699) remove duplexer2 which was broken (@contra) +- [1e3b338](https://github.com/gulpjs/vinyl-fs/commit/1e3b33883c5a9efbb28ec9141564bdfe6292c716) end false (@contra) + +### v0.3.9 (2014/10/09 18:34 +00:00) +- [37c648d](https://github.com/gulpjs/vinyl-fs/commit/37c648da6826b36600f48c3002a03b1248d4f58e) 0.3.9 (@contra) +- [6bba193](https://github.com/gulpjs/vinyl-fs/commit/6bba193c8395d2e32ccfa332684bec1bdd52d4ad) empty arrays = dead stream, closes #40 (@contra) +- [3e3d371](https://github.com/gulpjs/vinyl-fs/commit/3e3d371c41a9e3e50a9af9ad5f5c8634744dcd6d) fix that potentially closes #25 (@contra) + +### v0.3.8 (2014/09/29 22:16 +00:00) +- [0507aed](https://github.com/gulpjs/vinyl-fs/commit/0507aed94a1902ee61a45f77caf059669fb7ea76) 0.3.8 (@contra) +- [4d95e2e](https://github.com/gulpjs/vinyl-fs/commit/4d95e2e19f35045ca5ec66d697167078696bfc86) lstat (@contra) +- [#37](https://github.com/gulpjs/vinyl-fs/pull/37) Docs link fix (@yuvilio) +- [b9f3053](https://github.com/gulpjs/vinyl-fs/commit/b9f3053a8640839c2098f43066d06cc11d2e6196) Docs link fix (@yuvilio) + +### v0.3.7 (2014/08/29 07:10 +00:00) +- [1a5efe8](https://github.com/gulpjs/vinyl-fs/commit/1a5efe8d1f7d698691103f2fdc21e07dc1bd5634) 0.3.7 (@contra) +- [97d3195](https://github.com/gulpjs/vinyl-fs/commit/97d3195464893ad526f40a6355c792d35ab562e6) update deps (@contra) +- [#34](https://github.com/gulpjs/vinyl-fs/pull/34) Chmod mode to match the vinyl object (@oconnore) +- [a73458e](https://github.com/gulpjs/vinyl-fs/commit/a73458e33aba6de1ee2852a1374da7e8c8225e22) reduce nesting per review +- [cf8e5fd](https://github.com/gulpjs/vinyl-fs/commit/cf8e5fd59070beedf88936527935168d18afbbfc) Code review changes +- [e5684ac](https://github.com/gulpjs/vinyl-fs/commit/e5684ace84d0d226c382a77d505e1517c6f4c7a3) Check final mode in no-chmod test +- [dc8e769](https://github.com/gulpjs/vinyl-fs/commit/dc8e7691430555c4fe419825306426062c3e03e8) Fix a fall through error +- [b20d11b](https://github.com/gulpjs/vinyl-fs/commit/b20d11bbbaf9e244e16af7eabb7c98af213e7a89) Test stat/chmod approach with sinon stubs +- [126164a](https://github.com/gulpjs/vinyl-fs/commit/126164a4f2056d3cb1996c39562a2a008153975d) Test if the file should be chmod'ed + +### v0.3.6 (2014/08/02 04:56 +00:00) +- [7256498](https://github.com/gulpjs/vinyl-fs/commit/72564989a5dc17468e645f00ae811f8614dec17b) 0.3.6 (@contra) +- [dc9d723](https://github.com/gulpjs/vinyl-fs/commit/dc9d7230a4173792b0296e54a9560b44103d50c2) update vinyl dep (@contra) +- [387c47b](https://github.com/gulpjs/vinyl-fs/commit/387c47b6fda5f0af8f95b93e513bc130bee3cdd3) Satisfy the bot. +- [5887067](https://github.com/gulpjs/vinyl-fs/commit/58870677ff458a3e855ac87f2d165f43c4aafd2e) Chmod mode to match the vinyl object + +### v0.3.5 (2014/07/30 23:04 +00:00) +- [22edfd2](https://github.com/gulpjs/vinyl-fs/commit/22edfd20dc2fbad888fedd022d02fdf933bf30b6) 0.3.5 (@contra) +- [20a7a05](https://github.com/gulpjs/vinyl-fs/commit/20a7a0525b80cf0884cf73bee9690e1dab17a2bb) fix dep tree (@contra) +- [#33](https://github.com/gulpjs/vinyl-fs/pull/33) Display the invalid glob in error message (@kevinwestern) +- [726b3a1](https://github.com/gulpjs/vinyl-fs/commit/726b3a1ac771c90a8186828e3eb37ad9f4832df8) Display the invalid glob in error message (@kevinwestern) + +### v0.3.4 (2014/06/27 06:07 +00:00) +- [a83eb9a](https://github.com/gulpjs/vinyl-fs/commit/a83eb9a53aa0c4e50306a20845111ccda276146d) 0.3.4 (@contra) +- [4f4a3f3](https://github.com/gulpjs/vinyl-fs/commit/4f4a3f363cf491de80afdcf58f9926d2bfeb408e) resume stream (@contra) + +### v0.3.3 (2014/06/26 16:35 +00:00) +- [52ce21b](https://github.com/gulpjs/vinyl-fs/commit/52ce21ba241f73f0348d7683306c1175ce6c88b3) 0.3.3 (@contra) +- [#29](https://github.com/gulpjs/vinyl-fs/pull/29) Quick fix for using through2 to create dest stream (@tomchentw) +- [c678bd4](https://github.com/gulpjs/vinyl-fs/commit/c678bd469e11e768713219b774fa82aa781e4fef) test(dest): also added finish event check for #26 (@tomchentw) +- [595e96e](https://github.com/gulpjs/vinyl-fs/commit/595e96e45f12fc868f9ce256d0421da7f4932843) test(dest): added test case for #26 (@tomchentw) +- [8bf8612](https://github.com/gulpjs/vinyl-fs/commit/8bf8612702e228fcc0c678acafe7634f2c6b269b) fix(vfs.dest): attatched an noop data listener (@tomchentw) + +### v0.3.2 (2014/06/25 18:34 +00:00) +- [8fef1ed](https://github.com/gulpjs/vinyl-fs/commit/8fef1ed6d65a2532271983360d8700ec8dd03023) 0.3.2 (@contra) +- [#27](https://github.com/gulpjs/vinyl-fs/pull/27) Removed through2-map dependency (@tomchentw) +- [ede010b](https://github.com/gulpjs/vinyl-fs/commit/ede010be5aa110f55f2fc9daa34c1643e377e11c) feat(index.js): removed through2-map dependency (@tomchentw) +- [d1433cb](https://github.com/gulpjs/vinyl-fs/commit/d1433cb41ed3e0bf78bc2ea3a52e0599cccc45c2) .npmignore (@contra) +- [74347cc](https://github.com/gulpjs/vinyl-fs/commit/74347ccc71e5189e5d8809919fb145cfa9657481) .npmignore (@contra) +- [7c66ea2](https://github.com/gulpjs/vinyl-fs/commit/7c66ea2f09acb2dba51b192ccc8a8f09ef01489f) .npmignore (@contra) +- [cece0dc](https://github.com/gulpjs/vinyl-fs/commit/cece0dc68dfc1ebd3b344e367a4a269c43f15a0e) .npmignore (@contra) +- [33ac098](https://github.com/gulpjs/vinyl-fs/commit/33ac098ca8ff2e3216399784cd58b775d764ccab) .npmignore (@contra) +- [831044b](https://github.com/gulpjs/vinyl-fs/commit/831044b683c65eb9858323dc2744fd3ec33d82e1) .npmignore (@contra) +- [ff582cc](https://github.com/gulpjs/vinyl-fs/commit/ff582ccd55e6481134f6c44d1d2cb1dfc338818c) .npmignore (@contra) +- [fe75d6a](https://github.com/gulpjs/vinyl-fs/commit/fe75d6af6703bf2b6711ca1abfe9832d1d836375) .npmignore (@contra) +- [0c1da37](https://github.com/gulpjs/vinyl-fs/commit/0c1da37d252d16a171f30dfea42714bb208d1b3d) .npmignore (@contra) +- [10e6b53](https://github.com/gulpjs/vinyl-fs/commit/10e6b53bd9f8683408f6394c04142ac55ab9f493) .gitignore (@contra) +- [97296ef](https://github.com/gulpjs/vinyl-fs/commit/97296ef8e724953570ab989b043692cea5ba9062) .npmignore (@contra) +- [a12356c](https://github.com/gulpjs/vinyl-fs/commit/a12356c36cfd24e19d0c88225d364368ae7dac36) .gitignore (@contra) +- [7a7f2e5](https://github.com/gulpjs/vinyl-fs/commit/7a7f2e544b5eacf595bcc1fd9cac34de880ec071) .jshintrc (@contra) + +### v0.3.1 (2014/06/25 14:28 +00:00) +- [6004e32](https://github.com/gulpjs/vinyl-fs/commit/6004e32a6c5dca3f9361695d1b9797bbc4529337) 0.3.1 (@contra) +- [#26](https://github.com/gulpjs/vinyl-fs/pull/26) feat(lib/*.js): change map-stream to through2 (@tomchentw) +- [b181693](https://github.com/gulpjs/vinyl-fs/commit/b181693e7c2dd1b3992be02af899b8024669771c) styles(lib): changed done back to cb (@tomchentw) +- [c5d76e5](https://github.com/gulpjs/vinyl-fs/commit/c5d76e51157a7ae7788d7dd762145ca48a701dfb) feat(lib/*.js): change map-stream to through2@0.5.1 (@tomchentw) +- [583d30e](https://github.com/gulpjs/vinyl-fs/commit/583d30efd72267b59752f98a920541b1cfadb31c) function for dest, closes #15 (@contra) +- [d0ba8bb](https://github.com/gulpjs/vinyl-fs/commit/d0ba8bba4519df2b6bb41f0f07cfaf1d7a5fbf7d) make src a passthrough, clean up mode logic in dest, jshint, stylize (@contra) +- [c9b2c07](https://github.com/gulpjs/vinyl-fs/commit/c9b2c075dbb55ee97cd6ab9909bd1e1f87bf77e0) update graceful-fs dep (@contra) +- [7af93d0](https://github.com/gulpjs/vinyl-fs/commit/7af93d0c63822f17183b89ec591622d14f9f17ca) update travis yml (@contra) +- [49fb44d](https://github.com/gulpjs/vinyl-fs/commit/49fb44d44d6891f450c4c7cef9bda3caa4035107) 0.2.0 - BOM stripping and dep updates (@contra) +- [#21](https://github.com/gulpjs/vinyl-fs/pull/21) Strip BOM when reading UTF-8 files (@mathiasbynens) +- [4c1fc02](https://github.com/gulpjs/vinyl-fs/commit/4c1fc02bab8c2ca8fcefe0bff80347cc0b17712b) Strip BOM when reading UTF-8-encoded files (@mathiasbynens) +- [abd2fe4](https://github.com/gulpjs/vinyl-fs/commit/abd2fe4e1e32ef46d7544ce90fe941ece3a49a55) rollback gaze update (@contra) +- [103bb8c](https://github.com/gulpjs/vinyl-fs/commit/103bb8ca0b16e888ee44146603d5591220e228f4) update glob-watcher (@contra) +- [a319889](https://github.com/gulpjs/vinyl-fs/commit/a319889b9cbad1db0097d041ad02e0e2f76640bf) check src and dest args, closes #8 (@contra) +- [671197a](https://github.com/gulpjs/vinyl-fs/commit/671197a54ddda0277abdc0c1c9fce27cc8ab9b86) drop support for 0.9 (@contra) +- [f89e03e](https://github.com/gulpjs/vinyl-fs/commit/f89e03e62cb62dc6c28d0ebe6f146123be2232a7) 0.1.0 (@contra) +- [bb34369](https://github.com/gulpjs/vinyl-fs/commit/bb343692f3bbeab08b40b4bb1ee20af7205f2837) comment (@contra) +- [c1c866a](https://github.com/gulpjs/vinyl-fs/commit/c1c866a5277038056d52fb106b2bca8cea430e59) mergit (@contra) +- [cc81580](https://github.com/gulpjs/vinyl-fs/commit/cc81580a4818e2260a367c54bdcc42b0b4d0a5cc) respect file modes in dest, add mode option to dest (@contra) +- [#10](https://github.com/gulpjs/vinyl-fs/pull/10) Allow piping streaming vinyls through multiple .dest()'s (@hughsk) +- [d5566b2](https://github.com/gulpjs/vinyl-fs/commit/d5566b213b7e90a94b20aad35d4c08b2861c8247) Use ./src/streamFile for re-streaming .dest() streams (@hughsk) +- [868a3ec](https://github.com/gulpjs/vinyl-fs/commit/868a3ecc7945e798ee702cc30c5bcfff2af3ecd5) Allow piping streaming vinyls through multiple .dest()'s (@hughsk) +- [191d4ae](https://github.com/gulpjs/vinyl-fs/commit/191d4ae3672c76eb0cf0d46a2404c8e60e587d85) update file paths as they cruise through .dest (@contra) +- [cb69aa6](https://github.com/gulpjs/vinyl-fs/commit/cb69aa6c7ead7a435067fdfc89f89cd8af1215d4) cleanup (@contra) +- [f50d669](https://github.com/gulpjs/vinyl-fs/commit/f50d669a968f6f69ef07a0cc34b11704829c9c9f) add tests for relative cwd (@contra) +- [39dfc18](https://github.com/gulpjs/vinyl-fs/commit/39dfc189367154136718fa0958712b1b14ea5e5a) fix tests (@contra) +- [60dac5f](https://github.com/gulpjs/vinyl-fs/commit/60dac5fa38c3470556d987b01405d3ccca6af9ec) remove async dep (@contra) +- [1178422](https://github.com/gulpjs/vinyl-fs/commit/11784223e5a38795715c759333b352d40e83c76a) more tests (@contra) +- [ed50c02](https://github.com/gulpjs/vinyl-fs/commit/ed50c02ba3487e8f4212792a0db2aa39dbc060a6) directory test (@contra) +- [ee32c0a](https://github.com/gulpjs/vinyl-fs/commit/ee32c0a3a5f7aa30fc62a8481dd2f38aa410fa1a) more simplifying (@contra) +- [fb481f0](https://github.com/gulpjs/vinyl-fs/commit/fb481f0c6baedf89635faa1eb278cafb4b72c5bb) more simplifying (@contra) +- [a415173](https://github.com/gulpjs/vinyl-fs/commit/a4151738c740a760fa8b577a4f633ea6aad4055c) yep (@contra) +- [753add9](https://github.com/gulpjs/vinyl-fs/commit/753add9acc8cc0b3ff883f5228c972731a5fde74) simplify dest (@contra) +- [5325dcf](https://github.com/gulpjs/vinyl-fs/commit/5325dcf796e1e6db86a3c9abd58484f552c299f8) cwd in dest (@contra) +- [1b975fd](https://github.com/gulpjs/vinyl-fs/commit/1b975fdbf6c005674e86454b1a780b1fbf72f605) test cleaning (@contra) +- [abdcbb7](https://github.com/gulpjs/vinyl-fs/commit/abdcbb7fcd8b78469eaf784675df2d7c7a15c766) coveralls (@contra) +- [b7a8ebc](https://github.com/gulpjs/vinyl-fs/commit/b7a8ebcfa07865a283b5efe69303b795a2dcdd83) license update (@contra) +- [bac7381](https://github.com/gulpjs/vinyl-fs/commit/bac7381e31b7c30aed8ae925d12821cf65f9337e) more dep updates (@contra) +- [14f0a1e](https://github.com/gulpjs/vinyl-fs/commit/14f0a1eeaab5ca6a52042aae489a2da5ef78c318) badges and refactor (@contra) +- [8ac77fc](https://github.com/gulpjs/vinyl-fs/commit/8ac77fc245b8b3938c74748900358e9ad540e4bd) wait for file close in writeStream (@contra) +- [002273c](https://github.com/gulpjs/vinyl-fs/commit/002273cfae226d562a8b22173c3a718614444c7a) writeStream fix (@contra) +- [af64059](https://github.com/gulpjs/vinyl-fs/commit/af640595b1325385ce650b410f9091531447b35a) Merge branch 'master' of https://github.com/wearefractal/vinyl-fs (@contra) +- [5c36fbc](https://github.com/gulpjs/vinyl-fs/commit/5c36fbcaa7d7eca58fb5f035bf15492f4a3b737a) trim fat - graceful-fs, map-stream, etc. (@contra) +- [#3](https://github.com/gulpjs/vinyl-fs/pull/3) Fix broken refactor changes (@yyx990803) +- [c610342](https://github.com/gulpjs/vinyl-fs/commit/c610342755156dc9c059f21ac31a679623cef227) fix writePath +- [b09678b](https://github.com/gulpjs/vinyl-fs/commit/b09678b05069852d713a263e8526f30f83ecae23) require deps in writecontent.js +- [a30a0ea](https://github.com/gulpjs/vinyl-fs/commit/a30a0ea5ba65aa32b8a3a7a72fe6ddcbb20fe3fa) watch added (@contra) +- [209d4f2](https://github.com/gulpjs/vinyl-fs/commit/209d4f235fcd4419318527a96f6bc8757a4b87a7) flesh out more (@contra) +- [5958e7e](https://github.com/gulpjs/vinyl-fs/commit/5958e7e7b55bed41ae0972d721eae91ea9d21cbf) new vinyl file isDirectory changes (@contra) +- [7f8684b](https://github.com/gulpjs/vinyl-fs/commit/7f8684b87d93ee66fdbefe5397c8b7e365727d3d) more tests (@contra) +- [bf1f18c](https://github.com/gulpjs/vinyl-fs/commit/bf1f18cef59dff9ad01658b5e11968f2a3b11ff5) start tests (@contra) +- [23a1cff](https://github.com/gulpjs/vinyl-fs/commit/23a1cff61b8fcc07d543c1757a415591277a5425) fix deps (@contra) +- [35f230b](https://github.com/gulpjs/vinyl-fs/commit/35f230b2abe22e5fa0cc710a9bbbfb8dd3cfe3fa) start impl (@contra)
\ No newline at end of file diff --git a/node_modules/vinyl-fs/LICENSE b/node_modules/vinyl-fs/LICENSE new file mode 100755 index 000000000..3ebc30895 --- /dev/null +++ b/node_modules/vinyl-fs/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013-2016 Fractal <contact@wearefractal.com> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/vinyl-fs/README.md b/node_modules/vinyl-fs/README.md new file mode 100644 index 000000000..f449c6b56 --- /dev/null +++ b/node_modules/vinyl-fs/README.md @@ -0,0 +1,293 @@ +<p align="center"> + <a href="http://gulpjs.com"> + <img height="257" width="114" src="https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png"> + </a> +</p> + +# vinyl-fs + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] + +[Vinyl][vinyl] adapter for the file system. + +## What is Vinyl? + +[Vinyl][vinyl] is a very simple metadata object that describes a file. When you think of a file, two attributes come to mind: `path` and `contents`. These are the main attributes on a [Vinyl][vinyl] object. A file does not necessarily represent something on your computer’s file system. You have files on S3, FTP, Dropbox, Box, CloudThingly.io and other services. [Vinyl][vinyl] can be used to describe files from all of these sources. + +## What is a Vinyl Adapter? + +While Vinyl provides a clean way to describe a file, we now need a way to access these files. Each file source needs what I call a "Vinyl adapter". A Vinyl adapter simply exposes a `src(globs)` and a `dest(folder)` method. Each return a stream. The `src` stream produces Vinyl objects, and the `dest` stream consumes Vinyl objects. Vinyl adapters can expose extra methods that might be specific to their input/output medium, such as the `symlink` method `vinyl-fs` provides. + +## Usage + +```javascript +var map = require('map-stream'); +var vfs = require('vinyl-fs'); + +var log = function(file, cb) { + console.log(file.path); + cb(null, file); +}; + +vfs.src(['./js/**/*.js', '!./js/vendor/*.js']) + .pipe(map(log)) + .pipe(vfs.dest('./output')); +``` + +## API + +### `src(globs[, options])` + +Takes a glob string or an array of glob strings as the first argument and an options object as the second. +Returns a stream of [vinyl] `File` objects. + +__Note: UTF-8 BOM will be stripped from all UTF-8 files read with `.src` unless disabled in the options.__ + +#### Globs + +Globs are executed in order, so negations should follow positive globs. + +For example: + +```js +fs.src(['!b*.js', '*.js']) +``` + +would not exclude any files, but the following would: + +```js +fs.src(['*.js', '!b*.js']) +``` + +#### Options + +##### `options.cwd` + +The working directory the folder is relative to. + +Type: `String` + +Default: `process.cwd()` + +##### `options.base` + +The folder relative to the cwd. This is used to determine the file names when saving in `.dest()`. + +Type: `String` + +Default: The part of the path before the glob (if any) begins. For example, `path/to/**/*.js` would resolve to `path/to`. If there is no glob (i.e. a file path with no pattern), then the dirname of the path is used. For example, `path/to/some/file.js` would resolve to `path/to/some`. + +##### `options.buffer` + +Whether or not you want to buffer the file contents into memory. Setting to `false` will make `file.contents` a paused Stream. + +Type: `Boolean` + +Default: `true` + +##### `options.read` + +Whether or not you want the file to be read at all. Useful for stuff like removing files. Setting to `false` will make `file.contents` `null` and will disable writing the file to disk via `.dest()`. + +Type: `Boolean` + +Default: `true` + +##### `options.since` + +Only streams files that have been modified since the time specified. + +Type: `Date` or `Number` + +Default: `undefined` + +##### `options.stripBOM` + +Causes the BOM to be stripped on UTF-8 encoded files. Set to `false` if you need the BOM for some reason. + +Type: `Boolean` + +Default: `true` + +##### `options.passthrough` + +Allows `.src` to be used in the middle of a pipeline (using a duplex stream) which passes through all objects received and adds all files globbed to the stream. + +Type: `Boolean` + +Default: `false` + +##### `options.sourcemaps` + +Enables sourcemap support on files passed through the stream. Will load inline sourcemaps and resolve sourcemap links from files. Uses [gulp-sourcemaps] under the hood. + +Type: `Boolean` + +Default: `false` + +##### `options.followSymlinks` - `true` if you want + +Whether or not to recursively resolve symlinks to their targets. Setting to `false` to preserve them as symlinks and make `file.symlink` equal the original symlink's target path. + +Type: `Boolean` + +Default: `true` + +##### other + +Any glob-related options are documented in [glob-stream] and [node-glob]. +Any through2-related options are documented in [through2]. + +### `dest(folder[, options])` + +Takes a folder path string or a function as the first argument and an options object as the second. If given a function, it will be called with each [vinyl] `File` object and must return a folder path. +Returns a stream that accepts [vinyl] `File` objects, writes them to disk at the folder/cwd specified, and passes them downstream so you can keep piping these around. + +Once the file is written to disk, an attempt is made to determine if the `stat.mode`, `stat.mtime` and `stat.atime` of the [vinyl] `File` object differ from the file on the filesystem. +If they differ and the running process owns the file, the corresponding filesystem metadata is updated. +If they don't differ or the process doesn't own the file, the attempt is skipped silently. +__This functionality is disabled on Windows operating systems or any other OS that doesn't support `process.getuid` or `process.geteuid` in node. This is due to Windows having very unexpected results through usage of `fs.fchmod` and `fs.futimes`.__ + +If the file has a `symlink` attribute specifying a target path, then a symlink will be created. + +__Note: The file will be modified after being written to this stream.__ + - `cwd`, `base`, and `path` will be overwritten to match the folder. + - `stat` will be updated to match the file on the filesystem. + - `contents` will have it's position reset to the beginning if it is a stream. + +#### Options + +##### `options.cwd` + +The working directory the folder is relative to. + +Type: `String` + +Default: `process.cwd()` + +##### `options.base` + +The folder relative to the cwd. This is used to determine the file names when saving in `.dest()`. Can also be a function that takes in a file and returns a folder path. + +Type: `String` or `Function` + +Default: The `cwd` resolved to the folder path. + +##### `options.mode` + +The mode the files should be created with. + +Type: `Number` + +Default: The `mode` of the input file (`file.stat.mode`) if any, or the process mode if the input file has no `mode` property. + +##### `options.dirMode` + +The mode the directory should be created with. + +Type: `Number` + +Default: The process `mode`. + +##### `options.overwrite` + +Whether or not existing files with the same path should be overwritten. Can also be a function that takes in a file and returns `true` or `false`. + +Type: `Boolean` or `Function` + +Default: `true` (always overwrite existing files) + +##### `options.sourcemaps` + +Enables sourcemap support on files passed through the stream. Will write inline soucemaps if specified as `true`. +Specifying a `string` is shorthand for the path option. Uses [gulp-sourcemaps] under the hood. + +Examples: + +```js +// Write as inline comments +vfs.dest('./', { + sourcemaps: true +}); + +// Write as files in the same folder +vfs.dest('./', { + sourcemaps: '.' +}); + +// Any other options are passed through to [gulp-sourcemaps] +vfs.dest('./', { + sourcemaps: { + path: '.', + addComment: false, + includeContent: false + } +}); +``` + +Type: `Boolean`, `String` or `Object` + +Default: `undefined` (do not write sourcemaps) + +##### other + +Any through2-related options are documented in [through2]. + +### `symlink(folder[, options])` + +Takes a folder path string or a function as the first argument and an options object as the second. If given a function, it will be called with each [vinyl] `File` object and must return a folder path. +Returns a stream that accepts [vinyl] `File` objects, create a symbolic link (i.e. symlink) at the folder/cwd specified, and passes them downstream so you can keep piping these around. + +__Note: The file will be modified after being written to this stream.__ + - `cwd`, `base`, and `path` will be overwritten to match the folder. + +#### Options + +##### `options.cwd` + +The working directory the folder is relative to. + +Type: `String` + +Default: `process.cwd()` + +##### `options.base` + +The folder relative to the cwd. This is used to determine the file names when saving in `.symlink()`. Can also be a function that takes in a file and returns a folder path. + +Type: `String` or `Function` + +Default: The `cwd` resolved to the folder path. + +##### `options.dirMode` + +The mode the directory should be created with. + +Type: `Number` + +Default: The process mode. + +##### other + +Any through2-related options are documented in [through2]. + +[glob-stream]: https://github.com/gulpjs/glob-stream +[gulp-sourcemaps]: https://github.com/floridoo/gulp-sourcemaps +[node-glob]: https://github.com/isaacs/node-glob +[gaze]: https://github.com/shama/gaze +[glob-watcher]: https://github.com/wearefractal/glob-watcher +[vinyl]: https://github.com/wearefractal/vinyl +[through2]: https://github.com/rvagg/through2 + +[downloads-image]: http://img.shields.io/npm/dm/vinyl-fs.svg +[npm-url]: https://www.npmjs.com/package/vinyl-fs +[npm-image]: https://badge.fury.io/js/vinyl-fs.svg + +[travis-url]: https://travis-ci.org/gulpjs/vinyl-fs +[travis-image]: https://travis-ci.org/gulpjs/vinyl-fs.svg?branch=master + +[coveralls-url]: https://coveralls.io/r/gulpjs/vinyl-fs +[coveralls-image]: https://coveralls.io/repos/gulpjs/vinyl-fs/badge.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.png diff --git a/node_modules/vinyl-fs/index.js b/node_modules/vinyl-fs/index.js new file mode 100644 index 000000000..acdeac2b1 --- /dev/null +++ b/node_modules/vinyl-fs/index.js @@ -0,0 +1,7 @@ +'use strict'; + +module.exports = { + src: require('./lib/src'), + dest: require('./lib/dest'), + symlink: require('./lib/symlink'), +}; diff --git a/node_modules/vinyl-fs/lib/dest/index.js b/node_modules/vinyl-fs/lib/dest/index.js new file mode 100644 index 000000000..049ac9690 --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/index.js @@ -0,0 +1,54 @@ +'use strict'; + +var through2 = require('through2'); +var sourcemaps = require('gulp-sourcemaps'); +var duplexify = require('duplexify'); +var sink = require('../sink'); +var prepareWrite = require('../prepareWrite'); +var writeContents = require('./writeContents'); + +function dest(outFolder, opt) { + if (!opt) { + opt = {}; + } + + function saveFile(file, enc, cb) { + prepareWrite(outFolder, file, opt, function(err, writePath) { + if (err) { + return cb(err); + } + writeContents(writePath, file, cb); + }); + } + + var saveStream = through2.obj(opt, saveFile); + if (!opt.sourcemaps) { + // Sink the save stream to start flowing + // Do this on nextTick, it will flow at slowest speed of piped streams + process.nextTick(sink(saveStream)); + + return saveStream; + } + + var sourcemapOpt = opt.sourcemaps; + if (typeof sourcemapOpt === 'boolean') { + sourcemapOpt = {}; + } + if (typeof sourcemapOpt === 'string') { + sourcemapOpt = { + path: sourcemapOpt, + }; + } + + var mapStream = sourcemaps.write(sourcemapOpt.path, sourcemapOpt); + var outputStream = duplexify.obj(mapStream, saveStream); + mapStream.pipe(saveStream); + + // Sink the output stream to start flowing + // Do this on nextTick, it will flow at slowest speed of piped streams + process.nextTick(sink(outputStream)); + + return outputStream; +} + +module.exports = dest; diff --git a/node_modules/vinyl-fs/lib/dest/writeContents/index.js b/node_modules/vinyl-fs/lib/dest/writeContents/index.js new file mode 100644 index 000000000..1382d9567 --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/writeContents/index.js @@ -0,0 +1,59 @@ +'use strict'; + +var writeDir = require('./writeDir'); +var writeStream = require('./writeStream'); +var writeBuffer = require('./writeBuffer'); +var writeSymbolicLink = require('./writeSymbolicLink'); + +function writeContents(writePath, file, callback) { + // If directory then mkdirp it + if (file.isDirectory()) { + return writeDir(writePath, file, written); + } + + // Stream it to disk yo + if (file.isStream()) { + return writeStream(writePath, file, written); + } + + // Write it as a symlink + if (file.symlink) { + return writeSymbolicLink(writePath, file, written); + } + + // Write it like normal + if (file.isBuffer()) { + return writeBuffer(writePath, file, written); + } + + // If no contents then do nothing + if (file.isNull()) { + return written(); + } + + // This is invoked by the various writeXxx modules when they've finished + // writing the contents. + function written(err) { + if (isErrorFatal(err)) { + return callback(err); + } + + callback(null, file); + } + + function isErrorFatal(err) { + if (!err) { + return false; + } + + if (err.code === 'EEXIST' && file.flag === 'wx') { + // Handle scenario for file overwrite failures. + return false; // "These aren't the droids you're looking for" + } + + // Otherwise, this is a fatal error + return true; + } +} + +module.exports = writeContents; diff --git a/node_modules/vinyl-fs/lib/dest/writeContents/writeBuffer.js b/node_modules/vinyl-fs/lib/dest/writeContents/writeBuffer.js new file mode 100644 index 000000000..f23a4aa05 --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/writeContents/writeBuffer.js @@ -0,0 +1,26 @@ +'use strict'; + +var fo = require('../../fileOperations'); + +function writeBuffer(writePath, file, written) { + var opt = { + mode: file.stat.mode, + flag: file.flag, + }; + + fo.writeFile(writePath, file.contents, opt, onWriteFile); + + function onWriteFile(writeErr, fd) { + if (writeErr) { + return fo.closeFd(writeErr, fd, written); + } + + fo.updateMetadata(fd, file, onUpdate); + } + + function onUpdate(statErr, fd) { + fo.closeFd(statErr, fd, written); + } +} + +module.exports = writeBuffer; diff --git a/node_modules/vinyl-fs/lib/dest/writeContents/writeDir.js b/node_modules/vinyl-fs/lib/dest/writeContents/writeDir.js new file mode 100644 index 000000000..ef7622c9c --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/writeContents/writeDir.js @@ -0,0 +1,53 @@ +'use strict'; + +var fs = require('graceful-fs'); +var mkdirp = require('mkdirp'); + +var fo = require('../../fileOperations'); + +function writeDir(writePath, file, written) { + var mkdirpOpts = { + mode: file.stat.mode, + fs: fs, + }; + mkdirp(writePath, mkdirpOpts, onMkdirp); + + function onMkdirp(mkdirpErr) { + if (mkdirpErr) { + return written(mkdirpErr); + } + + fs.open(writePath, 'r', onOpen); + } + + function onOpen(openErr, fd) { + // If we don't have access, just move along + if (isInaccessible(openErr)) { + return fo.closeFd(null, fd, written); + } + + if (openErr) { + return fo.closeFd(openErr, fd, written); + } + + fo.updateMetadata(fd, file, onUpdate); + } + + function onUpdate(statErr, fd) { + fo.closeFd(statErr, fd, written); + } +} + +function isInaccessible(err) { + if (!err) { + return false; + } + + if (err.code === 'EACCES') { + return true; + } + + return false; + } + +module.exports = writeDir; diff --git a/node_modules/vinyl-fs/lib/dest/writeContents/writeStream.js b/node_modules/vinyl-fs/lib/dest/writeContents/writeStream.js new file mode 100644 index 000000000..e9af5f1d9 --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/writeContents/writeStream.js @@ -0,0 +1,57 @@ +'use strict'; + +var fs = require('graceful-fs'); + +var fo = require('../../fileOperations'); +var streamFile = require('../../src/getContents/streamFile'); + +function writeStream(writePath, file, written) { + var opt = { + mode: file.stat.mode, + flag: file.flag, + }; + + var outStream = fs.createWriteStream(writePath, opt); + + file.contents.once('error', complete); + file.contents.once('end', readStreamEnd); + outStream.once('error', complete); + outStream.once('finish', complete); + + // Streams are piped with end disabled, this prevents the + // WriteStream from closing the file descriptor after all + // data is written. + file.contents.pipe(outStream, { end: false }); + + function readStreamEnd() { + streamFile(file, complete); + } + + function end(propagatedErr) { + outStream.end(onEnd); + + function onEnd(endErr) { + written(propagatedErr || endErr); + } + } + + // Cleanup + function complete(streamErr) { + file.contents.removeListener('error', complete); + file.contents.removeListener('end', readStreamEnd); + outStream.removeListener('error', complete); + outStream.removeListener('finish', complete); + + if (streamErr) { + return end(streamErr); + } + + if (typeof outStream.fd !== 'number') { + return end(); + } + + fo.updateMetadata(outStream.fd, file, end); + } +} + +module.exports = writeStream; diff --git a/node_modules/vinyl-fs/lib/dest/writeContents/writeSymbolicLink.js b/node_modules/vinyl-fs/lib/dest/writeContents/writeSymbolicLink.js new file mode 100644 index 000000000..b09696926 --- /dev/null +++ b/node_modules/vinyl-fs/lib/dest/writeContents/writeSymbolicLink.js @@ -0,0 +1,20 @@ +'use strict'; + +var fs = require('graceful-fs'); + +function writeSymbolicLink(writePath, file, written) { + // TODO handle symlinks properly + fs.symlink(file.symlink, writePath, function(err) { + if (isFatalError(err)) { + return written(err); + } + + written(); + }); +} + +function isFatalError(err) { + return (err && err.code !== 'EEXIST'); +} + +module.exports = writeSymbolicLink; diff --git a/node_modules/vinyl-fs/lib/fileOperations.js b/node_modules/vinyl-fs/lib/fileOperations.js new file mode 100644 index 000000000..e323fb70e --- /dev/null +++ b/node_modules/vinyl-fs/lib/fileOperations.js @@ -0,0 +1,206 @@ +'use strict'; + +var fs = require('graceful-fs'); +var assign = require('object-assign'); +var isEqual = require('lodash.isequal'); +var isValidDate = require('vali-date'); + +// TODO shared module +// TODO include sticky/setuid/setgid, i.e. 7777? +var MASK_MODE = parseInt('0777', 8); +var DEFAULT_FILE_MODE = parseInt('0666', 8); +var APPEND_MODE_REGEXP = /a/; + +function closeFd(propagatedErr, fd, callback) { + if (typeof fd !== 'number') { + return callback(propagatedErr); + } + + fs.close(fd, onClosed); + + function onClosed(closeErr) { + if (propagatedErr || closeErr) { + return callback(propagatedErr || closeErr); + } + + callback(); + } +} + +function getModeDiff(fsMode, vinylMode) { + var modeDiff = 0; + + if (typeof vinylMode === 'number') { + modeDiff = (vinylMode ^ fsMode) & MASK_MODE; + } + + return modeDiff; +} + +function getTimesDiff(fsStat, vinylStat) { + + if (!isValidDate(vinylStat.mtime)) { + return; + } + + if (isEqual(vinylStat.mtime, fsStat.mtime) && + isEqual(vinylStat.atime, fsStat.atime)) { + return; + } + + var atime; + if (isValidDate(vinylStat.atime)) { + atime = vinylStat.atime; + } else { + atime = fsStat.atime; + } + + if (!isValidDate(atime)) { + atime = undefined; + } + + var timesDiff = { + mtime: vinylStat.mtime, + atime: atime, + }; + + return timesDiff; +} + +function isOwner(fsStat) { + var hasGetuid = (typeof process.getuid === 'function'); + var hasGeteuid = (typeof process.geteuid === 'function'); + + // If we don't have either, assume we don't have permissions. + // This should only happen on Windows. + // Windows basically noops fchmod and errors on futimes called on directories. + if (!hasGeteuid && !hasGetuid) { + return false; + } + + var uid; + if (hasGeteuid) { + uid = process.geteuid(); + } else { + uid = process.getuid(); + } + + if (fsStat.uid !== uid && uid !== 0) { + return false; + } + + return true; +} + +function updateMetadata(fd, file, callback) { + + fs.fstat(fd, onStat); + + function onStat(err, stat) { + if (err) { + return callback(err, fd); + } + + // Check if mode needs to be updated + var modeDiff = getModeDiff(stat.mode, file.stat.mode); + + // Check if atime/mtime need to be updated + var timesDiff = getTimesDiff(stat, file.stat); + + // Set file.stat to the reflect current state on disk + assign(file.stat, stat); + + // Nothing to do + if (!modeDiff && !timesDiff) { + return callback(null, fd); + } + + // Check access, `futimes` and `fchmod` only work if we own the file, + // or if we are effectively root. + if (!isOwner(stat)) { + return callback(null, fd); + } + + if (modeDiff) { + return mode(); + } + times(); + + function mode() { + var mode = stat.mode ^ modeDiff; + + fs.fchmod(fd, mode, onFchmod); + + function onFchmod(fchmodErr) { + if (!fchmodErr) { + file.stat.mode = mode; + } + if (timesDiff) { + return times(fchmodErr); + } + callback(fchmodErr, fd); + } + } + + function times(fchmodErr) { + fs.futimes(fd, timesDiff.atime, timesDiff.mtime, onFutimes); + + function onFutimes(futimesErr) { + if (!futimesErr) { + file.stat.atime = timesDiff.atime; + file.stat.mtime = timesDiff.mtime; + } + callback(fchmodErr || futimesErr, fd); + } + } + } +} + +/* + Custom writeFile implementation because we need access to the + file descriptor after the write is complete. + Most of the implementation taken from node core. + */ +function writeFile(path, data, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } + + if (!Buffer.isBuffer(data)) { + callback(new TypeError('Data must be a Buffer')); + return; + } + + if (!options) { + options = {}; + } + + // Default the same as node + var mode = options.mode || DEFAULT_FILE_MODE; + var flag = options.flag || 'w'; + var position = APPEND_MODE_REGEXP.test(flag) ? null : 0; + + fs.open(path, flag, mode, onOpen); + + function onOpen(err, fd) { + if (err) { + return onComplete(err); + } + + fs.write(fd, data, 0, data.length, position, onComplete); + + function onComplete(err) { + callback(err, fd); + } + } +} + +module.exports = { + closeFd: closeFd, + getModeDiff: getModeDiff, + getTimesDiff: getTimesDiff, + isOwner: isOwner, + updateMetadata: updateMetadata, + writeFile: writeFile, +}; diff --git a/node_modules/vinyl-fs/lib/filterSince.js b/node_modules/vinyl-fs/lib/filterSince.js new file mode 100644 index 000000000..234b58987 --- /dev/null +++ b/node_modules/vinyl-fs/lib/filterSince.js @@ -0,0 +1,16 @@ +'use strict'; + +var filter = require('through2-filter'); + +module.exports = function(d) { + var isValid = typeof d === 'number' || + d instanceof Number || + d instanceof Date; + + if (!isValid) { + throw new Error('expected since option to be a date or a number'); + } + return filter.obj(function(file) { + return file.stat && file.stat.mtime > d; + }); +}; diff --git a/node_modules/vinyl-fs/lib/prepareWrite.js b/node_modules/vinyl-fs/lib/prepareWrite.js new file mode 100644 index 000000000..50d86cd12 --- /dev/null +++ b/node_modules/vinyl-fs/lib/prepareWrite.js @@ -0,0 +1,69 @@ +'use strict'; + +var assign = require('object-assign'); +var path = require('path'); +var mkdirp = require('mkdirp'); +var fs = require('graceful-fs'); + +function booleanOrFunc(v, file) { + if (typeof v !== 'boolean' && typeof v !== 'function') { + return null; + } + + return typeof v === 'boolean' ? v : v(file); +} + +function stringOrFunc(v, file) { + if (typeof v !== 'string' && typeof v !== 'function') { + return null; + } + + return typeof v === 'string' ? v : v(file); +} + +function prepareWrite(outFolder, file, opt, cb) { + var options = assign({ + cwd: process.cwd(), + mode: (file.stat ? file.stat.mode : null), + dirMode: null, + overwrite: true, + }, opt); + var overwrite = booleanOrFunc(options.overwrite, file); + options.flag = (overwrite ? 'w' : 'wx'); + + var cwd = path.resolve(options.cwd); + var outFolderPath = stringOrFunc(outFolder, file); + if (!outFolderPath) { + throw new Error('Invalid output folder'); + } + var basePath = options.base ? + stringOrFunc(options.base, file) : path.resolve(cwd, outFolderPath); + if (!basePath) { + throw new Error('Invalid base option'); + } + + var writePath = path.resolve(basePath, file.relative); + var writeFolder = path.dirname(writePath); + + // Wire up new properties + file.stat = (file.stat || new fs.Stats()); + file.stat.mode = options.mode; + file.flag = options.flag; + file.cwd = cwd; + file.base = basePath; + file.path = writePath; + + // Mkdirp the folder the file is going in + var mkdirpOpts = { + mode: options.dirMode, + fs: fs, + }; + mkdirp(writeFolder, mkdirpOpts, function(err) { + if (err) { + return cb(err); + } + cb(null, writePath); + }); +} + +module.exports = prepareWrite; diff --git a/node_modules/vinyl-fs/lib/sink.js b/node_modules/vinyl-fs/lib/sink.js new file mode 100644 index 000000000..cfab46980 --- /dev/null +++ b/node_modules/vinyl-fs/lib/sink.js @@ -0,0 +1,53 @@ +'use strict'; + +var Writable = require('readable-stream/writable'); + +function listenerCount(stream, evt) { + return stream.listeners(evt).length; +} + +function hasListeners(stream) { + return !!(listenerCount(stream, 'readable') || listenerCount(stream, 'data')); +} + +function sink(stream) { + var sinkAdded = false; + var sinkStream = new Writable({ + objectMode: true, + write: function(file, enc, cb) { + cb(); + }, + }); + + function addSink() { + if (sinkAdded) { + return; + } + + if (hasListeners(stream)) { + return; + } + + sinkAdded = true; + stream.pipe(sinkStream); + } + + function removeSink(evt) { + if (evt !== 'readable' && evt !== 'data') { + return; + } + + if (hasListeners(stream)) { + sinkAdded = false; + stream.unpipe(sinkStream); + } + } + + stream.on('newListener', removeSink); + stream.on('removeListener', removeSink); + stream.on('removeListener', addSink); + + return addSink; +} + +module.exports = sink; diff --git a/node_modules/vinyl-fs/lib/src/getContents/bufferFile.js b/node_modules/vinyl-fs/lib/src/getContents/bufferFile.js new file mode 100644 index 000000000..894dd9cea --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/getContents/bufferFile.js @@ -0,0 +1,22 @@ +'use strict'; + +var fs = require('graceful-fs'); +var stripBom = require('strip-bom'); + +function bufferFile(file, opt, cb) { + fs.readFile(file.path, function(err, data) { + if (err) { + return cb(err); + } + + if (opt.stripBOM) { + file.contents = stripBom(data); + } else { + file.contents = data; + } + + cb(null, file); + }); +} + +module.exports = bufferFile; diff --git a/node_modules/vinyl-fs/lib/src/getContents/index.js b/node_modules/vinyl-fs/lib/src/getContents/index.js new file mode 100644 index 000000000..c1c8c159d --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/getContents/index.js @@ -0,0 +1,31 @@ +'use strict'; + +var through2 = require('through2'); +var readDir = require('./readDir'); +var readSymbolicLink = require('./readSymbolicLink'); +var bufferFile = require('./bufferFile'); +var streamFile = require('./streamFile'); + +function getContents(opt) { + return through2.obj(opt, function(file, enc, cb) { + // Don't fail to read a directory + if (file.isDirectory()) { + return readDir(file, opt, cb); + } + + // Process symbolic links included with `followSymlinks` option + if (file.stat && file.stat.isSymbolicLink()) { + return readSymbolicLink(file, opt, cb); + } + + // Read and pass full contents + if (opt.buffer !== false) { + return bufferFile(file, opt, cb); + } + + // Don't buffer anything - just pass streams + return streamFile(file, opt, cb); + }); +} + +module.exports = getContents; diff --git a/node_modules/vinyl-fs/lib/src/getContents/readDir.js b/node_modules/vinyl-fs/lib/src/getContents/readDir.js new file mode 100644 index 000000000..a800d4738 --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/getContents/readDir.js @@ -0,0 +1,8 @@ +'use strict'; + +function readDir(file, opt, cb) { + // Do nothing for now + cb(null, file); +} + +module.exports = readDir; diff --git a/node_modules/vinyl-fs/lib/src/getContents/readSymbolicLink.js b/node_modules/vinyl-fs/lib/src/getContents/readSymbolicLink.js new file mode 100644 index 000000000..794077a62 --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/getContents/readSymbolicLink.js @@ -0,0 +1,18 @@ +'use strict'; + +var fs = require('graceful-fs'); + +function readLink(file, opt, cb) { + fs.readlink(file.path, function(err, target) { + if (err) { + return cb(err); + } + + // Store the link target path + file.symlink = target; + + return cb(null, file); + }); +} + +module.exports = readLink; diff --git a/node_modules/vinyl-fs/lib/src/getContents/streamFile.js b/node_modules/vinyl-fs/lib/src/getContents/streamFile.js new file mode 100644 index 000000000..43dc12635 --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/getContents/streamFile.js @@ -0,0 +1,26 @@ +'use strict'; + +var fs = require('graceful-fs'); +var stripBom = require('strip-bom-stream'); +var lazystream = require('lazystream'); + +function streamFile(file, opt, cb) { + if (typeof opt === 'function') { + cb = opt; + opt = {}; + } + + var filePath = file.path; + + file.contents = new lazystream.Readable(function() { + return fs.createReadStream(filePath); + }); + + if (opt.stripBOM) { + file.contents = file.contents.pipe(stripBom()); + } + + cb(null, file); +} + +module.exports = streamFile; diff --git a/node_modules/vinyl-fs/lib/src/index.js b/node_modules/vinyl-fs/lib/src/index.js new file mode 100644 index 000000000..06cbe754d --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/index.js @@ -0,0 +1,62 @@ +'use strict'; + +var assign = require('object-assign'); +var through2 = require('through2'); +var gs = require('glob-stream'); +var duplexify = require('duplexify'); +var merge = require('merge-stream'); +var sourcemaps = require('gulp-sourcemaps'); +var filterSince = require('../filterSince'); +var isValidGlob = require('is-valid-glob'); + +var getContents = require('./getContents'); +var wrapWithVinylFile = require('./wrapWithVinylFile'); + +function src(glob, opt) { + var options = assign({ + read: true, + buffer: true, + stripBOM: true, + sourcemaps: false, + passthrough: false, + followSymlinks: true, + }, opt); + + // Don't pass `read` option on to through2 + var read = options.read !== false; + options.read = undefined; + + var inputPass; + + if (!isValidGlob(glob)) { + throw new Error('Invalid glob argument: ' + glob); + } + + var globStream = gs.create(glob, options); + + var outputStream = globStream + .pipe(wrapWithVinylFile(options)); + + if (options.since != null) { + outputStream = outputStream + .pipe(filterSince(options.since)); + } + + if (read) { + outputStream = outputStream + .pipe(getContents(options)); + } + + if (options.passthrough === true) { + inputPass = through2.obj(options); + outputStream = duplexify.obj(inputPass, merge(outputStream, inputPass)); + } + if (options.sourcemaps === true) { + outputStream = outputStream + .pipe(sourcemaps.init({ loadMaps: true })); + } + globStream.on('error', outputStream.emit.bind(outputStream, 'error')); + return outputStream; +} + +module.exports = src; diff --git a/node_modules/vinyl-fs/lib/src/wrapWithVinylFile.js b/node_modules/vinyl-fs/lib/src/wrapWithVinylFile.js new file mode 100644 index 000000000..5e6290e59 --- /dev/null +++ b/node_modules/vinyl-fs/lib/src/wrapWithVinylFile.js @@ -0,0 +1,51 @@ +'use strict'; + +var through2 = require('through2'); +var fs = require('graceful-fs'); +var File = require('vinyl'); + +function wrapWithVinylFile(options) { + + // A stat property is exposed on file objects as a (wanted) side effect + function resolveFile(globFile, enc, cb) { + fs.lstat(globFile.path, function(err, stat) { + if (err) { + return cb(err); + } + + globFile.stat = stat; + + if (!stat.isSymbolicLink() || !options.followSymlinks) { + var vinylFile = new File(globFile); + if (globFile.originalSymlinkPath) { + // If we reach here, it means there is at least one + // symlink on the path and we need to rewrite the path + // to its original value. + // Updated file stats will tell getContents() to actually read it. + vinylFile.path = globFile.originalSymlinkPath; + } + return cb(null, vinylFile); + } + + fs.realpath(globFile.path, function(err, filePath) { + if (err) { + return cb(err); + } + + if (!globFile.originalSymlinkPath) { + // Store the original symlink path before the recursive call + // to later rewrite it back. + globFile.originalSymlinkPath = globFile.path; + } + globFile.path = filePath; + + // Recurse to get real file stat + resolveFile(globFile, enc, cb); + }); + }); + } + + return through2.obj(options, resolveFile); +} + +module.exports = wrapWithVinylFile; diff --git a/node_modules/vinyl-fs/lib/symlink/index.js b/node_modules/vinyl-fs/lib/symlink/index.js new file mode 100644 index 000000000..6c01a6b67 --- /dev/null +++ b/node_modules/vinyl-fs/lib/symlink/index.js @@ -0,0 +1,30 @@ +'use strict'; + +var through2 = require('through2'); +var fs = require('graceful-fs'); +var prepareWrite = require('../prepareWrite'); + +function symlink(outFolder, opt) { + function linkFile(file, enc, cb) { + var srcPath = file.path; + var symType = (file.isDirectory() ? 'dir' : 'file'); + prepareWrite(outFolder, file, opt, function(err, writePath) { + if (err) { + return cb(err); + } + fs.symlink(srcPath, writePath, symType, function(err) { + if (err && err.code !== 'EEXIST') { + return cb(err); + } + cb(null, file); + }); + }); + } + + var stream = through2.obj(opt, linkFile); + // TODO: option for either backpressure or lossy + stream.resume(); + return stream; +} + +module.exports = symlink; diff --git a/node_modules/vinyl-fs/node_modules/.bin/mkdirp b/node_modules/vinyl-fs/node_modules/.bin/mkdirp new file mode 120000 index 000000000..91a5f623f --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/.bin/mkdirp @@ -0,0 +1 @@ +../../../mkdirp/bin/cmd.js
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/clone-stats/LICENSE.md b/node_modules/vinyl-fs/node_modules/clone-stats/LICENSE.md new file mode 100644 index 000000000..146cb32a7 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/clone-stats/LICENSE.md @@ -0,0 +1,21 @@ +## The MIT License (MIT) ## + +Copyright (c) 2014 Hugh Kennedy + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/vinyl-fs/node_modules/clone-stats/README.md b/node_modules/vinyl-fs/node_modules/clone-stats/README.md new file mode 100644 index 000000000..8b12b6fa5 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/clone-stats/README.md @@ -0,0 +1,17 @@ +# clone-stats [](https://flattr.com/submit/auto?user_id=hughskennedy&url=http://github.com/hughsk/clone-stats&title=clone-stats&description=hughsk/clone-stats%20on%20GitHub&language=en_GB&tags=flattr,github,javascript&category=software)[](http://github.com/hughsk/stability-badges) # + +Safely clone node's +[`fs.Stats`](http://nodejs.org/api/fs.html#fs_class_fs_stats) instances without +losing their class methods, i.e. `stat.isDirectory()` and co. + +## Usage ## + +[](https://nodei.co/npm/clone-stats) + +### `copy = require('clone-stats')(stat)` ### + +Returns a clone of the original `fs.Stats` instance (`stat`). + +## License ## + +MIT. See [LICENSE.md](http://github.com/hughsk/clone-stats/blob/master/LICENSE.md) for details. diff --git a/node_modules/vinyl-fs/node_modules/clone-stats/index.js b/node_modules/vinyl-fs/node_modules/clone-stats/index.js new file mode 100644 index 000000000..e797cfe6e --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/clone-stats/index.js @@ -0,0 +1,13 @@ +var Stat = require('fs').Stats + +module.exports = cloneStats + +function cloneStats(stats) { + var replacement = new Stat + + Object.keys(stats).forEach(function(key) { + replacement[key] = stats[key] + }) + + return replacement +} diff --git a/node_modules/vinyl-fs/node_modules/clone-stats/package.json b/node_modules/vinyl-fs/node_modules/clone-stats/package.json new file mode 100644 index 000000000..2880625c1 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/clone-stats/package.json @@ -0,0 +1,31 @@ +{ + "name": "clone-stats", + "description": "Safely clone node's fs.Stats instances without losing their class methods", + "version": "0.0.1", + "main": "index.js", + "browser": "index.js", + "dependencies": {}, + "devDependencies": { + "tape": "~2.3.2" + }, + "scripts": { + "test": "node test" + }, + "author": "Hugh Kennedy <hughskennedy@gmail.com> (http://hughsk.io/)", + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/hughsk/clone-stats" + }, + "bugs": { + "url": "https://github.com/hughsk/clone-stats/issues" + }, + "homepage": "https://github.com/hughsk/clone-stats", + "keywords": [ + "stats", + "fs", + "clone", + "copy", + "prototype" + ] +} diff --git a/node_modules/vinyl-fs/node_modules/clone-stats/test.js b/node_modules/vinyl-fs/node_modules/clone-stats/test.js new file mode 100644 index 000000000..e4bb2814d --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/clone-stats/test.js @@ -0,0 +1,36 @@ +var test = require('tape') +var clone = require('./') +var fs = require('fs') + +test('file', function(t) { + compare(t, fs.statSync(__filename)) + t.end() +}) + +test('directory', function(t) { + compare(t, fs.statSync(__dirname)) + t.end() +}) + +function compare(t, stat) { + var copy = clone(stat) + + t.deepEqual(stat, copy, 'clone has equal properties') + t.ok(stat instanceof fs.Stats, 'original is an fs.Stat') + t.ok(copy instanceof fs.Stats, 'copy is an fs.Stat') + + ;['isDirectory' + , 'isFile' + , 'isBlockDevice' + , 'isCharacterDevice' + , 'isSymbolicLink' + , 'isFIFO' + , 'isSocket' + ].forEach(function(method) { + t.equal( + stat[method].call(stat) + , copy[method].call(copy) + , 'equal value for stat.' + method + '()' + ) + }) +} diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/.npmignore b/node_modules/vinyl-fs/node_modules/replace-ext/.npmignore new file mode 100644 index 000000000..b5ef13a3c --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/.npmignore @@ -0,0 +1,6 @@ +.DS_Store +*.log +node_modules +build +*.node +components
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/.travis.yml b/node_modules/vinyl-fs/node_modules/replace-ext/.travis.yml new file mode 100644 index 000000000..8101b9fe7 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/.travis.yml @@ -0,0 +1,8 @@ +language: node_js +node_js: + - "0.7" + - "0.8" + - "0.9" + - "0.10" +after_script: + - npm run coveralls
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/LICENSE b/node_modules/vinyl-fs/node_modules/replace-ext/LICENSE new file mode 100755 index 000000000..7cbe012c6 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2014 Fractal <contact@wearefractal.com> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/README.md b/node_modules/vinyl-fs/node_modules/replace-ext/README.md new file mode 100644 index 000000000..05b5d21fd --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/README.md @@ -0,0 +1,44 @@ +# replace-ext [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Dependency Status][david-image]][david-url] + + +## Information + +<table> +<tr> +<td>Package</td><td>replace-ext</td> +</tr> +<tr> +<td>Description</td> +<td>Replaces a file extension with another one</td> +</tr> +<tr> +<td>Node Version</td> +<td>>= 0.4</td> +</tr> +</table> + +## Usage + +```javascript +var replaceExt = require('replace-ext'); + +var path = '/some/dir/file.js'; +var npath = replaceExt(path, '.coffee'); + +console.log(npath); // /some/dir/file.coffee +``` + +[npm-url]: https://npmjs.org/package/replace-ext +[npm-image]: https://badge.fury.io/js/replace-ext.png + +[travis-url]: https://travis-ci.org/wearefractal/replace-ext +[travis-image]: https://travis-ci.org/wearefractal/replace-ext.png?branch=master + +[coveralls-url]: https://coveralls.io/r/wearefractal/replace-ext +[coveralls-image]: https://coveralls.io/repos/wearefractal/replace-ext/badge.png + +[depstat-url]: https://david-dm.org/wearefractal/replace-ext +[depstat-image]: https://david-dm.org/wearefractal/replace-ext.png + +[david-url]: https://david-dm.org/wearefractal/replace-ext +[david-image]: https://david-dm.org/wearefractal/replace-ext.png?theme=shields.io
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/index.js b/node_modules/vinyl-fs/node_modules/replace-ext/index.js new file mode 100644 index 000000000..3f76938e4 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/index.js @@ -0,0 +1,9 @@ +var path = require('path'); + +module.exports = function(npath, ext) { + if (typeof npath !== 'string') return npath; + if (npath.length === 0) return npath; + + var nFileName = path.basename(npath, path.extname(npath))+ext; + return path.join(path.dirname(npath), nFileName); +};
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/package.json b/node_modules/vinyl-fs/node_modules/replace-ext/package.json new file mode 100644 index 000000000..307d99b78 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/package.json @@ -0,0 +1,35 @@ +{ + "name":"replace-ext", + "description":"Replaces a file extension with another one", + "version":"0.0.1", + "homepage":"http://github.com/wearefractal/replace-ext", + "repository":"git://github.com/wearefractal/replace-ext.git", + "author":"Fractal <contact@wearefractal.com> (http://wearefractal.com/)", + "main":"./index.js", + + "dependencies":{ + + }, + "devDependencies": { + "mocha": "~1.17.0", + "should": "~3.1.0", + "mocha-lcov-reporter": "~0.0.1", + "coveralls": "~2.6.1", + "istanbul": "~0.2.3", + "rimraf": "~2.2.5", + "jshint": "~2.4.1" + }, + "scripts": { + "test": "mocha --reporter spec && jshint", + "coveralls": "istanbul cover _mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | coveralls && rm -rf ./coverage" + }, + "engines": { + "node": ">= 0.4" + }, + "licenses":[ + { + "type":"MIT", + "url":"http://github.com/wearefractal/replace-ext/raw/master/LICENSE" + } + ] +} diff --git a/node_modules/vinyl-fs/node_modules/replace-ext/test/main.js b/node_modules/vinyl-fs/node_modules/replace-ext/test/main.js new file mode 100644 index 000000000..51377021b --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/replace-ext/test/main.js @@ -0,0 +1,51 @@ +var replaceExt = require('../'); +var path = require('path'); +var should = require('should'); +require('mocha'); + +describe('replace-ext', function() { + it('should return a valid replaced extension on nested', function(done) { + var fname = path.join(__dirname, './fixtures/test.coffee'); + var expected = path.join(__dirname, './fixtures/test.js'); + var nu = replaceExt(fname, '.js'); + should.exist(nu); + nu.should.equal(expected); + done(); + }); + + it('should return a valid replaced extension on flat', function(done) { + var fname = 'test.coffee'; + var expected = 'test.js'; + var nu = replaceExt(fname, '.js'); + should.exist(nu); + nu.should.equal(expected); + done(); + }); + + it('should not return a valid replaced extension on empty string', function(done) { + var fname = ''; + var expected = ''; + var nu = replaceExt(fname, '.js'); + should.exist(nu); + nu.should.equal(expected); + done(); + }); + + it('should return a valid removed extension on nested', function(done) { + var fname = path.join(__dirname, './fixtures/test.coffee'); + var expected = path.join(__dirname, './fixtures/test'); + var nu = replaceExt(fname, ''); + should.exist(nu); + nu.should.equal(expected); + done(); + }); + + it('should return a valid added extension on nested', function(done) { + var fname = path.join(__dirname, './fixtures/test'); + var expected = path.join(__dirname, './fixtures/test.js'); + var nu = replaceExt(fname, '.js'); + should.exist(nu); + nu.should.equal(expected); + done(); + }); +}); diff --git a/node_modules/vinyl-fs/node_modules/vinyl/CHANGELOG.md b/node_modules/vinyl-fs/node_modules/vinyl/CHANGELOG.md new file mode 100644 index 000000000..9bf67df45 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/CHANGELOG.md @@ -0,0 +1,163 @@ +## Change Log + +### v1.1.1 (2016/01/18 23:23 +00:00) +- [3990e00](https://github.com/gulpjs/vinyl/commit/3990e007b004c809a53670c00566afb157fa56b6) 1.1.1 +- [2d3e984](https://github.com/gulpjs/vinyl/commit/2d3e98447a42285b593e1b261984b87b171e7313) chore: add NPM script for changelog (@T1st3) +- [f70c395](https://github.com/gulpjs/vinyl/commit/f70c395085fc3952cf72c061c851f5b0d4676030) docs: add CHANGELOG.md (@T1st3) +- [#74](https://github.com/gulpjs/vinyl/pull/74) Fix isVinyl for falsy values (@erikkemperman) +- [3e8b132](https://github.com/gulpjs/vinyl/commit/3e8b132cd87bf5ab536ff7a4c6d660e33f5990b4) Fix isVinyl for falsy values (@erikkemperman) +- [#73](https://github.com/gulpjs/vinyl/pull/73) Readme: use SVG images. (@d10) +- [193e3d2](https://github.com/gulpjs/vinyl/commit/193e3d25f68c97593e011981e49db2c3e7a47d91) Readme: use SVG images. (@d10) +- [#67](https://github.com/gulpjs/vinyl/pull/67) Set Travis to sudo:false and add node 0.12/4.x (@pdehaan) +- [c33d85a](https://github.com/gulpjs/vinyl/commit/c33d85ab1d63fbcd272f7fb91d666006dab76d99) Set Travis to sudo:false and add node 0.12/4.x (@pdehaan) + +### v1.1.0 (2015/10/23 06:33 +00:00) +- [51052ad](https://github.com/gulpjs/vinyl/commit/51052add24bb1c771bf5912809b47d4d53288c48) 1.1.0 +- [#64](https://github.com/gulpjs/vinyl/pull/64) File.stem for basename without suffix (@soslan) +- [e505375](https://github.com/gulpjs/vinyl/commit/e5053756a49ea8800cd5da12fc0eefce859ccf61) Following JSCS rules in File.stem (@soslan) +- [d45f478](https://github.com/gulpjs/vinyl/commit/d45f478c7af3f2e956e57ce6d7550d64e3b7dbfb) Following JSCS rules (@soslan) +- [#66](https://github.com/gulpjs/vinyl/pull/66) Replace JSHint with ESLint (@pdehaan) +- [c5549f7](https://github.com/gulpjs/vinyl/commit/c5549f7002ae580fa9a7f7df490d6e3911af2285) Bump to eslint-config-gulp@2 (@pdehaan) +- [f6a5512](https://github.com/gulpjs/vinyl/commit/f6a55125e7230621ecae1f395da202140baaee1d) Replace JSHint with ESLint (@pdehaan) +- [#65](https://github.com/gulpjs/vinyl/pull/65) Add JSCS to repo (@pdehaan) +- [f9a0101](https://github.com/gulpjs/vinyl/commit/f9a0101d013356056293d21356d4cb443613b0be) Comments should start with uppercase letters (per JSCS) (@pdehaan) +- [6506478](https://github.com/gulpjs/vinyl/commit/650647833e3cea8d005a3ab1810ecd285418fa1e) Add JSCS to repo (@pdehaan) +- [ae3778c](https://github.com/gulpjs/vinyl/commit/ae3778c536a898fe47bbb37e5932b300123b28b8) Documentation for File.stem (@soslan) +- [e2246af](https://github.com/gulpjs/vinyl/commit/e2246af8aad6df348557f9d1df5001c30ff83774) add stem property to File (@soslan) +- [#63](https://github.com/gulpjs/vinyl/pull/63) Fix broken badge URLs in README.md (@tatsuyafw) +- [032ae7c](https://github.com/gulpjs/vinyl/commit/032ae7c5c59b72dc58041a14449d8d66af053023) Use reference links (@tatsuyafw) +- [652bc3b](https://github.com/gulpjs/vinyl/commit/652bc3bd3cc7a6af5d21d8d759a01cee3ce46acf) Fix some broken links in README.md (@tatsuyafw) + +### v1.0.0 (2015/09/25 22:40 +00:00) +- [dbe943d](https://github.com/gulpjs/vinyl/commit/dbe943dad575b04995f38a35bd27962f54dc8217) 1.0.0 (@contra) +- [0b64336](https://github.com/gulpjs/vinyl/commit/0b643367289db0cfefc6c628eff2be4ee019405c) correct url (@contra) +- [#60](https://github.com/gulpjs/vinyl/pull/60) remove <br> from README.md (@bobintornado) +- [d9ae5ea](https://github.com/gulpjs/vinyl/commit/d9ae5eab010fd15094c8a0260a25d1244f17df79) remove <br> from README.md (@bobintornado) + +### v0.5.3 (2015/09/03 00:20 +00:00) +- [6f19648](https://github.com/gulpjs/vinyl/commit/6f19648bd67040bfd0dc755ad031e1e5e0b58429) 0.5.3 (@contra) +- [0fe8da7](https://github.com/gulpjs/vinyl/commit/0fe8da757a862bb956d88dec03ab6f99ca895f7f) add isVinyl function (@contra) + +### v0.5.1 (2015/08/04 21:26 +00:00) +- [81692ec](https://github.com/gulpjs/vinyl/commit/81692ece22eb3b927dba74fedb54a2acb65a36eb) 0.5.1 (@contra) +- [#58](https://github.com/gulpjs/vinyl/pull/58) use Buffer.isBuffer instead of instanceof (@whyrusleeping) +- [7293a71](https://github.com/gulpjs/vinyl/commit/7293a71b9daf177d9b9f600f3acf00a73b95107c) condense isBuffer module to a one liner (@whyrusleeping) +- [e7208e2](https://github.com/gulpjs/vinyl/commit/e7208e2c27029405c7c9cf9c9a3263cdf1e0dfb8) also remove old comment (@whyrusleeping) +- [b4ac64b](https://github.com/gulpjs/vinyl/commit/b4ac64b85ce28093f576db4f006264438f546cb8) use Buffer.isBuffer instead of instanceof (@whyrusleeping) +- [#54](https://github.com/gulpjs/vinyl/pull/54) Fix file clone options (@danielhusar) +- [4b42095](https://github.com/gulpjs/vinyl/commit/4b42095d8e0cb4351a503da67752da15e6b59570) Fix file clone options (@danielhusar) +- [04f681e](https://github.com/gulpjs/vinyl/commit/04f681e4af8ffb99ea3a0a3eab1cc79793887560) closes #50 and #51 (@contra) + +### v0.5.0 (2015/06/03 23:44 +00:00) +- [8fea984](https://github.com/gulpjs/vinyl/commit/8fea9843e6b2aca820ccfee394927ca073f88a05) 0.5.0 (@contra) +- [#52](https://github.com/gulpjs/vinyl/pull/52) Add explicit newlines to readme (@jeremyruppel) +- [027142c](https://github.com/gulpjs/vinyl/commit/027142cf62a3f0a68f4659a612ee782b24c00198) Add explicit newlines to readme (@jeremyruppel) +- [#46](https://github.com/gulpjs/vinyl/pull/46) Add dirname, basename and extname getters (@jeremyruppel) +- [e09817f](https://github.com/gulpjs/vinyl/commit/e09817f15e4ddfc28e1b3452bbca5e2ba1fc2f19) Add dirname, basename and extname accessors (@jeremyruppel) +- [#49](https://github.com/gulpjs/vinyl/pull/49) update license attribute (@pgilad) +- [e5b2670](https://github.com/gulpjs/vinyl/commit/e5b2670af205ca0fb6f589a396b89ab2845a91ac) update license attribut (@pgilad) +- [55f90e3](https://github.com/gulpjs/vinyl/commit/55f90e3763af84c7eb599bd6403dbe14f63d5513) dep updates (@contra) +- [#48](https://github.com/gulpjs/vinyl/pull/48) Update docs for `path` and `history` (@jmm) +- [231f32a](https://github.com/gulpjs/vinyl/commit/231f32a375aa9147d0a41ffd1ace773c45e66ee5) Document `path`. (@jmm) +- [93df183](https://github.com/gulpjs/vinyl/commit/93df18374b62de32c76862baf73e92f33b04882a) Document `options.history`. (@jmm) +- [2ed6a01](https://github.com/gulpjs/vinyl/commit/2ed6a012c03a78b46f9d41034969898a15fdfe15) Correct `options.path` default value docs. (@jmm) +- [edf1ecb](https://github.com/gulpjs/vinyl/commit/edf1ecb0698f355e137f9361a9a9a2581ca485e5) Document `history`. (@jmm) +- [#45](https://github.com/gulpjs/vinyl/pull/45) Update dependencies and devDependencies (@shinnn) +- [f1f9dfb](https://github.com/gulpjs/vinyl/commit/f1f9dfbb1346b608226e5847161bf48e0caa2c1e) update test script (@shinnn) +- [0737ef4](https://github.com/gulpjs/vinyl/commit/0737ef489f9cfffa2494b06edaab9a032f00eb7e) update dependencies and devDependencies (@shinnn) +- [#43](https://github.com/gulpjs/vinyl/pull/43) Document `file.clone()` arguments (@pascalduez) +- [3c5e95d](https://github.com/gulpjs/vinyl/commit/3c5e95d5f482ea9f28dd2d78b83166723cd121bb) Document `file.clone()` arguments (@pascalduez) + +### v0.4.6 (2014/12/03 06:15 +00:00) +- [8255a5f](https://github.com/gulpjs/vinyl/commit/8255a5f1de7fecb1cd5e7ba7ac1ec997395f6be1) 0.4.6 (@contra) +- [37dafeb](https://github.com/gulpjs/vinyl/commit/37dafeb8cb0b33424e77fe67a094517925be2bef) dep update (@contra) + +### v0.4.5 (2014/11/13 23:23 +00:00) +- [a7a8c68](https://github.com/gulpjs/vinyl/commit/a7a8c68a1df914b1f486a54a97b68e9186699d33) 0.4.5 (@contra) +- [ec094b4](https://github.com/gulpjs/vinyl/commit/ec094b43e36512894142baacef26dfffc5827114) reduce size by switching off lodash (@contra) + +### v0.4.4 (2014/11/13 22:59 +00:00) +- [61834c9](https://github.com/gulpjs/vinyl/commit/61834c9429f2e6883a18f377bc5893031ea1c94f) 0.4.4 (@contra) +- [fd887b3](https://github.com/gulpjs/vinyl/commit/fd887b3d21ed47c2b4cf40b0c0ed7b2df9048b09) ignore some files for size reasons (@contra) +- [#37](https://github.com/gulpjs/vinyl/pull/37) Don't package coverage into NPM (@Dapperbot) +- [9b811b8](https://github.com/gulpjs/vinyl/commit/9b811b86529e2b4b0cc20936a6697b3d9df503a2) Don't package coverage into NPM (@lotyrin) + +### v0.4.3 (2014/09/01 18:17 +00:00) +- [6eae432](https://github.com/gulpjs/vinyl/commit/6eae432519b007c313a8df83b093adfb97a2944c) 0.4.3 (@contra) +- [d220c85](https://github.com/gulpjs/vinyl/commit/d220c857259f0070ab38c7b50d90f184a919e472) fix funky history passing, closes #35 (@contra) + +### v0.4.2 (2014/08/29 15:58 +00:00) +- [f33d6d5](https://github.com/gulpjs/vinyl/commit/f33d6d5c1b9d1f83e238521651114beb90a01019) 0.4.2 (@contra) +- [cd0d042](https://github.com/gulpjs/vinyl/commit/cd0d04272297363f27f8456818dbf675618939c3) remove native clone (@contra) +- [e4d8b99](https://github.com/gulpjs/vinyl/commit/e4d8b99c21a50700afd17173e1f3a2076e6fe860) minor speed enhancements (@contra) +- [2353e39](https://github.com/gulpjs/vinyl/commit/2353e3996ac67629da92c2af906bdfdbc6978065) minor speed ups (@contra) + +### v0.4.1 (2014/08/29 14:34 +00:00) +- [0014b9b](https://github.com/gulpjs/vinyl/commit/0014b9bf4166fb5cbe94c439201752cda7991a70) 0.4.1 (@contra) +- [0142513](https://github.com/gulpjs/vinyl/commit/0142513b0727ad6a018b0944fea2bb4966d8bbfa) fix history cloning bug (@contra) + +### v0.4.0 (2014/08/29 07:07 +00:00) +- [80d3f61](https://github.com/gulpjs/vinyl/commit/80d3f61445b347fc1c34f462f0ab800644e90e04) 0.4.0 (@contra) +- [#33](https://github.com/gulpjs/vinyl/pull/33) Clone stream (@popomore) +- [d37b57b](https://github.com/gulpjs/vinyl/commit/d37b57bba0aa1fba18d9fecec3513ac4e61b27cd) coverage 100% :sparkles: (@popomore) +- [b5a62f0](https://github.com/gulpjs/vinyl/commit/b5a62f0ede71bdeae957e8653e6ccbdca998879c) fix testcase and delete duplicate testcase (@popomore) +- [fb1b15d](https://github.com/gulpjs/vinyl/commit/fb1b15da472647743eb4e829b99f64d6d9f751fa) Adding more test (@nfroidure) +- [acea889](https://github.com/gulpjs/vinyl/commit/acea8894e9d983d8037641b4ff6f08b666056979) Fixing the clone method (@nfroidure) +- [#32](https://github.com/gulpjs/vinyl/pull/32) improve clone (@popomore) +- [037e830](https://github.com/gulpjs/vinyl/commit/037e8300b75fdddf9c3e003fd205da7ec13b9157) object should multiline (@popomore) +- [7724121](https://github.com/gulpjs/vinyl/commit/7724121194a4ac94fb23a0048ff926d00a784ecc) pass jshint (@popomore) +- [f76a921](https://github.com/gulpjs/vinyl/commit/f76a9211b8b495d81074884d8ea6454a20bba349) use node-v8-clone for performance, fallback to lodash #29 (@popomore) +- [7638f07](https://github.com/gulpjs/vinyl/commit/7638f072bf33a427ec8324a0fb463f73cb9fc8f2) option to not clone buffer #16 (@popomore) +- [6bfd73c](https://github.com/gulpjs/vinyl/commit/6bfd73cc459907a06ce9affc373599ffb8130c08) copy all attributes deeply #29 (@popomore) +- [b34f813](https://github.com/gulpjs/vinyl/commit/b34f8135d47e0a2ba3be6f769729ba66931b3234) add testcase for clone history (@popomore) +- [a913edf](https://github.com/gulpjs/vinyl/commit/a913edf1dd91c5bdcfc9ff3149a94eae131006aa) fix mixed quote and unused variable (@popomore) + +### v0.3.3 (2014/08/28 13:50 +00:00) +- [c801d3d](https://github.com/gulpjs/vinyl/commit/c801d3dc354383cf2656338d63908ec2983e3612) 0.3.3 (@contra) +- [f13970e](https://github.com/gulpjs/vinyl/commit/f13970e3cc5d1d730f94316daeee5b5c0e6c00f3) fix jshint on tests (@contra) +- [6186101](https://github.com/gulpjs/vinyl/commit/61861017bc22a786a026730cf5c55d23c657abea) closes #31 (@contra) +- [#24](https://github.com/gulpjs/vinyl/pull/24) path get/set for recording path change (@popomore) +- [6eab1c4](https://github.com/gulpjs/vinyl/commit/6eab1c4f1376aec901d8869d3d410953f1c93e9f) done (@contra) + +### v0.3.2 (2014/07/30 23:22 +00:00) +- [44ef836](https://github.com/gulpjs/vinyl/commit/44ef8369e1a0a7ba01da4608d01166c5a5d8cbe1) 0.3.2 (@contra) +- [ae28ff2](https://github.com/gulpjs/vinyl/commit/ae28ff200c034e9a40babb38886cdc7ef97a0f25) oops, thats what i get for coding from a car (@contra) + +### v0.3.1 (2014/07/30 22:35 +00:00) +- [03b7578](https://github.com/gulpjs/vinyl/commit/03b75789e58b43bdaef9ca166e4062b8ccfdefb9) 0.3.1 (@contra) +- [64850ff](https://github.com/gulpjs/vinyl/commit/64850ffdf4d31b35ac1160d0d495644cadd52914) fix deep deps, closes #28 (@contra) + +### v0.3.0 (2014/07/19 04:57 +00:00) +- [dcb77f3](https://github.com/gulpjs/vinyl/commit/dcb77f3246d1011a430c20f883eb89c520206ca6) 0.3.0 (@contra) +- [#27](https://github.com/gulpjs/vinyl/pull/27) Clone custom properties (@vweevers) +- [95710de](https://github.com/gulpjs/vinyl/commit/95710de62f4c1234a244a6818b5e39d92ea7b9a8) fix relative path test for windows (@vweevers) +- [e493187](https://github.com/gulpjs/vinyl/commit/e493187b3f2fd1485077f09e73e669407ac077d3) clone custom properties (@laurelnaiad) +- [e50ceac](https://github.com/gulpjs/vinyl/commit/e50ceacfc3daa825e111976ba4192cb93c80bfe2) throw when set path is null (@popomore) +- [7c71bf3](https://github.com/gulpjs/vinyl/commit/7c71bf3d806a98730a0ce5edd56c0b8f1f42e8f0) remove initialize of this.path (@popomore) +- [d95023f](https://github.com/gulpjs/vinyl/commit/d95023f6604a990d38e4f5b332c7916ceb012366) delete this._path :tongue: (@popomore) +- [f3f9be0](https://github.com/gulpjs/vinyl/commit/f3f9be0f3d76b4125353cd936731f70015d44284) path get/set for recording path change #19 (@popomore) +- [#21](https://github.com/gulpjs/vinyl/pull/21) LICENSE: Remove executable mode (@felixrabe) +- [#22](https://github.com/gulpjs/vinyl/pull/22) Travis: Dump node 0.9 - travis-ci/travis-ci#2251 (@felixrabe) +- [70a2193](https://github.com/gulpjs/vinyl/commit/70a219346c00e0db6be1a0aa55c183e7d5b80ad1) Travis: Dump node 0.9 - travis-ci/travis-ci#2251 (@felixrabe) +- [460eed5](https://github.com/gulpjs/vinyl/commit/460eed58de9cb04d44e35b6bebbfbaea9146015f) LICENSE: Remove executable mode (@felixrabe) +- [#18](https://github.com/gulpjs/vinyl/pull/18) fix typo (@vvakame) +- [1783e7f](https://github.com/gulpjs/vinyl/commit/1783e7f031ecfb118ee9b43971a72be264caa144) fix typo (@vvakame) +- [#11](https://github.com/gulpjs/vinyl/pull/11) Correct README about pipe's end option. (@shuhei) +- [1824ec9](https://github.com/gulpjs/vinyl/commit/1824ec9cefd276557b7338dfdbd54922599f020a) Correct README about pipe's end option. (@shuhei) +- [f49b9c3](https://github.com/gulpjs/vinyl/commit/f49b9c325229754229726ed530c579e4ac23252b) remove dead line (@contra) +- [1ca8e46](https://github.com/gulpjs/vinyl/commit/1ca8e463259c2a395d5d41b528b04a89a953f6b7) dep update, new coveralls stuff (@contra) +- [f00767b](https://github.com/gulpjs/vinyl/commit/f00767bf8b61ca8a7b25f3ebd3dde297fa2dafd7) bump (@contra) +- [#8](https://github.com/gulpjs/vinyl/pull/8) Correct File.clone() treatment of File.stats (@hughsk) +- [bc3acf7](https://github.com/gulpjs/vinyl/commit/bc3acf7b1ed712d70e7d8cb4f6e5248124743ec7) Add test for new File.clone() functionality (@hughsk) +- [dd668fb](https://github.com/gulpjs/vinyl/commit/dd668fb5aaed02cfb0f63a58f027c937dd7e0467) Use clone-stats module to clone fs.Stats instances. (@hughsk) +- [b6244c5](https://github.com/gulpjs/vinyl/commit/b6244c52d3bf9bd87bd6b926f0486f407627f7e0) Correct File.clone() treatment of File.stats (@hughsk) +- [796ba8b](https://github.com/gulpjs/vinyl/commit/796ba8b5ddd658fed3393c7d0a0d7bea7befa1b1) 0.2.1 - fixes #2 (@contra) +- [bffa6a4](https://github.com/gulpjs/vinyl/commit/bffa6a4e323e18e084b5b1444b4537aa3fb3e109) vinyl-fs movement? (@contra) +- [cfaa0a0](https://github.com/gulpjs/vinyl/commit/cfaa0a02b7794e493f600d1d36b288294a278e6c) fix isDirectory tests (@contra) +- [05d1f1b](https://github.com/gulpjs/vinyl/commit/05d1f1b741960cce8e8d2702d326ebb0187935ad) add isDirectory (@contra) +- [76580e5](https://github.com/gulpjs/vinyl/commit/76580e573870885580ac00dd9175e562d008cb81) bump to 0.1.0 (@contra) +- [f7a15c4](https://github.com/gulpjs/vinyl/commit/f7a15c41ac5e82de930e161f6b109ae3336d337b) readme 0.9+ (@contra) +- [fc7f192](https://github.com/gulpjs/vinyl/commit/fc7f1925b2a18466f19db062ad28df02f1db823b) drop 0.8 support (@contra) +- [c004b6c](https://github.com/gulpjs/vinyl/commit/c004b6c857d03a292e8ecd5020ad0420d82dbf1e) target 0.8+ (@contra) +- [edf20bd](https://github.com/gulpjs/vinyl/commit/edf20bd8563fca6e8a568b9d08fb728f6705573c) add small example (@contra) +- [d8c63fe](https://github.com/gulpjs/vinyl/commit/d8c63fe0fd16cf13db2d9a6452c979ec12779428) 0.0.1 (@contra)
\ No newline at end of file diff --git a/node_modules/vinyl-fs/node_modules/vinyl/LICENSE b/node_modules/vinyl-fs/node_modules/vinyl/LICENSE new file mode 100644 index 000000000..4f482f9ba --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 Fractal <contact@wearefractal.com> + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/vinyl-fs/node_modules/vinyl/README.md b/node_modules/vinyl-fs/node_modules/vinyl/README.md new file mode 100644 index 000000000..d4d2c6136 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/README.md @@ -0,0 +1,265 @@ +# vinyl [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Dependency Status][depstat-image]][depstat-url] + +## Information +<table><tr><td>Package</td><td>vinyl</td></tr><tr><td>Description</td><td>A virtual file format</td></tr><tr><td>Node Version</td><td>>= 0.9</td></tr></table> + +## What is this? +Read this for more info about how this plays into the grand scheme of things [https://medium.com/@eschoff/3828e8126466](https://medium.com/@eschoff/3828e8126466) + +## File + +```javascript +var File = require('vinyl'); + +var coffeeFile = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee", + contents: new Buffer("test = 123") +}); +``` + +### isVinyl +When checking if an object is a vinyl file, you should not use instanceof. Use the isVinyl function instead. + +```js +var File = require('vinyl'); + +var dummy = new File({stuff}); +var notAFile = {}; + +File.isVinyl(dummy); // true +File.isVinyl(notAFile); // false +``` + +### isCustomProp +Vinyl checks if a property is not managed internally, such as `sourceMap`. This is than used in `constructor(options)` when setting, and `clone()` when copying properties. + +```js +var File = require('vinyl'); + +File.isCustomProp('sourceMap'); // true +File.isCustomProp('path'); // false -> internal getter/setter +``` + +Read more in [Extending Vinyl](#extending-vinyl). + +### constructor(options) +#### options.cwd +Type: `String`<br><br>Default: `process.cwd()` + +#### options.base +Used for relative pathing. Typically where a glob starts. + +Type: `String`<br><br>Default: `options.cwd` + +#### options.path +Full path to the file. + +Type: `String`<br><br>Default: `undefined` + +#### options.history +Path history. Has no effect if `options.path` is passed. + +Type: `Array`<br><br>Default: `options.path ? [options.path] : []` + +#### options.stat +The result of an fs.stat call. See [fs.Stats](http://nodejs.org/api/fs.html#fs_class_fs_stats) for more information. + +Type: `fs.Stats`<br><br>Default: `null` + +#### options.contents +File contents. + +Type: `Buffer, Stream, or null`<br><br>Default: `null` + +#### options.{custom} +Any other option properties will just be assigned to the new File object. + +```js +var File = require('vinyl'); + +var file = new File({foo: 'bar'}); +file.foo === 'bar'; // true +``` + +### isBuffer() +Returns true if file.contents is a Buffer. + +### isStream() +Returns true if file.contents is a Stream. + +### isNull() +Returns true if file.contents is null. + +### clone([opt]) +Returns a new File object with all attributes cloned.<br>By default custom attributes are deep-cloned. + +If opt or opt.deep is false, custom attributes will not be deep-cloned. + +If opt.contents is false, it will copy file.contents Buffer's reference. + +### pipe(stream[, opt]) +If file.contents is a Buffer, it will write it to the stream. + +If file.contents is a Stream, it will pipe it to the stream. + +If file.contents is null, it will do nothing. + +If opt.end is false, the destination stream will not be ended (same as node core). + +Returns the stream. + +### inspect() +Returns a pretty String interpretation of the File. Useful for console.log. + +### contents +The [Stream](https://nodejs.org/api/stream.html#stream_stream) or [Buffer](https://nodejs.org/api/buffer.html#buffer_class_buffer) of the file as it was passed in via options, or as the result of modification. + +For example: + +```js +if (file.isBuffer()) { + console.log(file.contents.toString()); // logs out the string of contents +} +``` + +### path +Absolute pathname string or `undefined`. Setting to a different value pushes the old value to `history`. + +### history +Array of `path` values the file object has had, from `history[0]` (original) through `history[history.length - 1]` (current). `history` and its elements should normally be treated as read-only and only altered indirectly by setting `path`. + +### relative +Returns path.relative for the file base and file path. + +Example: + +```javascript +var file = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee" +}); + +console.log(file.relative); // file.coffee +``` + +### dirname +Gets and sets path.dirname for the file path. + +Example: + +```javascript +var file = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee" +}); + +console.log(file.dirname); // /test + +file.dirname = '/specs'; + +console.log(file.dirname); // /specs +console.log(file.path); // /specs/file.coffee +``` + +### basename +Gets and sets path.basename for the file path. + +Example: + +```javascript +var file = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee" +}); + +console.log(file.basename); // file.coffee + +file.basename = 'file.js'; + +console.log(file.basename); // file.js +console.log(file.path); // /test/file.js +``` + +### stem +Gets and sets stem (filename without suffix) for the file path. + +Example: + +```javascript +var file = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee" +}); + +console.log(file.stem); // file + +file.stem = 'foo'; + +console.log(file.stem); // foo +console.log(file.path); // /test/foo.coffee +``` + +### extname +Gets and sets path.extname for the file path. + +Example: + +```javascript +var file = new File({ + cwd: "/", + base: "/test/", + path: "/test/file.coffee" +}); + +console.log(file.extname); // .coffee + +file.extname = '.js'; + +console.log(file.extname); // .js +console.log(file.path); // /test/file.js +``` + +## Extending Vinyl +When extending Vinyl into your own class with extra features, you need to think about a few things. + +When you have your own properties that are managed internally, you need to extend the static `isCustomProp` method to return `false` when one of these properties is queried. + +```js +const File = require('vinyl'); + +const builtInProps = ['foo', '_foo']; + +class SuperFile extends File { + constructor(options) { + super(options); + this._foo = 'example internal read-only value'; + } + + get foo() { + return this._foo; + } + + static isCustomProp(name) { + return super.isCustomProp(name) && builtInProps.indexOf(name) === -1; + } +} +``` + +This makes properties `foo` and `_foo` ignored when cloning, and when passed in options to `constructor(options)` so they don't get assigned to the new object. + +Same goes for `clone()`. If you have your own internal stuff that needs special handling during cloning, you should extend it to do so. + +[npm-url]: https://npmjs.org/package/vinyl +[npm-image]: https://badge.fury.io/js/vinyl.svg +[travis-url]: https://travis-ci.org/gulpjs/vinyl +[travis-image]: https://travis-ci.org/gulpjs/vinyl.svg?branch=master +[coveralls-url]: https://coveralls.io/github/gulpjs/vinyl +[coveralls-image]: https://coveralls.io/repos/github/gulpjs/vinyl/badge.svg +[depstat-url]: https://david-dm.org/gulpjs/vinyl +[depstat-image]: https://david-dm.org/gulpjs/vinyl.svg diff --git a/node_modules/vinyl-fs/node_modules/vinyl/index.js b/node_modules/vinyl-fs/node_modules/vinyl/index.js new file mode 100644 index 000000000..5a1fe551d --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/index.js @@ -0,0 +1,270 @@ +var path = require('path'); +var clone = require('clone'); +var cloneStats = require('clone-stats'); +var cloneBuffer = require('./lib/cloneBuffer'); +var isBuffer = require('./lib/isBuffer'); +var isStream = require('./lib/isStream'); +var isNull = require('./lib/isNull'); +var inspectStream = require('./lib/inspectStream'); +var Stream = require('stream'); +var replaceExt = require('replace-ext'); + +var builtInFields = [ + '_contents', 'contents', 'stat', 'history', 'path', 'base', 'cwd', +]; + +function File(file) { + var self = this; + + if (!file) { + file = {}; + } + + // Record path change + var history = file.path ? [file.path] : file.history; + this.history = history || []; + + this.cwd = file.cwd || process.cwd(); + this.base = file.base || this.cwd; + + // Stat = files stats object + this.stat = file.stat || null; + + // Contents = stream, buffer, or null if not read + this.contents = file.contents || null; + + this._isVinyl = true; + + // Set custom properties + Object.keys(file).forEach(function(key) { + if (self.constructor.isCustomProp(key)) { + self[key] = file[key]; + } + }); +} + +File.prototype.isBuffer = function() { + return isBuffer(this.contents); +}; + +File.prototype.isStream = function() { + return isStream(this.contents); +}; + +File.prototype.isNull = function() { + return isNull(this.contents); +}; + +// TODO: Should this be moved to vinyl-fs? +File.prototype.isDirectory = function() { + return this.isNull() && this.stat && this.stat.isDirectory(); +}; + +File.prototype.clone = function(opt) { + var self = this; + + if (typeof opt === 'boolean') { + opt = { + deep: opt, + contents: true, + }; + } else if (!opt) { + opt = { + deep: true, + contents: true, + }; + } else { + opt.deep = opt.deep === true; + opt.contents = opt.contents !== false; + } + + // Clone our file contents + var contents; + if (this.isStream()) { + contents = this.contents.pipe(new Stream.PassThrough()); + this.contents = this.contents.pipe(new Stream.PassThrough()); + } else if (this.isBuffer()) { + contents = opt.contents ? cloneBuffer(this.contents) : this.contents; + } + + var file = new this.constructor({ + cwd: this.cwd, + base: this.base, + stat: (this.stat ? cloneStats(this.stat) : null), + history: this.history.slice(), + contents: contents, + }); + + // Clone our custom properties + Object.keys(this).forEach(function(key) { + if (self.constructor.isCustomProp(key)) { + file[key] = opt.deep ? clone(self[key], true) : self[key]; + } + }); + return file; +}; + +File.prototype.pipe = function(stream, opt) { + if (!opt) { + opt = {}; + } + if (typeof opt.end === 'undefined') { + opt.end = true; + } + + if (this.isStream()) { + return this.contents.pipe(stream, opt); + } + if (this.isBuffer()) { + if (opt.end) { + stream.end(this.contents); + } else { + stream.write(this.contents); + } + return stream; + } + + // Check if isNull + if (opt.end) { + stream.end(); + } + return stream; +}; + +File.prototype.inspect = function() { + var inspect = []; + + // Use relative path if possible + var filePath = (this.base && this.path) ? this.relative : this.path; + + if (filePath) { + inspect.push('"' + filePath + '"'); + } + + if (this.isBuffer()) { + inspect.push(this.contents.inspect()); + } + + if (this.isStream()) { + inspect.push(inspectStream(this.contents)); + } + + return '<File ' + inspect.join(' ') + '>'; +}; + +File.isCustomProp = function(key) { + return builtInFields.indexOf(key) === -1; +}; + +File.isVinyl = function(file) { + return (file && file._isVinyl === true) || false; +}; + +// Virtual attributes +// Or stuff with extra logic +Object.defineProperty(File.prototype, 'contents', { + get: function() { + return this._contents; + }, + set: function(val) { + if (!isBuffer(val) && !isStream(val) && !isNull(val)) { + throw new Error('File.contents can only be a Buffer, a Stream, or null.'); + } + this._contents = val; + }, +}); + +// TODO: Should this be moved to vinyl-fs? +Object.defineProperty(File.prototype, 'relative', { + get: function() { + if (!this.base) { + throw new Error('No base specified! Can not get relative.'); + } + if (!this.path) { + throw new Error('No path specified! Can not get relative.'); + } + return path.relative(this.base, this.path); + }, + set: function() { + throw new Error('File.relative is generated from the base and path attributes. Do not modify it.'); + }, +}); + +Object.defineProperty(File.prototype, 'dirname', { + get: function() { + if (!this.path) { + throw new Error('No path specified! Can not get dirname.'); + } + return path.dirname(this.path); + }, + set: function(dirname) { + if (!this.path) { + throw new Error('No path specified! Can not set dirname.'); + } + this.path = path.join(dirname, path.basename(this.path)); + }, +}); + +Object.defineProperty(File.prototype, 'basename', { + get: function() { + if (!this.path) { + throw new Error('No path specified! Can not get basename.'); + } + return path.basename(this.path); + }, + set: function(basename) { + if (!this.path) { + throw new Error('No path specified! Can not set basename.'); + } + this.path = path.join(path.dirname(this.path), basename); + }, +}); + +// Property for getting/setting stem of the filename. +Object.defineProperty(File.prototype, 'stem', { + get: function() { + if (!this.path) { + throw new Error('No path specified! Can not get stem.'); + } + return path.basename(this.path, this.extname); + }, + set: function(stem) { + if (!this.path) { + throw new Error('No path specified! Can not set stem.'); + } + this.path = path.join(path.dirname(this.path), stem + this.extname); + }, +}); + +Object.defineProperty(File.prototype, 'extname', { + get: function() { + if (!this.path) { + throw new Error('No path specified! Can not get extname.'); + } + return path.extname(this.path); + }, + set: function(extname) { + if (!this.path) { + throw new Error('No path specified! Can not set extname.'); + } + this.path = replaceExt(this.path, extname); + }, +}); + +Object.defineProperty(File.prototype, 'path', { + get: function() { + return this.history[this.history.length - 1]; + }, + set: function(path) { + if (typeof path !== 'string') { + throw new Error('path should be string'); + } + + // Record history only when path changed + if (path && path !== this.path) { + this.history.push(path); + } + }, +}); + +module.exports = File; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/lib/cloneBuffer.js b/node_modules/vinyl-fs/node_modules/vinyl/lib/cloneBuffer.js new file mode 100644 index 000000000..89f09eda1 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/lib/cloneBuffer.js @@ -0,0 +1,7 @@ +var Buffer = require('buffer').Buffer; + +module.exports = function(buf) { + var out = new Buffer(buf.length); + buf.copy(out); + return out; +}; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/lib/inspectStream.js b/node_modules/vinyl-fs/node_modules/vinyl/lib/inspectStream.js new file mode 100644 index 000000000..942f23d8c --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/lib/inspectStream.js @@ -0,0 +1,15 @@ +var isStream = require('./isStream'); + +module.exports = function(stream) { + if (!isStream(stream)) { + return; + } + + var streamType = stream.constructor.name; + // Avoid StreamStream + if (streamType === 'Stream') { + streamType = ''; + } + + return '<' + streamType + 'Stream>'; +}; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/lib/isBuffer.js b/node_modules/vinyl-fs/node_modules/vinyl/lib/isBuffer.js new file mode 100644 index 000000000..8a767d174 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/lib/isBuffer.js @@ -0,0 +1 @@ +module.exports = require('buffer').Buffer.isBuffer; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/lib/isNull.js b/node_modules/vinyl-fs/node_modules/vinyl/lib/isNull.js new file mode 100644 index 000000000..7f22c63ae --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/lib/isNull.js @@ -0,0 +1,3 @@ +module.exports = function(v) { + return v === null; +}; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/lib/isStream.js b/node_modules/vinyl-fs/node_modules/vinyl/lib/isStream.js new file mode 100644 index 000000000..6b54e123b --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/lib/isStream.js @@ -0,0 +1,5 @@ +var Stream = require('stream').Stream; + +module.exports = function(o) { + return !!o && o instanceof Stream; +}; diff --git a/node_modules/vinyl-fs/node_modules/vinyl/package.json b/node_modules/vinyl-fs/node_modules/vinyl/package.json new file mode 100644 index 000000000..b4c815761 --- /dev/null +++ b/node_modules/vinyl-fs/node_modules/vinyl/package.json @@ -0,0 +1,44 @@ +{ + "name": "vinyl", + "description": "A virtual file format", + "version": "1.2.0", + "homepage": "http://github.com/gulpjs/vinyl", + "repository": "git://github.com/gulpjs/vinyl.git", + "author": "Fractal <contact@wearefractal.com> (http://wearefractal.com/)", + "main": "./index.js", + "files": [ + "index.js", + "lib" + ], + "dependencies": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + }, + "devDependencies": { + "buffer-equal": "0.0.1", + "eslint": "^1.7.3", + "eslint-config-gulp": "^2.0.0", + "event-stream": "^3.1.0", + "github-changes": "^1.0.1", + "istanbul": "^0.3.0", + "istanbul-coveralls": "^1.0.1", + "jscs": "^2.3.5", + "jscs-preset-gulp": "^1.0.0", + "lodash.templatesettings": "^3.1.0", + "mocha": "^2.0.0", + "rimraf": "^2.2.5", + "should": "^7.0.0" + }, + "scripts": { + "lint": "eslint . && jscs *.js lib/ test/", + "pretest": "npm run lint", + "test": "mocha", + "coveralls": "istanbul cover _mocha && istanbul-coveralls", + "changelog": "github-changes -o gulpjs -r vinyl -b master -f ./CHANGELOG.md --order-semver --use-commit-body" + }, + "engines": { + "node": ">= 0.9" + }, + "license": "MIT" +} diff --git a/node_modules/vinyl-fs/package.json b/node_modules/vinyl-fs/package.json new file mode 100644 index 000000000..d1c513dbe --- /dev/null +++ b/node_modules/vinyl-fs/package.json @@ -0,0 +1,61 @@ +{ + "name": "vinyl-fs", + "description": "Vinyl adapter for the file system", + "version": "2.4.4", + "homepage": "http://github.com/wearefractal/vinyl-fs", + "repository": "git://github.com/wearefractal/vinyl-fs.git", + "author": "Fractal <contact@wearefractal.com> (http://wearefractal.com/)", + "main": "./index.js", + "files": [ + "index.js", + "lib" + ], + "dependencies": { + "duplexify": "^3.2.0", + "glob-stream": "^5.3.2", + "graceful-fs": "^4.0.0", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "^0.3.0", + "lazystream": "^1.0.0", + "lodash.isequal": "^4.0.0", + "merge-stream": "^1.0.0", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.0", + "readable-stream": "^2.0.4", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^1.0.0", + "through2": "^2.0.0", + "through2-filter": "^2.0.0", + "vali-date": "^1.0.0", + "vinyl": "^1.0.0" + }, + "devDependencies": { + "buffer-equal": "^0.0.1", + "default-resolution": "^1.0.1", + "del": "^2.2.0", + "eslint": "^1.10.3", + "eslint-config-gulp": "^2.0.0", + "expect": "^1.14.0", + "github-changes": "^1.0.1", + "istanbul": "^0.3.0", + "istanbul-coveralls": "^1.0.1", + "jscs": "^2.4.0", + "jscs-preset-gulp": "^1.0.0", + "mocha": "^2.0.0", + "mocha-lcov-reporter": "^1.0.0", + "rimraf": "^2.2.5", + "should": "^7.0.0", + "sinon": "^1.10.3" + }, + "scripts": { + "lint": "eslint . && jscs index.js lib/ test/", + "test": "npm run lint && mocha", + "cover": "istanbul cover _mocha", + "coveralls": "npm run cover && istanbul-coveralls", + "changelog": "github-changes -o gulpjs -r vinyl-fs -b master -f ./CHANGELOG.md --order-semver --use-commit-body" + }, + "engines": { + "node": ">=0.10" + }, + "license": "MIT" +} |