{"_id":"scandirectory","_rev":"88-a8830355070af6995cb3935b5d4b020c","name":"scandirectory","description":"Scan a directory recursively with a lot of control and power","dist-tags":{"latest":"8.1.1","next":"8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c"},"versions":{"2.5.0":{"name":"scandirectory","version":"2.5.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"npmdownloads":true,"david":true,"daviddev":true,"gratipay":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a","wishlist":"http://amzn.com/w/2F8TXKSNAFG4V"},"keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"sfrdmn","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"http://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.4"},"dependencies":{"ignorefs":"^1.0.0","safefs":"^3.1.2","taskgroup":"^4.0.5"},"devDependencies":{"coffee-script":"~1.8.0","joe":"~1.5.0","joe-reporter-console":"~1.2.1","chai":"~1.10.0","projectz":"~0.3.17"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/scandirectory-test.js"},"main":"./out/lib/scandirectory","cakeConfiguration":{"COFFEE_SRC_PATH":"src"},"gitHead":"c28fb0baaf257962a9caa7d541fb963a015dac4a","_id":"scandirectory@2.5.0","_shasum":"6ce03f54a090b668e3cbedbf20edf9e310593e72","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"6ce03f54a090b668e3cbedbf20edf9e310593e72","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz","integrity":"sha512-uT0CW8Z3YyoIQs2gXIZgR5miLkN/UNl+5IptQIq1YfD2NhFldikYlC3dkOE6MvF15OZMOxjg8yOjx5J/vIIPUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4Uu2IoFZTySvetqOgFrrHl3z3bMZucv9VOSmN4oPpQAIhAOM8jvVEljUDsw77EsanWbBnmQP2vrTaYwvgEyf1fKqs"}]}},"3.0.0":{"name":"scandirectory","version":"3.0.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require","entry":"index.js","directory":"source","syntaxes":["javascript","esnext","require","const","let"]},{"description":"Babel Compiled + ES2015 + Require","entry":"index.js","directory":"es2015","syntaxes":["javascript","es2015","require"]}],"main":"index.js","scripts":{"setup":"npm install","clean":"rm -Rf ./docs ./es2015","compile":"npm run compile:es2015","compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","meta":"npm run meta:projectz","meta:projectz":"projectz compile","prepare":"npm run compile && npm run test && npm run meta","release":"npm run prepare && npm run release:publish && npm run release:tag && npm run release:push","release:publish":"npm publish","release:tag":"git tag v$npm_package_version -a","release:push":"git push origin master && git push origin --tags","pretest":"npm run test:eslint","test:eslint":"eslint ./source","test":"node --harmony ./test.js"},"dependencies":{"editions":"^1.3.1","ignorefs":"^1.1.1","readdir-cluster":"^1.1.0"},"devDependencies":{"assert-helpers":"^4.4.0","babel-cli":"^6.16.0","babel-preset-es2015":"^6.16.0","eslint":"^2.3.0","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.3.0"},"gitHead":"09c7cae1971a9cf2340f5261718ede1663670b57","_id":"scandirectory@3.0.0","_shasum":"c75a1b33b7af775a5820bc8690339ad3a2210e54","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.0","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"c75a1b33b7af775a5820bc8690339ad3a2210e54","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-3.0.0.tgz","integrity":"sha512-mAvlC+NlJ6M+IUxh+bzRnFdmXoTFXzSKZK3Oa4I0mBWyFLoeAkAEn7HPE2GQHZhli+d7zK8ErqHdGuGZu5Jj0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDHbkechSIbdKNjrP/vZErMf1+yDEHWJqR10vOQbKryVAiAEmpArco5mqiK5aAWdx8N8T8+NfJmLbzsJRVoun8JJUQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/scandirectory-3.0.0.tgz_1476949555496_0.008781386772170663"},"directories":{}},"3.0.1":{"name":"scandirectory","version":"3.0.1","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require","entry":"index.js","directory":"source","syntaxes":["javascript","esnext","require","const","let"]},{"description":"Babel Compiled + ES2015 + Require","entry":"index.js","directory":"es2015","syntaxes":["javascript","es2015","require"]}],"main":"index.js","scripts":{"setup":"npm install","clean":"rm -Rf ./docs ./es2015","compile":"npm run compile:es2015","compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","meta":"npm run meta:projectz","meta:projectz":"projectz compile","prepare":"npm run compile && npm run test && npm run meta","release":"npm run prepare && npm run release:publish && npm run release:tag && npm run release:push","release:publish":"npm publish","release:tag":"git tag v$npm_package_version -a","release:push":"git push origin master && git push origin --tags","pretest":"npm run test:eslint","test:eslint":"eslint ./source","test":"node --harmony ./test.js"},"dependencies":{"editions":"^1.3.1","ignorefs":"^1.1.1","readdir-cluster":"^1.1.0"},"devDependencies":{"assert-helpers":"^4.4.0","babel-cli":"^6.16.0","babel-preset-es2015":"^6.16.0","eslint":"^2.3.0","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.3.0"},"gitHead":"390bef62bf1e9c87bab96d2f1b51298b5dcb960d","_id":"scandirectory@3.0.1","_shasum":"25dd201427c33cce4f8f40b2f37f2d03d07857ba","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.0","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"25dd201427c33cce4f8f40b2f37f2d03d07857ba","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-3.0.1.tgz","integrity":"sha512-dFvqNSP24t5zJFspynHTeU4Ml4jMcgjWxp6duPUp5BnuKRPV4Pd7ajgh6cvhFR9VucNYi+5zyVPL3aKv/yDRdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4rCp5YjUK72xE/xsCDmQ+EuJkn9mBkW4sgjSfRQJd2wIhAMTkbzeqf6JJydApO7XreURNb6fLQ2Lj9YtTJGA1o4EE"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/scandirectory-3.0.1.tgz_1476949695609_0.6489486154168844"},"directories":{}},"4.0.0":{"name":"scandirectory","version":"4.0.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for node.js with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","dependencies":{"editions":"^2.2.0","ignorefs":"^1.3.0","readdir-cluster":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.9.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":0.12},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"25c08407b198e2deb1a4bef662de766882732813","_id":"scandirectory@4.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-AjCZgdjHt11Nyt8Equu6QluMcsucnneNQJ88IU5cGPTKRJ5EvB6rNtSTrZX3uyH/5IG7LuY8wph/8g26q2LN/w==","shasum":"0dfd74eb4cd1146b0045af65659038fe44e95c47","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-4.0.0.tgz","fileCount":9,"unpackedSize":26039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy2wjCRA9TVsSAnZWagAAsIEQAIvHuTUb/AdHGXhx1DP7\njHG7tBUhsEB2e5bPtGVE9wgTfc3t2aSJbU2gv2GbtI1MvoejvgsiDg1xiQZg\nqxDCNYeSWj18qDbZ3q9fd2FWtv50rLmDmveRH6V+5XEoejiuXqFjUA1nEVah\ndWy4iTdvgwHCoOdX3V4k6F5Ctxw3VxDVZ54GGPKidk7Fu1IGQkxVGAkT9rUC\n/lSYQCBofaMayIcm312lRSG8mJQPQ4WdHT6cdfbEAxYg70T8mieXfMlDpuEg\n+lQ6RBPQYQHd5Zru/6IOPQRnUejofOHXT3ixgqzemn6nHIJSsNQpcg05EpDn\nmBo1q8+1gLlowEEbnUnzVMC9YdvdLu/PCz1bQV+G3xH4kiCYcv4OI0/rjo/4\nLbo6/JLCWiOTdsU7NzveRq5JJ4GCP/uExi1XFv9tRGga9IjGVyjXDJfBBPGd\nhtzpF1bqA0AA07S+SFynpgvABl+IHnC/I/fa9RUDDQ6MQIYlIMIGUsY+DQCy\nwfp9QxeWehAc7v80uoiGjdnMlyt9tyi/TnGA9HqomzDo9vr1FitKyR0LAAV5\nwhk/IryHxRhHRbtPhOtmYLHkVvi4fZVtZIqPYAYls/ctpGkScAJ+Yf3y7T78\noMtPntaEqDZrymcwL5twdFL+GJfSWuZBd/JDylEQgwdAC2DgfZ9Vz5R1M6e3\nDSLN\r\n=WzwD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCc6MZcdqCrrii+0Y+zh2I6WRAF4+W/+79KpcnubprI1wIhAK83KUYeo8aZlq6KVoEDdd+e6f6twn/ligT/hB0clJI5"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_4.0.0_1573612579084_0.6949191424997436"},"_hasShrinkwrap":false},"4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7":{"name":"scandirectory","version":"4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for node.js 0.12 with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","dependencies":{"editions":"^2.2.0","ignorefs":"^1.3.0","readdir-cluster":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.12"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"22afa91473b7816bdd58d330bd72022a6b98ebe7","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>scandirectory/edition-node-0.12/index.js</code> is esnext compiled for node.js 0.12 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-+xF9j8kkdfqu5wa5mIsGAfsrbP6XuPUOfwmUvRIysG3dlYnLBi4GxXhRziMEjNJXbBMHglVNCzOGpvmEMXnQcw==","shasum":"018392d54a643c35ad0894598bd25bbc2fe07fae","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7.tgz","fileCount":9,"unpackedSize":26307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy4PnCRA9TVsSAnZWagAAMV4P/1F75lLZJn3k5QHpkVyL\n41Xl4YPNcbKCy0rX2iprrQq3xXsO63yO0g5VZdKWMV+ADWJTopzowL+lW1gD\nzJloJfcxZhqxxVW+UZseu+eCmabtNnu01ilfVYydjRhL2kzi2ODMCv4pahHU\nF1oSwtcgUFoTs67m21+iw7tRSC9Hguzfzj+LO8eK/PXO9lOKJsSpSijtfQbd\nCNhwhuY/8QtLlSVsCEjb1dnuILSenuJiWRKAZTwIKYgcPhlqteRhJ77vJFGG\nOd0ChsCRukKpc+8DPyDLb1CPHcRnVDwbp7fv23XTcHgmqYRjCxRZI2MWe66a\n/1KaMDC5njc4XgTlLrl8EqOofgqNjHszt4LmiVJUt6xyiyspt1gAkCAcd0J5\nSi9ODzT4ptI8ARadqCLeZMG6r0oIdMdAqvxcbMxZL3FnEheeS/xoOw1bGbRn\nddO7cNdzmjKzqJiBwtfSZSf6XXgDIlproE3ftn+aD5nWcKsEdgHuB4+bq9O3\ne5YV+lKO4t1JX+KMQKkF2fSNI2BfuL1+hwM55cvDR071VT/f6o3kKfv++Meg\niRRlFzVK4AbVbJ9FkMnGb4YLJ0a85yG+jXwRFu5FSuOSNZ2+xOHsN/i52vjC\nSUshQYYL/QY8iV+TkcurQcDArkFspFeIPbtZJXsI4UGy3k0dn784OO1PZ4br\nsAla\r\n=DdPp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDCA3+NUHzX7ZnzqfCJXA7ev3xlZqqk+62HkYG2aU0YNgIhALj07A0gK+u2AGvEp4HDeU4nJzPRlLFZZwIwsQJkBF6O"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7_1573618663509_0.708943702892338"},"_hasShrinkwrap":false},"4.1.0":{"name":"scandirectory","version":"4.1.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for node.js 0.12 with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","dependencies":{"editions":"^2.2.0","ignorefs":"^1.3.0","readdir-cluster":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.12"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"22afa91473b7816bdd58d330bd72022a6b98ebe7","_id":"scandirectory@4.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-9Mg9kRJT/vdexKLLt+9jcwKmjiLxzt/rC/6CWfCNENlV5YzvaNRhHPkiNr/rNso7q0AuWQNfChS4BZPLWhPSGw==","shasum":"ef65faead0bda7753c3af9df3f5cf15d8a7238c4","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-4.1.0.tgz","fileCount":9,"unpackedSize":26250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy4RjCRA9TVsSAnZWagAAiMIP/0aZfXndwu6gV6Ea8XZq\nFjQeQazdnGn+4cbKas6Lglia0H7AkR+qEXDd6T2gs97nnnnTa7DImJkfJAiR\ncmvNUuEm+mmAzywAUFs3UdIYI1nxVBQSQHRQ29qR30XQKTslhUvjZiEe5HqT\n3WEbliyuoRV97kOV4ohetIY6uaAGIGeVXlh8FyhA95aZDUYrDWN4SGBHOXvk\ne+COu+v/8gfuItjsqD2OyPaMwMl+PFse4MpwyVd/keQwT/3bIQpt/Zv7wwB2\nbeGOvv5Lu5bSqLdyi6YefMJXIfxZbZQ22KQBC3gbrsqcK9Skqua7NcrbITsR\n4f1M8IP+vdzb3loZwc/i4tNomL3YRkxbLEC2CwBO3gXgeUXA4CYOcZMSqtLd\n3ZMt2Ca/+kOcMbDQSARoySY0E3cykzBwK+aaaugxgDJWATxcuYFyokyic2zA\nJRwgvRwyQnLQmCENuNdvxlrnCkiIa6an8fPGgp4Q0nMifsWAJzZCjZOJYTTF\nfhK+Jbd47eMlWp39KCCq0hbVA+zuF17C5gIDIDx/P/heZ+Fj5Et47FyrO2iR\naLCT95n2eL0LCu+zTkpvPTq8YzHUDeaovHXAtWyoII6bUnEWsPjhUVHZgGDq\nqNRAnzsRI0B8SQfB7eWcsFKyfVfio2zM0Q7G9kj3RB2wwrGyihJTwNfIFIpX\nSxyE\r\n=Uxw0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+XAOAY+tlhNLSsBj+dWYindXw9e3ddbOxQ9p+swcJLAIgNhAgGEeS55tBKAiOmmB36VKQ08kzF+84QFvvEuvQ4sA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_4.1.0_1573618787021_0.07219046063393697"},"_hasShrinkwrap":false},"4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804":{"name":"scandirectory","version":"4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for node.js 0.12 with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","dependencies":{"editions":"^2.2.0","ignorefs":"^1.3.0","readdir-cluster":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.12"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8b98b43458ac5173b6fceae8e93f32c3bfc5a804","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>scandirectory/edition-node-0.12/index.js</code> is esnext compiled for node.js 0.12 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-PM24CAq0az2iAd5RRFh4MXMYoYziC4ExTXvfrdf5VY0bFPQl8RUBte5UMmCIiTRYCPcU/cdS9n4A1YOvGxJK2w==","shasum":"298efa102e33788e59076b8b32f9a49a63ca065e","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804.tgz","fileCount":9,"unpackedSize":26307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIPxCRA9TVsSAnZWagAAf34P/jkvDljgGmkdbIL7/Z6E\n/HRQdmbctgngQLa/cuxI94Z7hv2j0QMvZp6ahLwDKITN+HsTEI7Xrs5d0NIN\nWxYNkXqbB6azP1GVb+W70a83vwVKTxvaSWcowyB1dJSqDjv8S7/nc7DnRVjd\nV3MrWb1xB06BBDbfb8NyNr73mr7+2ZxxvwJm2HlT6nb5ewHwfhymLYbviKbG\neHxEd4oEjbrL0cm7B2vi6IJ/gcP7n7m21AsDxRV1TGJ7NrtU8r5tjHIYH+kE\nXHGeiS3QWtdxgX3z1bruz/NVCupLAz7vLOz+JBDemC4NiF7CqB/iD432S4F8\nkvoI+K/fkZnEYhzxesvP35FSyiF3Rt7/jj7EV9jxkXR3f/M0j6jKK+ghaMAT\nha0OSUSMhFqWnBz1+2f70n4J+WoNMNk4BaqDsROfTVhbkg2JN3CGuVlGNA1Q\n+5d5vyeThRw+V+NbJtKoG5KxrnUSf+cC1sSf3/m6H0dEsZhYNZXBQL8GLxND\nokOb7vL6A1hPqp/s5EnRgSsR5AEvh1EwGt6kCDdpwB4zUQpAI7enTgY0gqLI\nSgNpoOchiFnhp0LEJzZLddodIMviifdGQcqLsS0Bc/wn/OGvonoBJdmZ5ebF\ncDsf5wwWZnYimUUzbSkJXQYGZ/Fzyu2wOUzK3MKho3TE3fqmtasojCKa/asY\nLG2P\r\n=EPfL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcNQNQFIYPd7bVPdt/r+jr/DKhYQxjksdDojjLbAXGbwIhAOQ9O2+JDaL+qoTuMb9KPA4ubDq5Uf4qIJBLYrCmREHv"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804_1573684208356_0.17689029850566795"},"_hasShrinkwrap":false},"4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee":{"name":"scandirectory","version":"4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for node.js 0.12 with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","dependencies":{"editions":"^2.2.0","ignorefs":"^1.3.0","readdir-cluster":"^1.1.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.12"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"b36c866b12a46925604c67dd70584a6b7726cfee","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>scandirectory/edition-node-0.12/index.js</code> is esnext compiled for node.js 0.12 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-2PZ8/zxQnm1a1VgnXUEaocb23NPA0yN4FBfl3pVwGyaBD1vIMSaCMWWPW3GHfE9edV/NTEnr37FXh2lxgl+2dA==","shasum":"5541586078900bcbb530299341f273276ad125d0","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee.tgz","fileCount":9,"unpackedSize":26307,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzVlfCRA9TVsSAnZWagAAlYcQAKSfk5nrn6LpSLimyXml\nLJ6Qy5so+qGAkr1mSSrNd6GiaL95ILrVxbw17ZDUsgFKu+IJBdpR85ypqqaS\nq1EYj3UGz5XkE+s4CsAySzCD41P4KI6G+KNIHEpmKlWfiVkVdRdFVPDBI+l6\nczWgulSaoHqyNyhyZS/LHpkYwPdaQf8nEm1+YcXVNzkO3Mt1h7U7zc8JAK9B\ney+07m+93WBZVHIEfrvNOAAzH3fiKhEHlV5eZ9AD2t97GX/tJitZX40z9u5/\n3md4LZ73tplPP2Es8G1Wgx4tJAVaDDkrzoqyyVGP+N0zFoZ8zyMfzQdVLb1R\nvdDNIAMZLukkIuUEw7BijEgXrH8YUxJ8PAxdnmOAp1KneKEQoDZIr3iBmWUr\nVRK/Fk+M3v1uWyBvRtpCkriV9x9M6nKnub4vkndp3PJV5Dyq2ezg0rDZtG59\nJswKKHmzCowa2O4K6dqJ31AZIOrYf2/qdrzovmYmBuiHLxsLEqmSHeJDgYT9\nd8B+iMMAwLgNnMVW7tAStdfg0tzbqlVl6kpqciKPRxivydE/l5NDFDWgU/SN\nIPXTpxsUdLDEjA61EnUtqzfNr1zqyfqitcncIwdOVghFZjfsqMb4Io3YDsRD\npb5eSG2PyGrhG5I8gye43JS0Iz4JPlZs3zVlDNrlZnPdOuiqXaDqTcxnE7SE\nm3gz\r\n=3eP7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAOlY4bUH27lqRV2D2NCuffZVqcdq5WzI7JSHa+PclrfAiEA0eMmvlHqfs2FUkg3KffLio8OJ6aXvBZb4gOmgAbuncM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee_1573738847378_0.8651788138359238"},"_hasShrinkwrap":false},"5.0.0":{"name":"scandirectory","version":"5.0.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.0.0","readdir-cluster":"^2.0.0"},"devDependencies":{"assert-helpers":"5.4.0","eslint":"^6.6.0","eslint-config-bevry":"^1.3.0","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1","kava":"4.1.0","prettier":"^1.19.1","projectz":"^1.11.0","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"7425d93a313886777e63e1d0bf94363dfe161bf1","_id":"scandirectory@5.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-/kl5W9yqEBcgiPjrCgHdZDoqxO4BEas2IuZ0BuYDN+YAZBaI2iPUEXdwOnp6qc0eQjIIUmIF0RyCoceXS8mBLg==","shasum":"2eaea9d5ee570ce499eb34c61f2002c0ba69c5ba","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.0.0.tgz","fileCount":7,"unpackedSize":21636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0jmiCRA9TVsSAnZWagAAN1oP/jQe5c/u6l2E55mw5HZk\nDjTB8qh3+wE8jbAODAhXUrsZOiy4JugqV4XtLwqJRmMAxMojxMsc3KfeNoAj\nUC8rwbadjU2Fnh3eSGFfqvrIe2V8jtZxJapfV+3+0wAhf9qjlX+Dd1KXjao4\nEF1Vt84gda9mXUG6EfEpPl8JvNN5VCIvnxehnnm1udmq9/mtE9ceIA8iKROO\neMJdJCiRaNyl9Tge/kqPGMDyxjeiVrdeaYxqL7CSvQAyx82CAJe+ugJZ9kFT\nqMZ82afkewpMPiJEPMr51HWPE5K9194jrWxXTfHobGTIBmBB+hLykwj+FZEH\nI9aFO4F4e3gGfz7bVOFVYF0nIdsXyUh2Cyto0wztjb8CJARjhP1UMGMamzfu\ngOdLQoCcaVutFUFoK6oQgIMzcjKhT7zLZOAZXHCAIjVFHeOXqoa1JGPy5Nn1\nwzCG3jDMKmRZWqeKb4erfQzmh12q2ZNb0t8+uSKvduwwnfNcaPYpohmWDN7C\nuNgzFdF8XAHLqtPF9PSxX86UnnjFUa35o/Iy8eOOPFqB4RNKnZtcLb45KaJx\nlTGk1YVESS+LC6DVxQeB8yG2FV33S9kceBG/+bAKBZmO9k+eHa1DG1zkTJe/\nx+V08Dq7SjFrAkHIdpHdNXQlVm/edovHjmSAIo85fUT87QeD3qh32cF9RFFy\ngJmJ\r\n=7cE5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhFs5Opo04vdLiT13AxAHfEbCyFkFttNNepEZq6qDK+AiEA9QrFikZWlt+qF5nR/k6/0PvDryXuIU6AHpfd5Yh315Q="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.0.0_1574058401717_0.4369667636419614"},"_hasShrinkwrap":false},"5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1":{"name":"scandirectory","version":"5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.0.0","readdir-cluster":"^2.0.0"},"devDependencies":{"assert-helpers":"5.4.0","eslint":"^6.6.0","eslint-config-bevry":"^1.3.0","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1","kava":"4.1.0","prettier":"^1.19.1","projectz":"^1.11.0","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"7425d93a313886777e63e1d0bf94363dfe161bf1","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li></ul>\n\n<p>Environments older than Node.js v8 may need <a href=\"https://babeljs.io/docs/usage/polyfill/\" title=\"A polyfill that emulates missing ECMAScript environment features\">Babel's Polyfill</a> or something similar.</p>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-XIlRKHsh+ww6MgfFi4n4/Rfb/IzpVlN4hi4XNmPDqdWZmP2kg/GtYaPSa/YxJsOylfvUELfduHFoV2qd9NCWPA==","shasum":"f88d7bd6a9c1e6153b2bd8c65ae83c81448885ae","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1.tgz","fileCount":7,"unpackedSize":21693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0jnZCRA9TVsSAnZWagAA7XwQAJVIW36jBEcIqWo7cmF9\nX3HAhYcfB3L0b8VluDLFdHhHnbBu3/hMkHKMQYyJA9CQHi6Q+iE3SEtl/T93\nM/HQcNGC9T2meSd00kr8cYxSgt2lKm/zLdbvrnWOMeekEPYjjiAshpX+Qg47\nsH/1JZ6xUVx0d5zd8+pw+z48fik4Z2DbKPHoEdUqwsjhvl2TvWATMhNRF6D4\nmapvgc/YaLkIq3h9RjfZiwVDMzt0YqIfWzHVmxBEF9YZRxEr/IfE/aabC01y\n0s3ln2knvfYOM6Qe2hcKDD+BqYAeGAPk3G1cEVBtqBlAwWbhj+yCnGzgVPkD\nXhZrvcZrBG3sNg9Jisgtv4NlOHtuXbWg9S0aW7hegTSx3kdbkKcUq2ps5WIt\ngGEKNDqfATuqd9SDZfxrlAQDgGb6iqLsZ/1Q+QsEnk923MCM02nXxmYkbIbx\nUCIm9PJZLoxM9umrA61+Hfp6KT9xO3r6fxHVxH7aQL7d6e/gzls2JqPyg/ei\nxk4JnrjCTrDOHvjRwBATamyfTOCCR3rO4B+vqByOs/gRXeAtWLDPYVUiiAjl\n/PbmQrebSgT1pVnAA3Uw2nCfQqiCQIZaWV29KpRzdrzC8zkK2NsU3j+xQvFa\nh1C4SgAVKKB0Rig6qzwlaQv2Cumd2kp2qDFe/IXD5jUBhxFc2U888EqSKZz4\n7xoM\r\n=M9Is\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHutOStK1+zk68q4l6dB26050z/1zv+/kPy7jmlgeVMWAiAwatRAFHk/LVEgj1wH64olDxf1bqCdvk8dJ7aolSsDuA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1_1574058457029_0.45429238247270054"},"_hasShrinkwrap":false},"5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7":{"name":"scandirectory","version":"5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.1.0","readdir-cluster":"^2.1.0"},"devDependencies":{"assert-helpers":"^5.6.0","eslint":"^6.7.2","eslint-config-bevry":"^2.1.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li></ul>\n\n<p>Environments older than Node.js v8 may need <a href=\"https://babeljs.io/docs/usage/polyfill/\" title=\"A polyfill that emulates missing ECMAScript environment features\">Babel's Polyfill</a> or something similar.</p>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-S2ja5nqNK9IXqPVgFjA06jFjqvpcvCb31nM/N6VL4OBNgZrornZ3xG5/kYB+jV+pRoCKBvxgNs8vvDtb+FKvMw==","shasum":"de51bd6c4dd530eed4c1163aae96a4a6553662c8","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7.tgz","fileCount":7,"unpackedSize":21897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vN/CRA9TVsSAnZWagAAkqUP/0RggXpFvMTe0zRzj7qX\nuCyYkaQ0uvMjGJy2Mg1UdrmyVOxqWnbr/OBYpwkGwL1E4ki1+VZolKzVeKOa\npOzYrX5fuAZbV0iN2bVVfCtuZ7CL5t0/aVmXIXs8yTh0eV8mMF2ftJzuv4fi\nFyBzSQQ5aZp+saajva9kerBOd2j/7DR1gjzfBJTwwBQ4p8mOLder719Yh26R\nNERo3tfYSSxdS4wskY4BXww7X3Ea7bWXDDaoeAEX8JunbzX5odGxO6ToyR7P\nNPlw7E6/VLfcGKHhkDnv0y8KUTUqnZu3tKeIxvcdzaPBlW/QTGzIWTXM+hu8\nWf4hPfNS1AJxS8ZNFqGgJhY+0vUVLhze38cvyYe5Lgo3bcihmm8EPptJvscb\nlFpXrANPPekUh49fHCBX10vDgLoo21XEecZ9eMf2Kl6kwVJ7Agq7RPrVE1MX\nT3KWPH8J70X+My8ruCDSUHqK3MaBDzwzkPPUlp72a3nNxZ19fR1tfZe/Pmjf\nJuaXl0L1JQqQcVcsZQMZvrMk1yx49jvq5RYK62VeUode0oFNqHhTBj0irdXq\n0ArTIWPoJtaSlAkWy4dFjQJmgoBTx5Oe+4LD0ZNgz2JKqSF3h+w7vkhZaEcA\n+0lmfRaIm/xPdzd2EumDGpkYGMeJZPWTfgcAzLT+fu7wP0IDSaMPVCi378KI\n/ZwN\r\n=MRxR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDevHnc4US6FSIdRvPTmA9QIBd9cf4mLopxlQ7uF6x6KAIgL2oLqxLJElYT9QqBCz8Vo/YP57VA6Q4FIuYjjcAcDPc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7_1575154559369_0.5253660939736224"},"_hasShrinkwrap":false},"5.1.0":{"name":"scandirectory","version":"5.1.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.1.0","readdir-cluster":"^2.1.0"},"devDependencies":{"assert-helpers":"^5.6.0","eslint":"^6.7.2","eslint-config-bevry":"^2.1.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7","_id":"scandirectory@5.1.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-NGFlJd0ZoZ/EgrnpJ2Y2afe2/pWYDG0FtrW9Bgq60soPTy2pwOE5sXWrBMvlVTkN5kc/VCjuq/fV1KeBc6JAuA==","shasum":"2d9b8b398c348097a8b6f541fcc9a2a46c6bc339","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.1.0.tgz","fileCount":7,"unpackedSize":21840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vPECRA9TVsSAnZWagAAlCEQAIwR2dyEJk97XLcbRlsH\n9wve7WEwkCgRAHCSZKNKZ8Kg4CKaIM4YfG78fpdYyT1DlNfd1TcWYAkmZoAE\n01uImo2SlvvoKw7SqSeYUMc0Bu11N/zZPB5YpLZP9DbvtYlnielcEifYgU5y\n5zLOaD+mGZhtIIJCVS00izbKkaQ0/PBY3J3RXrXidwHPxpGlX0hhh8OyzScb\n7Y/YleTC7y50o2N5qAVEr0kXvKlPQePTKAQnzplCvwUipWNj2oTb+QWq0tZM\ndq2+X15kYKaxQWDfnVqJviVdJHTICgBcrzEK/cv11v4P3rFU8CUTwCvD2/BE\nhrJnmV/cRIZIi91HlSi5CR+3GiwKc9Ib9jbEwltHEgn5bRb5QgH2Bgwz7tIS\nrNwtqRRYvky7B8O8d1Qytuhf9sn3paCeXeyEYbNUh+cM86NVMml4QW+mcoO7\noLAj++G6AR4BF1Zvlg1zj5zvND7LMKwz1DPHwjNh4fQbX3TbVd4pJPHYIo8W\neJ0E2Ev16RLM90qQ3vpkbhtyidJyCX1nYRisAcZ0EXJVYXbjTI77ZsfFq2+v\noHrEXmPSqgd1vT+oto49/HegS0V0HY9D/mQDsbc1kT7xJubTdsX9CsQf9krg\nSdX2NLMlq8uIWuILZj3/goNWP7Pi32ZbpPq9sCKdZQEPV6Mw0YWzpTrJMBPA\n/SBA\r\n=hm9S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAaAFLGVdReSJjHkchyAVLNgg+0KG8xOdP27fBIzuxn0AiEAtsAq+kC6C1mHrO+iX2YW4FSmqtPDIfcob1m7d5mCH+o="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.1.0_1575154628349_0.09240823858285396"},"_hasShrinkwrap":false},"5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629":{"name":"scandirectory","version":"5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.2.0","readdir-cluster":"^2.1.0"},"devDependencies":{"assert-helpers":"^5.7.0","eslint":"^6.7.2","eslint-config-bevry":"^2.2.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"98fa2fc93266622b6c20922c59c4ccd1560f0629","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li></ul>\n\n<p>Environments older than Node.js v8 may need <a href=\"https://babeljs.io/docs/usage/polyfill/\" title=\"A polyfill that emulates missing ECMAScript environment features\">Babel's Polyfill</a> or something similar.</p>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-DWKTTebMqFgteLZoUZ01lt4Aqpr+WVp4EDPhzkw++CpHtFUvtO71Po3juGK+t6Ke7Rc2NiABZigF/JuahKATRg==","shasum":"dddaf752019e364353469a1ac9ea20214b4a5ec6","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629.tgz","fileCount":7,"unpackedSize":22102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+77CRA9TVsSAnZWagAAj90QAJs/5jEu2EUYGEo2kuTN\ns5cHAAbJWLs33pSih6BQO1SbFw4q1XLJkFo/oKgNLnvVqN6zsOj+FUppuZS1\n8CqFai6dGfJ+xS0jPIhlC5pE0eR9NT4SjTBrxZVf8OWTe6KIJ5A6p1KYV/KN\n9TVKvXPhxAhaU652yamgQmsm1dyf9xQQ9Hw+/0qzpv+W8tNFkd5gsZbsYdpA\nE00Ie0MBkcNXPVbrr9yJfpznn1GKn0ntBwosdAZAKMRrrMBydxkB8/OaNZZ9\nYwuoeNTG6M1zlGTVGPaxkOBtqdIcOdEcd8881idouZP8KwOeHA6ygowpItqK\nT6wdNE11ZsMlfHthRlxe3OvfmHYVi3rED+HefWTHLgcVT4QgyOx0pLCKmBbW\nWPOPTe4fSWgbgUtu7+4vOAKW/TAuy+R6JWWGNZIJ9LRYa/dSzXHFFLt2EB/y\nKdHvPnhhWTUhO8cq+CTLaQh4DPnNrOsfkFrGFsOWwWXIeszuxAKl9EfTxRYV\nNeXFqOoQW17lXri6rcvocILz0QZXcdqemsilI0bAaz0EJ6t9xk8FTpQs8lrb\nfPHSg2xNv6hgTPJKCiFvcCUS2NRJe8F2KO1b0tF6TCSNjCLOEghCaAbG7uEH\nKGqs8HSwLMNvZKw1+qba3wYR2pIw3yakjLW6KOf1zgYov6JwOToIjPZBbWkv\nhUFk\r\n=mET4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClCmqFKzQXwobdgzemkrZsCpnPiryRRktP6A+tEyyuxgIhAJpsAH+8sss3M0QGyNYFdQlMQXOkhQMo1ydRzq/+6P35"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629_1575218938776_0.10713114370424504"},"_hasShrinkwrap":false},"5.2.0":{"name":"scandirectory","version":"5.2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"ignorefs":"^2.2.0","readdir-cluster":"^2.1.0"},"devDependencies":{"assert-helpers":"^5.7.0","eslint":"^6.7.2","eslint-config-bevry":"^2.2.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"98fa2fc93266622b6c20922c59c4ccd1560f0629","_id":"scandirectory@5.2.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-LTJ9qDvdi5z5tlZsmUO8THZZONY6xFrXy3L6XYJ2U2ZUJc/HpmKITc0OlVNtSHclcqBFpKcpI1NJW12S85SqcQ==","shasum":"d48d7303cdfcf1690e7d18b56fce4d22a82a5ac4","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.2.0.tgz","fileCount":7,"unpackedSize":22045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+8xCRA9TVsSAnZWagAAkvIP+gNfTMqibTIxi1DbuVrh\n7qqub/tyQWGpw2PerKd7+hgzqnOQxywOkAgWerCSJc7eqC+GzCZyCFbK0B0V\naq9IjxbVDcsVUpcdIta9+S75X2Z1UQPTxioS8hPlQYo2brMfgF+hVlBOICyw\ndYOKwvXYMgNAlzuFB8ZZ6Dz1iL2ST8B5zI4PGxHm/mIPQzTry4pCVcpsNYWt\nh97HBcvQWNP2So5gmGtV5Q5+c75+g0CEYNt/P8VxSi9bhZ+XNCHK9hRfTWfK\npsjvCSgbfq7BroG7xUVsnZ+tCmbWvfmwXztQrD0hZofZ8J/dpa0NN8Z15RtU\nJzlW0E0L2s5tWZRhRWvdzvze+acRGm+mpWfYU/NRI4ECJiq90MCc4bCKNPnu\nhyV3fzQ0mHRvkf68emqzdNqzaLk9KYRnhWclxNxlInjKzEaA3eT5q1KR3aw6\n/ZpPy9PN5sA06Sn6ahQjQB7Oyq/Gp45Ij1g9n1N/OVesDOMAkmb2StHcDUNf\ny9yDxIA/LcEApBSPFizV//yD68BbdlN3IC2+zrg0bUkMPE1ZcrmwmZhS9dCT\n5LQ3YduX1kEjV+mylEBa2fepcYVKxCazBS6onlXltYiy9t+qDdfgYbsSKrZt\nqp81zwCI9Pl4Be/wmGL4cdPQyY78UzRZY1x0ZnamCHBIEhX47zseLdbKfYCr\nb64V\r\n=YlwL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyRtJplqPTC6wyfpKw1PzTn/XbiTF1kQzvfVgVWjpVCQIgDl+hyFY/bqa9Eh+FM2f3uRqyR8ClrKeryalrEEyu0ks="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.2.0_1575218992841_0.774610216395351"},"_hasShrinkwrap":false},"5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d":{"name":"scandirectory","version":"5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^2.3.0","readdir-cluster":"^2.3.0"},"devDependencies":{"assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0a3aa92f211ede8f53dfa64e573b3fc17605719d","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li></ul>\n\n<p>Environments older than Node.js v8 may need <a href=\"https://babeljs.io/docs/usage/polyfill/\" title=\"A polyfill that emulates missing ECMAScript environment features\">Babel's Polyfill</a> or something similar.</p>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-7vdlRuWXtR3fOp2UjUFaHb8yBbFgzUefZmmmzvgVGpHPZoKe2WdC9VWemsiSoIhL+bdeb0KTbGmbULDKV6Y07w==","shasum":"37eb6e0d7c57206dd303d2d78605439aacb5e732","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d.tgz","fileCount":7,"unpackedSize":22945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7p1YCRA9TVsSAnZWagAA130QAJLVGPJnYdXJUIpA+/YO\nlvxBPNshB3S27dWehTBGyWrmRO+KMlxULaFqAqHuUY8IWCdt0cpIpwYSLsx5\npOlR6l8mp3lYXYDA713yLWCIM4dvRDjiYWcG4qhsrAXf9e30gWCfKTO9avVN\n9rZggdC6gAvffGo5YuMX+ABhMYWy3f769fxENWN36t9eq6W2A6ZVIhKlZmxl\n9dz19nvhsTfPYsla3umzvmSdzN6DstGKyxvh5S56IM2USiyFpB9ZL2BONHVE\nZ2uhxfHxFNDHSp+CvC2H7RhBJD4/s9aKomVxFgBwuIXj1ADLBQLmUD+KiDtK\nQm35MiMHP0O66cgFeYuos/tA6MgZ7RLXOTZ+pKsWBaj3OIaLxiY8GbCfy5OM\nLNDL60Nk7r7b2xKStw8K6z0o5kWZfrtxPE6uFBO8rapzQW8G3KFKAqIiHHaa\njqCo7otEvwQa8svKhTO4fM6TPWkpsxV0ysTx+x1GxNJVEt/1rjrL3v4U1Qmo\nGst0EniVYwxcktUtXLgIIa9reyCBmwYZJtaRjV188oe+ktVbyRpecsW4/aUE\nLqnjqKbcYt+PGYf8q5ZubAqWAq0xaw6SsDFTvBDYv/TICtxhyQY7hQ824Mxw\nm8UbG84pJZn6vmZkQq2GWpKhlKt4R66UFs89s+4bjvpj0CYb066/tIpgHGWS\n3gzt\r\n=aWFG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEWDF0SA71PjV4+jkLYar5ePod5/p3JhoscunKN39YMsAiEA1n8RoYp0B5uud9K6yOhbXZwJXrTg1fIJdOmtGb8DsKM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d_1575918936279_0.6692603662192733"},"_hasShrinkwrap":false},"5.3.0":{"name":"scandirectory","version":"5.3.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^2.3.0","readdir-cluster":"^2.3.0"},"devDependencies":{"assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0a3aa92f211ede8f53dfa64e573b3fc17605719d","_id":"scandirectory@5.3.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-hfb4aTGE1c1jtp3vVYO3pcWndaO31XwmGNdX2T8WHbSLZvXMKiOon7CF49LDlqTQIm367RHuJJPay+2Hd6vNTA==","shasum":"4ed904e1516e969ff5549ff7f22b4658bca15f83","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.3.0.tgz","fileCount":7,"unpackedSize":22888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7p2UCRA9TVsSAnZWagAAU7MQAJp/TqAxtNwJM6RNq1wM\nB5wvIAoAj4WvBmr9detPWixdNw5Y7t74Aur2XBr/KtOsayDMLCvynNPmeI6z\n4Yw4k7lyRujHyQYr8/Ngi6oRGnkZ+zB2FaCxFhKbqjSfWoROxEFWtENfsuJO\nEjyxsnrf3nlfK47TCGEX7JrmdFEORMWq9eb9J+3kH316+T/dgfITaSjGfJUH\neNR8PmcfuVNEhCGIzRKDZCUm8RoKyntbVUxRiGOvextwOdkvkceP19VKU4xJ\nl1gWBuE+S/DBzUweqb4XWQ8TBVfCXORpVh+8XmorfODJ6LQnSWcm9BjfaP+v\nDlHpnXAIEX31uuU+NWWQO0VVKwbPh49QzrVrey/b54LZBqa0UR76wWUsV7i3\nqiyWreEeoDikZfBIarEBpvCKzeL5o8tx47K7Mb7k00J1QOCba4zwbUJaRpNL\nF6yop/FSebIqvblGusgPmC95hMnuXvhwc1CzGWD4iPq9JcSF0wNskfHEhWEt\nHBovxAUMkY55Njo6qVjrytuYQR1HHHY+c4Gq7BY4JAma8BXoV7g0z1NqhCBX\nB+gILG6+9lVNbzF/wBZ26ebyx6cJQK9ntbT+sPONet6N32vsVLIOZEbibjSl\nPJeeUIjUgX5w97QOVK7Gqmnn3Ie+YQy3MSW4iZpAJiKpqZoH/hQKUtFyXFMw\nO6B8\r\n=rU2m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4cT5QMoBcn4oKKTm/S89Ag9GySeeozAclUmbGU+EfjAIgbByINQXSF5M5K3vH2F5gXHf33NZfAUnT68dZIbbtRR8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.3.0_1575918995672_0.27091480806788026"},"_hasShrinkwrap":false},"5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e":{"name":"scandirectory","version":"5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["path","fs","scandir","scandirectory","scantree","scanlist","recursive","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"http://seanfridman.com"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"http://www.linkedin.com/in/lysenkobv"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^2.3.0","readdir-cluster":"^2.3.0"},"devDependencies":{"assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"40107816331dc44e14008bcf607a3cb32a74cc7e","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Require: <code>require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is esnext source code with require for modules</li></ul>\n\n<p>Environments older than Node.js v8 may need <a href=\"https://babeljs.io/docs/usage/polyfill/\" title=\"A polyfill that emulates missing ECMAScript environment features\">Babel's Polyfill</a> or something similar.</p>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n``` javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback (err, list, tree) {\n\tconsole.log({\n\t\terror: err,\n\t\tlist: list,\n\t\ttree: tree\n\t})\n\t/*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n- `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n- `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n- `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n- `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n- `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n- `err` - `null` or an error that has occured\n- `list` - a collection of all the child nodes in a list/object format:\n\t- `{fileRelativePath: 'dir|file'}`\n- `tree` - a collection of all the child nodes in a tree format:\n\t- `{dir: {dir:{}, file1:true} }`\n\t- if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n- `fullPath` - the full/absolute path of the current file/directory\n- `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n- `filename` - the basename of the current file/directory\n- `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://seanfridman.com\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://www.linkedin.com/in/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ewxdeUgpEFeDcsPHxGicTdZn6hh5RPtBXQXe+wPmRGYQdOiBhYhRH+favIvgh6QQsVsYx9NPT7oVF+FM+3Dvzw==","shasum":"513baa36c093526a8f1913a23d666ec6e7c349fd","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e.tgz","fileCount":7,"unpackedSize":22945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebAXsCRA9TVsSAnZWagAADjsP/jWfUbx5ZWbhG7KEa6UQ\nAC62jrRT1xhl5wrjEwBK5STmG7AGVJcCAaQT4ogLK7fWm+rPcI4YJ9ZH+X+E\nr2v+KLklTB6A0LQe0bt3dkIkWPhMyEbuhAPn7lYau74aMs6b7nClSI2+Jc95\nPEpH+xYaAaphVXifJHdNG7pIyYrF9sI7GBj20LBh89a46tVxIe+QsiaThqvd\nLfD1705pAfSj3TQw7UxARjjXi8DlyUvRcFrpl/Scooh9bo1XCeyUjz7ydUMW\nuvAIR5+3wf1XpVsDPo9b+E8Tl0cCOr+vNJK3EnnZpl60h7ytm2RjX2f4s1Fj\nLPluNHYrGgSwpUolli00SglbfMSO+J9ItPFwgoKxwkTS6mEx9XtCGK/YZiii\notezZN2EjGOLydDpLwvfRf/cE/r4EFXXRQ01fmq0Okem69A6rQb1HFpJ0zoW\niSCH51j9Zb/7Fw6kcNsjKF5sNFkgivAc4FBgmcyVlWdb64nCE6+g2KkHeqaR\nJQrJSakDiPoe2Jp5g0rUoB9JDylbHyqmLpGtOfTHNka17V3An/fnWJxShZjV\nq8sqJE294WmSHI+bkS1mTCjltqUqbb0+qOaMgSgtdEl5blcxaCR83bL9SVZj\niCAZrpfjGsMH5tJwGbRq/QliwfvY2jL96xPRXNNVnQmR5O/XTge9gXb+ivP8\n7uGr\r\n=PzV1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEneyMSgsnsBa2AWFybzY5jxG21x1izPoCG++SA86sLlAiEAsy93VJND8D+B2KjRyM6Y4lL3VaCPYemOEg2g0OSSgWk="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e_1584137708077_0.7932266974945006"},"_hasShrinkwrap":false},"6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6":{"name":"scandirectory","version":"6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.0.0","readdir-cluster":"^3.0.0"},"devDependencies":{"@bevry/update-contributors":"^1.4.0","assert-helpers":"^6.2.0","eslint":"^7.0.0","eslint-config-bevry":"^3.4.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.0.0","prettier":"^2.0.5","projectz":"^2.1.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"npx @bevry/update-contributors","our:meta:projectz":"npx projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"npx eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"npx prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"514bbddd772d25b043dd5d3ebef810f35ac4c0e6","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-vTrLo1i040q2R6DMlxoXaNUYGvZbqgFJrzzJeIfsx2zvd3pZmD1/H/J5YNg8DI2i0jXlsk8pAn3BMaHa3dhPuA==","shasum":"52559f9da04cfc9da8311f74ec066a69898a68cf","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6.tgz","fileCount":6,"unpackedSize":23330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuRAvCRA9TVsSAnZWagAA230P/jmkv9XKT3dp38zr2tlB\n6uA6mA9Jfs8YFI/A5auRORryGj8RTnwfMBXrneAL4vaX2FUBiGTlLD+wQ1A7\nqkWdbxHNy0d9bZlL0lLVPJ52d2Uw3wvu8TAca8uuHPBIOPRy63XIj/y3g6UX\nUnwvlVQZvmlAzIPLqcjIm+0mvZASzfNpy7YU5AolF4hgLdz/CzdSLo/jj/F3\nNOF9gRdWHvSD+TVcJdWc/aHVBKe/bBqQAq5zXxJqhF2Lyv7jAwdHsGz3pmnT\n1p4pi9b2Pfzd4TDYFJVhH9YzO9G3rasOOGxaF7ojk9TEnvlkzpYsVofYRqpS\narZfHNkyoitmF42X2van0+O+ovLkbvRdHlrjcf1yY1a/X322tnwG8oaovbzc\n32KuUHyE4jBXgmHCvPZpzjgisYfmzS7asaNaVJJPmoi7xrmh0kfaubJQZzu4\nwKCFkpnVsY47yNcN4wlGHV+TMTI5WyJFMjoJ+/h5Ja/ONKlSLagUobs3VEj/\nFClW/qEnlqDh2gFsaRJC6nPushkuUMcAG7sIwUvhekNVUmp/sWHvn6if4IYz\nNHLDx2NXZF3tED3Z3aCQCA4H4n31jWt72f3BDOd2r7fSzOlmStLvPiMWZEH/\nQaTCWpbPGuHjZzB0nsfDihK89YI2HJc0guu0llu2aTv/Q3fhaeqOkr59Ax/U\nMHBc\r\n=g1s5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+MHA5JWEQcJRAB9YRLU6XoWYmYMmsZ5eR35ELfPf+UAiAOhucqiM7hQuD2JwTEPwAHcz3ETrvu3M+H5NKTnBVkpg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6_1589186607168_0.8870697751785397"},"_hasShrinkwrap":false},"6.0.0":{"name":"scandirectory","version":"6.0.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.0.0","readdir-cluster":"^3.0.0"},"devDependencies":{"@bevry/update-contributors":"^1.4.0","assert-helpers":"^6.2.0","eslint":"^7.0.0","eslint-config-bevry":"^3.4.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.0.0","prettier":"^2.0.5","projectz":"^2.1.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"npx @bevry/update-contributors","our:meta:projectz":"npx projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"npx eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"npx prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"514bbddd772d25b043dd5d3ebef810f35ac4c0e6","_id":"scandirectory@6.0.0","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-sJT+joyD6NXuP6NQ5B/CZAG366hUdDU5C/0vRny72qYmSgybZ4aK8TOyhXrwchIOp0zxSPdpuaFYL2GY3wk4mQ==","shasum":"d5103b7e4c2bef0f927669e7f6576452d8396490","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.0.0.tgz","fileCount":6,"unpackedSize":23273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuRBqCRA9TVsSAnZWagAATusP/0gSfYC10iZr4qMW0nvV\npSxGL5CFtmJa+dbeuVwNhr4dZPailUSdepzuhqWvlKt+UC/VTDF+Hm0WHrrf\nx3rWJvaDMfJGw0NFJGunqwIRo7QmkTWi+tC8Uq2y1spt9wBXro8Rz+zIdrLL\nMf6DHVSP3oDiRGWL7mhgKggfC6bkGDDXcjemsgqaxKjAFKGF1DV4j8UXl8eW\nyufSiKK3dlNrIS0knN6r3Jcs96k+oEQJmkcwJ5Ku9wK4c4PKfwNplHJ9L91i\n+kZNhwrtH8iqeNOPSC8D9Kei9SZwuLZhsqmDS/BKdPWHkikyothmKGnhL9kf\nKnpgGnjkX1QuT8V5DEZSQyXpvj5zajxp6IAQnnoVzaJNOEhYLtetMyL8HH1h\n+FUNQVZ88zJh7tHGuKlSNpjHBZrk5RQE/FwJIl0WvZ0VvClZpP1PcF7X3R5H\ncChht9hr9ZylLWMo7yFC3O6GaakJkUvQ6Qev8EbQrefABsxUXBCUcamA5CY9\n17TKItDm/NwXpV46DgAWXnQg5Ah8JvquQ2Ljrp2ApWmY1gxYw9Vgd+qQVsV3\neAiVqWPMPSg4UGcpqiqoKma0o2yuLsoU1tMg18hilPiYeTCbNAerszK/UBU2\nwgviHBcWbQK52G4s0B4vNPNgubWJkp61pdpwptbhmQfTW6k3JnxeJTrwXBYh\ntOTN\r\n=8eUW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICbDuXI49mz4OauyYHD9KtwV3AdgoRoK1meZ91KbdylBAiEArDB2x3H38b5iLWm2yixQrFIZuv8SFr42SAnOMbAVUUE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.0.0_1589186666530_0.6009904075233965"},"_hasShrinkwrap":false},"6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c":{"name":"scandirectory","version":"6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.1.0","readdir-cluster":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.5.0","assert-helpers":"^6.4.0","eslint":"^7.0.0","eslint-config-bevry":"^3.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.1.0","prettier":"^2.0.5","projectz":"^2.2.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"45788cbf0f8497547c8cdc66ded1bc16307fd77c","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-VvhC3WUDU0QDtG3sj5HBGSJx3pyJRA1tSaw2lNd5KPCz3NPk630TZEgj79oRTXOeR/bicXbV0E2rxqLZoHfzKQ==","shasum":"614a790695f5a918b64fbac206e6ecbd6e958b56","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c.tgz","fileCount":6,"unpackedSize":23496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexZuzCRA9TVsSAnZWagAAfqoQAIT3OWPr7ZficCKyiL/R\nVeVoToaFZS+R+TIBFvY/fktI3mXVZwbXk09hklEfamBnP0Iuhr5LibEXT9A0\nU9F0oZUSLp3sXRiXHG5u3knSeVMigfU5eRdQlqBOIA0BKUzYDz4ukGe2BMnN\nN+LI9HPnysV2DPwldsgx2zWYbSttTlZz0tueO0HtCdaduS2MeM24HEPdunfk\nq1EoU+zyqDPYEYAAjwOPQDCIxDdODxpxZ8Si5rDlNx3fmFlfkRn3WVL9vfCm\nJ8UiVS0AXdlYSdudaDf47RzSxV6J1JygIHOhbcuaq7wBj1AxAKt5v9jtums5\nuLs5t2E80Mfi7YTKap8YH9hGjOp7NIR5FhReZ2Pxjdox6GRsYK0WfBTFWEjg\n4224hFm2/D0VgAMeuu8L4A7YuWdWBpCZj372HLGQ4kjDf7k2C3ipZV1iS7nu\nvf6iaUpM9GTH39MpYDIipB/wyHIkgCsnugwixRPAR06zxqJshXgQ9KbtJKba\n2ZronVE7qY30Nk4Xf89fXDT6v198bU0yun7h64wpnYxwNsMYbPxEkx3/uth0\nrYI0AIZImm9HXCel72QXTTfR5Z1LlBVZcNk8gb5ZLk9M+2A+DDs3Xf7GDtwE\nMZhYfhCiGJSNn+nvMBHkCTJF5oQMJPrzzIcoSQl8CpFYGj4stEsCgtZoinJl\ncLxS\r\n=P2jL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA2OhD0GDmdbWVnU324whGkfhvLai7ZR06pEelRI/g8UAiEAh5OMQjQlhrj1O1b2Jkc+EY5Ld14GIrWzaAKH5tnipzU="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c_1590008754906_0.5788490125519914"},"_hasShrinkwrap":false},"6.1.0":{"name":"scandirectory","version":"6.1.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.1.0","readdir-cluster":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.5.0","assert-helpers":"^6.4.0","eslint":"^7.0.0","eslint-config-bevry":"^3.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.1.0","prettier":"^2.0.5","projectz":"^2.2.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"45788cbf0f8497547c8cdc66ded1bc16307fd77c","_id":"scandirectory@6.1.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-3x3OnnrBcFXX8Pquil/U3Oma0gXJ/Sf4W3w8uo2SfBVgseKLgu4/r6PAvpAMa9cnw/bJt+MTkvlh1KFqfAq82g==","shasum":"459b4532c743282f603a87845cd15500580a5536","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.1.0.tgz","fileCount":6,"unpackedSize":23439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexZvuCRA9TVsSAnZWagAAbysP/RP2l4byqYfX169++/do\nOkfaZvwTqKFZAPIpMdGxhzB2sFpdYzdMYDVBYKgeZ/yK78IW4iliesaYg6p6\nrUkq13yvCzUA2UqQmqJGWEkd39u0qv9S5cl3k6R6Au19MyKnZGCkmzbrQ0my\nWckkaIHGApZiPYfvd7OaO6fLfI8I5s8P7aqSM4t0MPoDnelGpn+HYrdEDVMV\n1vynyzDO1QfQy4hNiIW+ay7yQmyErgUeay9AWwPud70RBa/IEAZ2ceC7JvNe\nkqBVFEQTXIjLiEea2mefWtLx4ZIRCzWPfi85pYfjxECO2hVks4BBmOhKwIJ/\n2d9f3tPeurOI8ProC/u14mGP/xIjy5zNiZ7PjIRPeALvKIZfz6QGtP1XOxrN\nc5EmJ52A4xTZzDluT8dCoUgF7RZcBcuM63TNUSokc6X4dEy4eTyJajaX3ewp\npF9IbNHxEk5N0NSsgk/Gy9JZF7+rf5uaTB8Tn81maMy1Bb3RQD/MS5RqOfco\n5Ro8/6l+53eOw6I/vvQI3LBnxbUmyfjniRX8iF/PEg4PgMpj7QXy+kKWc9LW\nKCe734fTVAGJ4lbHu0SAok805OUllXrApoK6acesOjdAjOimj1iPO17bZDcd\nYSd7deMDEXIEZn6hDr3/cl085ELKpG40Y+2BCzKf7bzB/4MX8sL3ptiCC3Yd\neav1\r\n=MS1t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0+N2ax03vvPVp2+GJVSVZ5+LgVp7Z+eVAmqNbEB8yCAiA+usjqcy7MEBlRgjhYvDyaggrNLW4ZsYguWAY6eXbCiQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.1.0_1590008813616_0.45373021619061404"},"_hasShrinkwrap":false},"6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0":{"name":"scandirectory","version":"6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.2.0","readdir-cluster":"^3.2.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.0","assert-helpers":"^6.5.0","eslint":"^7.0.0","eslint-config-bevry":"^3.6.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.2.0","prettier":"^2.0.5","projectz":"^2.3.0","valid-directory":"^2.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5ac25400ccf7122d5898bc73097befe9582269d0","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-MB5F3lFOIa2m7rl7PYam2047MRNlq7YLFCxdhAypxHsRs07UG/AFeVjjfL1vJWsP5w1fYKGjpDqJRkbK7Oq7zg==","shasum":"68ad663676d8b8cd16288c9cdc9390ce1713436b","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0.tgz","fileCount":6,"unpackedSize":23689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexnUfCRA9TVsSAnZWagAA9TsP/1MNKEXTZQRHJyjzJu8i\nu6Qs2xVglvG3huPgD3qDu2rhctGRfotTqWbeF4PPiQZonYPhPEsIHj3JDp/i\nN+DSVrqniFnK7mdOJtkeMFFTAln7Wkjg5x8zxCzOD/vAApZHKlJ8VsX64CMs\nbRbBOqFGsoqAf7bxoIJ8LMtcbQTk+xHhO9Bm/KrKK0eAAn9pvtiojIBG6LBq\nrIWOPXAh4TwReK4SpXlXEhbfe44QFD3Amh53wX00lHhBRZaWNqQXHXePrlT7\nr8cmpygtUjXRiYYaaOaRF9n5NhXuMM7KoWLelAteWFNA1Df0Tpix2MVHqAc/\nMhc3RDp70pbtHyT735+ht2udchC7OyE91/ysrnc+IR0BaHTa7yDEGz3GK6GO\naVEc1HXi/gMvH70rlfhdUW2Q/uLPN9hiXCKbaUT0l8mCmuuzEQFsB1B+er0v\n3ckIh2xNBdhTminFzaz072OszGbcyu1zufjiZPdmjbZ9OdHMu3xhEdVNMDFS\ndkCa2RZS9z+phIUg8NtrVhiAzs2uxAlc1PA4vR0chJ+RlaaRa/IsXo1vLagO\n65GnxmPInWMeaAVbLoshqOqKl1HzfY5t6pkpDz4XBn3+KVekKdbPZvbapKZ5\nlT0PHHe0+t+RzcTsV1ABSqMo4RtmAlcR3A5FVnrdFPMslMSXfZg8O/p2MixA\nRMQl\r\n=ywX8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLSESgrKNADrseaSk4PQyL0Br5Y0v3OSn2rjqEQ15NrQIhAPCm8ub7WUY61xTHcvoQ857CRsperPp+eo6I1cadzgiZ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0_1590064415226_0.8015411385228304"},"_hasShrinkwrap":false},"6.2.0":{"name":"scandirectory","version":"6.2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.2.0","readdir-cluster":"^3.2.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.0","assert-helpers":"^6.5.0","eslint":"^7.0.0","eslint-config-bevry":"^3.6.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.2.0","prettier":"^2.0.5","projectz":"^2.3.0","valid-directory":"^2.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5ac25400ccf7122d5898bc73097befe9582269d0","_id":"scandirectory@6.2.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-8PyykN4HPCgL/N4CONMWtPVinKeWWQ7ug0C0bZYLRQcRerNkUgRQjHHLHfI5kbyZ0XyCc2b1NezLYhoHhjlf5w==","shasum":"04af74deb0e4757393b695047a3ebfa89fc12eb9","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.2.0.tgz","fileCount":6,"unpackedSize":23632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexnVgCRA9TVsSAnZWagAAE0QP/3EiAuVaAD4YMe6u4Ygi\n5IszWhz68VimWzglumGcs4gORJAZOVmFYI6x5d3HBrvMfSPrpPoRBc9WV8HG\n+3jQvWVw5W8/pKMt7uRPSSVFyZhpgZXPAuCab/VXvF0oksVDJ/oBlZwP0evN\n9FV7ijgOjaarwDydWuy3IpMvc9DLzLwVV486dX/YJRyl6r5as1qK2dcnU76C\n8QjhDoYOrKBwSGMmykSJAv0PosWtOeTZEOTJ7NK9re05ZDGH8vkied4nmQhB\n/mN3t4yQu+6g2QAzcO/xm0nj7aNIf7gq1j+rBTY6DRq4KtERkpVcdjhBZm1p\niu29MyQHINXHhAFtD/kLvfZpTFxEy0vsh2ZfTls9SEX5Iq4kqsYIQO1HVoZk\nIo8AeZWXan/9ZNmwlLsUyiW3Rk9C968qRIL63PTVJRDdrIySj79EPL1sb4+w\n/y8R+YZlpYRlmosb5Xi665BWwyRUdivwnxOfQaQpG+uSuurJnFmiMU+25B9A\nK+EU1w+0fb2tqzvN3kdZ4iZfres8eH+l7fwcHm6hefCVsWrfbljKUGnbRpo7\n2U/r9HiSxq3P/EzySE1Az1CQtuee+7DGC4NAtqjwK60qrLKB8o6Zy+k5nHe5\nifJB8nLpzCZCyR+5X+Jn7ZeV9VH2YPNfQ8gJSplN1sdlOMonnKhse4Bm6RNj\nP2SP\r\n=mEuy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIACXA8QeSF3xZeewbrAaRrQEb4rbMbJUFJmE+vLdVNuMAiEAr8JmAeNN//QJG1OPrh2Z+KYYkmM7l824+slWR4W1dXU="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.2.0_1590064479827_0.8973130266893428"},"_hasShrinkwrap":false},"6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61":{"name":"scandirectory","version":"6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.3.0","readdir-cluster":"^3.3.0"},"devDependencies":{"@bevry/update-contributors":"^1.7.0","assert-helpers":"^6.6.0","eslint":"^7.0.0","eslint-config-bevry":"^3.7.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.3.0","prettier":"^2.0.5","projectz":"^2.4.0","valid-directory":"^2.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"965f1472a2f19372436a9b20f7be4c373f87da61","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-zvV5o6xSh0IKZL5RrMu013dwzGzzNiQuXAEiZ62zUILuWS7Uq/kbU7l/dNYgNOdm8xiB5cbMtRxfHj8n5Cmrsg==","shasum":"afac046f92e31302103ef6c3fafec8aeb5177cb1","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61.tgz","fileCount":6,"unpackedSize":23882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexrgMCRA9TVsSAnZWagAAbKwP/2k9rFAVKaOSPSVAIAo6\ncD4PSh8+MTpOQPmrrFhizSytcZBqtQtJVL1QeETo9v4JEzAY0euUYiKbo80D\nGcswndrRsMSQUgqhcZ+/cDHSEKijSv1ULkORDtw8AEU3oQJTgsdiMpDRNGk5\nr/nriZRf9Jw9P5KyM1gV4AhuSBgXofJtbgdbVjgTP3yj7C8GjiiLxQAJs+Z7\nPYWlvv1zNljEb9IVO3Cr4oRBYKU7BM2Xz9oJanXzNXzQdNwCcOmCn3Xc+Xqq\nkhSdgD2UKLKuAtkuJaGlAUUD+t+xCSdYqnZ2A1A53k1qkFZdNg9VrV4JxWbM\nOf9OBb37DnwPXI7AFp364Zlm5IEW4DqA3DyqbWwqmogtraAcvfm/tzvCMldw\nCMC3a2Wrlr/5vb4armaUT0h/3Mh6SLcZw7VUN+ALRfo+diXStYEAclnVz/o7\nGBi1Z/nv+E4JQHnIIRyjcVxNv0XhqXu5kTUDBjVL4yCW0sQY2s6ehOO9f2Nq\nEVp1fCceZKlfUoX3DHpbWwcbv6XMGslixudz3EC9/YoyEsZQg/HdjgrmgCZ9\ni/Xa3zvMEVQgOsS3yICvuenInkrRbN7mkv1Tzv3+PWRXrVrwD9i8pwBloYCv\nG9HVTyUR8fEIYXquhZUVZq60eqNmzp/s4VyBOrGlv3bLLzynvu3GNgSRM/aG\nkMEM\r\n=0T+e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8iTF5tkECLCFl3SGTMyAhx7qXdlhab+oE7286o2XDCAiEA3pEFPRrk0zipOt4wWwGzSZ62JB0OzDZDnTAjtNC07CA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61_1590081548118_0.6216931631478368"},"_hasShrinkwrap":false},"6.3.0":{"name":"scandirectory","version":"6.3.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.3.0","readdir-cluster":"^3.3.0"},"devDependencies":{"@bevry/update-contributors":"^1.7.0","assert-helpers":"^6.6.0","eslint":"^7.0.0","eslint-config-bevry":"^3.7.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.3.0","prettier":"^2.0.5","projectz":"^2.4.0","valid-directory":"^2.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"965f1472a2f19372436a9b20f7be4c373f87da61","_id":"scandirectory@6.3.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-UkdI3OCNUKTzF8qL40GYAKxbK4QcS4thSGjTv41y6s90DK/Y9IelzpRHh1kBkwRfgtlpo1fsNJgPtmTAv3gL4w==","shasum":"46de7cf6c3a91a67698e9bac349dad7909ba93a5","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.3.0.tgz","fileCount":6,"unpackedSize":23825,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexrhJCRA9TVsSAnZWagAAIlMP/RB8JRACYXfmF3tFXwYJ\nJSjiEOAocyxWr6wzhO2PIUyA3qWMrFgoVsuXjIYeKzK5vSOU2nHSaHUp8hq+\nCgFvarlWc5OLr4UUiFDNSouFNbVPvpWgsmvLdvQRoKSHCtH2SxP/5fUNeMoV\n9IOr64X+VIj29k0OLpDFVI4S/X/b6kiipdWECh41LpvTsNlA8cDhqPxPsIcx\n07xKEqYm9Ar5BEbyRZA+uIpWKpxrgoZNPVQL5NhmO9snO+S94F26NNSQDa36\ngz0KUCn3PYMj1c7ZvhE3ScyGiUwbWgPJ+G8lazWW5sYtc3IgDOWX1GPnPPlI\nXMcukcDgnanJQKRymTRVuFkAJ4lpLy4bwX6XQpRvYsaZuSLWfLby3qw2oh4n\n5+r6NXvJtMN3PEtGUKMLlYNJ58NWQEumZ5GMvH58UYgZzW5s5mpVsWab9aMf\nzUzD5nHsLaKIsLpwgfXK0ayj2qV76zFB+D2VkZC2EIhM07SCxgrlQWB6RB2X\nFzch6Qvarcm/RcWcHV0SCGNnTsxDt1CFDL4GubPVjSwZCHsz127BK1rmHYeD\nk1ELEf/IsZP8FzIfUu6YZ9bQiNu81UHdBYeyfjmYiVDWuhaEchxhVVNFhQpn\nf/tKOioRlO67O8OhRTmF3ML43Lby4U45p2QQd/vwuEZvfvGCg4BLVjHepckG\nePjH\r\n=xr7t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCps0sh7y4PqTHBq4yh+mnoDE9wHM5KQo7UfkUKKo60PAIgTzN9FmW6aoYGGDhTnHSFs2pMQe9LrW5EsQgFxhPlaHI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.3.0_1590081608795_0.07290122360882845"},"_hasShrinkwrap":false},"6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611":{"name":"scandirectory","version":"6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.4.0","readdir-cluster":"^3.4.0"},"devDependencies":{"@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.7.0","eslint":"^7.2.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.4.0","prettier":"^2.0.5","projectz":"^2.6.0","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"736f97a420a30112570620975c97b74e1f8c8611","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-oG88C4z17tF1/7Ls2i2F5L+BDx7tL8G1xDhZBFSDYIuA5WWaIPsfUFvvHKYhVVGXZQMflhN5NZusvz4gl2/qqw==","shasum":"18c420cf9e65046a0098299fc83c6f010446e5f0","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611.tgz","fileCount":6,"unpackedSize":24076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4LpwCRA9TVsSAnZWagAAtR8P/jmrSpya7EHJKF5o5Z77\nORiV9+8s1yZnZCluI4bv+KGyw41y1zx9rsTXBcEWZeKWG1ZHjvc9X3GgqL/Q\nwPvsBFrB3o0EnW1ckxjBEFqpnps3BkUUdCvtMjuH0WXtyv0XAuen0GGtQBxd\nbeM8Z+bapVY0D3+1aiCgCz37SV6SjGEam7NHq6gKolP2rB4uGAn5Gg3RK62x\nge6/Zag9tHuFr60xc/vq3F3qGPsVGIoKiCowwkvMdheMF4qcDIPmgZcyJxWh\n7A9ZFjeYurmnOkQw7LCGUDzgxGH+FyXRp9ZbhYqrlIi/YfhdrhEoZlgrgfoN\nOZL/FYARk0tXORnvArl9QzERkYPeJNewUbbkkiXZm36ETqYW1c/HxaNLxIkU\nMzCmXRx3jEUFqFYDBFK2DafzHjBwRkzZ9AgbnZz+clFm1PJiKLYxgEG+udl1\nnqnpbe8XwrTt1TV4iq1HACL1o6FhC0UEBwyjk/0ZOEJmDmQRbyN9BuPduMaL\n55wW1QopjQRmLBCNFTDBVhSigaTeyOyRXtfci0++RX3Ab9+d+18rZoF8m5+a\nTx6hDCTd931klf3NzfGb/GJl7dgtHlqkK7p6jgOqeqYEabiU4cVX16ekwN1a\nbkydLTt/hazB7mGNV25RFA78zSLpzlQiGz3Ip9i1AWLz04hA5Ep1X75wjID9\nQy1z\r\n=c+47\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFr2qVdwGGj/gerAt0RAj/sOzEvoIFgFDzhXM3Oa1myBAiAJrDC2cKIQbPzlef9m/ec+jQKZReY0D/V+VPrf22hEkA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611_1591786096549_0.017528855847062097"},"_hasShrinkwrap":false},"6.4.0":{"name":"scandirectory","version":"6.4.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.4.0","readdir-cluster":"^3.4.0"},"devDependencies":{"@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.7.0","eslint":"^7.2.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.4.0","prettier":"^2.0.5","projectz":"^2.6.0","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"736f97a420a30112570620975c97b74e1f8c8611","_id":"scandirectory@6.4.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-uqiGuKF5jV82Eb8p8pcjSJZyAP3SF9xxEndUirscdZRa99LPQuNBbNQuCwHOt+BpCXEEeG7WESq688Aj8CoTGA==","shasum":"a853662326ec06aab97e9e2cb66b4fa92afc3636","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.4.0.tgz","fileCount":6,"unpackedSize":24019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4LqtCRA9TVsSAnZWagAArNYP/jj5RcnipNw9J3CGR9zJ\nN6/kIWKlaJ0Xw5640d21CASB1QcdbMMjcccyr7b86D4aCvE6nSLc/1VG4NX2\nQQVjDuc4Gw/405rGYLL2O1C4sw1GJ3Ry0Kst7G+ScO1pFkYAi0M+OsCYz8yN\nq7TB3S2ozXezFs3afDkZSMz7hOcdVNVdnNltIKSz6RouDOIh79EcOn9PiWp6\n6/PPITxuHMJk0y9IX2Y9sXEDk/uErfEp3gyezEgsjKjDmaVPkAjgCOdxazi9\nUuEhAKzC6IXl/OyFTdF+2bRLh5ommBCFZyYfsxW5HkXWldlMMv3meO8XcIlW\nsSalDtUBY/syuuav7UprDoPZDc+9VAI6NDe7nDA4UCkGvwX9ZElFgLrRPrUf\nhf5EzWtjg+/SbadccMUTzfRD5dg5QLQbPY+E+UWZ4u14zshtzyvoLTrazdXR\nmxVOUHnjQAGvbMkpVTLubkVwFSgnTS5xBRJ0M9Rb8Aik5E/3wN8gzl25WkFu\nsG41Idsflw1TmjNwIsGcXd0ArUngfvxtVWWI5/uEbxOwoZrges6oBfc8ABBL\nshf9cnCQ0C5fKV+1U+XFGm0Qn8GKrBEdF+FrIEYNmytNv6JA1EnO9454LWUe\nAKR3Qb/rZRZpQT+36YbzOZeU23GR6Dz4sE1m+5ZKj7bnKx2qnnvuIHUzf8ny\nWJ4A\r\n=NlK5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBPiyeHGFC7tf7tsoCDQbQkaTanBGg/wGia30YiFdE4ZAiBTjUBB48nzuGkuZlI3jZgAv+aPh4RANSvNV6bhMsjvcA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.4.0_1591786156693_0.4740428347541734"},"_hasShrinkwrap":false},"6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4":{"name":"scandirectory","version":"6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.5.0","readdir-cluster":"^3.5.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.2.0","eslint-config-bevry":"^3.9.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.5.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ad6a87379b5da89cf6a1b26efb58ab19be3e47c4","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-xQCLtK1yX1woDlOmQH4l9rzVbDz/Fzuu9x/TtsuEld3jV9Y4tCtNMGVatE/Fp4wjfXv2Wdj+Qqw9a52lp5cTXw==","shasum":"8aa6aec01bde0fe27a23837e9ee5049bc9733377","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4.tgz","fileCount":6,"unpackedSize":24270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4Pi3CRA9TVsSAnZWagAARhQP/2F+ucbTgDKttQev5ogU\nIz8jjzyvBSWKX1zVM65VZzr/p4FLGk6NiLHLEGZMwKVqQ3M5pTwCoC5B1JIZ\nEE7k/ro+vtDa3m8Uv18DJwV/aO1unf+AXO2O8VPjS84QisUnl9HWYMxVMkWa\nx+ONhUvoD/g6ngRh18waCEyEw2bCjDVxP6Rme4SVHoUdlhkxjBO2iKzn7+cJ\nnzTeersBjjI1Gol4HF1bSNNEWIU26ccK9cgAAzEZFe0udMtJihVDlOS8iT22\n9+YRPRQ5krOticWGp7aB/+nl5tIyVgud/eh3xcrrKgpYzxWxtZXQT0QZj4KP\nN8Lf5ECxXYcc/pnl1D2KsTzWx3pKlTt/nj8STOCz/N/U7qu0+6SBfgl5Fx2y\n2JHArynI7e82lduViSb4rY0mgww5h+6N/gBGzGoNh95Fd4RKUvxRMtBO4LDb\nV8sdMbwQ3vVY0cfsE8AXhTPRMKYCM1Hd+yKcAU1pdBB62P4i1bZ7ai4hKw1G\nb0iaY/NxC7fGLykMoj9hkHVaijgG4mm7P7bM9OCInBrqAMeWcvzO7jbIGkGc\nbBIiufRa9uifmmwDjSbmiMl8BhFgovdNYEztEU449T0bFTzwjJUCIAAXiT5w\n5OwCH1qiOJwpKrElHrl6pUwOe3fFkoxJotzmWkTtaWN2MSEOy/C7lGMV0TkD\ncVZw\r\n=p3WP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH16FCWEsRWANh7MDBf5eFeUcZBI1gktIv2muoo3zJIIAiEAiX14J5OgPQk4B+wdW6cJPbcBS0ycmcrndZZD6uv1HSY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4_1591802038805_0.9161376857614358"},"_hasShrinkwrap":false},"6.5.0":{"name":"scandirectory","version":"6.5.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.5.0","readdir-cluster":"^3.5.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.2.0","eslint-config-bevry":"^3.9.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.5.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ad6a87379b5da89cf6a1b26efb58ab19be3e47c4","_id":"scandirectory@6.5.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-REoGwjUd3ANuQvKOd6fFN57cKoFf8NcR8ttwf0PChXXX2r/NDrkH7dM/hsPhBObPP3ElTyVKAkdOa8YO0JlGTA==","shasum":"a2d52ebeca5be510281a2fa3c19930884c04e8cb","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.5.0.tgz","fileCount":6,"unpackedSize":24213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4Pj8CRA9TVsSAnZWagAAYpgP/ROqbRtCxoyN4/LYQilw\nG9i3I6QBW7sH6785a+vLxMjKx7sTIW0VAAu97CoGTQx+beny852Z7x9D6isW\n46kvQ97I15sjrzaxzgdHJJjgUx5TJTZHclYWxjXP1sKxhmsf97IZqrfkoUsm\nXM6k767wOH6hbTsgDhJraiYJ32kKAhdX11ONAZ7rQ64dhXSTyxQaUAgf0MfC\nzKGDxpO6aCmzd/DYygTYCzCG4dhPP3YPQjSD4JpdbjgeefKBqquH4DUSgUvv\n2wsTWEwMN7XM1H6Htn8t8x/7QS/3oJR45QHCHRfMhfdDiQReUArf9kr1q90P\n3fmc3DllSzBssIIlZB3C+2BXuRc6p/s4+iBgFNtCVOy7unl2b4pQTcfikyty\nOsVMHCl45LhW95Nu9Lf7nDPsLIwHSgLvbOhQwW344YgXkFyFEVnnDt+qTBg2\n7KTwMvt5/xkE3DYzq6JK33BgA3P3J45eSpKKChwuFv1G6OHrLDDZcrWK/rUL\nuSq/HfgGlkG/voumu50OAjmMIp+N3Y27p/MhHLhLmn4g8Knll9Baa2wIxYwf\n6YuW1lo+onyaV90PcQHoxuAse5kAW9DeOQePenqApnjDeKkPq/4aGz05GVei\nAWQjh7iLkSGGqHrQKmtVvznvFt3ReGWmixxmixUznfsHpbvdcWo0CFHbzZXD\nCBwT\r\n=kmN5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBhwETdPQkyrDqvihcZbSBClXCth/DVrMErijCtpqvEwIhAMa+P3rFWOwLmPb0DsPKMTjqwCk7fg0rxVCKQ8KQEpCB"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.5.0_1591802107938_0.6454570432858908"},"_hasShrinkwrap":false},"6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53":{"name":"scandirectory","version":"6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.10.0","assert-helpers":"^6.10.0","eslint":"^7.3.0","eslint-config-bevry":"^3.10.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.6.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"c051c6663beffe7ac1117ecda8d01f19d8ab7e53","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-jL5AwUn1HxHPoX/eYMhJA9Jam25pqqmSQJPa37QqN08UrysoTPX1mbb3AW12qNenkgu3uhskTY2ld6npCxWKeQ==","shasum":"bdae3dd884fca7cb5a94136feb91e2b588f024ce","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53.tgz","fileCount":5,"unpackedSize":24198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7c1UCRA9TVsSAnZWagAAMtAP/R3qdPhlIfL7mLXXyBy8\nzGvFU8rnmTR8j31hXc4Z3M3mFcwIS2fTx+TpOIEN1LnFp9NxBv3e9xji0F7M\nYz6pzugkXQib5YtRfElXooOZUYyka1xZVo948X8W7gpzNtHiN+iBR/JHSXFN\nT9eprg32Maczr0EK3QQ3492YZRBflDL6Mq0w+/ajjESfcm/60TYQHuyvbRz6\nQl/LKdK7X8itdxL3TaS+ybenHGYliETPUIILCoDAIf4CC+4JCGoxvazEKrhJ\nhqsRDKMoCTmPUGKk56R8Uvjxe0fROX6ntsIbC9i/oA/+eR14Gtk8NnXWvG39\nfXGztqI0lVMTE/j1J9qqP1n8oivLruMzuUny5d7QTk6J4qVRf6869Ib5RbTK\nNb610eqBcKcHDb+fcbPIgJI93B2jH8/UW/uzYrjA1KZV+kZzI43kRsRWfa7k\nQfztzSxcjapozvdoLjz417KA1y1WWFOnOiIhpMYJbK5h+iOlETLJKlTb2KaI\nh0oZRT4BuIE3Wmq7jV6VDwItuS9P90lLV3KL4PGX1TVX1m+9sCMcLb8dvL9L\n66wI+EdiWihGGzcoJZTuksqRD+rM/0qGaeLxlbxN9rTmX7XK1RnfvkSNPCG9\nrv+y4qpi9Guyd5s3rqYKlt815rcPIqgJDRZijBRMWl3G4LgkN2lsarMxqlcu\nzlIq\r\n=kyYL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFrnRqG1JTfhK6VuDDuhlj4z6JirR3U94yG0aGbg5XQAiEAi8GwVl8zQoXsL4H5BjYxQ+N+6NMe/sQBWSMeqdN3Zhs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53_1592642899584_0.9450267659505938"},"_hasShrinkwrap":false},"6.6.0":{"name":"scandirectory","version":"6.6.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.10.0","assert-helpers":"^6.10.0","eslint":"^7.3.0","eslint-config-bevry":"^3.10.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.6.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"c051c6663beffe7ac1117ecda8d01f19d8ab7e53","_id":"scandirectory@6.6.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-qSePtZ3pqpoaXPO3eY8Mer7urznWf09FmYzMd3kLOTem4VxFtZmkoWBfpuQgs6CRN+NGPquILa96OUgOxgtaCQ==","shasum":"52603132240c88b3bfdd01c7be62aac3f98a550e","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.6.0.tgz","fileCount":5,"unpackedSize":24141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7c2QCRA9TVsSAnZWagAAUU0P/2EZGCAEkuLStLiyX3hM\nRjd6PtOz1TgxKtr12eQznutTdIASuOnnhNnoaTxY59sdl3MKpA/A+ExWLLIU\nAyqPOn9xIdOA4gPDvyAkPK5kq8ZA3FobJPAumhsz/KszCb18zSiLS+NM6GB/\nVKjr4jD447+aAc2crelAhE2W2P4+UbKRgFAdC8wuWT+AGAO86xZ9mNOE750q\nNqcYh9NTQTPX7Jt2mj1ZiUJL3rbw3JNxJVytf6PLgFedOtKugWPEG/zLvBU9\nLenKKQhouVS/QRuyXBRuQ2J/Pl20gWbP5z5Gm2dwV33SwyfVm64SrZG21ezH\nRRJ+iRKtu5GotW656o7yKhpT9Omv7Lxs8Djam1CN6WN8cGHlE8yBJxnfsPJE\nA8pw4S6In1+ceFt6/310GOxtm9P914H0/4c5pZinicV/ouf8jZ/wue2q2WJ3\nH95pRwhuOT3Zw8FZKLPXDdKidqhHnjzJnObqY55qNKMQqwxJD/hDt+437Scz\nw6PTxquaMtZilpDXAI6oi7wEoMv9UZbQso3IhLFrmJsV5OUKx26Jdvd9qCkE\n3D4Z/cuYyyhj2c9AJMKu9Z235OeW8UIJPk+kW2MzQBIEqk5KnBH+8Zj/Rk6f\nqhTtRnNNMNRl+gXLDtm8uV1DSWBHsQL8T9teusqX6DO0nfug3kGr57zK5JbQ\ntJ7V\r\n=dcYF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA+N824Nmi0pTxjDYXOvEyr/UuBG4IEkK4owwm9ripG4AiEAvjDbAYcveklmJ3H8e5rJQsEHr9RPAPM8sYOZNhf/D2I="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.6.0_1592642960369_0.19629786857769838"},"_hasShrinkwrap":false},"6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4":{"name":"scandirectory","version":"6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"d5fb317f33614fdfdadf79dcfebe8efb5c427ac4","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-oGNr8j0PsioPjnADOtcUZ4/4OdJw23F8dt2sLe5p5/RC3iJ42uDB6eQOrx9tEQ297LUndxRm8HuSpXt9wmB5QQ==","shasum":"ab36df671c2951f33bff2f7436028547c68a6464","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4.tgz","fileCount":5,"unpackedSize":24436,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7xzQCRA9TVsSAnZWagAAyXcQAKPL6ZiJadHMNfXarlcX\nRAf9wkDDcIBdi3TOUYd9ebOyHcCA+u/MCz0VKLT0R/dVtf+TNPYXNLOiN8+m\ndWp6UWXVq/sErGZS8FFk39WyDeTLUUIPRj885AXhzXOeV5n4eHyPF9hArW9h\ntPBLeDshwAIslqOLV0umVfZLlWzhPYVvYhL4kx/4sPvdv2Xe225+kxG5Co1d\nA61WpnWRHPaQLJTAIs+JhQhZD9cKueCjGmplUc985LWgAAQ2lWqTzjnpRNnD\ngjA//9VkDLzM/SMDc6TFVh98QbjAxH3zHyDLCnpAX7+sR0GBMdI9vMVodG5q\n9SCiS+8dNJ228iwi4la44C0hSbbm77SIkboPmRXSBQD22MYAvwrDZt/i6Lzj\nazn0QHbR6dlU11rA+UEfBoynN1x8wQ0Lhd2sAn/oVSm0MaxrvQHS3l9iSzO/\nB3dNvO8vHoo/Hq4JhlvLth2CVP5y3dEoL9B2/qjo3AhiRZa9Uuwp06uQkC0B\ninA6rFBk6037N8dImAHICuQ3NnJtjaOZlf8k3ofs4Vp8Wz45hzuIOX1R+/Kv\nPBTouKxpPgH2gJlJongoCtUH9WJZC9oBlxYjambBzosxKSKZICEvOo3KbbfP\nw6NGdS1Pz0PXl53wOrNRMCZlLrR0RvFLTlN56PVaRP1zS0D42vNe15a9Nr3+\nFdmE\r\n=q7E/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAn5YvlDJnXfzucWOOR+M3zApvvn1h3IzTURsrOOkdRQIhAI8ZSwvMqOIWfke7Y5P/K019h7oAaU1eOM/vs+I0PjfI"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4_1592728784221_0.8229619709318086"},"_hasShrinkwrap":false},"6.7.0":{"name":"scandirectory","version":"6.7.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"d5fb317f33614fdfdadf79dcfebe8efb5c427ac4","_id":"scandirectory@6.7.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ootZ4IeDvqesOAcr/G93BVJzMP7T31035SB2VVBAQlldnnRdxu/IscXyHbnFrml7EZcwm6eRrjYukxFRe4YA6g==","shasum":"e295e2be68525a1dd424c0ee1033575e5925ec85","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.7.0.tgz","fileCount":5,"unpackedSize":24379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7x0PCRA9TVsSAnZWagAAiT0P/i4pcCWz71jENI/kpdfo\nOu8+XjwESRCCNwqzw/lfEcqySl31L1Crwp8nyPLyr7kbycoHslXqoSfJscff\n3QJeX2L4gLY2Wd51gp4Smv94h5tBhECaWG9+jvzBY7t+6Wfk02L1JQGv+D63\nz57Y331jlGTCnDBOygXxFWQJEB8wIuCicRYi1AbpwSl5YbENwJ7TeQLW13AO\nym4+iNTH6574DGS2M3e1Ed5kZmEspOiP/aTB0JnXZ7CuE/03zW74JZZskhE/\nf6uvjN04qReEjQhacq2iHh1jLIOzm9h+plk0vPv2gKQNSWNQlH4zhEquC76K\nq8+QdUPIepxwhOD7FRM3m+dvjB39P5Sftz+zlMCV8RCJqGUNpq7JJE8gktGA\nXd7NoCP3qOKFuXFnJidrm9krpoko3+NxW/UI4bier2janL2CO/iKYzU0xgTS\nRNen8hqfoNAlFqTgg0WPbYitOEb/m4BV/dYoJjtGjlIw3Pz1fHkrR3G+V4Sm\nO3kp5vKouxTfg6ShzLtKTpmFSnveHX2u26l+G3b2uKaTEzPfbmmrSvt8Do2M\ntuYv7NMUb+aI2kkheUSUATO6ARkv+ztlqoWGC1rGKKCrObdwhpJy66TQ2eMs\n+8ZOexTZl521ZjXAW+JE/rygcRdaAzu6fHK/EfvQVmSqADmNL8j/uTgLljYC\ncuRF\r\n=z/wd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhSkHqtsHzwBKVbBq5ixfRoLHWRCncezb85XZ4l4On3AIhAIEwzPgCDkZ09ybsKyZc1e5Xw272zMH1waiFKeHCYfao"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.7.0_1592728847228_0.7265122177407639"},"_hasShrinkwrap":false},"6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb":{"name":"scandirectory","version":"6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"b0d12263090befd298e93f7b8ceec26b34da36eb","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-fInMbUeCMdCXD7KzwZC5w+kVkEtsE8TME1QeOO6HqewT9dFIMoXGERfS2xZruK1Fa5MIIEz5hn+0fkKc0OPSlQ==","shasum":"fb8dadbe6190136dc663c598eba455466872159b","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb.tgz","fileCount":5,"unpackedSize":24632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe76fWCRA9TVsSAnZWagAAbggP/2eEWZH6riPTq/j5CbIJ\nDfnLXnKCLwor4VWPf0H75pytX6PLk1F9crlrwRSng+qX2SkMUVKB5N5e/cb+\nLFgVLPh64QPN6uI8fWT1vX2o5Apmik1OwYqRY7NEg+hVPtZw3mxmRHr9u0j2\nOfOW9Unh1XxjJe/dgKNiTinAM39jJSyFoKn/g4JeQF7rEXO7aOa15VuLVMxY\nOvqHQC3fn7/kOcWq/rUT6+VCKM6QyYkc+BEGUhHduM9HWcNwg2cxkrrtVsaj\nkBw8OE7JMqGobY4LJJanVPcRSSVCjEG1vLAP4phOyG7XLeqjX1SuHJrrP14i\nTRMKEjEz7LLRwYGEer4NDuL6hwLuh1uE1HkxQevGyq8tGmEfC0SIfHjlGClE\nkvnIIuMKznSnh6llocqvxgnjzo6tV27xzr71o3+4232AoDyRIZDusJc2xrNX\niWlVyj2DMzcWeggFaKnHmsHu5gNTcoE7BoTq3L/EYT1x2XJBmW1p88e2Wj7O\nA0QAIOrp4UCpEr0ISZhOVU4xCuic3MPOUFNa2tiEHutdOqjjZ7g3rHVI4pWa\nJFhoJI8CNjVDmfZXu8tDgb5vWDUmsBdX11b82iBRmGmKBAw/RY1YGDWe+sfg\nQzi8WchpOLbpSto4dvhkRo8k+9Grau42ioLCZzta2qEdZyzhdzXc59bvqAhD\n3rjn\r\n=Oyq/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEHFf3whF94m3F3hvM/dHDtkunf3i1pDMKZaQ1eGK2rTAiEA8/5q4EGxxVXcIIIbNAaIAiIwiSzRjr8T6RHZGIMqTtY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb_1592764373898_0.819551350942036"},"_hasShrinkwrap":false},"6.8.0":{"name":"scandirectory","version":"6.8.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.6.0","readdir-cluster":"^3.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"b0d12263090befd298e93f7b8ceec26b34da36eb","_id":"scandirectory@6.8.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Ynz6bz5OBihMZv20DsepEH5DSNYHqSvWKKB6dB2HoDj7dUSMaVbQE7pqk4N2rBfCPVUniioIFQ+U6AQcFgcf5w==","shasum":"061137be2db4c9d77091076b0600dc0a0d487d68","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.8.0.tgz","fileCount":5,"unpackedSize":24575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe76gUCRA9TVsSAnZWagAAeyMP/jpqhM4Nj5pSZI7Gg33X\nrKnpRK5lNLz2sue7a8epgfL8KQRWTwKZCpQzB+zlGQ9JB6BI/UavCQyDnnOl\nEaxaRTVHQ/0UILKi6sux9n2ryCOsx+3pKbYudFLu5515/NHAl5yCpIVT35yO\nEhNQAy+P190n3x1/GeoGwkrmNqDqNUsYJ6ahDQ7xSvRUG/3H58KXddb4fdzE\nHUS+zHD8U05QE1SRfECjh9XmGXtWJpBIjQpWXDi0q4auUHLdyM5MOIQujtqh\ntgrZQ214DkaXg9CTxv8UKAXIfp2KdminKUpBnhUCcETFkdickcZdC3VGkEQe\nn8POlZpYX+iPV7VVskNt04rdNJDLM8e9WqqBCYsLVgiBin1DyfmNqZZand2s\np2qW+/WkStL47AxLqfO8VUbkD4XvNSdGr5QD/JaZ5YuMzLrYINYGwl5NoEWl\nuoGvQ6wEtlrr1eTrrVvPBBmCY2SlSzoYtp/WPz+W3APVz4zaomo8vYTIoqyL\nKFyW9xXWOzIV7RGH26ShfnOwTg/wdyJzFl1OAXYQag80MBF3RuJwlGeTTym0\nc4WJIl7arcUsXyJqKthO+G5yWoK1CvrQcolxJCFoOk8LhO2gMAWBotfD3BGA\nnq2U1esm2iRXw8pUUfxOaWj4Y4whdXdVbXXQ38QqY3T2nea8OEUv1VnfVGBd\n/QAg\r\n=zl2U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBv6ZVEmEGCBrb0Tk1G0RfCm6uIXODqHjBqPhDV8qwGxAiB9LUCUML7JCPo2I8SjUnkysM7Kr7snWnLOsnvXzbwz8g=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.8.0_1592764436263_0.9859549812324029"},"_hasShrinkwrap":false},"6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9":{"name":"scandirectory","version":"6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.9.0","readdir-cluster":"^3.9.0"},"devDependencies":{"@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0b05c7e004101fb2e10954d2333c0d0d75543eb9","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-3FLHbVYjV5aEl8Cv0uFoH2QEdIoTKgKPkDOOIef/h00UM/7gqVQZYqVp1RqqakPfnpdU7t5nVUpRUP3juqHDTg==","shasum":"77d905eb990f16df1f725dd851d895776eb8a0f0","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9.tgz","fileCount":5,"unpackedSize":24831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9CujCRA9TVsSAnZWagAAKvEQAKK6J3I6mECltt7qI/CN\nDtijE08zVD+TreztyAP/K9aT0Zk4eEPVMjWts902fx7G4v1/Sbwu+2HcTyPa\nch+UV4ZgjWvOXXlPhIVuS/SkmM+XZHcuB7x8BRuIl5QFxDOPxKmgikNPVsK4\ngxy1aIWZiVviKsHitmpEc8SZTjoZTyGVvvN8DZ/MRdnqAOHAQ8To3UUvtV/H\nzy2Gp0s149z5cJmCb4eceKiFxtGpy8hWREVKSpr1XdhCib8J1IK6jEhIQGgh\niBrLcYKGsHT/s/RDS+SPGXUGSaKAUNA5jOwsvMiRkYT2EktsfN1uvj6HIFJ5\nr4ztcyXvYZw/Mx6zfv7pFuOcYe+xaaHQlz4bdIH/JuuTB3YYheMq5HqlWkF/\n6ZcCIH8sBjtHIDhckrjgRaE30tJH6V/nupeNELysHUls0SMMsAftPGNulD/r\ndWSR9PdBSO2soUV6dDZ+N4ziPcwJo4kGrZHbnvZNqyPtoD9PqSRdPTk/t5ZM\nqvV76rwGv1J7nMDfyRGa37/tTScn9FGXTHcF8JCTlWrGXSv3nibYE6jurJeg\nrdNo0qhcH73z6WhF1y59WB1qZldGJD/ggwVad7DyJLt9Fq9YmPQLf5YBe/Dt\nc4r+LyKJzlpWIRxgAJGjBeMDub6Xya7+pVf8dZGQhaitDUyBH6aHjyxMsRDC\nmTCo\r\n=Pwe+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGeTnjlKb/xfCp3nmZSgBe+Xr0yttpgLbO1sVpYkuO6QIhAJk4y0IgTQzNZdXpZmXxWjTlvkRSOUr+r6I7WDxtWj+F"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9_1593060258682_0.11734766388221352"},"_hasShrinkwrap":false},"6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01":{"name":"scandirectory","version":"6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.9.0","readdir-cluster":"^3.9.0"},"devDependencies":{"@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"b1c080a843eb6ff9fe9e1c230d865acc74f4ec01","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-tfSIg9akDDkxEVlBH060L76yUJlTw7RW2B1YKbEuQXLLRyS/l9tfuaPDACmZO10eh+2g56rol2SR2VkgZU/JYQ==","shasum":"21354b877e59b2a6bd2289946d6a4082beabc142","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01.tgz","fileCount":5,"unpackedSize":24831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/pRlCRA9TVsSAnZWagAATs4QAIaXb9C/Ef4ZL4cJZ4RF\nivhu1prXUt6AcHyxPfcyAb7+ayUckjZJIJ7Kj9grP84P97LFCS4OWCPWQk26\n6MpLYofy7p7DIeeUa8sw9Dn2tW+SFQAzccaTsLgJDvXJnV2+rv9Ej7VyYtue\nXXK5I730doeMfup7cGO7QA1j9uxrhPkTCyteXNHBmyV9ILQxhV8xDVR0aIdZ\nPPJ6GzaJU4tBI5oMllZVplhjhjhO5YoV7t1kx1+hA6nI6qWAtYIi1ozB8oz4\nskm+f5oUTOczuFoXYXTE9OvtMWsPJNSkPJyltidvJLPEh+twCUAJGE4VMsPG\nrO/wuwzZKohBcq9RHUhfCdieslxNpeD76iUAXfquLkpNevaDLyrDRgYT6wYK\noV96dwVTUyyTGnJ7x4a8orygzsiWky71rTA2KhTbScGdpZnPmCTc6MYCl5ex\nLHNlIExyHrgnll8FRF6bGkKh4baUxeD/HSh3sfhoxXMdjcfoMYRAlKqo+VSe\nG8kIuvc31rBuC7fAf80HMmMA6d8eV+kLYTC5daAQy3CBO4OUS5gPmXoaj/OM\ng6lZlI1dpdcjfs6snlUwMADcB1WxeL5m1q4bWHolE5z4/sGnKbB6n3+HThfk\nEl8AWlwUn+i6KjaBn3EM7sVyhz6Ws/VfOJhsEOFr1s3kwzP+8DAbKwhKbAnl\n9jyV\r\n=JxhX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/+0ZBrWrcmGHA8dBPFWwo4T6/r+Jw4js5gmBHhN0apgIhAMQn+u91WRp6SjP2q6vEilyVO5R/avqzk6tLuj382eZ2"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01_1593742437325_0.8778461760509679"},"_hasShrinkwrap":false},"6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308":{"name":"scandirectory","version":"6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.10.0","readdir-cluster":"^3.10.0"},"devDependencies":{"@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.18.0","eslint":"^7.5.0","eslint-config-bevry":"^3.17.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"aa161b3d3e4ea316460da3e852835c42eff5e308","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-GgZzQ7RDgslDnbonRUsVrYKaNQmhS0rlRN/gJHh9n2H3AT61G1Fua3aF3h4wBw8vD9bz/3nc0LrZ0K3i92FKuQ==","shasum":"f5bec00ccd3de9ec0a262f2e6b7d84ff2a4e2037","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308.tgz","fileCount":5,"unpackedSize":25021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGKbpCRA9TVsSAnZWagAAL5cP/RaAXfPdbfrpyyFzytaA\ncOT/89SArTK4Tdq1KqczXt4dIPG44fLLe9avVLT5pexz7M/hgC1/oJHdPfny\neLKYKb/sRrW4m5R0e0tMGqzqqb2Y4cEk0lLTw3K+/MiCuDGXit24QfcbQNPM\n88spt6B9IcpmugFGSa59KhG+fl2wQw9ea5aQPNryYIE0idQjjdI+t/xU8t59\n5MFRCSWcfhPMrmOLBU7z5r32N7bDcgiEhCcfIgkG1PIr0Pjkld0NJ/Tx/V1U\nJzs5R/XFeSAYNB1Xm6jxgv5+4GgtPVNdRNKSIjCkGLd+H1OLfNeGmegvqnBA\nyl9OLE81JDDIEnh3Hn6AtC3RGsakWyltUmmmn3POH+k4+8hZgzJ9/SXkzWsf\ncPC2kA3Lyjr58g/UheZBo+avyzKs5BfBcIkezHhE3ZiiEfj9QdLeyQi3zZa+\n1l4hOMFukcYsKLQVlC5RJBhiGAfpQBnOAEKH3KUhEg9KFwxN8oHj21mDYlxC\nkmbeG+FtDvMLhDYAyD6qa097M3KiksxAT6J3p/N0sCy1uIH7sqame+KMzYfq\nE9+51AqzuH7pRHCyzAjZzgttsxZWdgA5jAi2UlghwCyTWL8m3ilYV34M1kQk\n01+DVwAejMDyPIkCPb6LZKdHFDCNl4PfsYuV1W4rc93yLGungzEQqXr/guBq\nV8y7\r\n=NmIo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCosXz+nISRwQvh3NhPWasnQae7q9RzJapZX7TYadE0NQIgDQ7GBzlE/tX6jd/XhEPFvdnHaTav95HTAeiRQlOXzwQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308_1595451112854_0.16712083817273982"},"_hasShrinkwrap":false},"6.10.0":{"name":"scandirectory","version":"6.10.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.10.0","readdir-cluster":"^3.10.0"},"devDependencies":{"@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.18.0","eslint":"^7.5.0","eslint-config-bevry":"^3.17.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"aa161b3d3e4ea316460da3e852835c42eff5e308","_id":"scandirectory@6.10.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-CQvR2+xIPQgQRYQdRPgynl6TAwrJLi5K4FB9blXFDlrg/BpLux0tX4ZrfvZJmravDFH6yAvIK0WApIiXNo0Oiw==","shasum":"da1efb5d4fb8b956e8826f4ad51657f6340b2dde","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.10.0.tgz","fileCount":5,"unpackedSize":24964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGKcPCRA9TVsSAnZWagAAeOQP/ip0bu01NuuXDSbWcMdK\n90qROhm9zcA9tZgN0YYKTh96gk/pYy1g4MhvJIlFpyFt0G81fDk/PXhjeuZ9\nkKs35GzERJKMYuw1gZ8iMo0eWIJeibORUUjiejoqBT5e6+vtP4M0/Tq8iVVe\nIIOtegujYEuQapRpvKnB5akXVB4q4xnqyRkXwu0OCYglEEdl0oiMItpcg/pz\nzNuXVLga2X3b4AlTor3B36jtdHkON0cEWQ/naSuHhUmX4h0Y4eef/n9wtd8G\nair/Y/rU+xhKcecVKmEe+EC4ByiiaKzW0ewNyIM/4hVwlCOhWphAptdJJ7ZY\nz5Dw8fN8KdvrG1/ATYqLrbkCvE1q/QN1R0MRSh+W+XBtrotlspIUG0tkZtP4\ngveBegYHHTyd0b+RbM2einRIF5oWqSF1+1U4XiBCrZvGKIMubHNhLWdG1kez\nVIwj0vDpI+Wej9nsXaip2qUrNUIZJmTnmjKm1ghpk4OW5fUFhcObsW83U1IW\nDdd9Qh8wf+g0bA1AkKU5ryuT4F7aCdN6jLlAsDaeX8AmVf2v/LLxhzCFNc+i\nAG3cTZ7ZiI+zvrhEo7YrqbFOedTx77e2rk6zeklBY2ZkPAi08aEIaMJfuKP/\n+lACaLA33vidJgo/yxWKEq9vN2mZ9SBOanFvhvW46m1C/w49TB04XoCC5C8+\nFC5F\r\n=euuM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICFMH9QjNIvvaOlvr99AjN66s9IReefORT28WTfJvHjzAiEA1l6W+VshG20bEeoKVGeV7Cdev2hRVgD0fU7hQZSFnQs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.10.0_1595451151572_0.2853254491202679"},"_hasShrinkwrap":false},"6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142":{"name":"scandirectory","version":"6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.11.0","readdir-cluster":"^3.11.0"},"devDependencies":{"@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.19.0","eslint":"^7.6.0","eslint-config-bevry":"^3.18.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ae23b11d3bbe0895d583c0d6a5641c377710a142","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-v7YkYmJzGScPQs9xz0XHyby5I1et8tSycZJx51ZvyRKIaUSBo9srI5kIo9/BUWu9oPPqzIvb2QTyMziK1uTS/A==","shasum":"54484327b3d25a9ae19abd264396b3c8b43c48da","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142.tgz","fileCount":5,"unpackedSize":25218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQLPCRA9TVsSAnZWagAAcTwP/3tOLbyJEeZFnSozTgH6\nS7hLMbOHFugg26wu+AInszl9CId8EyKW4YGWyxP9Itv5Tvqcq+WQbwcWPlR4\n3iKAphuZyFN0blSe6yrZHLz/5o+OlkCdh79hQWilL7qQtrYSAOEHTL9E0YGf\n8VFrpFJjmLFciFgwZKphvm/ym5ZobDBAm8ZAwxMcJw2WE14qpOJrotPYAHBV\nVHuUH4XaAOktEQGUlmzDUFjvb9D4xOoWvkHqgODYjGFuA0qsPn55C53K3Q8w\n2/rqMF6fZPl1PCAQdPqAFIxMSceEVSbqs30ZB49xx+Lbyr+CnbOAkWiW344d\n5BUj03CcHjtAd0yOZr/4Ni5Df5IgtrjpJZ1Dscqs4b666SPWsSja0HHffXog\ngYKfR8iPGytM1xZFD3lW6Ot+TK6XrTIoxbQWHHgo9B0kaL9wZB74XIbWVT3Z\n663Z21M9ippodt8UJ/B1R4fWzJIgDABtsJ8Q1FpoJXEABiDkpx6anW9uyQ4h\nPOM9L6WPV40XMWMOZU4PPvz0F5YS/YB5bpGpYCB9GR9J8En2LweANmoNlGUP\nKUfg5BtM6cB8M4hvN7XbV7gK8f9qvGCNfmPXJVu+izgMH7FdIkzdA+GtZOrK\nGtcRzhrUJRpsElx7SEauhE4Sy7Pc/kImcQw93GZUeE6FpjX8o+I4cMii2w5S\nYpCL\r\n=i1W4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHSXIO5+zlyUX/3rt092W5XkKNefl02BQ8c9AI5mWDgLAiAKSNBeyu0W7FUSvcpBsDXftbA4Jc+MuuLF/fTcxvVhCg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142_1596523215279_0.39175334663448536"},"_hasShrinkwrap":false},"6.11.0":{"name":"scandirectory","version":"6.11.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.11.0","readdir-cluster":"^3.11.0"},"devDependencies":{"@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.19.0","eslint":"^7.6.0","eslint-config-bevry":"^3.18.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ae23b11d3bbe0895d583c0d6a5641c377710a142","_id":"scandirectory@6.11.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-jxYe9NNn39IfXiJwGEgZEpCb0zFbhQcoFpYs1usMmIxGgbrb3hvE2KhRxZrDISSP7m4KUx+ncVba+BonhF2inQ==","shasum":"49a19b8717a3a5c35bf2e8a084369dcd76a495a8","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.11.0.tgz","fileCount":5,"unpackedSize":25161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQL2CRA9TVsSAnZWagAAUPIP/0438iG1SXLBZWfDISS9\nNJD5Gi1JeoaJyt38SpJt0gkFzD2CGfuZp7yyauNasuVhhg+Ovfilndsb0hjo\nnHcaXXXMTqu6KFRs4UdSMGMDxaRoSjStmMTb89rUkFs8YdvWA/JYJ3sAiorb\npHuObg/Ln6gmh4L0MPI+x/D0NFxIpR1bgxeWSRA6cTX2HtJngwIlqhgVsGJ3\nm4EH6BT0oAmIYHCZNluVVDmeM2xCCGm0KjLv9XNK9VgT3OUw7uD85KTm2s0A\nQJEOLveib/K4VUoBDLlH4vsAAk7+v162O+UQ/Qoi5/kFOXD10CstwTCdaXYn\nFNXd/ipUuiNzGRspFjZNEQhAdt7TgDXmPIixN3YAdpaabvbng223iZk8k7Rd\ne6rlo6EJWR2m9kJKds/EEkdI2OwyjYDTzyJUQIiu1qPbyulnROhCjjd6fYKa\n4c9y+YbXwmRvUFURWsyyDyczNFxTkeZGgLl3gf7q9nLt4OOZXYymlGcdBSuU\nWvL9NSsvlqeW3fX67/+dwwsDXz5wY7qgJibiHloS1ikgkmXSLIGNyjxuIST9\n8D6kVYcGsjZhe9z1hkq92gSWTWEB+qpRWIUXYUaAsecOLvPgog0kqqm8a32W\nNCYLQSdkAmcxFMdg73p3v0kgRBBlxgW0davr9Bkdo1verhem+E0AQYauHwX4\n4UCI\r\n=K7by\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENJbZl28f+W2y2SDwSwxSDL2G/nIFHyrSjHqW9kA7mSAiEA5YYF6QqyuF7qS0F/bBKLnnG2sqBDYKXL7e1KeL4QwhQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.11.0_1596523254348_0.4992591311667649"},"_hasShrinkwrap":false},"6.12.0":{"name":"scandirectory","version":"6.12.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.12.0","readdir-cluster":"^3.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ac6471cdaf1c085a85b9d2a4eadf57b6393dcd95","_id":"scandirectory@6.12.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-4mG/zYAQe6a8Hv4kQiRS0xEADgQHGFl9ZVjcv0Fqd0gu4kqlv82IYRCP5lLV86snNKT8Fl7E32PK5RQtEXq73A==","shasum":"55cbc214ab76dd0070cc7f429bb2bed36ba8bcaf","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.12.0.tgz","fileCount":6,"unpackedSize":25595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOv4FCRA9TVsSAnZWagAARicP/3UqoTK3wVBdtz26BD5z\n/5cePBdnodY24RbfHV6/+21F+lt4WUM6fSbcGfWyKHk/iXWTFFEp/cWTr0eB\nmfMOSGK8dUnbf29h6PfsUU/hiuAydtkPQDN9/JkaAqK/VhsktD6Jhft8QeH4\nZ6aXEW5v7dmz4dPsaoEoDJY5VpJ5ipuxU1QBb3s9csQIUlcR/nMvOp7SgGoX\nQH7IUmvHMxqTPsNRlktsiB0uSfE9yUmdNSuC0ng6XwD/DIsv3dWENeHcOwhG\nPzHn+Q3hrAyMgJCsR6nUvCRnhxseaWXTdJc9dUNAf6j2wrAiozWDr4Si/AN/\nAB5jrgH7bxZjsJzrTON4gSqiJ72ghi4W2ZhO2TaRMKEIAu2MGhi8C0H1mC8Q\nMh9+9/WX/wSNWtWRLSU7zYQHLKpy3t/bF/xiNWx96iEHwNwiHWLoDNYwBA+3\n6K9DZnn7KkOhkSmjtiElg62q+7Rwb6Ot8BzXrocFY8N7akM2QWWQbW3S6pbr\nquoZbbuyI8S9AQG8KwhR6OMnc47+FkzFUuJ/RTquIav0tL+8x3xCXuLc7TnK\nooMi5W0VHUO2wsEHtlNh/he50sKkmgNqpFsyLe5wMiI8yV4AFecdNT8bwZR2\ndYEgsyZqblWyj2r1DmXiBxqEwZQn/V1Tlp93gLcsdqWOfjhvsG3cmjR8s/mV\nx70s\r\n=+sax\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEc1IQpvPy1PNJk46JzpedQ3ekmGkCq7oNuUUTOK+HuFAiB052X4878Or5DfrhksSZVbOYp+4lyv9/0moFntfVIZNQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.12.0_1597701636710_0.05727264544008226"},"_hasShrinkwrap":false},"6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d":{"name":"scandirectory","version":"6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.12.0","readdir-cluster":"^3.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"37abaa89732bc3055470fac3c189ef00127b343d","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-RdgjdD146EwQnnPBvvbrrfQSCrtAgpvTAHqWJ+mhmpX5F6USiLVBp7hcrPhwZhEkFloS6WG4oKxaaBk54BApWQ==","shasum":"b2d2e6e4204ba2ccc49ab5553e9dfc93d845f203","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d.tgz","fileCount":6,"unpackedSize":25652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOv4eCRA9TVsSAnZWagAAiCIP/2oo8ArcTKf+M92IYt5D\nXRKTplR3wFUkOIdtRrRi3cCepSXcYOt/JVpushL0u43iLoU9KNkm7lCjVgJn\nZJGXz4kkkniJhA8QaDU/pOcuw5ezzdpx2Oihw/OP+Ja5QlOlIlYyoYpM1riT\nzFtLG4TtRdRqEujt0xJaY4h9la47NxtgvT6gGOCO6mDGblYUeki2eXBzknd4\nASy60yzmALFLdOJ6ds8zoocNpUUo7rTIk+SrH481OZ2CJvt1kmu/VR4pr7pU\nmbSCysumqvnJyJw8zT3R0+9Ry5XpIaYHX1tKJtND+fB16UTZfttPctkiBagQ\nHO3CJ9BkwOKFY6K82k+gGvXWgD/vaVl4FU2OXU4gj2ybywGAocOVs6VGHW8s\ntguRMB17RLrDBa4A3HopQ/offwg+RwWB/xQvCQ1MMaCssGvZG9H7yw82AK3q\nQamXvNduuNV88klfctuAVUWMVg9cumiyIy2nQjVQLbuPbcmar4HFDyPEyswY\nEZXgare0XXMSQ9lnUXvB/f+nL3biBD3jqBHypY4IeUB/bg8vllAVNbyJguUO\n/JcN3MM5hXPWQZ04eCNolqySzSmwKO7dbEENuBZ9V7Xmk0hSkm63VcuHH8Px\nN/W4O3+9pQXkpt5IDIkTfSQcTltsA6cbDnAxVUFY1Jl1xGmy2Q2hCsjFyViM\n1RL9\r\n=48wW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIHfBp8fKKEDgWjMmgBP7HvHioZ0HiKjca7Q7nUe0rgkoAh9wEHrugQXK0/pmD3kRKUzHTpBZGPTAn6Gw1XJP/VJE"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d_1597701662064_0.9340039787274341"},"_hasShrinkwrap":false},"6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e":{"name":"scandirectory","version":"6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.12.0","readdir-cluster":"^3.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^7.0.1","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e7c18b395fbbd1963c91ff7c6f43ca7c3153234e","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-f9VkWczFmYof+JxqNAkLE5WIsTPUHIEZPlMcDEk4ffCbpyOr/tYSs0Vjee79+/LU89ATQ948d4bL0nGTnd3zmg==","shasum":"7f0d0d4afbb74716362273c62754b2676e1508fd","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e.tgz","fileCount":6,"unpackedSize":25651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQlZmCRA9TVsSAnZWagAATSsP/2QJKGH7KqyRWHB8gqmh\nRq6pvBQToKzkxsx+zXTymthOrNC9G0B6482nMwjM0g8YkA08TpLJzVBGOQ7K\nPjc29LV6NK85Odjxi8ztZ29N0ALqT08AXcdewxrKVSgc2t3MKs0Ff+MUjojD\naywyiRlKbUdyuCEnTfQsgDnpq+bCp2jBKWdskkqPHXaAFdQDwq5JkCavkkDb\n1MdiPVZGhh7eqdmNCDTtcdfB7TeqiaeF6tYLBtwhGd/0ymPiyKAC4i3yW3so\na3FeGGGBaRGNco/XhGEIZkTUlAd26gBQIv/XmQojvzKcKOQR5uOv2xIoTgeZ\n7QzI+kIMzlcZVcMV/MFnF7B9R5D3/7Ar79qNLAbHINclogVXDGZWfYWyhAQw\nizGz7fZZ20CukXfEYsny0ogxulOrq27/CfeJ7pVYJscnONZx1pdv6dBnqaH+\nvj+bhJfLrca4B84GWzhri7ufPX4Pn7dOWwKBHkicG8BGN0plLX/rC6elt+Sn\nQ96M6314NwvubdH//e7oeKpLRbh7Ar0rZioIKwowAmlggwAeJxWJNFNOB8ru\nbW0NDNB5MdSwQ/+SeLS/X8ZwpbUcpL18AtGS6DjiG5l65+64fLuBPn+QO9Qt\njPlBkc9ABuJKV3UD/xtwDsOjwatRoV7a8PG3EYOi17dHqjOQvYLswDbWznKL\nfMaM\r\n=LWo+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFNrotNBAiOHya2p3TumWudCDNtOdcexC753jBe2Jx+dAiB/1WLbAgsB0w38C3vGDexrl9HdrS2DpTpHUZz5yEe7ZQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e_1598183013948_0.26162804500206316"},"_hasShrinkwrap":false},"6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b":{"name":"scandirectory","version":"6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.12.0","readdir-cluster":"^3.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^7.0.1","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0f02ee68c787253fdffc28ec4963b13ace760f3b","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-AcVCqQArXQw50yWbPEGO/tlnToIAi3OqJf9Kcwh7QBuNQaB1eRptKYoEOvkw7CJhxWvTpBD12mH7PHUlV4BaGg==","shasum":"56982005998b48ee9a5ebcf2e981e5a9dc087a52","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b.tgz","fileCount":6,"unpackedSize":25651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfS2upCRA9TVsSAnZWagAAifUP/0gGKedPklNv5uGkN/+Z\n1o81bzZrw+jWhfs11DiAprElWQCT/aDTASB0YnFtsSR4bsi6MqnbtFlz2LlL\nNAoC66gUTDQNHdWTV3DbdGmXCsvKhHyE+0aDK+niW1PUG/P5gQMEXEoQODds\n+6j72ijKfHNfiEzYl14N3lVF6xXsjOtVV0LRtRlCio7zEkWZ8DPIXOoOHCxs\nvL4daU1Bahnp8RatJJumfeEPpukgpe8y5QZ/4j+IyWadWbtdvxyo5RaG15fg\nvRgyzOkY9cSrpJJ+EtpDByf9RR0V5NcHjlmg6YhnsFXRXhDah3qj+WjCaOPs\nc2+IctjJwqQo/FpjHL7oi1yBku5F4dbtCmIHOvX0cbqtZ8N8f1qCrJSgSe0s\nM+xGWfvugTUJjO6B1wfzV36id3/SRbDN0gQb3zenSuNX+bT4m1MT5hYy9eRz\nROTXHut6LVRMMmmx4RqfcOKrtZ9EbViSXE0fKVlG7BNljyVcNNpnsGjKzKo3\nnyN3TxGReZofx62OXeVaEyr3UPkevmIoD1subJvHhtwxcK+y5soJU9aXey6v\nE+ixpn/pmVjbSokQL1W7laFYLdr4KYuWGfQq0YnwLhL2RuEzAfQMjbgVElQk\nSc4orYWbs5IJClfdl/aJuqwLVBP5vjbc9P+3/rggZkmXGtMBaou2vZleQ0pl\nJtqi\r\n=F8cm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEbXmeDHMtJUw+H2tN5L+Za5Jl8cAC2Sv3H3A+jhRPerAiBYnWaXhIrKGOf7UKZpbod5l4Xzc16yClq5rsi8sr6njw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b_1598778281523_0.6731415544348962"},"_hasShrinkwrap":false},"6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270":{"name":"scandirectory","version":"6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3af16fddedb1db8c685e8ea9fdf989d1a55f8270","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-usDudxmoCdDYQ1FUYwoqkzYG/jo0+mOtiswjIlnBXCxaKX4vA1BiK78S5Ib3u/PC0wD5GyW98NN3ys/XaeNkjg==","shasum":"eef19492f777e264e6c7fc8a648c4e9e740fffd4","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUxW8CRA9TVsSAnZWagAAOvYP/1XHZSjfIKJ/KNntFP+r\njPM0chvUd+/dEf6QbK36C3cM8Ege5s2PRT0iuhQKgGo7p+4ZSocOXgkXH9+C\nZORjaC3vMOFoDwUK8YuOBBBqEuZsDU04lhpW5Kq98hKcHhXd0NAwcUMRFIUx\nVpmTByib7qJ555nu2kiWaudopFeJrVXeRulso10uj+/SOKNC0dK5GM1XbzvP\n7ID+jWLIsRffnXmUE82cmY8aULoVM5LLwsoO/SOPQeGw44WFtEoKx/8d8hUi\noA3E2/Cv+2+jFI0/+2OJ+f2xWh2XaDUjPRKkcDueo4fij6CtVhaSm1tB8z3y\n50b0xS8KFYJv0YWFjZOdJ8W7ud8fPPO8Nozfmjqz8LSI5LKDwBD68LUgOPXF\nN40ONxDJjOSJJ7dx6O/GkGDrsxRc6p9NDNlSpMzP+W/yowuqcm++mSp4M4Xq\naxH1rYPGP/+iaaapIJObFtD1doIEAwgCEEs4rlwDD72ucHAGDBQfOaZAp8y2\nyEg26kvQVAUr7emr66quy/JE6iOAlToOdC+7obFgNNfd1TcIt1JuLCxJ5aSY\n/qaLrvkex6u2Aj9BRY8AZaxct/+e6flyBXpZXsTq7JN9ctG9gRB7BujaXSmB\ngsXHjXZoeWhrDQLh41xh7tTDq7QoD+t8AG9vrBg5WTflP6bNkBrv/3No0zr0\nT8Dc\r\n=h5zM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEAg2A8yM81QTwnZmvfDAloCad8I2g1UJTARz8Dz7C2cAiBCWY5LwLW+fVpJRh20v0mDPOjU+YCra2GHQR0MCg9Meg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270_1599280572066_0.7839309921134865"},"_hasShrinkwrap":false},"6.13.0":{"name":"scandirectory","version":"6.13.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3af16fddedb1db8c685e8ea9fdf989d1a55f8270","_id":"scandirectory@6.13.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-qS6FXlvCSNfWaAGkFKzEKZSKSYYmn/QRLFkeE1rmCsVngefKXx9G/YRbuJdZY7iZgRDUWUeCPW+0FOAU7mTpsQ==","shasum":"d5f8c1cff622f3b5856d4653bf5fadd24f5358c7","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0.tgz","fileCount":6,"unpackedSize":25811,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUxX2CRA9TVsSAnZWagAAm68P/R/9WgegpxmpLF4P5Smi\nqwDf+qthhk6Yl0pNTPTUFLMhCptcH1BIuDwEiMW7vF8yaU3jX+6ZpAVNRNls\n10Gf2AXtoAJLyxWP3WWJF/8KH4yOd++R9XN/OOGVqGi1h0gPgvHgJkt2b35f\nkqpdI/9PrCTdj8DatDJaIZpj7olLb+BiR+Pr4Tq5DBvgIE3oHTFfSD84lLLQ\nrUSMtjqChWj6EiPuu5kYaSAE836gdG7oY3lWa263WwHgh5dmyN71marq8cEC\nYc2jk67sRi/ZSfXkAxYDltjiCICh0FTVQRNuqFb0+zZhOJ5i8D06+vfd6X+P\n+qr0HiY9QDtuiAQMLyCTfbaIKu/lzEbXf6pELmzk20Y4L/ppAj3XswusV/6t\ni4XbVYIWuJTYwRnesvho4MP7cyZoy2EWl/KKbWWmcDiv2h17/FCNHeSfnIgq\n42I2aUQZ4+hsWmZN/FNal5cahdG34Uim/bhOsEFyWv5J6hXU7zgzb7hn9Mqi\ne1iHA13kxdctqxbtC/bZuvdVqFejdNR7IQgI452AUxtptZjWMndMNmLPoAPj\nDnxEufYhA7OVAxU56uMQeLqeMtqnFxA1QGHSY/hb6+je26AOzVVlIXltfGyX\nvjYlYwKG1rp05V8m+IHLVkHIALch6ZEgBH6xPf5NiM/Dyh/MzEPW2fRfPVCe\nU/iU\r\n=G6G5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB4FPh5cEnbV7fTZxNDYaVRp6++eaP9GwC9ypRSdRuKNAiEAmIgKeQriCt09o1ef0rDzPawT89StWHErQSbd0gtbSVk="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0_1599280629967_0.6540962044001075"},"_hasShrinkwrap":false},"6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc":{"name":"scandirectory","version":"6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e1eaf88e5159673269754bb13d864c6c7a4094bc","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-E9BWvKLcN5PU+TRI3i7C5n1b3x7tbkf9E0GX3FOrMi7jseu/kewEVehLAsNhEDx8M6fKY7SG8zRkdB/E0OpUdg==","shasum":"2e85e94d86d6cb0a9dfc03ba01155be172480652","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVMu/CRA9TVsSAnZWagAAR4QP+QHdvvVqE2s0TFi3O4lm\nW+xKsX+fQDHK4/2SNCoOAiFuUgByKJJVruu7kDKYdJpz2yJ/I1eow0sYScVd\n32Nf6BZaWHme6zHar4t74N3xqPtJO+tE2z5W6iuKAUGsFyx4tyx2LmSfJX9e\nNnRg1fCLTiSyOOvG+qYEOvQpPW7yw2KOXJpasMlPO5gzC76lQlpPWNwjkk2x\nrcETEDVoE7a9mhLZ05Rn0vByE0Bf0iENiDiTLS5RLN6ZQphjOgKA4uX90GA3\n4eAD64/FDlz3i5K0lOAbjTvI9j7QqXS5VRp8VapzaPPp24ZCyq1+LP8Uuv+M\n9U5LuEk7++o1LYyO4kcV5Xnl8haq8VLeLOgY/A3IC7v2NALss7mmhChPzXQs\n+P7QKCGvvwjN+ryAyoY7DvHVLDkVVhQazTfe6EfZobKFCaVnt53jTYGXgaWd\nOTxomxHme/oCj97BY/ellfQkFRfJMmd7axab527UqiSTMG/wF1/FuJ4e7V1O\nDMRK82kvqs3uODIqx3Fpg8FF993tng9G77JLjTZw93WQi75wlBm/bRmDC/A2\nhonU0RUWsotdBkoNV49sBiXcF94Y/mQxJmHxyV3rsv3lulzDIgaR5PprDLOe\ntAQRI52c5msNPYd3oJFUtoc7QUNZRNl6GFBmMk5+vxj5702SAIS1IxnMN0+u\nUiAe\r\n=+46K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBybWmxC5z1fFMuuG8lGNcKw9f6oJSIfBPMOKObXgFk7AiABonzgxFQ+WfYsXmH0BbzlunZlEzTmih7NcD/nctKPOg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc_1599392702577_0.05582332154040204"},"_hasShrinkwrap":false},"6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3":{"name":"scandirectory","version":"6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f5e06a29db07089b2b76ff2c5527e119a1172fa3","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-IGYj6803KWbTtmbRZbznolU1ytt3MEOptZSmyP1ycPHz8eeEcAwdH4dMdERFOYM6Pkd9S0WBpK19kj0SERtwKQ==","shasum":"4e0bc80bd54ae9b35ca0151d434de1d7e61cfae7","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXePpCRA9TVsSAnZWagAAJzEP/iTpsn102JbchWeLyDs6\nAxD7EcmHt+G01MPMTP4RciiwmP4KllqtRc5sSVwwtR9RbaImLHyr6OrLyiLV\nonvmVFrG+Tib5ieK83Dp2+WlxFRwGCr/3Jdd6AAiczpttDHyu8rdFpnM8OIR\neOX1CjwFhmIA7qstzPgWYF5Y80i8pVPJ4x3cg9OdnYnGPvDJEivLtrSpmBE9\nqyucyBJ/hEqnt83wJCzHFFqv4WD34VaZhWbt4eHtOUdT9owdXKh1a7yPSSmI\ntyYt12E1iROOi/mbs1h0tuvRtOrlwztVlmgPGskZseFD6Jr3fI1V73gseISB\nR2PoBvvSm3TuHoSmoumc7AsjpFmwFnw1nA3B8y93M+xNqfOQqBgS29aC7lHc\nIzo2XOMKBnNYE6Q2GlNWoX2CnpHqYaO1MOZsyLGtC+ifCK32qKCcnSuham70\nju7qWlj6HRbkCnmG3w2u/cQ6gKmotDD4vvnCntHlIBay8qpA28+Ns0oxiSyf\nFpeHhlFuPpSaJR1K84nBgIaostavs5q45Je60qtY8zB93q2VpFxdXyI0L48T\ndfYG5tsGqoIVyUjUS/su8P8mwLYIDglNWD7CKFSWviJCvHovZnzMO943L++n\nWr8i0y4H0lGxCk/Ya50MJsEm2oGITwgDkHgHRr46ULlj9RGHHZYdSR8347V0\nGPeG\r\n=3dwC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChTw0h8oSuf/31A/H867I1c4qEXMKSQgPX3/gde72HUgIhAO3ilZ/v7JEqT4ZGYLh1lXzsFsLgVXkHgHN75cMq7BnF"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3_1599988713322_0.0013659974151893906"},"_hasShrinkwrap":false},"6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048":{"name":"scandirectory","version":"6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"903b6ad9bd8374c43ea6d13227cc86c36bd2b048","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-DMTXu2FpEnvTPoLADF+/q/bIe0V82rfABz3cLMUyin/tB0JDmXe/9utD+Heze4cjVO9mkyCIl2fDsTT75yeO4Q==","shasum":"4120f5c2718caccc6dcd26cc35637dd9a1d9a3df","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZyX+CRA9TVsSAnZWagAA8nEP/ibhZ1V3E2WnjJ08EnD9\nH6Aey7TTfxKqqJ85LtWDeWG2kmz+8UlN4XvzvrXw8L2XErxnI+ukvgv/goaK\nhf8WW5uZDp9PDLe7MompfKVUVplSnca/zJYFi6Nhw4DoxW4UJF//oJYwRn+o\nQfLBkij3b7kOHYOp3BsvL3WSX7L0z0oC9cUp56/ZxOInat9X0/B9vtgDSF8l\n0Cj7mCfuDpiPiWoGxwhJoZzxCMPK4Mim03C9vwlvcIoC2jok981os65dFwvV\nq1jY0erMmjctro6a6aKGttFlo/nsi4pJ/nyGrLwUxwNQUhAECy8sdImkEhvK\nJthP5xpm+vSuwW+nGCudtPxRqADMD1BPPManM4VAtu4QV0bKcnZt0hff/coh\njzlKW+YTzxkf23RvOCb+18cH4CkvGG83+vLsUDj4jYcjRP/K7uTsYETs2Ngm\naWdhxPqUJB2F+BsPzpRdrpaVc3dTelLadG7VXPqKm1pj5eak6C69cDt0shdK\nNev82nRVLZf94KZG5zCnowT05k0GXVYcgyyCvDcI84jxFzmFhwecJW2z38o4\nXgztIYJkWolNTptSZL5nv5V0n8ZGKN1/ixV2bAxo40OmhgXpib5T4iEfxvng\nC28oWF8cLWA4ef4Lw405xrojUHaRSL8bqaWJOnZdi8TtvmVdr8ZQTy4Pe+VR\nnJzq\r\n=Sx6s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHUsgklEV+4Yx1tDB0RBjwyDwyMblkabgTdwJgsyyrZtAiEAqpTCAW2km/JrmGcFvQRj+WOLz3yPVsxcfUmhfPBUmk8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048_1600595454086_0.7346430608572969"},"_hasShrinkwrap":false},"6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd":{"name":"scandirectory","version":"6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"79c40670a1848e3efe3933c7efaa6c64a94db3dd","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-metjI7069aq6VZvmmiN79xcLbfhLPu9pAtz/ZzGaEtT4oFue9Bi73jxqTlxdCjcwejDhd6nztX59mycKBSyYVQ==","shasum":"3857db67a9adc537f4dc5d42a5bd76bcde4aa7d9","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcGuECRA9TVsSAnZWagAAIvwP/i641L5jBe0nj2lNgWOq\njws1nVooNqtwv2mwIzvicAxuvrsDj3Az4UNjCiIdJoN44zOzyICHDGjio8xH\nmseJXysvCHYWE6+zFdZRAHik2iJ9i3/jRA2R+JAWEuhXcqYaxMO/LBFbeheq\n8TZiOJAb9kYqkXP7eOjPco5VGLgyZ3xIujK+9WQ2eQTMDbVzUXEDs1LOv7Ld\nVX0Q1a0wrENnVrEQPFy3zdjf2kWmd/S46YLyle9THnoOW8F+zXxkuom103+P\n8mwz1/7tJEhr4Vlicih0VSRfiaWcoX7rGuYWftwV89tIA2YNba18LiuYICQ6\n88kqnQIZaXF6D7vN0P1mpZsymmeHfMEglsBE6yvooKAYW0xyvLu+vVPCPPiT\naueFgxuEHKJo5fDMt5nO/Tguz/jEGk9+0bSLwUlBuwytrYtXQpCD3hcmkCoY\nwE2QKDgox2kxYqBHvK3LngjjsyGv6Tgllb6ZIy04FC8iyWfEU6gcGSSnlAeX\nxtdp12hTD/7EKocUWrMP5PL0LO6O0CNIh1EGJ13RdpqJNpBasotg/bPruxRl\nVb/rnhFRag1orpjq+bc13+eacBozS3fLkT3NJcXlX4qK6jrvJsZdWLahnrAc\nhENgc0TVDFVXElQELfdw7AqlFHGOu8XMoOvE4xWYW+Ec9w2/wx1AsaZYeCc1\nyaDM\r\n=7LTe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHzcsVBG/FicnsMNyzbckt+hT8ljqFFZli9eS6LoSREACIH8of3jcglFUFZDyy/m0IXvHmssA0MZkEodEipe4806o"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd_1601203075832_0.865411601681952"},"_hasShrinkwrap":false},"6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95":{"name":"scandirectory","version":"6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"20c80cb2b85c62710b81f532bb73371703af6d95","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9bpuPvjyeMv2603LvhtgerA0xRJO+o3/CNVSut5Zf+5r19Xq43HnYoe93x4zUg8bCz/fAgqu32dR8pwwINA7SA==","shasum":"15814779d3736f1ae776dac901dbe8742a97dc4d","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgsHDCRA9TVsSAnZWagAA7DgP/0fw/yKRm3RoLxtCb3E4\n+GHrPtDiinRk0EIb16Hk/Z4SsdOPqGv9uFqgo8DStjGEUwKqsOBZlcYB6PhB\n2O9/8kmW9uOsu+WFLUzFpudqoqD3Rdbjnw24CDlYRRnWCsz65pES836ilDMD\nQT5W6LbvrtM8LGSiUGD+JcMyUH73wIApkdSy6IaicltcLDrD3I0nXLjfT4F/\nfppao10hZWKai10vfwgQhRdPewAJJp4kMrUtLVllfK6wrgMSh8rgaPcgLtVd\nuG1vJ9AfIU43L36QhD/hy8p+z2+oPMxNdl3IH2KaEl+UckG2wHG+UI/kTsF/\nheWZN64Ozw2pUOETqJDEKiEDjqK86ST9k2xev5Ct3hxGMW9Qtl+RqXhnhMcE\nCNGa4t2YS0kOjcI/NgGipWYtuXgcAVCLDyLFyPad2WitY6OsI7cFtgBXJcwV\nmInt5TkrfTmBWW6dPHE95TeXoAGVWOaCb1X0wPgV4gVu3e4H+rP2wlNz1K/Q\n6iaFcAc22APFv2SCSg+M269weFyNdkNyOg6/WKxEDoCRfBqNLPMoLmgH7hcb\nbau8r56pKgYHyoEJCIOd7lVfXf7H5VyB4zl780SmM54R0c8/jzplVYZFYsON\nIpWVOy4zALPqbJyNLULAFYCF/7hLEEDfEtLm+ZtNeMWtaakK6kNhit7OPR+9\nP7jg\r\n=oBok\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDf5S7RRptYCR8XPqVrL4/vLuUw/U1JEW5Y9BY8t0bPSAIhAI+l++t4c5+hYgAlt/4uqcahuLmLDNyUtHqIIH71186V"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95_1602404803284_0.3184929747896148"},"_hasShrinkwrap":false},"6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee":{"name":"scandirectory","version":"6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"bd1fd7f2f0c2e98e8758f37836db38480a06f5ee","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-8FMMgHLxQc4VKqqJcyTY8z9lIg8Y9Vha2bNVBjyEkeYIUG+BhIrZhLXXlj+eOe7Ui+YiqvMJ9kiFo+cPOPfKYg==","shasum":"f224f9291c6a4a1204974c99a14ac971f962dc75","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjAh/CRA9TVsSAnZWagAAKOYQAJdq60jKjKuenJCNtxm5\ndyG11OO+tX2MfPLlkCsikfhvgoUH7tVqTcRjUnfNYDnukTzBvnepMW+5IpPc\nqioIY91aXwfSW/lWflclSIqW6YLBIYIHp050eYJwV5fXn7kowuGbIude8hcn\netUjwOAkxGiraxMkavBCpemiSWETSxqxEJhQind6PxHk9r0i8Ov0khrWHCOH\n2b/+cCAsy3A8fbx3wjdZuLqTC8/N4vC39R8PvoSk22eadnL8s3dG2IuvmM8l\n0K8bMzR+tCLZfdXsD5718oH0vRytE0wGjLmKydC06sdbqB4IcneVdR6KwyWe\n2v4k0LBkH0CgWWKl7smD71sAgChSeY++VwuRRNkjWcb7YgNrqZ0FtuLiqbFM\nzO4NBf0A7PuZqgKI3/c1tsIjbbUvJPXitGbiEh6g7aS6VzJ7fPRXU387kXs4\nQG3i6S9CveZnKpzSIRvRtMpftQXYcc4TFB4H6k1h6574WzOVtJ3U7k7suHtW\nLlQhhJXdy/WK+Kmbttr5JQeCoEUXCY1ur5IN7wEvi3R/0UEMMzk5hUsgrIjU\nWzffUngvVtAUPNdpuJ8C1pW9gQbX+C2Tl1KJe6MZTI37yhLmiGtVDNmjbgxP\nlkfflWf7kW3+nJ/nmTw09YkoTG86qs/g9kC7hiX41MSsYHamf12+fbEvuTND\n4CmF\r\n=pnIL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdiW3IbO3W80HSKV6psiZT7YGSxoRUb/8UuxGSOJpzaAIhANtVPGixHWA0DnNy3f6VALIN6GvN8JpbzzMdJqDi0cw9"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee_1603012735493_0.23950115956834805"},"_hasShrinkwrap":false},"6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af":{"name":"scandirectory","version":"6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.13.0","readdir-cluster":"^3.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"984fcb070296e0c2536ff260345d2d4b4c2f09af","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Q5nKrwrLamQr0JI+HH03wv/qx0xo39qXLKA1XjtrYuyOIvMEwZWCLewowlr2oX6p5X/PYQhRDlzx4XlL+r1Ugg==","shasum":"9f2c0d4b366693aa72c59048c30a189ef0eae4fd","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af.tgz","fileCount":6,"unpackedSize":25868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflUrCCRA9TVsSAnZWagAAW7EP/inEZ/csHLhrul31u9K5\nqyDQO5+QOKM7NGCXpUUGN+E/bZz1N0UnHK5IPjFjGD6ZUiae04ZKhc2JdluH\n8xuu5sVSYwh8ZJeIN4x3wWvtCk06j9Pjgni/6vLWY8c945MjyfvagzHvwmV7\n1lTZP+GRQc1tRUAkbjGAahgNDQSIe9zL4PzlC9Pzgg0s60tDu0gBZ78rweOs\n5thKj6pGtgZkubkYsEVofHP095YKT0CzkviZb4dCwjMqqZze9xxMDqwylTDX\nz9q+WCpQkzx6PMQSQ1KfhLBPIzLu2r5yJbAP6NFI2Y/XJyN0Ig3cPlLblH1c\nUOyabZCPTlMF/Qye/VsZ5DXGsNBJE1jVb1FNWYtk/8JdUlRoQZHDt7V8qjqB\nEWO8dWLosY6IEDLRo8FsqSALpVbxCt0GHJPExc9Gb8HlQJeDVKqMyiAtoO2B\nZEsmwxpTmC3ay2kW9XW9Hb5AC2XDnfttb8hia+ep82gl92P07pZcSRAW+D13\n1PZSKNKy9D60l0OzZAn9I8nArQSb3s1Jzs8BS2t52NSyviiBqtERNwpMTbov\n558+yBJl6v8j/01N801cnRlOvQML9cvrpztqFICszgED01Tpqd3x6LcGlImU\n2xUdhuiHWDUFOQ3UqCerEz9ps5bc6RR1YK24Bn+DF6O7K3Q1ssavySd7Gmxn\nc5EK\r\n=2vXa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSv0rBl1goJIKBebn02lAD3LYaOdPuFDA/Im2KPOWwSAiEA5sX5L3+aFdTsUmpUe74pBDu/aTf60JP/lW96jH52Jeg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af_1603619522361_0.9252583670292054"},"_hasShrinkwrap":false},"6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9":{"name":"scandirectory","version":"6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.14.0","readdir-cluster":"^3.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1eac4ff72bf853624017719195b35ac9f72386c9","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 15 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KRrcrlOtUTgPhl63ivulZfbdCQrn4k+JpV7hxQVy9l4cY3lx5XA5RpJLNvC4ntwq4+UJ/B1zQmS5+m3Cx2yuiA==","shasum":"f70395ed8cf4039eef8ff4f9a3a4c312d2e386ae","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9.tgz","fileCount":6,"unpackedSize":26067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmje2CRA9TVsSAnZWagAAdzcQAJfFuhfw7mApKlbN0l0Z\nZU0f9+OYVAOhK0H9HBG09deY8/4u9H4pNqHNYpL1Pg/k//V1f96AXeXy+vZH\n1ND0tpKGy4+NSpfH6mn3cG/IbDS7CqxXnshd8K8sOq1yxgYGHEeUIRd9eDdt\nnK4invCje+UcRq4ED4c1rlWDCbmUq591bP0VSL0jSkP3wM9bUS/83bR0PxBy\nLn8sPC1vbQFr+vS9qmtSFuRH71Ic8PuPGvUVAvhSiAyEB1j31C79VQB6HqL/\nbgIZQIOd8GjNalZClwTMYk9VCKkW3qBckz32xhp9opkM9HStGsxsllT5tXg2\nFGFWxYMqVgsgak+qUagYCR0CQOuhyNLMkJB7SaLmxWucbBQNH6ajhnK51YHk\nmCiItIOTekOkH4iu+5YxJFiGevXEtP2vi8WTCNKjBoOkPW5BVtH8YQZbv0wS\nr2OgY4kAepJugKXDaD3wBG/hntU+7rz0xTJidkW8doXMv2JmT403nrdWo/Cj\nLEvJEhaOrNqrRQ0+3nOMIGVmxtRBB0xAZS30owpoUs1GfmYA62NMK1V4KBnc\nRDjvTZJfA+8VSg46Z2/bV5svfbc/FFJIkOnH0Irq34nd5Tb4VMkZcaRkzYoE\ny6NrslLF8C4NApI7lmbgVS5+bKXXHgWBk2IH2aHSpHWd8bgymv60ZJppIWgg\n6chG\r\n=MxJf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDorVs/dgeTSe76BXks+KoaIiz1YSLRMnkB9WEaHhNfBQIhAKcev7g/PaTy3IhkWLH8QBkyj9yiwRWQBNMmNEXT6NWN"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9_1603942325751_0.04649063634043382"},"_hasShrinkwrap":false},"6.14.0":{"name":"scandirectory","version":"6.14.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.14.0","readdir-cluster":"^3.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1eac4ff72bf853624017719195b35ac9f72386c9","_id":"scandirectory@6.14.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-0sVxHDTVD04Rqyk40qA95n9U1tuKhjmN0GK6npztTV53oewrXFlYMhxAQGQdBE1Rz3GkHzUzfRDN9d84GMGeHw==","shasum":"a075d5d6e6f9036ac68c853f864a245dc6fbc754","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.14.0.tgz","fileCount":6,"unpackedSize":26010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmje8CRA9TVsSAnZWagAAR0QP/RsICALjv4upsyxyca4Z\nUZ2ojPhhqteXbw7P5YxWx5vXE1J0paepJQguUhydUIEp1qz7eXQ0YIx2B67b\nAYdBtxKVOUlYoOy3AsqWXhlcYCc19aWA2ttBuoCLnIIQ1TKZYRDwdXW5mKLo\nKupG1wjXhrXdzqFNO50EqO5wZOjfiCK1y2v3BxxeOgD4ctNPUGFJ/S8Ci9uo\nDIrtIVmILWk6JTOYK2O3CHRtNb2IlK1D9zASAQyDbkUjollDY/TG0RYRlKD3\n6cvcy9WU9u+e9Mg2mxhSR5Yswu49IVTv5Xfq2s81UfKFP4uJ+VQvbE+EFDao\nUc85Wf++8YGrESSmHcqgAnMr9Ez/wWi2e2UFo5V4E4f5DULTrDYU+SbqeolT\ngnMVPCRBv/mRH7fazyx7zmK2tkARcAGOgP9t94Vybtz5zSRx7G5KF06jPFIR\njIBafjprNxI4iliR3kPAWRjWUq4fIrgkcFY/EafEIyZ47XieyS+kC9xnnF4+\nv3cFcdm2LOYEwM/onvKZEb4rraEKWTsAlUpjjuJkcKRMJtUZ0h3HQNJX+mLu\nv2WackMgml/rQ2aH163XYFCiFNrEJUGGgkRQXaw51KBiQm3eJ/nBTKknhQv4\nIHZgc78zXiTfimVmIY6K6QMxkGnhTXahSnYjPgV64n4kmK0lgemijIWIzm6k\nRIVO\r\n=JTrw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzCdvGZZFZyPpzA0yC4EgOO4NKgkNLExe7jVRFb4U4uAiBqQoQIW/QeRq0Bqe21xae3e8TwZbupSr6/D0KTCegsEQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.14.0_1603942331767_0.741776366077572"},"_hasShrinkwrap":false},"6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5":{"name":"scandirectory","version":"6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.14.0","readdir-cluster":"^3.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"165e433df3026c093bb262bb9423af72b66a9ae5","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/scandirectory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/scandirectory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 15 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"scandirectory@6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-5+ByzlZxDAqstpNFl4IIRo/SSXyUo4zzlwxd9yJNGLasl78nI68Jmc6z5E/0BjNE6xLHnTUl+URsPZGXUVwe3Q==","shasum":"612b27a032757e069fc4c2395b9c7c2dee31551b","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5.tgz","fileCount":6,"unpackedSize":26067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnqTpCRA9TVsSAnZWagAATycP/1XIRp1MHLcEQZOWPFNW\nXxUCCPchrgsackM4kL/7M0iwbSYuN1+T7xgAVcBXHWy/FTMkAuJX3ZMMVkQv\nTfdNdL/p4Vft8BwLWoz7eX89HX+9q2AEY80CYs5bVvvEzhpykYsYI7kG0q6N\nKw3UEPzC893zAV0p+j5M6FQRX2lOYFEtbS/Sf6UoM3CYLB9dPoWX4/rRz2Sj\nINyaO3p6CpQJEY8fwg692PFLwJTbL2zE68z29mFy4aXsMmTei78+TH3+95Hn\nKyItP/Jf2iR8la4RIMOBDTHtCOVHX9gd0wwk+h8VpsHl4hb+9UuFCH+uuP8C\n9hLbzRwxDGWu0SyqjU4R5tTP8LoMWMX5HBrn87YMG6HCaXaJrDPkrPEOoZfY\nFQHDsjkRJiwXxIXNqzzDcL8O+5l9jJrozlhS7QldoJjebrkKlO5fgahaNsl3\n8NvLGDeEMPpVWTLggt2r7dC5azzlyc7fmh1LUgKNHBslXQG8jTQRfQl3v7QC\n0hbH8/y1TSxvTFIFyrv5/eKz6snBt788eyqaEjaF5sZwElhtg9mPuOkjbvzX\nb9qM8MMw6c8WCv1nQyEuyn/2UEDC1ChlcJliBjjV9vuXyN91VUyWki/gRQjs\nV+O+TpSrqaei3YNZbpCpj6p0ejyJCimeUGCOe++H4ORzhaQ0ywiMfQLi0vqS\niePI\r\n=K13H\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzOrxjNGcyipqZ7/OugnZra43Z9l+WaIzeqP811MqNzQIhAOgXqJsj1mFNpM4gL/F5A+K/JKS9qCMaC9twKDQhAmLo"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5_1604232424856_0.8796281187707902"},"_hasShrinkwrap":false},"6.15.0":{"name":"scandirectory","version":"6.15.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.15.0","readdir-cluster":"^3.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"822146ac4afa8d7859991e8e0b02198c06c83237","_id":"scandirectory@6.15.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-LKZyrcBjexuBqX2K15BrhkUyHO1XGB1o5FKMDv0L/pX+Uxbfe71jsFvDya5VIgpfL8bkPUHbXdQEsI/XJrhqbw==","shasum":"e1b2b569d0d984c42762130d13087feaf143192b","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.15.0.tgz","fileCount":5,"unpackedSize":25990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAJ96CRA9TVsSAnZWagAA4+cP/jZfOhwpuYiWuRXz6I9g\nFj06fZZqUCoz0hERIuxHnqV55dJPxVzSYvW5B9T7r5ix1PiTPeIOCC4vdKLc\nGk30JnPYjiIU8Z3RPd3PW8nOf1UwKxHUrYmMO3q8oERbMV5VG+sJc7mlHuhG\nJyakkQeb20FSKnPglsBtnKRalIQ24j2XVZBsyE02HvIz/yHLlUK/KZLUgXce\nwefpEYzBq+rHDqrnJC42shvMznAz6w4LslWRs1WqQnj9XReuR+t5yjiJB6QM\nt1F537nCHq/zsSQ9hh/quzeFt2xYITKTTVxnuHsmjlYspi0roMOBMk/zbHbW\nzddCLGDWzvF10aQOPEo/604pH+CPzA1lJX8sKeLk0lP4NAfZUHOlqbbGcEhe\ndnxp/U/Odhqfgl4PVGQmaINSa3gXE9DB9iExvK/ax2btmU970YL/bpnuNTcw\nwBK0yGWlKjbbBNc5hTvvNE4aptVTmgtew5FctUGapSLqDzC996To2IXufKft\nIVioVjObbzfuiZPPWWGVYbRNaFHosfzuqMMhT6x9ux5+qnxeDOvXRoMOSqYG\nZ4HW9S6m1v9FX9sVYyLJK9JvgiSd6M+qbCDQcEkwgbOFB8gqFFyjJuyieagc\nJaKtc/yh/zqtGtaESPhSj9xZn6vQ6SetuFWrKTZDEZBhZtfwod4du66zBQ2r\nXh3a\r\n=ZY9M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdMSHqOamkDJFBHZYEQd6ioXUCQkjVX1Z7KZP0bHH7AAiAv45Kg+/bGbo7JA8qF9GsF8psQECofYUc+n4M/39/rKw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.15.0_1627430778079_0.21986659729900726"},"_hasShrinkwrap":false},"6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237":{"name":"scandirectory","version":"6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.15.0","readdir-cluster":"^3.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"822146ac4afa8d7859991e8e0b02198c06c83237","_id":"scandirectory@6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-bGTVckAAmI3sy0Pv88JKd5socek4vPRDEDKc23wsvCZ0/YalCVhmMIT7RhGIaHgulTiVgJfyiFtDDDQ8YODByQ==","shasum":"333fb400650fc87de9ad56e8633f8862ce0ec002","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237.tgz","fileCount":5,"unpackedSize":26047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAJ+nCRA9TVsSAnZWagAAE9sP/iKliLtIY+9BlM180Ssf\nBDbOeBNCTqC/fUu9dqk7exJ3SdPrbTLTipEd10/tKy9ECdr93Um+PBmdQ6ei\nSUP49ZWL+o/Xui1APBJau1VRKq6mIdC02/yWfF7ABjHLzLxg6nbwjj/HMdoz\nAcQWw3wClwPDUy9ooo0n+LQdwPb2VFJf7RJ+kNnEDhPrwRZz3cSG9BufKXxQ\niGnmxzNNUGK7PbgmVqiYt0qvzzX2OBaVyNB+y/iT0peIxveR9gwa8mC4gjw2\n8iwKnTQbNutGOB6u0xeDikgnEAr1xV9JxQyadcoL44v/aOsJwKwMtvGW5nI+\ngY0xWPB/W8YW7xPkhNqt/uyypv3ChZ0tjOdbkjpAoRL4+eLp8g8X/d0DPxbl\nxvSPWAOXwqVDAS+Oxfmqlbd7MONyHTdhOiGxBEdZ7yKT7cVQzX2hHINls4iO\nrSDppDx0NZ0ZmUm9JoZbhnuUNQww0AkShO4fmIritARTioFfasV99zUIWAWV\nH29+ryjMuohi0woqQ57b0JPA2uiugX6NtGELRbjiEuTcUqhAKn59T29IpnxD\nPaAIHowPwIwd8QZO5/JuVTkGIp1iG1fBO+FZ2F1nLOeBl71cP+miGq01k+KR\npLQOacHlebeSV+OFCgLpwuQJQnpbOKjQzQ5utWl3mO2sRgp3FX1WLouV3S9X\nCmeM\r\n=dsuX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDoiKf2eH8z+ASLQBt26N7FhuPy27poCkcynnd0os0ETwIhAMDfk7/xyUpH5s6c2KceN9HgtAJJwo4yw6nQt/vZOHYu"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237_1627430823588_0.5449763836006489"},"_hasShrinkwrap":false},"6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8":{"name":"scandirectory","version":"6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.17.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.19.0","assert-helpers":"^8.4.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/scandirectory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/scandirectory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/scandirectory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/scandirectory.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"fe8aa058a10d9615ecea423131e5e1143d16c3a8","_id":"scandirectory@6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-HRedmNZf65NChOx6nuMt6l0mTGi8VDNh8MlVnAOK8VVimFBM1q9UyaRGzBYnMe1/uA0T2a9eagYr0ecyrV7n1Q==","shasum":"cbbb55f83240b7198404e63be74ccb474537b4c9","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8.tgz","fileCount":5,"unpackedSize":26260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBE5kCRA9TVsSAnZWagAAtiAQAJmFOe6o3eMoKZLPK/El\nKx/I8pIaLHcDUp3R05XP4eldPLt2w87VwNPtYIuVn7rzlxelmxRaCdXROlGc\ncB3WN/vccgp2pIv3awFnduwTidAFjFTu2OBlrAGxS3MmeyHmyBgyD9vF4GDL\nw+FaGMJPifbEHxFpZ9GnAAiEVe+zeFUMANQkzjHcEs8DoE5xlHu7b6/eiMp2\nUAKm6Xak8L5GLfIMHrLZwZ9/67kN/1lo75xDWncAon82Y+B/TormOOeb7Pjd\n2G8Kvw3FZZ9aF8ebDNgXtOVXVgBY5FpMqvhG4Uygo3S5FaWqYPOraT86MEUs\nejPLjYcrHXEp5xCYHIaG0AF2k8ZfS5nRjLBZvo7nbxBPf/UjBgX3mL0zEZZG\nR6B6DeRuJlc7D7MlUfn8UcagzS08C/NIs2YoR6TCvr2lJlSpDYZTn9iv3WcJ\noZ70LVf47L3+nPf8m8UlPJTEq6NcWFVRa/eFwCuf/12VKEEycpWie3mcfQfD\nAO5cAA88InjgT5mhgQ4pBxrKjmmzlQmVM7maoTBTIXSJVAyVUOEM1YBOD4TB\nkHymAtg0EkbTkEvkoM3+zHvEo0WJjBWEJCrBOP7jW1kb+9kCeqG6RpZXP5Fy\nUElvd3BMDLxrIIe+XWYO0TTTgApJ0TxwIgyFA2CVLL7eRRPSiCLaBfgAk2U7\nj+IN\r\n=db3M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDnWxPm+cgbZDeEAqfdRoviZkiMNNH5JDHZ6sA3X5EHOAiEAjRtRiw3lVvmxYJkkIQmJeokKC/EO4fp4E/xQR6yW3X8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8_1627672163943_0.07780513081380125"},"_hasShrinkwrap":false},"6.16.0":{"name":"scandirectory","version":"6.16.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"MIT","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.17.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.19.0","assert-helpers":"^8.4.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fe8aa058a10d9615ecea423131e5e1143d16c3a8","_id":"scandirectory@6.16.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-dhkab6gXRonb6qO6KBGwqpwBx54vfAd1LMf64O9wVu07sLr7vd+x/DYaEOK8q5cI1dWVlYULUoKFiWuX8M0QYg==","shasum":"2218c53a625967054f810d69799536e16e5f4411","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.16.0.tgz","fileCount":5,"unpackedSize":26202,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBE9vCRA9TVsSAnZWagAAIUAP/R0FSYz+ebm2udDl4j/l\nJMiyIx2KQqwaigXrV3y8zZ5Sg4CboJaZXd3al7JIIirEJSCres13uRwC5oF6\nyRYaNSGSX1aUeRQiH07uCe1d1NwkbLi/5kYbNTcVQgQL9DAvE6eDrIf4LivG\nP5phtoaBffqaVrK4dFZNZ4wNgdnWfaUwyhz5cPSCaswIXONledwfOzOI/u+M\n0/a1PvKrqLpZzImSZdu4yT7bwqmC4C+Sg4IstebYMmlpeNDZkb3hDAvWJOLC\nQCLCLNn0Wkdd+pGvllSXGAprwN4kgVamQugCFA9wCT7Qzz1MJU7mw5W+UawW\nH69ZWavi6l5U2zbfXa6mXyIBb3MqiyyDp0Ylbow1ohiFa+OnH97PJc//ALvp\nHgBox9sJPx9NNvEY+FZ/OXfzTx7dNnYRN4gLnp0x+B8TeEbLaCdQ9qjOqEMI\nRqK8tq3gla+GDFK2eKhubNc+5XlIBPXBfU9nJ53pUnrGVy2x+lrENvzyMYhK\nxEc6bxc1lOE1CPyFa46ZnAa2lpHqL9meBTQZNtTPa31OlQMBZ3pdG5KiFEmv\nn1S8xj98qTonuS+5/vfweKTiSpdCPznGMHW+/IzaFkvhwkb5wbAHjVi1IwEg\nH+tai8DUt8eTIZJNo107Pq4jck8grOQVmCELameYpY32cVEV2rAW7ziFdvA3\n2sTi\r\n=71Ep\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvk7BBEFP4adLbG9ATcNsFFTC0t3OCe6OBztBhUCYKnAIhAOqFklQtW/xFC1GI9TItKAg19ZQKimmEZgUMf2yRYDN3"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.16.0_1627672431082_0.759545614198929"},"_hasShrinkwrap":false},"6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a":{"name":"scandirectory","version":"6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.17.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.15.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"printf '%s\n' 'no need for this project'","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"scandirectory@6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bogdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bogdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-pJlkRHMY/cj++2fzTKc6lA2ExZNfl5WfMbaYaJaFpkbEfQYOKIf5nUbhkXYlJLwVU8ZLoXqyT4eE4licK2lolw==","shasum":"16e5fc52ad7ba630aac95d17339b3b76e8d5370e","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a.tgz","fileCount":5,"unpackedSize":29358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNBaWq6e784CaIbJanUU73RgIpQRjtIRLVzBg+onvp7AIhAPSAchxmFDQp6z/3oQX9CdW+FeDwL9lUonVy/o/D8PCU"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a_1698724389216_0.507732316872435"},"_hasShrinkwrap":false},"6.17.0":{"name":"scandirectory","version":"6.17.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bogdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.17.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.15.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"printf '%s\n' 'no need for this project'","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"scandirectory@6.17.0","gitHead":"bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-Q72AmrWFB0htQevZk75U4/JD1VLPO12OAvr2fZnsR1NxdzzAFgllX43kfpSZgyz8zeFcRsgDZSark1HV9L+5qg==","shasum":"636d77e0ca32f83fc87a80daaea2f0c76e800466","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.17.0.tgz","fileCount":5,"unpackedSize":29300,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPrL3mhfbKXzyrhyDdADTI2RSTaUeOb3Y//jIB5F6/NgIgGpMNzLU5BHqBRRxdPYZ91V3neg3peImM2x9LgtaLtOg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.17.0_1698724422097_0.0183628966915359"},"_hasShrinkwrap":false},"6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944":{"name":"scandirectory","version":"6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.17.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.15.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"printf '%s\n' 'no need for this project'","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"scandirectory@6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"c4236f99b80168d2f54602751dd2842925749944","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-u1bb4GOcZPhjKJj7f/QzQtWii1dWllCZxZ3rMH50cwEN9ZVl9wsCSE+st47lIhk/I0rYqASSqI9GT5KUTcu6jQ==","shasum":"44eb43c22764ac4df80fff34a18eb553fc948866","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944.tgz","fileCount":5,"unpackedSize":29358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEg258K6iK8BgFYBBQhr9n6txudC1awwN4eK9+toRXDgAiEAl5+4bRcjK06DkuQcfNdK3hVyNeo7eO/Ee9q4LfLr/dg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944_1698725371805_0.045020735990295435"},"_hasShrinkwrap":false},"6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b":{"name":"scandirectory","version":"6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.18.0","readdir-cluster":"^3.18.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.28.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"printf '%s\n' 'no need for this project'","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"scandirectory@6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/source/index.js</code></li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"aecd6106c704a4a7780e25587750057f2ccb262b","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-Wvj04pazLwaa1lUTJWdxAAdIBHCfl2/e683XU3l2OMfJ88AFmrlRtiQ2DBiIG9bNQsHYkssmIsAm6XrjfhPPew==","shasum":"03f632f72b28d352bc8c147192af1626003c75f3","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b.tgz","fileCount":5,"unpackedSize":29358,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZNnxvs3NVMK2r99mwj1U/u0GnwDTtagiCGmSdrSOTfAiEAl4tgGJGqm087k8lxAPfApIEul8A0H5LCfcZEuouYGqc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b_1698928280477_0.4784574454457824"},"_hasShrinkwrap":false},"6.18.0":{"name":"scandirectory","version":"6.18.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21"}}],"type":"commonjs","main":"source/index.js","dependencies":{"ignorefs":"^3.18.0","readdir-cluster":"^3.18.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.28.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"printf '%s\n' 'no need for this project'","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"scandirectory@6.18.0","gitHead":"aecd6106c704a4a7780e25587750057f2ccb262b","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-fZeXy9MXSNJNhwoLmnmPX6uizmcNPcqrwRcMrpw/sCxfGJwpeEUts27mZTEEZnmv74WtYDnU8da7vO5PrajP8g==","shasum":"7082543a684d478b813b61f3e8a94d76a778d06d","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-6.18.0.tgz","fileCount":5,"unpackedSize":29300,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKFXhyJDPCLebhwdoSNyso3ErVpbcMYdB0BujxYjBMvQIgA31/fxlUtvL0rPs/sdTrORW1MiHSQO3AyA6C1JT6lNo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_6.18.0_1698928530251_0.5763513380848342"},"_hasShrinkwrap":false},"7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a":{"name":"scandirectory","version":"7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 21 with Require for modules","directory":"edition-node-21","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.11.0","ignorefs":"^4.0.0","readdir-cluster":"^4.0.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.2.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-21 && npm run our:compile:edition-node-4","our:compile:edition-node-21":"env BABEL_ENV=edition-node-21 babel --out-dir ./edition-node-21 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-21/package.json","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-21":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"21"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>scandirectory/edition-node-21/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>scandirectory/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/bohdanly\">Bohdan</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=bohdanly\" title=\"View the GitHub contributions of Bohdan on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"94e2ea04ce53356ba60fa31722a11f1d51a44a9a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-cPYJPdcfQXIjsQGu6X2e5M3XTjOCI61eO7vzEJFSX4l4G4Y6lRdsrxBr++HAnRc/WTz5BRddVLamgC5aAiUTbw==","shasum":"4bd284fd20dbe793f31d8b488ee82ac4748d08a5","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a.tgz","fileCount":11,"unpackedSize":42591,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxH19BMKjoCKKtmM5Od6tKezgSVhWKMRAxrJajzt8GzAiBDraZt2XMgYyRueeIPV1GVu/cGHd7gj7Qb2w9KOkTOFA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a_1699957462251_0.9159886944541047"},"_hasShrinkwrap":false},"7.0.0":{"name":"scandirectory","version":"7.0.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 21 with Require for modules","directory":"edition-node-21","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.11.0","ignorefs":"^4.0.0","readdir-cluster":"^4.0.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.2.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-21 && npm run our:compile:edition-node-4","our:compile:edition-node-21":"env BABEL_ENV=edition-node-21 babel --out-dir ./edition-node-21 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-21/package.json","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-21":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"21"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.0.0","gitHead":"94e2ea04ce53356ba60fa31722a11f1d51a44a9a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-3TofAAf04/cGIGcFe1F6IlJMQK2DkeF7S2+S3yPCZ5jQRQJrg6D5LVnfHAnXbKer6h2cIbDKjGvlxSwv1Xqnqw==","shasum":"22fc4c4e1fe4819f04ee678ece607c289cb96942","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.0.0.tgz","fileCount":11,"unpackedSize":42533,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPPvFSyLjcX0oIJWfogxrXnh/7iegP833sqeBfqqYr/AIgXshL5XbDNpceRhFLbLAlNJmJZNQQ7taId/20WCOFx4E="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.0.0_1699957556041_0.07012149307218407"},"_hasShrinkwrap":false},"7.1.0":{"name":"scandirectory","version":"7.1.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.13.0","ignorefs":"^4.1.0","readdir-cluster":"^5.0.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.4.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.1.0","valid-directory":"^4.2.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.1.0","gitHead":"693e168a6955165107068597c8941719e1e47e58","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-nsOWN1TAeQXYs/I/BaidSRNYRmkkCcddENVU1g6DnBkhouH9r/lHv4jSBuPEVTy6/+hCeBqJQAJQKe0tuoXrkA==","shasum":"d53bca8b051b365ef477338652fefcb1cd761d48","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.1.0.tgz","fileCount":9,"unpackedSize":37353,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICVH9jOEEPYfI+3xHXJeHIxxDLApbC3ncXBEhkGHeFz4AiEAgZj+L/7olGTqi6FmoCNPPNnkajTXL8zgnF49FB1ZRy8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.1.0_1700032967571_0.5348503870367349"},"_hasShrinkwrap":false},"7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58":{"name":"scandirectory","version":"7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.13.0","ignorefs":"^4.1.0","readdir-cluster":"^5.0.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.4.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.1.0","valid-directory":"^4.2.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>scandirectory/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/bohdanly\">Bohdan</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=bohdanly\" title=\"View the GitHub contributions of Bohdan on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"693e168a6955165107068597c8941719e1e47e58","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-B7OJQWaCEjH9RZP6MBOH/68BOR2HyBnA5yjWP+vr4m8cv+92/TXeWWew1pevE0haDUf207aCbE2RNrIf09K+Jw==","shasum":"7e49e39d5f11ba67adf38f3577b7552e3d447a3d","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58.tgz","fileCount":9,"unpackedSize":37411,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFqxGYAgrzlNkaIT7beNo73Nr0ctGadGd+UFkIUSc7i6AiEAxSyxOp64OwFElZf639MpnWQBxlwHBTR+F1pvCCZMrw8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58_1700032997092_0.8054279926547387"},"_hasShrinkwrap":false},"7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b":{"name":"scandirectory","version":"7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.13.0","ignorefs":"^4.2.0","readdir-cluster":"^5.1.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.5.0","eslint":"^8.54.0","eslint-config-bevry":"^5.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.3.0","prettier":"^3.1.0","projectz":"^3.3.0","valid-directory":"^4.4.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>scandirectory/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/bohdanly\">Bohdan</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=bohdanly\" title=\"View the GitHub contributions of Bohdan on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"c82a6c562d0212166598326f14dec8e0407ebc7b","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-QRBNEhEaW8iKf4K41w3WeJ5QkgnEwwqvQtovRU+4/yn4VUa0RqqBDQm7qWyVuYTNC7tdlIg04Jbrjx2gLY0ErQ==","shasum":"5e2e073cdb4f97fceb7b4693d2403fd3d00db824","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b.tgz","fileCount":9,"unpackedSize":37156,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOBm1aueoKkQfgw5qXUJbCfQGgJ67z6DP4fpdV4pXDoQIhAMTY2RFD69ClMAC7RoQ3n/YH5t6PBnPHyoZQQjoUKuO/"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b_1700572627089_0.0797491801068424"},"_hasShrinkwrap":false},"7.2.0":{"name":"scandirectory","version":"7.2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.13.0","ignorefs":"^4.2.0","readdir-cluster":"^5.1.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.5.0","eslint":"^8.54.0","eslint-config-bevry":"^5.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.3.0","prettier":"^3.1.0","projectz":"^3.3.0","valid-directory":"^4.4.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.2.0","gitHead":"c82a6c562d0212166598326f14dec8e0407ebc7b","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-VN5ByP3Ns4C3mdGxMHcKvJFhCYiVvNACosrHbKHQOxZM6cB78BStj/HKKf14/gxGiutGVNbL3z5FZ/4+DC17aw==","shasum":"b9a849c321c39d4b64999a1ce51be114182a7611","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.2.0.tgz","fileCount":9,"unpackedSize":37098,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnG9O1/FrUUJxiqz2DiKZm9vlIqTjXo9l6jixPAOcvDgIgA5u+J+twmY6pu3YD/u8GaeV7aCCG0IA430zltCvTwn4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.2.0_1700572659371_0.8303946815748646"},"_hasShrinkwrap":false},"7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332":{"name":"scandirectory","version":"7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.16.0","ignorefs":"^4.3.0","readdir-cluster":"^5.2.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","prettier":"^3.1.0","projectz":"^3.4.0","valid-directory":"^4.5.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332","readme":"<!-- TITLE/ -->\n\n<h1>scandirectory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n```javascript\nvar scandir = require('scandirectory')\nvar path = process.cwd()\nvar options = {}\nfunction completionCallback(err, list, tree) {\n    console.log({\n        error: err,\n        list: list,\n        tree: tree,\n    })\n    /*\n\t{\n\t\terror: null,\n\t\tlist: {\n\t\t\t'a file.txt': 'file',\n\t\t\t'a directory': 'dir',\n\t\t\t'a directory/a sub file.txt': 'file'\n\t\t},\n\t\ttree: {\n\t\t\t'a file.txt': true,\n\t\t\t'a directory': {\n\t\t\t\t'a sub file.txt': 'true\n\t\t\t}\n\t\t}\n\t}\n\t*/\n}\nscandir(path, options, completionCallback)\n```\n\nScan directory options:\n\n-   `action` - (default `null`) can be `null` or a function to use for both the fileAction and dirAction\n-   `fileAction` - (default `null`) can be `null`, `false`, or a function to be the action callback\n-   `dirAction` - (default `null`) can be `null`, `false`, or a function to the action callback\n-   `recurse` - (default `true`) can be `null` or a boolean for whether or not to scan subdirectories too\n-   `readFiles` - (default `false`) can be `null` or a boolean for whether or not we should read the file contents\n\nThe options object is also sent to [ignorefs](https://github.com/bevry/ignorefs) so you can use its options too\n\nThe completion callback accepts the following arguments:\n\n-   `err` - `null` or an error that has occured\n-   `list` - a collection of all the child nodes in a list/object format: - `{fileRelativePath: 'dir|file'}`\n-   `tree` - a collection of all the child nodes in a tree format: - `{dir: {dir:{}, file1:true} }` - if the readFiles option is true, then files will be returned with their contents instead\n\nThe results for a specific argument is only generated if the argument is requested.\n\nThe action callbacks accept the following arguments:\n\n-   `fullPath` - the full/absolute path of the current file/directory\n-   `relativePath` - the relative path of the current file/directory with respect to the original scanning path\n-   `filename` - the basename of the current file/directory\n-   `stat` - a simple stat object provided by [readdir-cluster](https://github.com/bevry/readdir-cluster)\n\nThe action callbacks can return `false` to skip the path from being processed further.\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save scandirectory</code></li>\n<li>Import: <code>import * as pkg from ('scandirectory')</code></li>\n<li>Require: <code>const pkg = require('scandirectory')</code></li>\n</ul>\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>scandirectory</code> aliases <code>scandirectory/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>scandirectory/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>scandirectory/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/bohdanly\">Bohdan</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=bohdanly\" title=\"View the GitHub contributions of Bohdan on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/lysenkobv\">Bohdan Lysenko</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=lysenkobv\" title=\"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\">view contributions</a></li>\n<li><a href=\"https://github.com/sfrdmn\">Sean Fridman</a> — <a href=\"https://github.com/bevry/scandirectory/commits?author=sfrdmn\" title=\"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/scandirectory/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2011+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li>\n<li>Copyright &copy; 2014+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"4dec9e905119f145442c465c48d7ac5a13c0f332","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-e5szqGoZjOd+85F8Qh+8mtBnrBShOXJ5S/080vQF/mLca7Yomg3X4xASd6X2MN4ITsx3EWQ1O/S5asdCB9c+kA==","shasum":"4968b926baed0498c3ac8713b66c46000b14d758","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332.tgz","fileCount":9,"unpackedSize":37156,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4WYyXvsnjOvbMuLzbGnwostOl/fD3AY2xDBINWbdv3AiA6ibIUyAFOWaAWFT2K0vxEslwUC3DedaqR6Aazoh/AKQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332_1700861162628_0.028093048990750047"},"_hasShrinkwrap":false},"7.3.0":{"name":"scandirectory","version":"7.3.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","license":"Artistic-2.0","keywords":["esnext","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"funding":"https://bevry.me/fund","author":{"name":"2011+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://github.com/sfrdmn"}],"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","dependencies":{"editions":"^6.16.0","ignorefs":"^4.3.0","readdir-cluster":"^5.2.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","prettier":"^3.1.0","projectz":"^3.4.0","valid-directory":"^4.5.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-node-4","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"scandirectory@7.3.0","gitHead":"4dec9e905119f145442c465c48d7ac5a13c0f332","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-l4jhcSSK11PW+jhXhoBthYszvdwKwR97p7DM8Wr7dnsDw6grzPrts5XKvNv3J4BRKvjgPdiATw9aMX1zF5iIuw==","shasum":"6a21c44dd998862a9f2a654ee72b87f0d10017a6","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-7.3.0.tgz","fileCount":9,"unpackedSize":37098,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeXesin8oqLkTl5DMDe+I+3Fz6LzOQCta8JXDZ9Ex+nwIgQfj+0WVUjAgGppriALw21EX3aNR+ip50vkPKN1WfOg0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_7.3.0_1700861169904_0.30550777296963694"},"_hasShrinkwrap":false},"8.0.0":{"name":"scandirectory","version":"8.0.0","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.4.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.8.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.0.0","gitHead":"f2beccb4387808170ac84871de30351da5fcc63e","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Tb7TwfikbKCL51KWx4c6tcRLxMNPeifJQqo5rjQCXL3vdEG7wXUUq9/LJ4/jGio+cp+u01srF8Y5xOBA50xBpQ==","shasum":"bec5602f62fb40e8c7bcb4e275042d290357e028","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.0.0.tgz","fileCount":29,"unpackedSize":143548,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAdroh2feRX0bAOFNahP6TTEMDXwt5euFrZNXseKgRJgAiEApEEHtSAN9OYfeKMgzn9ddKYDmyNO8R5sNx+h5t9U1Og="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.0.0_1704146870589_0.7665265427294023"},"_hasShrinkwrap":false},"8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e":{"name":"scandirectory","version":"8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Bohdan Lysenko","email":"lysenkobv@gmail.com","url":"https://github.com/lysenkobv"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.4.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.8.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e","readme":"<!-- TITLE/ -->\n\n# scandirectory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.scandirectory.bevry.surge.sh/docs/)\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n#### Install Globally\n\n-   Install: `npm install --global scandirectory`\n-   Executable: `scandirectory`\n\n#### Install Locally\n\n-   Install: `npm install --save scandirectory`\n-   Executable: `npx scandirectory`\n-   Import: `import pkg from ('scandirectory')`\n-   Require: `const pkg = require('scandirectory').default`\n\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `scandirectory` aliases `scandirectory/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `scandirectory/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2015/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2015](https://babeljs.io/docs/en/learn#ecmascript-2015-features \"ECMAScript 2015\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/scandirectory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\")\n-   [Bohdan](https://github.com/bohdanly) — [view contributions](https://github.com/bevry/scandirectory/commits?author=bohdanly \"View the GitHub contributions of Bohdan on repository bevry/scandirectory\")\n-   [Bohdan Lysenko](https://github.com/lysenkobv) — [view contributions](https://github.com/bevry/scandirectory/commits?author=lysenkobv \"View the GitHub contributions of Bohdan Lysenko on repository bevry/scandirectory\")\n-   [Sean Fridman](https://github.com/sfrdmn) — [view contributions](https://github.com/bevry/scandirectory/commits?author=sfrdmn \"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"f2beccb4387808170ac84871de30351da5fcc63e","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-3RPmR24g9Cro4fLJNsUmJZzbgaX0hzpo8O6ACI7AC4/HFEwoVeLK41VJyxzcT+Kz+Q3l1ooK6yyCGFjtrOhX+w==","shasum":"3ea27ed6fd4f16699bcedeae9d2898b8122a184f","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e.tgz","fileCount":29,"unpackedSize":143605,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1xUPtDO8XQO1grfh6rW76u93dcmUgSDrT3Nmv4ttf8AIhAK++/yQnEhNa+flu5Ez6Pu2ve/gB/BtuERQGICbKOrly"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e_1704146883900_0.7387509861604449"},"_hasShrinkwrap":false},"8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1":{"name":"scandirectory","version":"8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["deno","deno-edition","deno-entry","denoland","es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters): The training platform for web app engineering skills – from front-end to full-stack! 🚀","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":false}}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.5.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.9.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1","readme":"<!-- TITLE/ -->\n\n# scandirectory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.scandirectory.bevry.surge.sh/docs/)\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n#### Install Globally\n\n-   Install: `npm install --global scandirectory`\n-   Executable: `scandirectory`\n\n#### Install Locally\n\n-   Install: `npm install --save scandirectory`\n-   Executable: `npx scandirectory`\n-   Import: `import pkg from ('scandirectory')`\n-   Require: `const pkg = require('scandirectory').default`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport pkg from 'https://unpkg.com/scandirectory@^8.1.0/edition-deno/index.ts'\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `scandirectory` aliases `scandirectory/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `scandirectory/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2015/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2015](https://babeljs.io/docs/en/learn#ecmascript-2015-features \"ECMAScript 2015\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/scandirectory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\")\n-   [Bohdan](https://github.com/bohdanly) — [view contributions](https://github.com/bevry/scandirectory/commits?author=bohdanly \"View the GitHub contributions of Bohdan on repository bevry/scandirectory\")\n-   [Sean Fridman](https://github.com/sfrdmn) — [view contributions](https://github.com/bevry/scandirectory/commits?author=sfrdmn \"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Frontend Masters](https://FrontendMasters.com) — The training platform for web app engineering skills – from front-end to full-stack! 🚀\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [Frontend Masters](https://FrontendMasters.com)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"2fc28c56c6ed6043e40c18fc415c3d01b3362db1","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-VkE+OTyYMBCPUxiS8PykWd/KESpZY6ZCMZFvpDnZ1PqUqR7IsDpa2aUj/RVIt4DdJfX2czbwwvva3G6n/8otPg==","shasum":"39753b5607de7a611916e6d5dbbed8b1fa15fda0","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1.tgz","fileCount":32,"unpackedSize":160667,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3UxNV9KskvsF/8uqqLMGC71RavIOT/8q5jSRh8EdCnAiEAkIpaZTwn70kE30r/r+G+DQS0TBKt30pf1eMqEzC2gVg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1_1704219445842_0.4859241381314796"},"_hasShrinkwrap":false},"8.1.0":{"name":"scandirectory","version":"8.1.0","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["deno","deno-edition","deno-entry","denoland","es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters): The training platform for web app engineering skills – from front-end to full-stack! 🚀","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":false}}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.5.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.9.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.1.0","gitHead":"2fc28c56c6ed6043e40c18fc415c3d01b3362db1","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-9krWn6HvK2KhS8myhF/Kha9r3EDK7Y1aZ/VtVS9AyIYxRCrLQOJR3W8eb41QmuALJhJtlF4Viii8smUvRrQz/w==","shasum":"8c1705456fa11683f7a33224b09a54bde9b4e5b3","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.1.0.tgz","fileCount":32,"unpackedSize":160610,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAYmiqe4Azk+zCWW4Dh3qSge/Cy6q/dRdkZXK6sgSfRgIgMO3lKqs8d0cbTD97NhyNkWUPZeNvfG1FG0LEpEIfKQ4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.1.0_1704219473880_0.23675768869960812"},"_hasShrinkwrap":false},"8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c":{"name":"scandirectory","version":"8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["deno","deno-edition","deno-entry","denoland","es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters): The training platform for web app engineering skills – from front-end to full-stack! 🚀","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":false}}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.5.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.9.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c","readme":"<!-- TITLE/ -->\n\n# scandirectory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.scandirectory.bevry.surge.sh/docs/)\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n#### Install Globally\n\n-   Install: `npm install --global scandirectory`\n-   Executable: `scandirectory`\n\n#### Install Locally\n\n-   Install: `npm install --save scandirectory`\n-   Executable: `npx scandirectory`\n-   Import: `import pkg from ('scandirectory')`\n-   Require: `const pkg = require('scandirectory').default`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport pkg from 'https://unpkg.com/scandirectory@^8.1.1/edition-deno/index.ts'\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `scandirectory` aliases `scandirectory/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `scandirectory/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2015/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2015](https://babeljs.io/docs/en/learn#ecmascript-2015-features \"ECMAScript 2015\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/scandirectory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\")\n-   [Bohdan](https://github.com/bohdanly) — [view contributions](https://github.com/bevry/scandirectory/commits?author=bohdanly \"View the GitHub contributions of Bohdan on repository bevry/scandirectory\")\n-   [Sean Fridman](https://github.com/sfrdmn) — [view contributions](https://github.com/bevry/scandirectory/commits?author=sfrdmn \"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Frontend Masters](https://FrontendMasters.com) — The training platform for web app engineering skills – from front-end to full-stack! 🚀\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [Frontend Masters](https://FrontendMasters.com)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"8d7c73ae43ed6b399acde08d908d69cf73cd8b6c","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-rWjQQVZQSmXZz1awl4dkolBvK2Z/VFKwEeDqPcDcLZiA2CRhXYXi3dZ9WclNVEHbEXntb+nZBzUfgVWqOMRPLw==","shasum":"ce235f80c90685dda00cf0f8bfb71d0c44750db2","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c.tgz","fileCount":32,"unpackedSize":161876,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgueMTeVPW0/AU/OmmKFBLbnu6ZOXIyYJBdADsLDXgFAiEA9c+Xjc/gFVimxXAjzMha8xnQBLlBcp3efX9bzyUa7AQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c_1704224647691_0.5410661861111432"},"_hasShrinkwrap":false},"8.1.1":{"name":"scandirectory","version":"8.1.1","license":"Artistic-2.0","description":"Scan a directory recursively with a lot of control and power","homepage":"https://github.com/bevry/scandirectory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"keywords":["deno","deno-edition","deno-entry","denoland","es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"scandirectory","githubSlug":"bevry/scandirectory","npmPackageName":"scandirectory"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters): The training platform for web app engineering skills – from front-end to full-stack! 🚀","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Frontend Masters <support@frontendmasters.com> (https://FrontendMasters.com) (https://github.com/FrontendMasters) (https://thanks.dev/d/gh/FrontendMasters)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2015 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2015","entry":"index.js","tags":["compiled","javascript","es2015","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":false}}],"bin":{"scandirectory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2017-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"editions":"^6.21.0","ignorefs":"^5.0.4"},"devDependencies":{"@types/node":"^20.10.6","@typescript-eslint/eslint-plugin":"^6.17.0","@typescript-eslint/parser":"^6.17.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.5.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.9.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.6","typescript":"5.3.3","valid-directory":"^4.9.0"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2015 && npm run our:compile:edition-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:edition-es2022 && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2015":"tsc --module commonjs --target ES2015 --outDir ./edition-es2015 --project tsconfig.json && ( test ! -d edition-es2015/source || ( mv edition-es2015/source edition-temp && rm -rf edition-es2015 && mv edition-temp edition-es2015 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2015/package.json","our:compile:edition-es2017":"tsc --module commonjs --target ES2017 --outDir ./edition-es2017 --project tsconfig.json && ( test ! -d edition-es2017/source || ( mv edition-es2017/source edition-temp && rm -rf edition-es2017 && mv edition-temp edition-es2017 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2017/package.json","our:compile:edition-es2017-esm":"tsc --module ESNext --target ES2017 --outDir ./edition-es2017-esm --project tsconfig.json && ( test ! -d edition-es2017-esm/source || ( mv edition-es2017-esm/source edition-temp && rm -rf edition-es2017-esm && mv edition-temp edition-es2017-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"scandirectory@8.1.1","gitHead":"8d7c73ae43ed6b399acde08d908d69cf73cd8b6c","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-1AfRS0+UPNIgzlJCABCOww9F6bK9d432K2Gx6vy8KRpymbNB6KRDPnYrq4wKc67TYw/CXW6dFeOBuWrd4v1YZg==","shasum":"c9d80af7f63df71a76da0a8ca40f8fafc01d82f8","tarball":"https://registry.npmjs.org/scandirectory/-/scandirectory-8.1.1.tgz","fileCount":32,"unpackedSize":161819,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICDkI8htFuVRGieqat0vsAeF5DYQRdYpJHbfqq/6pUXjAiEA+A3QNisHuUDC35/AkWZbGDsR7qxZrZmqvZEWlMjwSZw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/scandirectory_8.1.1_1704224672994_0.07344943622788458"},"_hasShrinkwrap":false}},"readme":"<!-- TITLE/ -->\n\n# scandirectory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/scandirectory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/scandirectory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/scandirectory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/scandirectory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/scandirectory.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nScan a directory recursively with a lot of control and power\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.scandirectory.bevry.surge.sh/docs/)\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n#### Install Globally\n\n-   Install: `npm install --global scandirectory`\n-   Executable: `scandirectory`\n\n#### Install Locally\n\n-   Install: `npm install --save scandirectory`\n-   Executable: `npx scandirectory`\n-   Import: `import pkg from ('scandirectory')`\n-   Require: `const pkg = require('scandirectory').default`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport pkg from 'https://unpkg.com/scandirectory@^8.1.1/edition-deno/index.ts'\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `scandirectory` aliases `scandirectory/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `scandirectory/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2015/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2015](https://babeljs.io/docs/en/learn#ecmascript-2015-features \"ECMAScript 2015\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `scandirectory/edition-es2017-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2017](https://en.wikipedia.org/wiki/ES2017 \"ECMAScript 2017\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `scandirectory/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/scandirectory/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/scandirectory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/scandirectory\")\n-   [Bohdan](https://github.com/bohdanly) — [view contributions](https://github.com/bevry/scandirectory/commits?author=bohdanly \"View the GitHub contributions of Bohdan on repository bevry/scandirectory\")\n-   [Sean Fridman](https://github.com/sfrdmn) — [view contributions](https://github.com/bevry/scandirectory/commits?author=sfrdmn \"View the GitHub contributions of Sean Fridman on repository bevry/scandirectory\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Frontend Masters](https://FrontendMasters.com) — The training platform for web app engineering skills – from front-end to full-stack! 🚀\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [Frontend Masters](https://FrontendMasters.com)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"time":{"modified":"2024-01-02T19:44:33.360Z","created":"2014-12-17T03:39:11.780Z","2.5.0":"2014-12-17T03:39:11.780Z","3.0.0":"2016-10-20T07:45:57.433Z","3.0.1":"2016-10-20T07:48:17.397Z","4.0.0":"2019-11-13T02:36:19.260Z","4.1.0-next.1573618661.22afa91473b7816bdd58d330bd72022a6b98ebe7":"2019-11-13T04:17:43.638Z","4.1.0":"2019-11-13T04:19:47.168Z","4.1.0-next.1573684207.8b98b43458ac5173b6fceae8e93f32c3bfc5a804":"2019-11-13T22:30:08.759Z","4.1.0-next.1573738845.b36c866b12a46925604c67dd70584a6b7726cfee":"2019-11-14T13:40:47.483Z","5.0.0":"2019-11-18T06:26:41.868Z","5.0.0-next.1574058455.7425d93a313886777e63e1d0bf94363dfe161bf1":"2019-11-18T06:27:37.160Z","5.1.0-next.1575154557.3b166fc606b1f8f82c1f1fc56e6a7041401ef6a7":"2019-11-30T22:55:59.496Z","5.1.0":"2019-11-30T22:57:08.523Z","5.2.0-next.1575218937.98fa2fc93266622b6c20922c59c4ccd1560f0629":"2019-12-01T16:48:58.887Z","5.2.0":"2019-12-01T16:49:53.006Z","5.3.0-next.1575918935.0a3aa92f211ede8f53dfa64e573b3fc17605719d":"2019-12-09T19:15:36.438Z","5.3.0":"2019-12-09T19:16:35.822Z","5.3.0-next.1584137706.40107816331dc44e14008bcf607a3cb32a74cc7e":"2020-03-13T22:15:08.200Z","6.0.0-next.1589186605.514bbddd772d25b043dd5d3ebef810f35ac4c0e6":"2020-05-11T08:43:27.275Z","6.0.0":"2020-05-11T08:44:26.644Z","6.1.0-next.1590008753.45788cbf0f8497547c8cdc66ded1bc16307fd77c":"2020-05-20T21:05:55.051Z","6.1.0":"2020-05-20T21:06:53.742Z","6.2.0-next.1590064414.5ac25400ccf7122d5898bc73097befe9582269d0":"2020-05-21T12:33:35.350Z","6.2.0":"2020-05-21T12:34:40.033Z","6.3.0-next.1590081546.965f1472a2f19372436a9b20f7be4c373f87da61":"2020-05-21T17:19:08.207Z","6.3.0":"2020-05-21T17:20:08.890Z","6.4.0-next.1591786095.736f97a420a30112570620975c97b74e1f8c8611":"2020-06-10T10:48:16.686Z","6.4.0":"2020-06-10T10:49:16.807Z","6.5.0-next.1591802037.ad6a87379b5da89cf6a1b26efb58ab19be3e47c4":"2020-06-10T15:13:59.008Z","6.5.0":"2020-06-10T15:15:08.043Z","6.6.0-next.1592642898.c051c6663beffe7ac1117ecda8d01f19d8ab7e53":"2020-06-20T08:48:19.858Z","6.6.0":"2020-06-20T08:49:20.527Z","6.7.0-next.1592728783.d5fb317f33614fdfdadf79dcfebe8efb5c427ac4":"2020-06-21T08:39:44.359Z","6.7.0":"2020-06-21T08:40:47.370Z","6.8.0-next.1592764372.b0d12263090befd298e93f7b8ceec26b34da36eb":"2020-06-21T18:32:54.084Z","6.8.0":"2020-06-21T18:33:56.356Z","6.9.0-next.1593060257.0b05c7e004101fb2e10954d2333c0d0d75543eb9":"2020-06-25T04:44:18.775Z","6.9.0-next.1593742436.b1c080a843eb6ff9fe9e1c230d865acc74f4ec01":"2020-07-03T02:13:57.461Z","6.10.0-next.1595451111.aa161b3d3e4ea316460da3e852835c42eff5e308":"2020-07-22T20:51:52.967Z","6.10.0":"2020-07-22T20:52:31.683Z","6.11.0-next.1596523214.ae23b11d3bbe0895d583c0d6a5641c377710a142":"2020-08-04T06:40:15.432Z","6.11.0":"2020-08-04T06:40:54.568Z","6.12.0":"2020-08-17T22:00:36.843Z","6.12.0-next.1597701660.37abaa89732bc3055470fac3c189ef00127b343d":"2020-08-17T22:01:02.317Z","6.12.0-next.1598183012.e7c18b395fbbd1963c91ff7c6f43ca7c3153234e":"2020-08-23T11:43:34.072Z","6.12.0-next.1598778280.0f02ee68c787253fdffc28ec4963b13ace760f3b":"2020-08-30T09:04:41.657Z","6.13.0-next.1599280570.3af16fddedb1db8c685e8ea9fdf989d1a55f8270":"2020-09-05T04:36:12.217Z","6.13.0":"2020-09-05T04:37:10.078Z","6.13.0-next.1599392701.e1eaf88e5159673269754bb13d864c6c7a4094bc":"2020-09-06T11:45:02.888Z","6.13.0-next.1599988711.f5e06a29db07089b2b76ff2c5527e119a1172fa3":"2020-09-13T09:18:33.441Z","6.13.0-next.1600595452.903b6ad9bd8374c43ea6d13227cc86c36bd2b048":"2020-09-20T09:50:54.208Z","6.13.0-next.1601203074.79c40670a1848e3efe3933c7efaa6c64a94db3dd":"2020-09-27T10:37:56.000Z","6.13.0-next.1602404802.20c80cb2b85c62710b81f532bb73371703af6d95":"2020-10-11T08:26:43.388Z","6.13.0-next.1603012734.bd1fd7f2f0c2e98e8758f37836db38480a06f5ee":"2020-10-18T09:18:55.623Z","6.13.0-next.1603619520.984fcb070296e0c2536ff260345d2d4b4c2f09af":"2020-10-25T09:52:02.502Z","6.14.0-next.1603942324.1eac4ff72bf853624017719195b35ac9f72386c9":"2020-10-29T03:32:05.893Z","6.14.0":"2020-10-29T03:32:11.897Z","6.14.0-next.1604232423.165e433df3026c093bb262bb9423af72b66a9ae5":"2020-11-01T12:07:05.013Z","6.15.0":"2021-07-28T00:06:18.231Z","6.15.0-next.1627430821.822146ac4afa8d7859991e8e0b02198c06c83237":"2021-07-28T00:07:03.753Z","6.16.0-next.1627672162.fe8aa058a10d9615ecea423131e5e1143d16c3a8":"2021-07-30T19:09:24.103Z","6.16.0":"2021-07-30T19:13:51.254Z","6.17.0-next.1698724387.bf635f9246e02e9eca2ab317cd6e5eb3d6fbef0a":"2023-10-31T03:53:09.437Z","6.17.0":"2023-10-31T03:53:42.270Z","6.17.0-next.1698725369.c4236f99b80168d2f54602751dd2842925749944":"2023-10-31T04:09:32.049Z","6.18.0-next.1698928278.aecd6106c704a4a7780e25587750057f2ccb262b":"2023-11-02T12:31:20.733Z","6.18.0":"2023-11-02T12:35:30.500Z","7.0.0-next.1699957460.94e2ea04ce53356ba60fa31722a11f1d51a44a9a":"2023-11-14T10:24:22.478Z","7.0.0":"2023-11-14T10:25:56.212Z","7.1.0":"2023-11-15T07:22:47.782Z","7.1.0-next.1700032995.693e168a6955165107068597c8941719e1e47e58":"2023-11-15T07:23:17.282Z","7.2.0-next.1700572625.c82a6c562d0212166598326f14dec8e0407ebc7b":"2023-11-21T13:17:07.256Z","7.2.0":"2023-11-21T13:17:39.552Z","7.3.0-next.1700861161.4dec9e905119f145442c465c48d7ac5a13c0f332":"2023-11-24T21:26:02.825Z","7.3.0":"2023-11-24T21:26:10.159Z","8.0.0":"2024-01-01T22:07:50.752Z","8.0.0-next.1704146854.f2beccb4387808170ac84871de30351da5fcc63e":"2024-01-01T22:08:04.130Z","8.1.0-next.1704219414.2fc28c56c6ed6043e40c18fc415c3d01b3362db1":"2024-01-02T18:17:26.021Z","8.1.0":"2024-01-02T18:17:54.073Z","8.1.1-next.1704224609.8d7c73ae43ed6b399acde08d908d69cf73cd8b6c":"2024-01-02T19:44:07.912Z","8.1.1":"2024-01-02T19:44:33.168Z"},"homepage":"https://github.com/bevry/scandirectory","keywords":["deno","deno-edition","deno-entry","denoland","es2015","es2017","es2022","es5","export-default","fs","node","path","recursive","scandir","scandirectory","scanlist","scantree","tree","typed","types","typescript"],"repository":{"type":"git","url":"git+https://github.com/bevry/scandirectory.git"},"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Bohdan","url":"https://github.com/bohdanly"},{"name":"Sean Fridman","email":"mail@seanfridman.com","url":"https://seanfridman.com"}],"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"bugs":{"url":"https://github.com/bevry/scandirectory/issues"},"license":"Artistic-2.0","readmeFilename":"README.md"}