{"_id":"valid-directory","_rev":"103-57369a29754bbeeb6a2d0fdca872a607","name":"valid-directory","dist-tags":{"latest":"4.9.0","next":"4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a"},"versions":{"1.0.0":{"name":"valid-directory","version":"1.0.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","opencollective","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","opencollectiveUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist"}},"author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","syntaxes":["javascript","esnext","require"],"engines":{"node":">=8","browsers":false}}],"preferGlobal":true,"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^1.1.0","valid-filename":"^2.0.1"},"devDependencies":{"assert-helpers":"^4.5.1","documentation":"^8.1.2","eslint":"^5.5.0","joe":"^2.0.2","joe-reporter-console":"^2.0.2","projectz":"^1.4.0","surge":"^0.20.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition:* ./es2015 ./es5 ./out","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"documentation build -f html -o ./docs -g --shallow ./source/**.js","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:npm","our:setup:npm":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint","our:verify:eslint":"eslint --fix ./source","test":"node --harmony ./source/test.js --joe-reporter=console"},"gitHead":"3ed31e5d608d6236c938586d7ee3ed849768c710","_id":"valid-directory@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-8aSReAEkNiMKEs39jm4jCyn3z7vHmbFne9m/kF+WG8OhdzXbTBpCNSgxTTVmyryqPF3VpNznVGBsJ4eX3gts7Q==","shasum":"c52960c11db3b502a839d3c51ccdc7628ebe766c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.0.0.tgz","fileCount":6,"unpackedSize":13847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjPqNCRA9TVsSAnZWagAAdz4QAIW1lMAqe5lPJ+IiOs2C\nHsqqKHyGtY4pHkPiB8LbNO9JFP9z/GBpKjdAzmyTQsCSPw83b/Kl1MUoup2p\n7sXyGPb+4NPUO3Sqe+INJ//9NqpFX8ZKQos+vsZC7aDSiLrx2kJ2igHXL8OM\n3c7VbGL9tfVvQfIrKG05xobALAZ8Ms16KmRhqEF1RQ3AW6nNXpACwJPsL8us\nUSexGB5bHeiUoBhpH4B7viCzehCpEW5boQKdP/FYGLxfUxX1qjpI7r5EfWJP\nV8vwS6LGB5coghfb3FJ045paXM8HJCrA9lFBL2+qvSA80A4nm+b63T1b+BVx\nUsEhCl/P+H9rpNfPnewvFcAAdSbWyM3n9GAzMSVxhmwNbrVXBkB9vctmgk00\nfcfE6cu11aJSJLNjCSvMEVFH0zzvKI/BGvrJUPBa3C+hSUPkM+d2Yt2hXsvr\nfY8do/LCu1/BNV5Xj2RjnzRbFS+HWYK+n4Z6weHuHOujRNaPY3ljZwiypEIB\nBVvulJasvUmjJrovGTG8bkWhqEpLgVJXJZ27gfZdIgDmgukNe0ywG0yLjWzU\ni/5IYuCKR/47XgNLN/umMG6e5kyfojz4RjMusWdBQj4nZXCscuzoEP5oPjdd\nEp+8eM8s8/6SVDOhl5yyfypPx/URNXdg5SkH2h0eWMVGAXRPHao8weNAWwZp\ndvf4\r\n=4a/M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFNgf5Y6rRvCH1HG/ZPkRiqq+xPAxoeMRdRQj/kz5PBiAiEApLdbBUbUGXizjstVg7/YXLh8iASkR72ELKdfB0ls67w="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.0.0_1535965836856_0.11016789313528141"},"_hasShrinkwrap":false},"1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698":{"name":"valid-directory","version":"1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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 || 13","browsers":false}}],"bin":{"valid-directory":"bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^1.3.0","valid-filename":"^3.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","jsdoc":"^3.6.3","kava":"^3.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.10.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f419ad6703a8dd2663a7cc10f8cd0d60c860f698","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-Uj0aQ/HpvBNHhPCKJQ2KpzJlv1Y9jw1WAtcVKQxUFvSi1WsfY5EuEItzHoZFwZLnGNFBpBfaJfL2S0XnmhyE9A==","shasum":"9ee2e6a980f27ced33c88cd30990b2893481181d","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698.tgz","fileCount":8,"unpackedSize":17776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy65eCRA9TVsSAnZWagAAbP4P+QGK7JiR7imSIaVPvoJe\nC1buiZkKFYXCsNPnprohw+Zz2YoXJNwuTmOeuXACt5sQYnx01Be4+382DFY/\nHOSP1vZUUhJYEwH6xCGuK4/8lHjDmwzXzkW+tLEeoOvfamZZiFmdc5yvGGAF\n6bmPXSfvmOt+qRdYICJmpG13xO6ol1nK1szyeaBymm+shOMYHb5dX/CVSsNc\n4Li6/RDQzTezdKKQkf0LJCPhgcuOiFCrkSmU9TI27jsjt9sfUr0nfHciwknE\nhf1UIyU/kIjsiFBSBD/H1W1Y4y8QDCFsSO5QpdqoUviw+BgHr5bFKEjDZlpA\n2twn59qr/KpQFkiyX6MQXKXZbeVABjZO9/3/8kMmJASkXe6jH3mQkAx8x3RI\nVVw1c051gLf34a84ZtP1VlftTWocD7xcsSnACcaftZR5YOmccDENpu4e8nFt\n3G1PfU+sbP6zMURjC939d8cKrBA8Lt5R/bmIHkN7NeGVLTrrTUowO/X7f9ug\ngSAGpGJp+Zlhd07z+YezcwvXkpf+r6WyhhTJQh4V0Lsex1ucGSKB/sanVjJp\nLo/1u3AensvpDgDRA+SccDMpMRZ9zPwoAitzUFpZ1SogXDByJE1sRoY3vMb+\n+7mm3AVA0djPlP9JhjmxT9FVYaSbEVOepDzzQzPzTG8p/SXrdeGyaXgH90ef\n2jhM\r\n=z8HC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJdBhBScPex68b3JMQNSv6TfhxF+K6ajloQ6njSy9qagIhAN3A2gcktOaXkbGOh8F4IbjEgsiACIHmPme+YMTbkg6H"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698_1573629534107_0.4332266708762216"},"_hasShrinkwrap":false},"1.1.0":{"name":"valid-directory","version":"1.1.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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 || 13","browsers":false}}],"bin":{"valid-directory":"bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^1.3.0","valid-filename":"^3.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","jsdoc":"^3.6.3","kava":"^3.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.10.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f419ad6703a8dd2663a7cc10f8cd0d60c860f698","_id":"valid-directory@1.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-w3Cj9zF+k1Gi+C1RiCkqfeJE63dZ2AaPdQztu7rr2WcsMMF3Mu7V+ekiYJ19S3tdUNLxu9YlXqX7pkjFIQlkVQ==","shasum":"9df398813f00cd1771337a6d638128575a6f9158","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.1.0.tgz","fileCount":8,"unpackedSize":17719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy66qCRA9TVsSAnZWagAAQt8P/j94pMsaise2Rpdx5pAH\nfR2iLU+6CBNsBuNheh75Fu44syTqa97unyIRp5cqWraQHChFQN0eKjYw0rN7\n4FV35kZIde2vOj5mklTftuai30nKx6+/lpZOF0WP5OrvTmlCEjJ6HmIaCu0Z\ngBw0QVEyeHZKVH0mmxooD4Nj8oJJsCUru2AB44fokV/EI1J1CCyq1KVrMwEW\nArJWoM19RFKs43hJKUkFz4HQzvU5/YSlk2qgy1hye/Exl4vWI1aFxsDpKBzg\nngQgMMtj3c8eyvY+RnUx/J8ikTuweqeOn/uyZdHQYkI4zHwaF5K4Apd396Jf\nvx9BMPaqnL6Bev5Nuzow6h6I5EcM77TAAX1w8qpxNbF5ptMjO9vuD+ZSsNKQ\nCNb20msGQdxKEgTTQY51M8L427MBnpBHsTqV9lXhcsXUnjsbFOo2E3hnc951\npgnL00HsyvOBjkKnoBkb9uZPlnkJnMDLECPFqGAcbXNS3lhM9Yveq8r60Pt8\nOfVCK/Hj8Jy1JXh13hpatBVb3GL5BN0p5vtfBwzpULXG3xpbA2Z1asg+rWTq\nxLzlLLu97vILrt8g+CvJ76Wyi/xf4L3WxQi/Bf4gS3+p0AT7G+3OK3WM783i\nP3pljKhd2Z9UYsP6NOa4mmCWrMWMQkA8RCfZ59JvMyi6jZFSkISo3y6BGpT8\n6Ccs\r\n=7TZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB6/uSulIeRDPvJsny8AjKld4gT6DDLZDHETXoxqhn0GAiEA2kEwiLaMiPDxBoAOJbE5DuSJSWnzH7VFoZdIecvLJlw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.1.0_1573629609964_0.9408722739178199"},"_hasShrinkwrap":false},"1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d":{"name":"valid-directory","version":"1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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 || 13","browsers":false}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^1.3.0","valid-filename":"^3.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","jsdoc":"^3.6.3","kava":"^3.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.10.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2003a7c7e6f66500d1190ce6d0612279b8745b5d","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-aG2tVMxsh0ZtRHmyc4AYS4c0V6ghdWn7x93bJk8Kq93x198t0ReHrgzFuGIR1gdx22sMHV+Z8L1AEcNrzWUA/A==","shasum":"f0e134c730da2173c7d3599a04f1c7be118fbd19","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d.tgz","fileCount":8,"unpackedSize":17841,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIp9CRA9TVsSAnZWagAA/KcP/Rhkj6ed7tRDI/09IQuk\nzI4452ZZ71zLzkPkVdh6Uj4M5NXgQtzMJ5ZENO69v5jkeqbsdo7i05EUrx2O\n4HC8wDy7xd+77phFFe28A/erUHYT3VRqMqwtIk2UsYT+4ncJgDzZcL8yLiga\n/LOGXMFJgM8zn1PPl7PWIYgsiCVrM/8y2DIs187q3F11Q2O1dh5bAxbOtNoy\nSqsSci1/DRitZDmaMwI7tW4z8SKa9eGgPH9UfP15HIrhMX4RCdgc+Es6OYTX\niusx5RMB0MSixj5ktdmXfkx1raBxOkqK3vxjDUXSe2TY39nW1V66yhUUfXTj\n470qku/3DUhR1CU2E7XD1fmkTiyjcG340pPdEcUe3wWELYAbTNYpw6T3Pswu\n0whAv/o8yiFpMWlph30vbPNXh1SURKdpfTVQrZUfrT6rhb6htcbZ2KgGLNaq\nGYua1nvzZAbYLoka7BDhMNUQCglmxlfvZt1Bxn47K3IC/jVvdBiJl0pbUuo0\nStzAy9LGQ7oRJ5ZscUmxmkFtwZ8qfwRJAtLGqSR+RtJU2S/6x++AGE5s1wlo\nyoZ7dHPFmkSMwYkXk8p3QI/etB9VdFs4jzEeYqp8x/ujszMgUpzlI7ntQo0t\nZzz7aubCuSr2cjgf+KbdPasgJnTKm9B1OQO4utv3SHt633CkJlG4mhSD9oa1\nAa3L\r\n=lkvO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFpqzUrPRclj3SYLmAUG0g1IddEQ/gzj9b2NaGYp6XqQIhAITf7h+gCtNuxSZ9KRoDgDcgB1sAGxz1vJ8b3Z8pemQl"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d_1573685885502_0.7623971580771178"},"_hasShrinkwrap":false},"1.1.1":{"name":"valid-directory","version":"1.1.1","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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 || 13","browsers":false}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^1.3.0","valid-filename":"^3.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","jsdoc":"^3.6.3","kava":"^3.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.10.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2003a7c7e6f66500d1190ce6d0612279b8745b5d","_id":"valid-directory@1.1.1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-XhAE9D5IsCOQOJ2mMl3cm12UITGXkRJvkeLJyE52vVI2aZjsx5r00/PTWfYm8lBJqOkGZO3pP0x8qIhuOKwbyw==","shasum":"ae7c1e7a8b133a319eb509a2b24fa009d2df60e2","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.1.1.tgz","fileCount":8,"unpackedSize":17784,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIq+CRA9TVsSAnZWagAA9EkP/irLiuPbwAHWb1w2wXVN\nUn3Pyv5hYupfXsdhhVCBqB6S/ere6FswcoWlZProRVD0xqkINDz8wGYLa3AB\nTrhRUEme29IDr5bN+IVHkSpnwiIAJXRxRZ9Tupz4pXKOlKNB7u7928kAjEZa\nVa5SnmlmfnaHJ1B6Cudw1BVMIN9wFjHqQLIlNGI7wMNa/6VlStX6fGqHWgcJ\n0HhKihHq4TLh8wFAhAIM1hSLzLv59b6dSpWsfsik6r6u9vF/Nrruh6YfYjNk\nPyOrfet+eIMpOcua18foTuxkUDy18aX8FhOIr26RwMz4nIcVUjsLnV560stB\nJOhoImmd9A5G4Ie3YlQbUM8ziD1UKLQsne57bbd7xXHStYq4IHP/57S48+PZ\nTIqRZ4djx4fxwj+DCjkCoKituhAmN1DDe/3lBGwUK50gBA2XVqbdSLc92uN/\nCFrihA93NMpEpO7jguE9dFsbMWpwmMJgskziWdCQGOx6qY1KuUkVBtt51/0V\n9vX0N1Am/7hQqjjQFJI1Fsg07iWrVdcuVW00OwaH1eWp6P16gRfW+jzs2czt\naCbHwaI84quA1L+NHZpSyhE4U1zkowy5x0G0cZIZFYP7RzZ6dsvVvBGSdx1H\nYzvWYsx4t9zjlBbMQ+ELwaB/Yu33yeVrTdNX5u5zhcxrhcBBcoqEv8gs2UV7\nXzkJ\r\n=hA9q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE//K8w6Cb7IweIe+hMFtvZ00x0zORx/4Uv2xkIEzIgDAiB8bz8GXC+jwG609GSz/k4ad36kOaYiYWAyJlZxf2DvOg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.1.1_1573685949502_0.5894840253175366"},"_hasShrinkwrap":false},"1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7":{"name":"valid-directory","version":"1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.0.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"4.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.11.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5a3b52a158e5186f50137eff423fdafabe73daa7","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-3tZBHgf6VeGaxmsWNkdQw/avn3KfDGdchcLvsQklWLwPp0X6HvpKy3EAmztIqV4WJLxzdJR0mrC5sASslRQs1Q==","shasum":"1929b239a080f437942e1262c81c675a300776c4","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7.tgz","fileCount":8,"unpackedSize":17998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0klDCRA9TVsSAnZWagAAOEsP/A9CB5zwox1+5UQTJeNV\namr4i/DYMJae3sNpH1gSkBWJdWjbhZbftNKwyUvTHlFIzcOtlZOaigdQe/2j\nHa7YlxRKwwxrB+7kFgW8SehfHS9pyiYbIrS+Bj3C44pg6gHQ1YgGt9Uw99zl\n82GM1KDwtnjDA+61P5OeBSqHIW8ZaFd+Po46AdePRFzJGZ0iZMsLaZuDUD6T\n4roAtlxNesZ0RpvsacjjMqKafmS/0w3fNJncOWGPsXU5mDN6YoZKV/4+0zPX\nRbnCKBnEf8as3q0SOKsvUcgvevOod/JDim5Cfm7lXf+jhTWXL0hDgxXPZzAP\nNmXR4uAXEyDj1UnVSlf6F2QVnbNSSkLb0+uHGuh513j1/Zo9f6gpOP7YNQz8\n9fHfRkQkkjuM+s7LQW9qsP/RocXmXvLZkro9DYZb9+OpxwJAqFx+I3qgTuI/\nhJivCUzVdrJvz7QCq/wEk2EALtIkKjbxBFhGCavtlBDpzG+QUuNdtYYZefo0\nhfrQlgS05XpYb2QwVlI4555YzkKXN6nm/qGiv2uoVA69KcNYzUzrHfJMzXNv\nFl8blhSTHNjne2cLEZlVzW+QeiV9EBwagtwCKejhENqhXgwY8tbPXLcWwRhx\nJDnUHZOMF170ahEfWXmw+FQP1ERooQl1uLbbxRCkqE87qKoyeDwgcEa75Jm9\nKVbF\r\n=zckD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBbOdHA8e02UP6Hc1LlRh62izLsbefBWh2FGDT09A+CtAiEAxio1rvf5wbZRxmbLQoP6u3icDNQjOhqPo3H7DnR46CQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7_1574062402976_0.011364251048499918"},"_hasShrinkwrap":false},"1.2.0":{"name":"valid-directory","version":"1.2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.0.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"4.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.11.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5a3b52a158e5186f50137eff423fdafabe73daa7","_id":"valid-directory@1.2.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-kmhLDb1yu8R03R8tt9CjCUJd5+ULoyMbpU/3S08Ot0S9GcwY3lsoNnfFiIYIQ9T2lmQoyOyVm7TyVt2vK+s+Bw==","shasum":"a72e342038d65682748349091f1648f75a80152b","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.2.0.tgz","fileCount":8,"unpackedSize":17941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0kmECRA9TVsSAnZWagAASQMP/2t7JSeTEQL1WTH+f3z/\n8m2Tsf+YTtQOFq2DK4pZH5KieVEIghNSAhhJoO9AEcJUwRF14RfemWT9e78y\nK8p78Bg1k9luDY5U2U3Hu36DzJkI8u8fl3a0cc13mHmsxjD3zzS67HGrLj2R\ncNbpjWpZKE2zL9NRVmVnMit9DsffOJn0X49MN7zju1stsYGbZKoPmat457+a\nV63IRv7GAv4eVgyFDIAvbQ0dMHe9l3qq00trrq6YqGxalg4gdhmNW1wbxVVZ\nQE0rk/xSvJHD2IGeeCbE3x97eW7cZveweNAc55SxQ3J8G9fgtGTnpkg48p2d\nbI3Y1731PT9TD6NxUhPUOQ7q35sS2VeUIgi/eYKlmLghCxKKSIfSijBPqn7I\n3fK5oE6IlWsmoQpznCQ7YYxkZU1In/CXFMa+BNbcaF5cInIYDKI1jh3Rz/id\nP8sCdhrgMX8yKl1a/lnF6XzUhl2Fe3kQ8VRLTCn7NEFoBCdklG7zOthnLwud\n4cu6w5gMEAyaCR2JD/quO1je4Xe1NalIfZnsknJ9sl0PxQjX1CPXW2CL8c1/\nodJyqEQKlj2O5kXFt7qrs3zu/yITvKngpKrU+lymTLTpb7O+VEtt7OZVfBAl\np70a+ai85WH+F+kIAfYJEKTcJBLygC8DsDOB0p82SUyBJHtrrpsTKqT5lC1J\nTR9k\r\n=MbnE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCvIs9i3LR8qnsBX2ucoocod4olkwx6+Arhgw0D7xFpAiEAlQ+LiDvwqn7Xtoqd7SjJBZUPFonGrqkbreF8BGz+900="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.2.0_1574062468546_0.12150686708574909"},"_hasShrinkwrap":false},"1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2":{"name":"valid-directory","version":"1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.0.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"4.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.11.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"da2325d6a1dcacf51e36a570e0240e1268bac0d2","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-VRdjuYN+e9L/9qQmJMVPrtwlNW56ho48WQJ5OW/uAxDqUWI8HgPsm7e+q5E0Yq47HeoXMsXIxY6Z46nO9e/jdQ==","shasum":"da6100bb586426753e8f02b6d2697e74aa4ff624","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2.tgz","fileCount":8,"unpackedSize":18203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0k9tCRA9TVsSAnZWagAAeBIP/32k9NztD3zDrNNltbJ0\nwjazJYExwK+3TshpGIKtWXdD1QYu0WSKao0rWCP84HlC9VNtv7CB84QN5cAX\n4iNVRQSgxtygWYS4za/ynocxlT9R0WgzGJzJyvu6Qz2sRBWtLRkhSOPwnZ5v\nJh/v7qCIdPI5VR9Ddhwb9zukiXqm4T44M9tOpQgAmIE/5e7POctyueUzyUmr\nfzXMMj4xHzgskHgoNTvbvhKxwp+voklxoVomArdwOaOmfbSWy3+HEWOuCJQV\nSlHIoi2+bUraku8C5smZvFZAWrbOQL2XqxWlMqaGlIa1dLLiosVkyUES8G/m\n5Wm0FypxfoSB42JVDmsBhLNwBvUoKllswodbTwyOVOD/d5dbYjFxU9yvoLqG\nM+aJq9rJffD6y+wJHcDi7IL1G5Aus2gScfWYpWuZDJ4FYb8y96nxDQ8dar4W\nzw9fEjD3PiZ5Y7lBg/bVl3eOi9cV36e6cJ9hElFfFWzCIyn3wXEZicf/F/2J\nFTlNp9jzUWIANyXPq3aoXAcKjfk4kLkysqGIXQe9yOuFp+JtJTHoAFSQ8hi7\nle4YGYHzMUDijS/GpJnDec6ZXpmNqbRLFrCrujhUntPP136X69urpjcI1cNF\nl/m1Xq8nP6FhxUmpKxt12/012+N+UfY000g4xz7P0Qh3wR0JB+SkemRHr+6p\nsCSc\r\n=S5eN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDttew2pqbojhfROLrHryxR/M8povr0PGCfrJhDqzqcgAIhALsM/HcUVW25sieOuPnL0NepoOkKAQ2EEHcW2xeqMqF+"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2_1574063981274_0.6985308649088615"},"_hasShrinkwrap":false},"1.3.0":{"name":"valid-directory","version":"1.3.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.0.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"4.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.11.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"da2325d6a1dcacf51e36a570e0240e1268bac0d2","_id":"valid-directory@1.3.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-FBFseIjUWkpmwCqC3U0RBdv5BTLFtTDDbF9eqmT/m6lpZYF7/gc0A3bYB5IpChuHUF/0O1fVnYEi9Lliace+yQ==","shasum":"e28e10240359658f0507cfdf87ecea6d2d8108a5","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.3.0.tgz","fileCount":8,"unpackedSize":18146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0k/CCRA9TVsSAnZWagAA620P/2eYrZY/UDl0fuxBUqQe\nMZhpE0pE5HqoT99DIAVI/hMUpjg5X8kBmj3CLtUEUujyuwyh94ZDFImPjGPq\nBNtNpFVnCc9CYzId5d9FVOIkmxt24xGXbNDODlnoE5Fk7fpftpwEKOWkFxO5\n9SDRkSX9ryeoMlO6Mzb40oi4y9yh/cleQ6mUZzLKBSBN+zUnhodEaoFjFGDH\nGKZwPbj+lzOlhITS4iAqiuBzbQMSheJZt/WEruVw5/xHu4OGYuYgiKOrzZVr\nyu18b7Q8tBSPNTtMh70k2xSCVbakR2tLqJ9mpVKkf7KPzGjPw8Q02dxw/U0i\n1LflqqUOfE1cOYeJqtZjsJsWWMjXqLOmjhW8r4PE0Wfo/R47owQosez8a7Dj\n8Ckgjm0U0I3OVGn2YyKnRJbLJjZs+AlpwkyTze0hed9q19kd17cWiWB98guV\nCuw0HiUg3hZm4Pa7OotP54p4cJ2OlTgYVBvyRP9bB6lhUUohmkoQUshg8dlf\nZQMFgrPEhJijNDK/x9CbNR2wgwm8wWi+I8hPlc0PeUa8UR4+QTP7j+OM8vAA\nFGxaO31/aY7cbH9LbQE2aOjs+ms+4VOJhWIlJ0PbZ4HYDY4+IxRTCq4fOydg\n1XNRCX7iynp47tHCzmQizyPQkQlusCC4z0qScb57fK+ButECkmyT53Olz7WH\nuS5m\r\n=+Kw2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcuAZSjFPrIOwt8dlfNOxt3t0+Wl3aSKOhNzr878BrmAiEA4JoCMWE9XujoF0jKqAzVTwXvnfupEQ8udvy8DrlChdw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.3.0_1574064065652_0.1951596367744164"},"_hasShrinkwrap":false},"1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7":{"name":"valid-directory","version":"1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.1.0","valid-filename":"^3.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","jsdoc":"^3.6.3","kava":"^4.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.13.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1db7a02d1744030ae2b95c3c2b681a184c4f0fc7","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-rM44wk4/8m2S5x19ETP8xbhg5/lyv834Rl4+hqqL3bmjI6Rg39aCsWY4DDN62VC56ODOCwEsXvwcOW0bQroppw==","shasum":"f8e739b59bebea0a9b98255a9c919a762479be72","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7.tgz","fileCount":8,"unpackedSize":18407,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vyQCRA9TVsSAnZWagAA0qwQAJ/Uat8hDiG30jrmbN6U\n1KjKGtieEV2A2PJ5uK8Xa3GLJJzYF1cqifqWLtM1Y+S4BUAOMYYFNbhQsywV\npGhPvKQ0ua+L3j/P0bpJbMyTscAfzVljzuPOySQwcKACs18RWI8P6FGxcFe3\nH+dCzwEgw+80jS4saQVmJm19WbCLApGhP2/RISqFOS9Q7sn7FvsK1kAR7XJW\nkaCNB+rpnhJ6DolUJ0DC026OvWL4obmi56e0t6V3nqtgUzv8vjOcwv1rVzx6\nZklO9RxVQKWrYmf2G+vGKt8UZZ1O7HVN6olYwizMnvrwGFdXiWpPgDTlCy7b\njJZHfku0R0+ld24MRqwbbqg15YUSA4fMt1tpRdunShldjiL9nVQQQHyqmloF\nKvefKmM+CRDWtCO9SM9Ix4EtgVc60zk/rolls1M26FvzVtjD5fXKXF35eyLH\nJ2DYNm757TSGq9Ua/Bz4pXK507QlgQ8xNDShsfdpltSDs3USNGs+XfeSxzCC\nAxtPbW0NoR72mS3c9aA9JacgOjFtZnqX2zJrpQ4Mxb3K6CFC60EZEwxSZuKp\nNyXLQOV4tnsuyc3JA+aaolVzOPqQBj5nmf4M5XUOgX7Q7uh9G0+zCDH0LO1W\nIoMlHYYU1Y90IBWgT6rEp2ptvoMczLHCH/BBJC8rEgV//CKFpAUbQH3QDudY\nB7hr\r\n=ypw5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwUujk3DLeAq3gkVby0yOmcKBZwSzX2zXlwjw815FvEQIhAPtQQpBxV3uCnPzD7Jn3vYbQJaBH4SKaf0QVNtW5i1Aq"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7_1575156880181_0.14670325651508853"},"_hasShrinkwrap":false},"1.4.0":{"name":"valid-directory","version":"1.4.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.1.0","valid-filename":"^3.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","jsdoc":"^3.6.3","kava":"^4.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.13.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1db7a02d1744030ae2b95c3c2b681a184c4f0fc7","_id":"valid-directory@1.4.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-RHncykzzzzRUhnfaMusOZM97oGyf1goi4mTxjjCEA3gGls8m657fb0ADz2fVhL2gqbJhmSV0/qmDbKLqo54UDQ==","shasum":"0dd9c0f095b5191270a03d125d047690b17cf4ea","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.4.0.tgz","fileCount":8,"unpackedSize":18350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vzVCRA9TVsSAnZWagAAqzUP/3+ow/Hudvql5o7LpcEN\nxF75gziQLe2ACoyeTkLgSCzDmKWU1NDZXfIObRD6kjULFj3Rq7KI+EpOCJ3O\nbMFYg0tBKCpXrlM8F5TYmud51MNb1j+0QA4ovZlBPTGTxU2ZO4Jn+0DYyukc\nw5z7TyVGKkTNDtCtOhJH/OO/TaMmKZUP3iqNEJqW+v1sXkPjYPmG/PDRjwID\nbFRIrm0WhX4lp7bVPdsWB8rD7BUbxaz3O5n4kCZyW7dco6agXhjCxk0dC2ny\nV3o46q1bfnhd/yyWibN2g4bQz+tYgZNBScu7qnI2c5/H+K/XohzKahHxF6Tk\nShPxc/fFGOJw/FFpt1uW8+MHY3tbdZrnVOpZVLPLCVrdS2wJRGEgiiKXPE8w\nEUb+6/ZLoSa6cpUyGX4+av+5vchKX/q91eq/d91ijpRbBXSLY7KMz/Oi6f7G\n4JLqe+vHZMdpbPNFLeIaQWbfH2Y8vnl8vls2o1qAECUTJ33CorAeTRimJ4ue\nQGS1JJx9Xf1XOuyqot2fTk/LvxXrK8QeoXzuhmBifk+zPQXsZLFQbVYUAVD9\nPDN89jpTU3NLkDn/bM6jo//L0zG4xacMJq41ZVizchC9LftixJyUdHwvIuem\n7zOVcR/cV+E4H8LOxOvg8u1DQsdM61mEB4USegFvCebkzoLK0IQ5xIYbnZpD\nj2Gm\r\n=6Jn9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFzbcNhvD1T17dY4u71d9fb2c5KvSFPyBlzkBNajIh3gIgMZmk/+bd9uHTiTXsyrmRCFsoNfAp9KK+UDeoZu4t2qc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.4.0_1575156949161_0.4992794673799408"},"_hasShrinkwrap":false},"1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713":{"name":"valid-directory","version":"1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.1.0","valid-filename":"^3.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","jsdoc":"^3.6.3","kava":"^4.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.13.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"7e2de2d3d4d490a299efddca1dd94c6308708713","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-8KmJHWVorRmKj/3pxTOvOPWcSj7tR7+axueC2yUuluxCipI3GxWWjzorZtet8pqOdHH92AsEJOLA4logJbQeYg==","shasum":"ae694967e806a582f829edea25c6329aa1193aae","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713.tgz","fileCount":8,"unpackedSize":18994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/NmCRA9TVsSAnZWagAASQQP/2LRZIyF2WoypqTXh44z\nOWl0Uq/jiAjP60713KD7iitwttQILW8BrBxZKFiNUMkEi94cmwH43fu2oZ6J\nvQjNvq8cgagSN98BztCoj0jpyTRAiX6wNmI+n66ia+eK9zBa3TzB3PfbbQa7\nAWLnBSeMmSFgYFcd1D24DDAHvva2bPy2ybuGL/MontnN/TAeHlEIGGB22TRX\n2fQaWeBh3hzVVz9JN1K6XIwfLYykeeimUNDe373AMn0D+ICi8J3rATHAAWlJ\nSEsSXL+fIQTZnxmoI99/va/5HAjN+HJ8p6IKgNp1nk2nG+WoM5PQWnZ0JjQs\nSjObmBDhyHl59T7sA3HWP8zJPsxeSFVzuevojftLLMlz8mQ56TX7AlAM3sP3\nOaEE+ueLlMTAXj2bnuru+oVe8yIb9o4zqSnYRgepo9QQUfFZq/6ADpYfg7ED\nsMwUcHFyJ9H/decvjlfnNJTn656/jPI2DUy9sdt6xsCd7DdXl9GftMgOz8S0\nfILiyycJcMc3z8tPgvYfwV5KmyMutlDZtTaDuIo+B8vZvJJCM6vaOl99ObMe\nQCvQwxT5aYnsPkrxypMk1o1Qzo6EBmlJBw1/+6KJ4SOIYRBQ0P79w+Aa6KNx\n8uiwKrRSvia4gaANarPkU7PEoVBliEB2zy9Cz3JeZlOKTz8V/vl3nccB5GRi\ntSCb\r\n=OHzE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCl/ToaODouErzTU8K/6dQk3UNXrcuUgB3Uyr6CZB9IpgIgN8fE9XERU+JPAoHXpan1Qekbkf9Hj0i1FZ1cvghf+Wc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713_1575220069559_0.634457922371628"},"_hasShrinkwrap":false},"1.5.0":{"name":"valid-directory","version":"1.5.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"main":"source/index.js","dependencies":{"readdir-cluster":"^2.1.0","valid-filename":"^3.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","jsdoc":"^3.6.3","kava":"^4.2.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.13.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"7e2de2d3d4d490a299efddca1dd94c6308708713","_id":"valid-directory@1.5.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-znqhrNzv4tJ2H/aL5H1gSPoU3iJHHxe/G4OeuGzSgP6ZL3CKTdlbPkw6tO5KVZJNrm3/S8FuQ9QSzcjlgMTPHw==","shasum":"d9f5d27d092467556508f4aba73ea628e47ca91c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.5.0.tgz","fileCount":8,"unpackedSize":18937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/OZCRA9TVsSAnZWagAAbxYP/idanHJYw4SqDuj/Vw/z\n0zMoq/XDdqbVTde9QAFlf8wOJz4h47qQxYHpdRwKcfJUGtCwf/H0uRElMd81\noqqHTSJ6O0J8cq3a/OCw/tD8u/FVhsyU2kNckDkBrcIP0ug89ITPhYrYPeRr\n+dBzvE3Zx6yK8cDFZEeDG+cvXgXSTM5KBiS44MYXRH2tOolscRi4+yUiyBBw\nmMwaFsWnqRHrCMSYC6LuL8jYeZ2Xn9X8mp5rFg9lpB9MbMCsMs4XHVnUJPdG\nzoEssL8vred/MsSdswvmZJzwZB6vNtY2R6VDjIWlOTdHKLFjc7UKDdqUuydL\n6eYN+skxZFQTaxMbyCX/UeJqkPdyBlT3+QRL6oAtOKztCmg2E8WaB8OloYYR\nUoLOOd5sktCV3D+YbnAmMwHCy5t2E8bvfw4RR9+mV/ARQKKiCgXX39jQZbTT\nQ7xQKHxNooHJ34VjOuiM6J567gdoUWTtLlfgvffH3DYeG3SKrNy8fq8zjmL/\nXQfSz01+6vtLKYS3oonbNZyRmPdCCKgmG74s+NY2ErDukD4BpQDFai3c0ZMW\nGEYvxFtOdyH10GEUwXsbGOUooDr2ua/f8tZZiCMj/Iddt+4NtyFGtbX6DyNp\nAVpNHvCAh8rjjeja+8C++niPy9I0TWquyeRjGei35V1G6iXLde5rJjenbRyg\nxqCi\r\n=ciPa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU+xPrcIsHthiimwDwKj1ouqQXaOxR4tjNCN/3E+Ta6AIhAOv7YbV416yJZlCQ2C7/6/JUrdIJqcYDccIT8pV8ym7O"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.5.0_1575220120639_0.5674538862226151"},"_hasShrinkwrap":false},"1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc":{"name":"valid-directory","version":"1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^2.3.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"^4.4.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.16.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"54661c1ff9d8702bca3e1b14cad3cd75db5c33dc","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Require: <code>require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n## Usage\n\n### API\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n``` javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    }\n    else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\n\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li>Benjamin Lupton</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></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ Benjamin Lupton</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":"valid-directory@1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-wUqIK/PZiWF5Il74sfWlHsxwp754mlOAgobXYhrewnBUedNP6PhXq7WGOF+MwGBim11/T+9tLkj6wJbM/AAIFA==","shasum":"debb5904652c0d5e4a902c4ea8a045afed6a273f","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc.tgz","fileCount":8,"unpackedSize":19424,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7qzkCRA9TVsSAnZWagAA/rUQAIsjQSeiVEorjh8dTlUA\nI0NQpea77Oo9d4wtlCcysR1TDGmy15yi/tZuwQZTdBHWtZzzO8CqoeotYjvk\nfiDqfkrSIXGuaL0WRU4Wwxof/pGFEYfhMy/6Y7agjYaaGLQ5zFFFYczik791\nBRK/k77pMsVOCFP2qokBZWLrzqEabwo3dSiZom9X8tfXvlKZIS2mzAOeIbyH\nTLYpovxhWgfGTlq00r5COw8zDALmxLuJJ7TXdf7gkPeA8TXAWRbfouCcpDt3\nE23yF5nzVoIjyTUBmeA2cGQJocumK9b2swPWPn2SDtZWz7ovdGVdRIH6pkkF\nwEDUxpfRBlkwzDwXZg1r2rkYMbDij21sLqCySHRXPkM1KufqK/5PKFQ9IfMK\nLLdvICBR3XbXGywe8EDQFotKGP+5xIM9U7dwo8A8yqMGHajgMR/j6lYe6Vxs\npSYeIXAJ6phXDJPuxtmdSUT48bAaL4FTEa1qNaWlMvlcS6DB4LPnAxD7Y00i\n8L3MbhSK1/GrQxjdr4ScYT8c3t/+8tG01uP+pFk+am/anQZsq89FeMRFRlub\noxPWxsOvC8oGElQ4GWR8ImnhbcQ7yz4jnvpnTBjAzjzUiXNFEgbEvVTJJ16o\nUxqtkZICr8wI5wOazHM99uKAZbfq6UND7TgsbRH0BZJJpkTDszGW+BcZ4Tfy\nqT4x\r\n=5rmX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVshVZZkfNJ/0BWyN3GeXtNnX8q148/NxPyVqHO0h22AIgJD9LFYNhSou6s0PjCb43T0as5Gl9ROKnqrtpmkUCOFA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc_1575922916200_0.6394545896519714"},"_hasShrinkwrap":false},"1.6.0":{"name":"valid-directory","version":"1.6.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["valid","windows","fs","validate","detect","check","is","test"],"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":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^2.3.0","valid-filename":"^3.1.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","jsdoc":"^3.6.3","kava":"^4.4.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.16.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"54661c1ff9d8702bca3e1b14cad3cd75db5c33dc","_id":"valid-directory@1.6.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-IqlmFsAWpoXHnVghfsvGt4YQxpoLC36akIWlhn3604LzeQwraiHKqLruUk6M/gkGotWtmNhfVwV/SfM11aCHHw==","shasum":"7de91d06fb4903d6d07c29308c49e2ec45326329","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-1.6.0.tgz","fileCount":8,"unpackedSize":19780,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7q0nCRA9TVsSAnZWagAAkNIP/219pWgSj5FiBDZKRj0T\nmlKcjpHq0OuX3vBuTYADj1cOLHwccVrMH96Plwg88wlyf8G4UVWg5Am+6UTI\n184L3aoG2zfuyGmpxQ4Imp7aZSEI0jt2M/vM5d5pOH2l4r9jwdHSb3KlXte1\nXl6hRU11sbC+Bt1elA8DRMyMg7fgyCAfaefxsNO0KgV28U6KJDI3kUz2VKuf\n3pP9Jj7+qO+B2QLih+FhX6Tjrq3GQUZ9XWHKecudUKgAbnaBOmNgFKVN7lLm\n2JVD85Z8R+/iOsr0naTkdfCdQCAn9eczWrgpOvg3wyEcsEa9nyhe95vxiM60\neJp/Rh/V6r91wRIKREXXUi2GbLNzg7HqZP19/KQ7uJAltyGVbnxz4JP5cuT1\nQvdzTWQjUNPYo4zFmypy0SZcN147oHxeNMsgLJtuOQdIgedr5WXi4ykgFSzk\nR9SBwbhiXnnEEPuBlxcOsKH7rc3FTd2yJIH/9y29q65SWxpABeCnPyZB4uGw\ndgw2RHlKTBty1wPq3PGU5G8+DBW63ip28/A1O8UpFNUPQWkaeip9se2Mfal2\nupXRVAbJTat7mMkitbqX7cWEv6Yce22zOKveDsFed5DsWXFMg5cswNmGAxii\ngU8N9gy8PNx5lmlJKh4Z8Dk4oGYfAOvOY1ukEFMFfj3tkpEAgDouPg2tP/sG\n2Es+\r\n=8Suz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWzBH2WIRwDlpgT/Vx5AqWNFjZhdiz3TLrmrHzshppagIhAOjI7zhbi/RT3NgsTVIoErIGyXZVyY9754Pov6U+T4XB"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_1.6.0_1575922983193_0.47914637360441836"},"_hasShrinkwrap":false},"2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43":{"name":"valid-directory","version":"2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.1.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.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","jsdoc":"^3.6.4","kava":"^5.1.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.2.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"50473e9e0bd1895b7107259baee824476d8d0f43","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-H8s7hiY56G0iEpZ8C71Wtfbl+wlT4SRwSoYjLIyXfp80ng+txfZVVzdBj9XcEp4NP2EITWRsxsRdeW/eCqxzCw==","shasum":"4d88207134a86aec9d648145a681b17aaecd2fb3","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43.tgz","fileCount":7,"unpackedSize":20553,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexeAWCRA9TVsSAnZWagAA/EAP/iabDv0WrNNz0u61qx4D\nazZ9Vg0RjFfuA1sGdVAi4yfq8RTIDtR+vpQM644NEAaAcXgnLo95D28FcxWr\n92v/M1DGjXj/b9ZZ1mydUXUp0uynxEGSFQUPACIvxmmVfgwqPCCJ3DxDo5wO\nBIO40qJMAUAXDVp8HgKZ0GiQ1p7cJKdTZXll0Bx6h+FFxg8XnSudIloXpk5x\nCbqRgEcoY8uudVISz7WtTY8poIesblaSFIRfL12pA9wWPYFRMki8MO6EQ3mM\neKm6ntaOQD3Co6zL7mtEoWAGkxJd0FSlJBsHyYV4kmmmWW7L7BjpecQggEOg\nrbnS9mwl+9FP/R7RCbuGp2c/hxYYNqo1XRbWMo9eHyn/DZRW7Kim2lJY8JNU\nArUcTn3HTWeWF0Laq72WXLKetL52qAIO+C/rNkHH+YDf7jUmr4CAcnPe4sRb\n3yvCMy7iOA/UJ2p+Be54FJjceTswx2jKjsaPxehmvnPTObPhQWYvq2dt2bqX\nbmQHHkpCm6Z9OPCqF5zlAktW9rWHzfVcUExF+Df1SYxRQG9IP9lYgfL3q3vi\nIi3HfUsPlpIUV2o7uy+tYVyelqluisMivNyaMQoH9aqsEXeiy0maFlBmYppc\nMPWt+JFdM0fr24Wre0RyIUKbqniykemiVwabNCbpukdCgbIyPhTbhTGdYi0e\nHfYV\r\n=af3t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDUiRlUHEFqExRxJvncxQ0aEY6c2q9UWd1mah0beZWemAiEAtzw/rDaEu0JYNxfRz5VTlogHfjVbw0lBgPZ8mcIFZn8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43_1590026261657_0.6899092418281481"},"_hasShrinkwrap":false},"2.0.0":{"name":"valid-directory","version":"2.0.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.1.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.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","jsdoc":"^3.6.4","kava":"^5.1.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.2.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"50473e9e0bd1895b7107259baee824476d8d0f43","_id":"valid-directory@2.0.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ITFi6FgfXPRjyXRq5/EyuuUPNFhcf6G0JAOE7y1BMXjHoq1WrB0zFQTvYlPFmpqblPsC/kGQJr1DDFcqug+VtQ==","shasum":"82e3a940a7b4ad126c4a635c16f23c8ac60d03b7","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.0.0.tgz","fileCount":7,"unpackedSize":20496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexeBWCRA9TVsSAnZWagAA9j8QAIln1xXMI3N+7hECYcuc\nO0fZOXfxb+lDxVbQLScc0RoFBg7NUXRqBxtqdLiEyNqIDbBVzHVdNNUidbxF\n4FW8gOzC/eFHdJs7IiW6dB5WmSa/kwREUKrrB39M+wxQSjfJ/PbrSe4stnIL\nKCb+7fEqqJcZRRAotivLcOJvuadtQY4CFdmWkr/tLIMwaNoeK3lNM9pbp+oN\n2VDArRW4xbsMLh5XkohUzl49BxxuTQJIO8FCV5VhYCPlBxHgoo0oQox+korJ\n8mrUUVPdSQdsrLIIj7KfjCGFYt28cDiyH8+ZNy8XkQssxtnKh6BvR61wxngp\nuVtBE3rGsfk6wKUhwDaTl28F+pZX0OWkgSqVr5yDjej+b/zIShquRAxnxCH+\nDQ58zLxxGgSk5exaKK7B2Pk06NWoGnswewCQ6TBTYeM37z9MEB8dBC/0F/um\noFbvWO/XLSkEj+7FEaFaIVg4jVev8wij0TVYBVoY4FIHKqusLM88xEZRBCwV\n9eHWlS5Ka49tGtOgfqEuWjQvC2Yn3MTKr4E3vh3TfaqgajPvxpmo/66Mhw2g\nERl/hnDD4/ACluhEF5JetwUGdRQ4AEkqRYirTORlzR7op9TUjysNVie2uTf6\nYYWcYIDuOsbHETl6QjRUIRcKaJ9/WrFgjMAO4Il9yILXqruB2tDKm5IXrLzf\n5aaI\r\n=p4p3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPb8Eeltrm7h00B4mUV34Ou41J6qpoQR82vmJmWeATcAIhAKAE8H2U7HysAPcp0oIBOEkYB7girQ9ZE1WTuhV29hxr"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.0.0_1590026326134_0.25084464189727185"},"_hasShrinkwrap":false},"2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb":{"name":"valid-directory","version":"2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.2.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.2.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.3.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"60c545049e6be9a14645bf14e731221f082947eb","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-XA5PQceYwmy0DR1QXV6+7ALCC5Y43CRhA51yAFr2yPescBvq+hs8sX3RkufT23oB3OWQjwFSmRUqLgKjPjfHbw==","shasum":"fc5d4e6cfb40dbbad363ee17dd2d02302d8536ca","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb.tgz","fileCount":7,"unpackedSize":20746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexnyyCRA9TVsSAnZWagAAa8YP/2zYDMAH9imuY8TzFTZK\nNLCUt/enZ8LPPal6q9lRFz3CZDWtKwJop24yxsqzGV2MmGUeDhjx6ulrrpw2\nXoo72M/xGunuGkqrAOD0bJemKzwugEHnK9nyDolZTF5MTroH39Oc4LjjIXPg\n6gPI4zuMpnSaXocvG5DLOmTFPejz+nSnSPUQkV7wwknowsPG8IHg6wxag6GB\nicGAtpfxacJdZPkVNcg47iit1rmpAsy3KJc7axyVEuCaoXI3PzBE8ICyXX+4\n+/lcOTwDGAPIEYRsHHejbzy0Ey4i6C2uMQIpU+fO2SzLrDSGZUeprs5o8ndf\n3rfBY4DRlnC5W9gzSDWCaT0KN4Ir0WT1+5vcQxoOLeEl6/IFxCaC3iYFnOP7\nP2nWKgCEZ9IBaYBf9z9XzSl4u4IFjlPHCNTr5fEqOdXdAYOj5V6nXiyjIazk\nuWXblldndrMjren0/lRMvRRbEL1kftSzrTDQ3lM+4y/gK97+h78j4sj7eB5p\nyCHAZAn0YKdIeIBBuv3jEnpz4c0lzbYweXICRRFhoZ4ZI5l/rFi39sB//VWu\nnrlCbWSPTbiRJFIP7Bmw7dMgQI9PzZ1+e3u3aWV3XGx0hc9I3f1GsQXcaApO\nDhHTC3XCc7dEZsg9/rwG2gL8igf+f8qjOU1zlKL2Abqq5CJSfrCgI6lYglQl\n/5+5\r\n=kaWQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAGz3EAoKpVKUV5SXMk+dTgdAuM6N7jZPC/AO/OahAIAiEAmqMrPGikMQTWQMBpYolfmzSLqSjlHbOnlChgOp7q39g="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb_1590066354076_0.9107324235149696"},"_hasShrinkwrap":false},"2.1.0":{"name":"valid-directory","version":"2.1.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.2.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.2.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.3.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"60c545049e6be9a14645bf14e731221f082947eb","_id":"valid-directory@2.1.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-qMctRz8GeDnE/ueyE77uDKNE5T/4Rgk3AYwfvrPEW2q3kBnh25blZ8kuwIHpktUX4JESQlPKKV/pwNHgyGbRjg==","shasum":"ce6accfa782f1cbdf0477409f09c4aac7f44f0a0","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.1.0.tgz","fileCount":7,"unpackedSize":20689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexnzxCRA9TVsSAnZWagAAcKMP/iqidHzVkfat7URyHNha\nAYaZDufbeP67oVaQMMU1VqpoOTaeZjYe0wR6G+i+XPCQnv6GJQ7/3u08vptt\nAlO0mjcPIheTY0VtBVc72lHwWadEeHVMJOuRc2NDln2NI3C1sLz3ckzydfMT\ngBKwLA5AacaFyA4KavtZiOZhxozGMiREPSBg0/ZYSdzSxMuH03W+8njXuA27\nmm927OWKSgNmsIAGBREdFe/AUsQrKSktWRaL47PB/w72VTJSJ8PUM+PJKo50\nSf6zK5kqsXxN31FAQURTS7lEuB2ZBv04hQlnPOjfD8qoXsnDG8b5jA5GpXE6\nfq0ot4AQcTjHO+JbiuzI3RujzlqfhWXhgOVoTn9183P6ty9yq7Wjdu8nONE0\nTpgL3VxkE9HK0q5mjm9EgduvOIuoegVEsCXOacy6WfQR/S9VGt8b+BtYmSlB\nONHFPwhLcU7/qToRUTQrgftsl5skru4+Sq6xhgvff8mPXFOlWN3nRZsWJTIY\nstHA0KYRC+biMGrdawzkjOIDzjC/O9s8ujKyuqoohgkwWl9QCBxaOP2rH2IV\nJS51+1tpQ39CUzPhA5orwJKOZy5BlvV0yrkmrVWCSQUlboTKDstw7PNWXKmk\nmVMLGFxdjhrbCKDMXtmHggBTp5LXSHrL1jdIVDjmw/6Ani3ogZyCeHZ0QzQ0\nobBP\r\n=P6c5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWRjKClwngC5yGlV/gIo/CvEfjXPTmmU2rIHcUsgybCAiBBLORWe2kR4r1EuABNMCLLBubdvHlE2hTeZOpqFky+sg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.1.0_1590066416690_0.7136258390376107"},"_hasShrinkwrap":false},"2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d":{"name":"valid-directory","version":"2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.3.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.3.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.4.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1bef93020f90b100a8af3bfb80e832d8a546369d","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-cov9xKFsh9eFQiQcO3GQiEEKk0vQmLqckel1yQ60pmOr4g8ccpd5vUjs/OJhCH6GR8MKrKMjb/U3dRlVyqgsog==","shasum":"737f93c871795151d48d8f2f2a3bd788ae5bfb13","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d.tgz","fileCount":7,"unpackedSize":20939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexsAsCRA9TVsSAnZWagAAxgcP/16NnuLFovZIqio++R1Z\n7aWNMsfG6kDFYasODlYZ4SfrKLaJju9jnvhOh4VQ7pQSPA3NpZSxEqrKSTdN\ntolSqROu20A4iZqVd5NyRtawn2dGvlV0YNczlwB/KKmht650M7CPo5WlJ8HM\ngOTcAu4ujwJUDfSsbva+yL5Npv5apG9nRdnuNeTvdstmlxFuXNYqdqg+QcyD\n8saMfUYzYhe2XlKMS2YkB35byKaB6EkApDe5Cd+xx/NYJD5rF7gxOrFchSc2\nPx57yK2eEi2T4yZtVGaIybYPqvuukXZZb4p+rJcx3uBi1SgBt9TB+r9NUq0X\nM8ESX9pMR0KMOYBubPFxrBGDcKbDhfOpqBhejLRaGV24vFxvgzFBXjGO2Twp\nk5roZZOntm1Ho4dfISxJGL5MzderfMeqRLuII5YLOGp64FpXrt80KtcFRvK8\nZsqTLivqg5MLdx9FDvyg8hbCIHc52T3HS7a/VYbmRpFXRKjhDDhUczc5PPes\nC87fDqTio9orqjpeRPfkqFzieZikMg8xyHlIfQg1/LjhUE50KB2NqSf8Cdt7\n465PSchEEhaq7sw00atiPZxDTIH/TJPjN/kme5IOk8TTgBuQKHC49Bbj9JKz\n24uxX4ycHgknUJWs3RCguyS8+l3Z6syMCMoELdIEaos2yQLBwXmnEj2wA4pA\n7P43\r\n=TBtQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYc2WNlR6jKDfBZvx/iepQ4PxyC3XC0l3ukTPhB/lPEAiEAkGBCFVZAWju/xpBXaUjIaezhMPtWQ8g2S3+bplosKNo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d_1590083627702_0.7162636006656065"},"_hasShrinkwrap":false},"2.2.0":{"name":"valid-directory","version":"2.2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.3.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.3.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.4.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"1bef93020f90b100a8af3bfb80e832d8a546369d","_id":"valid-directory@2.2.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-0QefDAvsNVS1LCsXeNETET/0b5a0dDqYy7qpvtwUWizAxVWuDo+Kp7Czo1HL/W7Nm6X/lbdkM/deoi02uOcn5Q==","shasum":"add5e0659480daf795b1d0c7892cff2bb53a83bd","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.2.0.tgz","fileCount":7,"unpackedSize":20882,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexsBmCRA9TVsSAnZWagAACVAP/jNwwwpRDoRQHodWY1Rj\noBta/vv75soD2N7bWDhfzftbXbehG2PfOHqsxtOmr5jhlOhqhGi2OhwD6FfI\n145buiIy6rDVR9lO2REjpNlXXO6sIm1O6a2Ni6BjNwn/zc+RxL2noEHcNibb\nyvEX6SrxyQCwFaEcQL1nk0RuitzLWMSrVoSr0GskARSeANVRUQfZ1wYkl3A4\nOqqiebPWkYHXPr4R+D3BHemWpx+H9Ab7rlm6m5C5zGP3ZPKB+CE3CKaZ1saJ\nfPoPbIWN2sbsEtggOLmEXAMrPmkbV7wbHq4ScYzlurxBlrjNK07O66VtHbtl\n6YqYgK2RbFN7CzHKb1PgBBwRsaQv7IpWVRzZFKqa/dbFXlDlBCceFkS4bJdg\n00sOknb2+X7lQ42V0l2qf0A4ZM8JtIrJheD+nhD7B8z5y5745/huZtJncdTK\nqQM23FxvhGDVaYHpaheiwCa7fDs01O1vcBR9dAs8mrqewGRvJdsJC++B4EzK\na7uU/CF/63RMYsfaRattWpnHiPkaipKpH3rYrBhBAov6smMLlyLoRwCIfQhT\ngppc7x1OZq6wZWlPGkbOLPQ0mPzNIZTkKbIvA8YBebAZ+H6Ecx93YCEtH19c\nxPe2dr1ZejbySU/Mv2EI6V+p8FxkDyKp3NBgEReXQlvxLc9qEoS99dOnt2R2\njvut\r\n=B6mH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG/gs73bZcq4QELgz6Khcjad2J738+upIyfm5ivT0oewAiBRVxZuMDIodJaDUH/IUDz/2irlTgtZAvV+ZmaQTDgV2A=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.2.0_1590083685588_0.16184474595609677"},"_hasShrinkwrap":false},"2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615":{"name":"valid-directory","version":"2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.4.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.4.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.6.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"a60d7f742588d10eeb9e29454a248c6a7bfa7615","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-zk69aJiKQ5elBZByT41hA23enUmrrZvMln+0rHAn5L9dl5oJDO8Qbuj8mhb73f+1PVDO4SYR4PQKQhGDAU39LA==","shasum":"d45e4d3e92064d1a1673a053bd389bfb3e48c2f6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615.tgz","fileCount":7,"unpackedSize":21133,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4MKNCRA9TVsSAnZWagAAnuQQAIE0dbOsL/NhqzK8JFDb\ngaGLss5+KmbVN8VSx9QvrfS7hVapn2siJ+FzIOsVfJoI5eTBKXVNxVmRstB4\ns4N3pP3v7vmtZ7QvVBSiY6FeOqQQew07yhhzv6yVdw/K4fICvCJ2n3oyOkzc\nbYghWPZNWYiJoQY7ycwoY0c1Rpql2OB5npPBI9hnrmBkIennM8eJ0DgKDdS8\nSxSZAchpKSNGjzhv8CJfhmV7R1sV6Gzt2hSJ3B8vFpSj/kY6PcuDL+TgL3wV\nTC32YtMczWl61bz0ugtBwO6BIRya05ab7VTeyOBDA0Ef03/CkNBKP31kqE7j\nPfGuQnK8oGLLyDxeRZ7uzCxVDyHvZhpYQ3iVUgwXniB7m5kSQX40s0V3YdxI\nQyw6/EgzDCbYmO0roJCXy/87Ti+pGsjfKAJ9wjvwaIBOjZ6XkxQNua/bT/uO\nNOJMwHQyQR3PGxnERtkXXY7wsD3qeZMa+44ZIfyerceRSPYdwf5xpMGCnCWH\nS3coVS8HvYGAIZb2zEks7BCkt9Sr3IXsWNWWP1Mtt12Nvux85b9wGjQdM3wT\nKLX/HUnI4NhO+ScrqD413VanT/fR5TT2wTpnWnv9Gzxkdu1ux1Ll8daBSHXo\nEB77WhzJVClZo9JbsctpJYI9hbooG3D3ZaR6H70VI5wSoflZd2OAmU7uzJAc\ndQTT\r\n=sZyU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDr0lEtGQbUj0jXu9cNPsZe6TRhpLp5kRj7447fDjpR7AIgRlheBYNFMeTCxUeOeFVVe9NFZkD4QkkSKJuDAS4Lqfo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615_1591788173391_0.6505115845658258"},"_hasShrinkwrap":false},"2.3.0":{"name":"valid-directory","version":"2.3.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.4.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.4.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.6.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"a60d7f742588d10eeb9e29454a248c6a7bfa7615","_id":"valid-directory@2.3.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-F19QLPvHR6oPhiKpyBHzIynM0OxxbHKJqr7ekngwMmFc0jENrE7Riddmdp/dfv8Ajl8y9vIWgFSosKZ3DgBPwQ==","shasum":"9c2cb3e95d304109825c0b68d99f5a5f56178752","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.3.0.tgz","fileCount":7,"unpackedSize":21076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4MLSCRA9TVsSAnZWagAArHMQAIXEXo1+DJQZRhTNW9Fc\nlWEdD0d8u5NOdR7gXotJNbsNNQmwSbFRPYVsdKzbhwn1OoLlm/7P4dtl8w27\nDOd75skkegknUA2/zYrlSvT5Cz8g/eGh7wUAIrqoOn+1ulfJCwcusACrWY+j\nvxNeQ3mIpg/H3IwsKGW5n0QCTZjUfkW2zRDzKTqN6mSSQ4creyHmoeGmHBZm\n7l4O7n3fYApV8WpAdU02tJkMlkJX7j3ir+lFQUtSEupKtGWM/yNpXGKtH0Jd\nmtW42/flpohAiyCD1VoMidokRijOeMVcDDgIlhwRlA6Nan5tAsjTRxJjyaqQ\nf7PliDAIvt+S3ixTlGKHAtYIOYGahRtD9FjdJ/KiF2FbyrHhdGb5ISpM4Hwv\nNdTus8qVcUTHitE/gRrxpxRpW7yXhw3ugWFxUXjRbY7tNtpAPwNix3zz/kzU\nLFLeXFXpZFCHBo00AzwXLYUVxjiYDxN/uEnpqXdxQlIZ9oH3E0Bg1+bYRQfH\nL73fx9vE55UaIrfmFvZK8FJkbHIBoDoICKY5FgjSwrcTna9Og+3GPNocIM5G\nC/Pkf74yYYCjoCs7almg+IUkoXVHvoEryQEvLUtfepnNPmqfQXOvfDAyha+j\nYp4AFaA5Db0hITMEh5i0iyBzGYCWavvfAo+TYZ4HzswV9bHADegh3MsNgG5l\nTkeG\r\n=vilL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs9JCcVUWjmrkw55O5hyhw9xQPRGCFvfb+QLgh2mkH7QIgORUq3wpeXKyx5lD0EEMnOQ5xFxHqA1WUQfMGce38pdo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.3.0_1591788242303_0.5891443036430051"},"_hasShrinkwrap":false},"2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b":{"name":"valid-directory","version":"2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.5.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.5.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.7.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fab6e249e8aba5718efb3d770addf5bf3bdfb44b","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-zwkG1x6h4ZKtoYfxkKFMGy5jr2YPUsreZuLI2+EkB7757p66Xhe9sZY4qA0g0zgWIq+AdEdgt3Ewke45piuaQQ==","shasum":"1b68329446cfdb901300cf9557e10fb6c5d4bcae","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b.tgz","fileCount":7,"unpackedSize":21327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4QCvCRA9TVsSAnZWagAA89QQAIIGxNkAWU8NcHAd6Oho\nZIdTmEdZgDJJvVh1znsePCedfvxBzoM7alj7nWwT8bgLh69fcjW6iIc+6Ra5\nZgHgnMz/zDrfDpybiCr7kNYueFi/L9/VtuQZDHHwWdQXteUZ5gbjPYVfvOSP\nFpPAc3bnUWMPHTBrNO78VxIvGwXANAw0zL8hzHHy+K02lp+XOvI2zvPqR75R\nOYxJrvL6U7shcd9Z4fVVdFteG/MwgCOLjlVJyEEssWqoVjioJ6tCd4Z75D4r\nmulZJUvKUlHuq8qdHxlmEEzg/UV8afB37fWOQ8mZX+r/rDXgLi46K49vjVlV\nXy0WZ5mHt2u81bYyqyiAHgjhfwmwQupMt14TFUas8vwxQSdJkZaEpAs4ZmtZ\nvpNPWaaiG4DXHDkwJN8WpilyXCjJ0noDIizCKkj1zerPo+MsZX1nh9CQ5GNC\nino0kFFT22VpjrnD/7UIvocCsN6pG1QH6LLiV6bUEE0DwjtvBCsICbG7nBjM\n2XJtHDht1dYi5GIFmBiFLJ0vML9xhp4gEmctEoz8cO2InGpItZifWsgZVH78\nPIMjw4gkUcpLmfAgrI5CsvsECMcQfJfRRa0EmoWSpW4ktvpc0tURuDFtCrFw\nRdZhZkQ9TTZghT7GqTpet8cxsXZ3waD43553NmyRPEWXxU7oibpKe6Ojdv+O\nGARJ\r\n=GnHH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9Y3r2ys1uLdqXClxj+Qcqg1rOioJyUYF+FgXZ9JJEdAIgXteqcqcyn1nLxCvAwjj2VhCR3gIuBTow2xIkNKJendQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b_1591804078445_0.8205027142021866"},"_hasShrinkwrap":false},"2.4.0":{"name":"valid-directory","version":"2.4.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.5.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.5.0","minami":"^1.2.3","prettier":"^2.0.5","projectz":"^2.7.0","surge":"^0.21.3"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md --template ./node_modules/minami ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fab6e249e8aba5718efb3d770addf5bf3bdfb44b","_id":"valid-directory@2.4.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-RElgG1lVE5VSOZRR5QuAZHBg397XE7s28FYBag6Py5YTqA691nE1blYHXjYzmncD6rmwqjTku9ZrIZHBL0jzow==","shasum":"d4ab14449790a87a5c0d120d17fbe5cf082624aa","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.4.0.tgz","fileCount":7,"unpackedSize":21270,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4QDtCRA9TVsSAnZWagAAdQQP/ipPUsyo5mWLkRR94umY\nFVUT5dpCHYY1WOJYxK+FDTNLGJNMI3sL0Kg2nXBuYBe4ghtSfwYDSXbQSiuG\nNb54uyQ5IdweYAJxnr9OY0ekCy+ovGwk7/fnxVuFh3ZIOe0rej6xIcQVxgQS\n75cB9cns6+QtkJ88dMjB7XRmQ7r4z81AJvs345DjbwcdAe3zXeH0FxaqJxux\n7VqXrHrZxv7WJSyiZA50IXDi6KuZY+34nrfdZIHyJmQ03swUxft49IfjtqNq\nnj1iD/5pFw3Po9SOCCrd6Wv7C8lPsakUt4E48JStQOxIzq7esLsYHDvsFU6E\nsYHly+SC9LDjgktMssQG6ZgZm0mV5EEWQIbDtIJksawDiNTFDCL7cI5DM/Vq\nxZBRetXtK8LgMjV3GGeB9gSQbeKN9+Yl1LlG/2R2BvbEjUJyBq8RLo8QEzek\n8c2BS+kJK5uxVG6aEX9oAhVDiipL4R+invzR/CxqNt8h5dnM/ff+uL/gjM8o\nlRlYwg2tL1XF7JSMeYdupFE8RY+tlWtugmb+B9GvTu1HhYJBuTAX9K1+KXHr\nGLXjYQiE+LTLm0wxBVhWgbnVdmGOxUefBVVIOuWbclEjho+oStv2ujd007/u\nAAAenie9jfln72ijeTvtpane8V4YwohyB9rskRInbOLOSuxgAlXqnVrvxmh9\nVQRN\r\n=abSF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC83oZv+rzvZy3kHUpdw3sOc86AhwO8yiJwp2JQZQOl+wIhAOpLKvAVRJ+mWZ5ZNlX6qKGTFrDEhvv5kaS3JhVpF2dE"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.4.0_1591804140809_0.18904697473861432"},"_hasShrinkwrap":false},"2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec":{"name":"valid-directory","version":"2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.5.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","surge":"^0.21.3"},"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:docs && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"yarn run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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:eslint && yarn 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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"010b61b24f32a0073f9421626be386cbc45a92ec","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-2E4n9ALJK3HVfoLzxvkDhPWIQJEQ7WmZpD68KiMe0TPoMtvAFNBqXXJx+9XiWLe+s85J1oPKnjq86Q85FdrJTQ==","shasum":"dbcee5f7b62d2281afd76d81164acf6ccb904b7b","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec.tgz","fileCount":6,"unpackedSize":21244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7yU2CRA9TVsSAnZWagAAiNIP+QHgdrnhoRghE6IJtCW3\nu2JNl3u6KjAR2HyXx1W3qujUtq50maUX82pC0McVQGIaxA3DK+Ufuj+1eTs/\nZLzXOGEKhzjznwAorF1Loxm0nO11ATPpvDFqPKRcUcjElwN3aVWFg8RSM6KS\n5xil4KF/NTewMZS5B7BYHZd56MIk+AoySfgJZ48N9jXDUVuI4Okf+Kwylkvw\n9pt0Y9ZbM1C4FPvtBk3QZ2OwE9DuY+/lEdjWCAoiIsOd7LdmWe2z2BAgUzY8\ndKCFNjclGiSz4jkJQLQUl937TlCDYgH99Tl95M9zc72AqYPKIKfLrNH2TOsG\n5LcTZJNZuuMT4vHntM7upQjb9RrCEgu4XQ0XoaS02ktgQNI+srr8+oJKcmiz\nEEWCYTzLJBfVgKR8ZhHNlpyeQNt5RzfSrU6NzCHHTQNoEtb7Mn8sxJxCeQ3R\nRu3i1nus/+McMc9NOI9iP1bhforjvLo5tI6eMF3JZvn8t150tJ6dqKh1owqE\npFcWFlmQsfjd1JkxxDNg96FzhAF2MfaZO+52mB6Fm2wQTIhBz9UEz6Fk+pDD\nJnXtdsOoPTjbWMx1v4y+mSdK67S9xejovv3hRSQfWAZceReqV9NvnqLW6XJ9\nB/NE/ra/jJncSyXz2X5QKnthX2a9FZuPycsTyqJaf4w6mzEz75KvgxhRFEde\nxQQP\r\n=u7/+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9nHcSJ/nNrw7+P6ZgB7JpH3FqPdHxIPy3xPUgGPpLGQIhAI5RM6qzjgoGthM3JQ9T5XSzvzEiSXo5u7ZRTH5HVWoh"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec_1592730934444_0.15036550269812143"},"_hasShrinkwrap":false},"2.5.0":{"name":"valid-directory","version":"2.5.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.5.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","surge":"^0.21.3"},"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:docs && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"yarn run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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:eslint && yarn 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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"010b61b24f32a0073f9421626be386cbc45a92ec","_id":"valid-directory@2.5.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-j/cLzLu/7FHC1UQwExHfvqgh72j+a9goxxAOz07O1awWoMXiJymqVHJ4K7GVeeNhfZKwOaa548OnYgOVOeLMWw==","shasum":"239cf39e5c05403d8b6fbd23aa45dc20c242035c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.5.0.tgz","fileCount":6,"unpackedSize":21187,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7yVyCRA9TVsSAnZWagAA9VoP/28Na4+edc23W7iw4OB4\nIVJ2XX7ScHoszf53h5xIXDVfWXJ9GYPrBU6wfrjeM4YtGpjLThOncCZ7iSI3\nTG430s86tDi/1ggOGglp4ulMDHgmPQFM4Vb45x7KojpVh7OEYUWCmIe+jfJc\n0wa2MIDhYEV4RngYG2Fid/SRmcpea9JHxIj2tA1SeqYO3eq7YygqiI0MYQPS\nq78i732v2BftYuA17uPEyNGjWZIeJ1YFU/h3MO9XCN5K3xsCFz8LXTRolWyG\ncGeTdqtTvOE6BmqjOBHEjXmcRMR2eBACyEK3xDFYQhPoutHFA0f14QwVLS0J\n+eTD32iNz8IApXRmB+FMJsHO8M/ZEKjo+MzUHkjm+ZXbnR6D5y6Xdn3xaS05\nfXodN/YAwhLXWFBEb3Tdte/Q5SFULtkIHWNuoVOsz/6AEL989nV4Zhh5k9q4\nljhMnda/xxdG4e4WeRCCUh75T0bdgUYMMyVhlPzOCZAg+MyIWDugihKgO6b6\nt/OBnfAcjaLhbFubcub1NuxpE/aaMCT5COZASc0Pl9eL5m914U6BFdC2trl+\nkUUxVEGh36SCWc6owN55w8Iw9kvEtzw+BepI2SI4m98WtyOGwF36m+0nOwyp\niTdOHMw+SYYljN8Yi2E1lg9KbUd+ezlBNXUM2xHaxPy3eub8VhXW67XtQKDO\nbQ08\r\n=zjmb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFMtyecqEWaAJcv+hTYeZ66v/AZBGnWKKdm5ePlw/ma6AiA2B0NXXoHtP2LW6oPvECh3EnqIO+qOwCzvfRczLo7daQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.5.0_1592730993954_0.08995108063351309"},"_hasShrinkwrap":false},"2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591":{"name":"valid-directory","version":"2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.9.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","surge":"^0.21.3"},"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:docs && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"yarn run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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:eslint && yarn 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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"00bb8ebe1dbd425cb9cd36290ed4a65494ae4591","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-BRmMWUXtVVxpuSiUcnO5pOeJctBDk0ihmZmhU9ZWq20GMEsoA8TY8bW7PMBgT/isSmUjL43p6UJiqYa32+YKdA==","shasum":"ca70d396c9142f4b3ca744cda57296217039a915","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591.tgz","fileCount":6,"unpackedSize":21444,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DKQCRA9TVsSAnZWagAAB2IQAIM01Dn0+/Rd/Ao0YePG\n5XWGUS0BfgmZNgQuC8QI5jxLYPNs7YHf51om4EHDzG3pUjFjpEWprlFCXHuC\n04wmR/iIAIBZjLqlbjCps+994sVjU1Wq6SDXIrv3d9sKH3qZd1vAGsfH1a3k\nDQXlPyDPSZJV3iYvre5Acwst54CA+M3H2nxotCHb7MkM6dmiJS1kwjipTimc\ndf7jOXXY4yGfMJV5A5YmKVigdtvEE3ViN7GP1yrcBeriih/axf33g3AuZFrZ\n4etgMsrOZEdsT2flJJYhyJs6Id05FmQQ9hqk8vbXAdRuiuPkyXTras67CGeT\n9ALSEcyLHhjlno42iEg29jKmS8w6zyKpcmMvjC6VywKCIH+GUNe/rdjT024d\nLmpKrb94WJiLHVo7uh/EnZDVF4nvvYrBxAFfwxbxirY/ngIOZMb41lQxozO+\nFMm0jfRubxcysEDdmuLx9nj1cvfk87IAeKzRq3VBIsR0Aff4h+UNNSvMLfZX\n3w+Ovt7KlGjwIxoOHA18BSxmdtLm0ydDAn/37g+dFqi95dhpgkKRQo6cOBC7\nkTVYXeyaT9MrdZLn6uC+E6OQOLGSFCJkmpD4WOXWV9ZShZb/aeL+d3x9JM1a\naIQIoph+cLoRnkkhUctnBND/BTOqEEAgb+9HVsEBuI1rt4pvpfDcNLhsBOZT\n00P9\r\n=dQae\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7N/yy4sXrIGkgOVOwoeIuHnbY4Xn/HV2tIYMsiZ6CvQIhAInY+f4NLVwGMu875l/zYTyzku0LHxUOKBQiUeI8KVs1"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591_1593062031879_0.9732166060848972"},"_hasShrinkwrap":false},"2.6.0":{"name":"valid-directory","version":"2.6.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.9.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","surge":"^0.21.3"},"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:docs && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"yarn run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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:eslint && yarn 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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"00bb8ebe1dbd425cb9cd36290ed4a65494ae4591","_id":"valid-directory@2.6.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-jOoTvijQoF5oGbGgmh5hFsX4mCqoRWhv4oBTeK5MX8gugM8BOfx8BqPE8iG/wf4go0wHMkmRTRpBus75ca6v1w==","shasum":"1c268304a72adc707d3d01e4e8f55fe4a9906bc1","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.6.0.tgz","fileCount":6,"unpackedSize":21387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DLQCRA9TVsSAnZWagAABXMP/0TKySPfNfWw94e8NgcZ\nKnR3sbhJYECXh9ZDYrQzAjK8EZVcRNR5jtALSbMADvPxmLwVNsFU4sOKmKHs\nbA2E7WIZZQF2wqXE2KPbLFR5f3W2DQj0UtOKFFXyytDDhOanZEo/UMVcQYn2\nwkDvW5d57k6BqJpNYrsakcTJqMLXM8dLt0jyNaP18JIXnlKOVE7QVvyn98I5\nSfRIR5B/N+inPYje2ZDrrEjRf2S7rRDnt4L8NR83htGh6BBbTtzIRQ7MYACm\nv0zDrwv+AlmKmloXs1Xe3ysajoVPc1QZ9maO5nrXz7RXRh8Ztwiks8SciKKL\nQqOEPwfOzup+FskFtkcbgVBBxeV92XSPWbdF3ZqKh9YcbP7K48fXF6/xScI7\nG3B6ok4CrfEFP2j3WZoOPytnsIpIe95d+MY2mfv5XOUManLsySRR2JGssXSN\nImJ5UOHjKKoyR4FgBN8pWxoR+uiOGJdOsNxNOwYqqAx+edy0evqLi4sX8cDH\nQYoGn72LxhPjC86Tf22DLv4Kl2Xlh5P3F8Rt9CFOcjuokbhP7kLYwEUfSHS4\nvJYmUCBh/eu+BgciFUOHvAxsl74zxd6soNVYJ3b2QxEQFQ9EpkgLOpBsMVQG\nqV61kvc1VoLpRTw9+287Rfmq6NNZHhhJ22hQX0h6uT7MeChn3HbS/O1O9ulm\nURFd\r\n=49Sv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC8L2zCe6v3s0S4UsrNITtqFaAnhcyvcWOZztUOc4VsBAiEA4rnox6FeR52R7Iu6ziyhS9qsZqo1GuoVm6Iiylshj5Q="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.6.0_1593062096130_0.0018584306667575046"},"_hasShrinkwrap":false},"2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955":{"name":"valid-directory","version":"2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"source/bin.js"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.9.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","surge":"^0.21.3"},"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:docs && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"yarn run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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:eslint && yarn 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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0fb732390c266567e6c010c72d964d444fcfb955","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Z69pluaoQgbZoTvAeByiWzfIv7y2Pst9/yjLxx/Ya//TI3DXZzY8+bPiaupoG+r/MqE16SdnJtNYZzayxXJLAQ==","shasum":"18d705563321b8d07cadc48eec324c98a7f0e037","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955.tgz","fileCount":6,"unpackedSize":21444,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/pPHCRA9TVsSAnZWagAAL2gP/0mTtNF/BL+hTl9Q61V3\n9H5cWVtr/od/A3WNevfap9GNSQzF5pmqDhjdITFIb5ucvwU78/FdKzL7VpTK\nW7I+bRsszDBVnynkE522c1M9KxRLSFlseJ6gkfqM1UWa9ZzrqRz3UMLJ9O19\nmE+gO86GBqEwm5MmzHH8lKHUZUoVJxBU100HpUS53lQxd9HfCvCRwAVvyEt/\nQp+AaJq71WQRanQtvvsLW6wMMOxvqUwqzRWVTwFGOYupAmKyF1RSLH0Q5fDh\nxs/zAILBQgYY84A9bpTqMBW0LUC2lW/iBfx+WCloMnQ1c+5PMJ/ZqsKuFJ+X\nkcsp9OVFGSBSTjNPUWxqqttSGUyeW1XFgmneuV7yKSCjJk2XIJm3E0RxDyhB\nCN/StrKtRDLZvFC43DNmHKfueavmPRwlmYtIUW/op9KR8wtCR3IiHMI9WaB8\ndOKylgyQwtisn10aYL11s3nT2N8x8OAI/70IgqTfdxJ18h6x0FolATSp87Gq\nj2HOzv3oS9AGXK8FgCiYKSMyQFnxmeWHS4F3phU0sMFDMaMK8RjBN/rK6CPA\nrPdFnURn6nGYw49BW0wrcUmGwvat5tDxgA3ZKNIfTBYZfLjPJrwH1vgbknsn\n1oY+tm2ddCpTPmA64GJHCzoX06r/bxsdeL993nQC9meA8WeG0eG/2y77VtM6\nFVG6\r\n=PLHs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj6ggR2VCh76Ytj/EN/KS7g+Ksm+B+DTJK0ECRw3s3AwIhAPal+FTJFpabLbzG4K6raiJtOwq0sbKwrsolH1Leo5Zc"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955_1593742278739_0.4198126353563014"},"_hasShrinkwrap":false},"2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46":{"name":"valid-directory","version":"2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.cjs"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.10.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","surge":"^0.21.6"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"40b50c8f531fe3623fd2740ac4664e5823ac4f46","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-PAhOUQJYy1hb5IGtyvn8jVZvD/39YuSbYZ+6LhfIgrORBoSp1a9sFjylciACTcK/gSsdk6XIYa6DsR9GcShWbQ==","shasum":"7896da2134e0ccdb6eb113b685eacae3a96fc56b","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46.tgz","fileCount":7,"unpackedSize":21757,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLCHCRA9TVsSAnZWagAAn44P/i1h46GhR5kIMI21qsSe\nwbbm+JNRMidzcqiEtLOMRed1JEc9r3owUFYX4AQKXlXgBdYVBqxL8wot7Ql8\nWU7JNIUknDhYw5bOBQDQadVDMvKSs9vgJeoWAMle22/KT1G0HB5WeHK2rh56\nPAffhl7hBwpAeHrQEBgJj+0Jbe2bG4FZ/e5zarvHi0OQX8NpOleqTYG224wW\ncFk3vdlOpTwc/ZjlCvqOX5lyUOhohThrfg312Dj2Wedx6lfqCTyacNBCDvtW\nra5KkI8Q7VQXMBCzx/6MjCgR7hi6FEsYIJbnUEri5IqTfL3Xo3WyOmyv8zRK\nscMIcgMqQe5uAqxoxhgzcK+iifmFbSUNqIpUTKMN9hHwkf5Eio0zikWYcT/v\nWvzEMhOqnYDyYSFFFCZ08BfMudDFfHf95y1uSCgoMuGfeIRag5sFeoRZxMoX\n01MQiu37Ks/RJdbBo9tir8P9QCbXdrCb7jl6v7hD7fNYBOvjkfAPEHQJfg/0\n7HEbk5Ur20UUpydEw9XyHWK5WG7KLcmNE8h0sIab1I7XAvZS129SRGrGMpUc\n0pKhWXiAesP9v34AGLIY8uqpJeJiCtddEcbvFJdhZj2QNKjKyhbaKTYEpUim\nfiv8k+R03HSG/NSaGqf3iYbv7KbKPB3bHiczYIWkMdI16AUMlFl0p4CEi6Zz\n/bMN\r\n=WyYa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrIQObQtLkjOx0VNVB+gLm79HXqPdBIhwYxHSu5zfiWAIgdZx07w5cF5X03ch+uH3WMgzBBGTZ9YI7OQzxFOxE7tw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46_1595453574501_0.03847274576502602"},"_hasShrinkwrap":false},"2.7.0":{"name":"valid-directory","version":"2.7.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.cjs"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.10.0","valid-filename":"^3.1.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","jsdoc":"^3.6.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","surge":"^0.21.6"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"40b50c8f531fe3623fd2740ac4664e5823ac4f46","_id":"valid-directory@2.7.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-oZmQPs9oaHd64VN3tqjw4lCLLvATclj9Rbroq+GUFP50sZSTFNPQbZQ5L8CwsgWZ3esYX43IGp4QI60LBfEn7Q==","shasum":"3767ec4f1c6db024617941e8e29de54b12aaa6e8","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.7.0.tgz","fileCount":7,"unpackedSize":21700,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLDHCRA9TVsSAnZWagAAEOYP/jWd4Zh3kkzR6qUuVOR/\nZ4UCgDBTScsmEEzyF6zjlU7SdKacM8C/gE/p+OOdHCfo8X9UIHIWhC15njDz\nN9ptmsyqVve8RNtI3VMZRnt+nW9EvoIChBUqLy2VhvMrNOzb/iFTEPZt2Jlz\nrYDRmnaeYAQ4C2Tf9wzTEvj2wnCmOnO+y5vxdRP9MULzCjwdm+Qja7dxS+F+\nMV2i3MKfWMwsEQvGJP502CFxrjwIy7LK80gccJZMfju0zmyNyllYi5/weYhf\nyV5mQqlNbecoZHVoylhEJkYgULQa7N6F0mKiI4INUvZ5/injlshmzUleeh+A\nUgfQAw1foyGJeF0Ry7iz487qW9HtYswZMjkbJ/JLMFJlFGCVxQzlKfGdSIIC\nfDV8FBPI3ir+LKtkqck73EEF0R75h6AfOU+QY0fKstktE9dpKtWCU4YpJ/ll\nrWOgS+JPtezzEeYz42pfbHCS1o59hnURnQyRBN78XPqnEorrAODma4+HlPxd\nMck4xxfHSZIk3DAZs9Mol5OCcDIATYDAonFEIAbZCuKO7KFyxAmVQ37YYExs\nQwamopXqk40jLVaaxX/DUv8CVqbPXP6tr/kcbYRdhwIYg2D++kDRO28WIWDc\n3mQJ8kuhIsJ362O6xVxo8VkcIIiiJqFKkIPAVT5ja94ycxWTjpKZRlyEZdmy\nQGFz\r\n=sOEA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIVGtmGRQMo/lWl7Phw8kze4Ihw2n7b5NHwuapYTCOSwIgIekZSiFkXFVeVeTJ2z7XWYza8h0Z55lkleY4Lh5Y9b4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.7.0_1595453639312_0.852317439958993"},"_hasShrinkwrap":false},"2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829":{"name":"valid-directory","version":"2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.cjs"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.11.0","valid-filename":"^3.1.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","jsdoc":"^3.6.5","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","surge":"^0.21.6"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"acbbc48aeb55baa1fd1335d8039e928200cb9829","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/index.html)\n\n### API\n\n```javascript\nconst validate = require('valid-directory')\nvalidate(process.cwd(), function (error, valid, invalidPaths) {\n    if (error) throw error\n    else if (valid) {\n        console.log('ok')\n    } else {\n        console.log('invalid due to these:', invalidPaths)\n    }\n})\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import * as pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory')</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>valid-directory</code> aliases <code>valid-directory/source/index.js</code></li>\n<li><code>valid-directory/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<h3><a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a></h3>\n\nThis project provides its type information via inline <a href=\"http://usejsdoc.org\" title=\"JSDoc is an API documentation generator for JavaScript, similar to Javadoc or phpDocumentor\">JSDoc Comments</a>. To make use of this in <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a>, set your <code>maxNodeModuleJsDepth</code> compiler option to `5` or thereabouts. You can accomlish this via your `tsconfig.json` file like so:\n\n``` json\n{\n  \"compilerOptions\": {\n    \"maxNodeModuleJsDepth\": 5\n  }\n}\n```\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-7kuOGjBg37sb7mq8Tbk4P+KiBqlP9jKVQSQrK19JBeXlQUrL1c+AWBW+GHVGQt+ZSxcWWZ9AOTMCVgjteyAFZw==","shasum":"ef1edd16d5ff7e2135b71a9275414b898bcf646d","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829.tgz","fileCount":7,"unpackedSize":21953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQmTCRA9TVsSAnZWagAAa6cP/1y5EL06rkD16qwheQqF\nSgifnAKOa8MQ+0ODgTyszItS3CYd9a9b4jAMnQ9F7l6ogFnw8a13pWrkAFzW\nQswmPEtzBJ2+Cqs9533LytV1gu95q726Q2LEO1SVbZiCZJ7iKFrdt69083xS\nOkyo6gjnepTWeSj+ohiTx+FtGvdiLz442w312aQpjjh8aCRzv3Uo+JOho6y8\nMsxuVSrZq95JuMbqVZhyiMj1g1LXgR1Ovp9BwjvFSAGMmTETMndM2D8Okfhd\nscpJd0ZmjBFeYmKPK6pjLltlP2R1BinReWaARwmkMA1B9LubgMQ7yLINsCpV\nH/Dltn0B0BHZysoifwPRUd/P0+0wrZQfjjElxcdM9ZbxkatFWIGEB6FwX/OC\ntrFjIxpgXZmEZVBHUk1+jDW2lvZwZO73B3UAbjSi0DDHKbTGV+Evp6sobCeJ\nUdkUjwg/s8YSy2cZZI+vWgirWCh/GFMnrcMJTNDuYHbVDy8lNBdvc6QscwYm\nzDlDQLT01ND3TgMAD2kQV5X1qtQ1ilyuyuS0ZhcmY7kCOF9zU7uNoQPE+N/B\nsd55J+nhkcrrrdpCt7vcfq+qmy1gpIieMCNuPdbZX/tT7T5klUj+Z8advBCp\nr8d2nCzlsStCWWlq2mhcq+TPxP4WaytlBCNwFDI+OpHHZJ5oZA8EdiLkRBn2\nf/Ps\r\n=Z6R7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEuZRZNqdDUGBw+SckNHcR9p5RrBxnbI3SzvSUCvjBguAiEA/G+sitiHejokp54ne0MixdT7NE6IHo3k/z/Rj0tzABA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829_1596524946725_0.08606889680133323"},"_hasShrinkwrap":false},"2.8.0":{"name":"valid-directory","version":"2.8.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","esnext","fs","is","node","test","typed","types","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.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"}}],"bin":{"valid-directory":"bin.cjs"},"type":"commonjs","main":"source/index.js","dependencies":{"readdir-cluster":"^3.11.0","valid-filename":"^3.1.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","jsdoc":"^3.6.5","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","surge":"^0.21.6"},"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:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:jsdoc","our:meta:docs:jsdoc":"rm -Rf ./docs && jsdoc --recurse --pedantic --access all --destination ./docs --package ./package.json --readme ./README.md ./source && mv ./docs/$npm_package_name/$npm_package_version/* ./docs/ && rm -Rf ./docs/$npm_package_name/$npm_package_version","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: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 ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"acbbc48aeb55baa1fd1335d8039e928200cb9829","_id":"valid-directory@2.8.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-SoWpPyDZ65+cD9YwVGoolA6L1mUN5syC6s8o0FnC4tqNbPez/hlhQszKwHVkfW7a77rKrd7qDA+IVEFLkUPYig==","shasum":"8ed61ef015c30637dc613e84d51394addf8e9c7f","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-2.8.0.tgz","fileCount":7,"unpackedSize":21896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQnKCRA9TVsSAnZWagAAaYEP/iQ/vR8/yCDmoExxr/oX\neyOH5qjFr0ZXL9bgR1OyC05Sd4SxpAgV2w59xvYux/+6pbFfEC47kzCtfoDK\nAWLAxyCojYA6NCbY6f3JUgj80J6pAzrX7crvXqCAU/vI2IXLnWWDcLkfvHI5\nFwV15eRm70dqzg6Ss4YkjKk80BJFa19FNyiXLkMx0jebA/IKUf1/kM+y4Yeh\ngTWopWe97Nxcxn8QVwOeqLFKPjQR6L6rtQ+4Bw1OSwE82e++HEl3l500+yxF\nGraPaUIwdo3GhtXab4lxpNTivEdPTtqZXIuK6MG3u+8LTsQhjGVMwZ+wKZGK\nY5vSbnxXr+A43o8eaheeodWfosALT1f+QZfMYkeQgjCBcI6MeKB6NuPwMf7x\nxbfeemGNyche1vZwpEb5cqk4yzLloeIblsLel+jkspNMSROrH6QBQT95DJ+2\n+LA1pORCDYBPN1U4MiIPMFtkDtFdpzvM20M4e7AJygSePLGFDWovRd+Ved3b\nmA27cBtTgpdox2MYlgtuhdR2u4SrXTDX2z88+rC4B2j4pZPtGSuQEfhYh8rH\ndMYeVW28/pYdSuwjDY5oAOiV+bHRwUGeOqqi02KxZKv7naMkMZE6YAOVBz9W\n1DezEASIzdbYdrSTY8jYhQnNb16mPTQQSRI1x8hJj7YEf1S/jKjFN2usUy9H\nnsbt\r\n=P/w2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVieEOE5B3Zkuo/2GY+5vENFwA+xYzdsbcSCpw3LAi+QIhALs3xFiRcidfsdRx9rUGuu2jZYgSXWLxJDPSoJ5E0ucO"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_2.8.0_1596525002274_0.8079528740778406"},"_hasShrinkwrap":false},"3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634":{"name":"valid-directory","version":"3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^3.16.0","readdir-cluster":"^3.11.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.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","make-deno-edition":"^0.15.0","prettier":"^2.0.5","projectz":"^2.13.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"e1caf706f20205427284472a003897adef4b7634","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([isValid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-Fh6X2pHdkHL/ZqTcrDYMi38Y4oFKiA568xftgeeKQpJyvY8Y5lhun0uTQ8GCFtkRxTI5dBLBSKlMotuGyTAX/w==","shasum":"1b43be70312878e4afe785859dd55517143d36b9","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634.tgz","fileCount":22,"unpackedSize":32532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMh7zCRA9TVsSAnZWagAA8hQP+wYARyKEdeMaS9/HLMiC\ncQd8bwZ+OTw2qiscpg0qMAztHDCWWifN2Bl0LmE7pTxWf0B/ldakjbIKnPz5\nL1Gike/qdiLlBco1hav42JQ2d7Dw7imFl/KIDK18PA+w+muJaYiluaWaLuUO\nCGStJcwwLy7EgkcbNzbosav3zqKUUpctNFcZFr8VvUxDevi66GgVnIgXKR7t\n/cmhZKd9fUxVUKwWP5ljAK/cof0ntmY45rUBGsfMm6j0fpimyQJDcucx2u4k\nvx9G5Rpa2zxAwnNtX58S6TtOckswTI6YX8i/WqBVJSadzqSL/98nHWtMU5+T\nx/ukk7Oyhngvc2IIBBG3pheSWaDp4xsOcClHeQ44Ewzn/MbS/F65JIqL+SPx\nndWFi0otQ1NGCRGrHx7RMtF2Ad+ANfjiBeWxc9lC370eUnR/IF0gUccnaZqJ\n/yL/QgqPwfskXHXsb1KpfmK7LcIlYS/UY8jB2q+XKRlVh7/VqE0vMJqLyVLY\nN9tSlA1FJWo0DEWbRS034zUD9SmoNZACBg1iMIvejjPzzHzkyAZKpatld6om\nhJkhkEZb3OZXk6GaXoxNmB4UbiJyfnqZctisK7JJhgmsHWqJOBEdlPQKV60/\nCFmiS9aDVXOst3jsyOfDOvSohkeZpVoof/FcvolcMA71HOpm+rSuaWUIHWAV\nNLqj\r\n=xHf/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICieYgQGEDSIMlTZBR2yBN5Mk8d5puAcDItw00vGG0y4AiBYmdcC68PY4zWIfKyhTdfD6/FXZp+kcf9N5/ehR3s8Og=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634_1597120242943_0.6135323495585341"},"_hasShrinkwrap":false},"3.0.0":{"name":"valid-directory","version":"3.0.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^3.16.0","readdir-cluster":"^3.11.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.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","make-deno-edition":"^0.15.0","prettier":"^2.0.5","projectz":"^2.13.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"e1caf706f20205427284472a003897adef4b7634","_id":"valid-directory@3.0.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-ghKQH5Y9SIzulRrpQnBLP7pe9ofhIehlQ8kyGbC6nxqLhQyDb2jv1UcZSksc7yDfTyt4S7BtU2Pqf6tAannaOA==","shasum":"c98acedc9f888c391a62c849cdea5ee661513fce","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.0.0.tgz","fileCount":22,"unpackedSize":32475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMh80CRA9TVsSAnZWagAAgaQP/1v1hSHrWoFQCHVgs/Js\ngREtKYQzGqKMPX0PLmqb9udghz2ji0x2Fs0JKuVdPCG61WzZDDVydP95VjfO\nuwUSa68fpnL6fug8lfcUmyV26+Jx1vK3mJiPh6fapxciiX8hkHsD2IlHvHUG\n0FV/JRjEaiT9IJ9w627gLetELIRKpoSRsfPo4aVzHuLpp6w4Md+qG1bXkAiP\nHH5Q6m5kgDc6ZApk4rmo7ER4B3562iGdFe0xHIJm9nWtAGVQO/BNfhN5zfEX\n1j4ut6495rl0CATuMpKGg4TvM/7cm7+1tC9I3txZvxoKz8HPXe+eB0EVngZ/\nQW0m8EKW6/NYZuYqEe9THnPCI3y3ROWu7xp5932HGB+OWl5Pe7HUNMSu9yuV\nHqcrQRDhlhI8UT1XAie0kXOJ1YAUqzftscNV/YkvYbwO8ZWsGQjOLo6iIAFg\nxU11+f1HQJ4hL9qAbpxnuTTdh++eGsxj6StN01/2p7YBdXGp8GkxvYR+x7lJ\nKKDHSy7I+Pqvs6dKy8tI7D8H+Ymh6KlAryqdnntarAcgNXFIlhJAxo0JD2gE\ndpB5llintXEia1AzhlxFAAWthY8y08ONfNbx9WA1HPwq5+JhxqCnAD3J5ekP\nPiXetxLWi6dTgXW2yzfge61DOXzSuSwXG4FVka4dwt6mXInkafn586ArGfDs\nBBhh\r\n=QZF/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC5Wy+08tityojUsGbOOJxebyBjo6OnjzxdU1soO7RGxAiAOT2c5ATRbdLomM4oxTH/tyRzQ33t9JcPTvIK+Pr2HZA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.0.0_1597120307715_0.27200899899440745"},"_hasShrinkwrap":false},"3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce":{"name":"valid-directory","version":"3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^3.16.0","readdir-cluster":"^3.11.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.0","@typescript-eslint/parser":"^3.9.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","make-deno-edition":"^0.15.0","prettier":"^2.0.5","projectz":"^2.13.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"976a95d1097bd4b9e5c21387b9a3128c87c716ce","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-PKcVwbfcRvgkQgFA64PY5zr/sFLkZ1sPlEFqLmxj0TEDifZH/oURysj6SEwahWWUguTdiXJGE+eS33TbCG4sPw==","shasum":"44b9059deb170e54a671ea448f4f417d6d4ec050","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce.tgz","fileCount":22,"unpackedSize":32530,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOlXtCRA9TVsSAnZWagAA+8MP/02OlZMoBpsR9R+c6day\n5/DxO3ko7/2awcTG1g2BMXZuM7D9/WJNbeCXzPzrMlfo9PEIbKXHaxcClFLU\nm8CnnOQNdEvaT+HBzyCqXiFPiPv1IRLUneMKg56hq0HzEH98D6vmyblCNDZg\nRxlst8fjNVv7oek+aC5wCYW7L+DpJ8UvfEmjfDfnsKyffVqDITk8qqkdINZn\nfK3yHHYP9FCZd47qrbtrwV8llgzc6MEanb5nHhlpceaRkAVNtVDuvqNn4zPt\nbLKylBqcZpnEw8xlAhyg7eBBMfLecG8MEM2xDVeHGSZFM/z4tbmev1w0k174\nCfGFWpck/k/AXA1uhcWkSnDZiTlonXkW0kXqocmOLtFc4x+/uLn60yd/XeVg\nxER3AY1oOQa5dH0PKXzP2b8mYbf4sNjtUAjvn6HdjVDPbtXrFFgtP7rjdxIv\n15Nxl5BeA1xALcacZhoEu/HWDQIJ/Oq5f5mt2wctEgQGm7SD/+O4d+fBaryz\nmiuQu2FD9h9CHo5ThxmB4fk3/FgRlwOE9gSWtndwKO6PLkwNK0pxkOkj4Vn+\nqmWh2Q9QHMOKXrVSb99m4kTAdoookWx2cXfarcKRkwDoSHsIjMDPcQgPpC1c\nRhikfSgoqfvYq/IqGnDfqoki+Fu6O7cxjzPia/Zu20UmMjpyO2sM9qrXW/h9\nwyc8\r\n=BeW/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGl7bjAM0e3jjssomVYomCUqJPEVHIXBzB+Wt6uQebsRAiAcH8+JhCFFvhmB3MPone6jfr5qmf4XZMkUh796OySszA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce_1597658605317_0.7599484669863512"},"_hasShrinkwrap":false},"3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e":{"name":"valid-directory","version":"3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"cab72be59c06bc77159a14cfc6aa02478af0da5e","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-Dta4XQHL6yizjtMMaTiW/X10xlKpOFQJ2gpy1UO1OQiLwAqZA3eDxVNDuWuG6ZycvEY99+9QBCYhEMqey7CRyA==","shasum":"d193bca2a6a9e6576c649146811915f43ead1bf7","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e.tgz","fileCount":23,"unpackedSize":33258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwVQCRA9TVsSAnZWagAAevQP/1Q97jLCyBWJNP+JlYwe\nVCKbT5xwWhkdYQN3cknGreN8J4gTpboP9dyPuSSyki19RUJxws6s2/c6vgWk\nzXrzzNQFPvf4FOZWdWExI7Blvk+FCoP7QN6r//Wo+3E7Fx55hDf2zdixwZHM\nU09GGzOXrLXA7jdCGttkkXiSgsS6RE7JfIxMDLyGDvCwthUnl632bTYwXSNR\nT2fPGewISH2n+CIDOvcEvKfmmAGNg9R0Jh2C7RB6Usy0K48HYTTMG68cU28s\nCfOCGxA8V085w3+iWaI4yLDlSqB8q6TEouNeiuoGdbs0btUsQr74PPaANPXX\nVdpOW8yX4ygPCSVwOo6+9hUoGVbNNP18Tks+hUe1q04FN4bFoi0rU2Nlz5NY\nwSom6ZSLxVU8NYDaL1/kIISjj25PfqjLVjqs8LfbSKhYeKStgrASV9uv2Tsn\nu31SSjQ/1yBnrqC4L9Qk3tWQ7b4Fz+Khu8BBFLMutO1jA3hNuA3xV6Ed+UCt\nu9Ah8RlE/uxfnXY55eWjt99PFXsD0lJ/DUxnuwgqv1LitjjCNmkEZxb7UccD\nLPg1LsHmmyxXd68dgJ74sfVZd9ZkHDM8pdRCFW7xbnMHZ9mpo+m5mhEGK5Ak\n/q1nIAGNviMIEko0lvac9o3mfhb/ifrThV5EbGt4lALJLZ9p8HYg9kPgUDlD\ny1xE\r\n=3PWo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvTBinntlt7dakLHEJIV99x5Lun9ZK+HiwaW9uRMdabAIgIVFDi4QKkQJY2EzFSXzpn4kzKOefP0ZDZCxdES/0RQ8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e_1597703503628_0.5833590000214726"},"_hasShrinkwrap":false},"3.1.0":{"name":"valid-directory","version":"3.1.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"cab72be59c06bc77159a14cfc6aa02478af0da5e","_id":"valid-directory@3.1.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-u4s5aHBDQrdqpiiOa36p88Uw6VJTR5gUY9gHCKu0JqZtrme0guOq2dkFN9toV3xcWEXRt4cSFdPDqy6vjnQI8A==","shasum":"d92a60ce1afe728bbbb9cc4661a24a1758d511e7","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0.tgz","fileCount":23,"unpackedSize":33201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwWiCRA9TVsSAnZWagAAY/gP/R/FKn0iMp0HKNU4y/0j\nRXoidXjjfBL8wc4VSmnClTLQ0nMLR99LkfYnpNNdR7cSs7g81dQM6iEeEdF2\nmtvC/Qfr+YglupqWSGkFkQf3PrRSbZysCIPTDKwAAxu6cTK89htCVZoEy752\nKkLwrUntqlPu99MZk4zJFSWO9hfr5HiUo7mKHFmIMDRy1z4SU/iLOzU4UThV\nmoAhu8yXG7RAIipbYKrQ42RpCCi0FzSgi7It+akJp3n0m3u0PWzCKNW13gj/\nYN4obVtAs2Nhxj44PwOftvJhISQZV03EVNB97BUhpWZ74R6ngNLhZcoV480a\ndl5ysq7SUYRyohwt1gxW4ZX24rtKeE7HrCmVbOfEZz0ylEv51wwPewh6Twcn\nUxGyrC1wGhUT1rcrX9K5lhu4j50yFTOJZov/X9+CGvEBpFVcZ7HtL14XUmPt\nzhQuapJWaXTkEl2eflwTex01+BPb62kiTCvFtQHRXHplBnE1G2VpqgpZXjZZ\n8DLsG4oY2Nn3Q1zBxDejUtyV3KPtX0iNvfcl5s7inSnmkWfxfKSUiHUbNskf\n3AVlGQB2twPB7JLaAZNudIBpenRZYlZ2h30tX8Y4PzTsvsbfFkrCSHd41RQu\nHsHsZjkA/mbT4I/wUUEoTBuG/htX2fBCOn0GB4dmQKSlxkYECHgyKfBuj8aP\nJosb\r\n=jvsJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAN3sbOc9E7AihwIPFSz0RZ0+qAe5tTDndXK2TNAZWliAiEAiy/mQGk8PQPQkWWnLiaJ+90EUawqTne44dM6bPERFLc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0_1597703585572_0.4225696571852722"},"_hasShrinkwrap":false},"3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d":{"name":"valid-directory","version":"3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"82a300a7b9c3eaae02853ec684b71e0536b5050d","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-4q1j+Hoh6rg334wmq81NAxz3t+1ottQ5G4nXrc1Kz3ts0L6J8GK7Xp4kZcmquwesbPV/flbDHUHftPBDUxnwdg==","shasum":"3fbf828ebb0e1c785baf33c63abc7ab4ee62db12","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d.tgz","fileCount":23,"unpackedSize":33258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwW2CRA9TVsSAnZWagAADDIP/iPA4zndAimlGuPO6rB/\n2D5bIGMw3U4dhPagGm8tKXNAmf1z0bhNDrDXB5Wglc4q9yR3CzUUmOBT2rL8\npz2ROoVPfqigd2VtWFgyYes+0atCAeakw1ZWXPd5RkmYrs8invE0ywG08jB4\nnskGT4CxvGmjBJhH1o9nGTk8chjnRNcu6iirETRkXnRRK3FOtRbBFaMGmPWW\nILWks19LFD/gQJ2ASdou3adL6fYhYKTuCnf/b7VGcx/lsEofHZLtWJh+5OOl\nesb5uBHB7X3wJr4iI9sxNClEpIIJ5Ed3EK213LcSkQFkJlRusJGY81A5OuX5\nV49IO5SA7GOBpfJhCqEPhzcmgxWnnLyVCcdaM1KcKXOzZ5U5J4bLbBYHNh87\nSQCdEvutUNKFIlfLd2JNl1sPMGvowZ1JvpKTIgVjizihCpOTcJX01bPxs1s8\nOIAcDvUl9p0yQWlkkKmiqEwZW1sGHq9MmvgUIBPq1hHdvLrkDgM1efw0ZSEW\nfN2WSGoVIWMdqceDCjmLadtqfHQRmYWhMQ+lKaki1Qbi/pflxo7S8u+RZLqT\nloL5cjmXBnyTzIgAYWK9f+T7n+MZu63EDh5N3X5xoZV5OxeHP1/GuOP1P0UA\n0b3QbramdfZQLZ+PnUqy4ZM1L9Rw0HSIbstmVbBsJhIXGP5r+5fwxaJoGS2Y\nSxj6\r\n=Q+sr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2naD8ZLXb5lqFeiVwx0M6VJl7zXPs7Qrmn4Q6mN9o1wIhAJOy4q8UimzMnVngBKza3GMD4w+2RpqHdFFbUNLGvTC7"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d_1597703606164_0.19489844941169077"},"_hasShrinkwrap":false},"3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201":{"name":"valid-directory","version":"3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^3.9.7"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"67127a2cb79e14bd8da8d1614322732eccc80201","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-aynHdfWQXAZWudA/hiYH7yFbxev2wb3E/WzKgwAGa8JAiqVmxjqBT5tLnZmzY6K0+BeqLnyS5L1yIINX9M6AoQ==","shasum":"a48eb2d73754b283393a3d0af493fa4356ead4ab","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201.tgz","fileCount":23,"unpackedSize":33258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwbGCRA9TVsSAnZWagAAUJwP/1wKWlmjjQoR1TqLQJmN\n5oH2wHEHotprDeadqtnLOjrMnlHMOHy8KLNEHCoEO+SSb0Tfvjpc0ps/YrRw\nHlFMpz8TUIxa+GQKl70hW7a6a6HkrNwrvZCe/5TNeiBa7q/5z9YXT7RwwVlf\ngdAh8WjmhCrgfW5czwdVzQjsfe8H9J6f+HBylAcJpCvQ4jijLnh835T4LFET\npPBouPLgRyaTv71PERtozDAfVOuIXTNXj4RA03Izp8vjzqxaZ8mD+hYH6lk5\n1pM7xmiHiwiULTWtipkE4uBXNzrcGIhRBLt6SaDaOtUh0sVqGRutVLVCrOz9\n97Yl8H3NdNWQN6oJdXpXrAAlxY0Rdn0jrMZyOGyFkHIiypSAxTUbJiM9QRn2\nZdP8JH25ndwek2V5PmfjMkXaFlpWJ2kP/UkWCviq400NBPDBsGL/8JvX2B+C\nbZHEDOtZ/YnUQOvN4QAQapj7VJe4lyfY05q02BJJ6c+U7jnjAfKWzTguicua\np+CoMEUdPw3EBw829ib77ORwm/otojebR/rBMyIWQKiPukouWy+H+532avKK\nJ0zuo+EB8g1RiC4jtXFEZ/vBhQgu8i1JKB60JmSExuFa5BAGnrFs+V2bi2n3\neqwLS31NW9BbSP3EAU2xOtR50/u6AFSbxzSQbbn3KJw0AYrEbn2MyaYW7Lz7\n9xG+\r\n=iDur\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDT5RDJZl6PwBP7sBYnGtXXb9z2MkICx53850FLA9dkBwIgUGRDtZoSwzsWCJnf9SVGqDlHpLQr/t+xzxwDJxfFk9k="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201_1597703877816_0.1927456594073873"},"_hasShrinkwrap":false},"3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1":{"name":"valid-directory","version":"3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.18.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"cb328e70a69a001ddde05329213ea558abf9d3c1","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-SFaJWR/EdJd11Uik8qKnnAE8Dd14AixItZ8kEOjXxNx7AGtBv5WU2sbhJf8TVqb6+DC8juPR2wtZvhXphtZG6A==","shasum":"7fd0d590b501f0fd85d4cb4437bc9ae64592d0f4","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1.tgz","fileCount":23,"unpackedSize":33257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQmPbCRA9TVsSAnZWagAAt7AP/2Kcl8/WxSWtjvXpgKgh\nd6/+bDCQrxIJhyIem/R3eDEGuQ6eD/B01onXnvFYYP4ugdkMPAyYb1rUqDyR\n77+vFRANwSNQU945k9L9IZ88xWg1tJB6hLesIlLFRudfe18wLppe3AtkgFli\ntSzL2DtMUbY3IqKMkXg89gYGNfF8hRfmSR+IisGqPhCcfYlM6rbiEgU6evv7\nFt1qKrJmq4OARQnVA5CZMgiObs5xfaRo3PGX4I5vekUX0dvPpGzoxAzRJMCC\nxvK4YJEmIHcLMAsm7Xxl1iKMfla+EyZjqwRb6vZq1sT1EqW9AfuJ7MT1rxpm\ny1X0WP22s4ZICW8+B5JpUp2lsgi4EwEp7XIoucBNTvjVEPpE3yuucLKkFu6S\nsQwn+q/p4RxbYbZv8ZCFqK5fMRHCmR+wBnUc+m05FvGvkUtQdVYP+kTgCxFt\neRDyP0HGYf3aXzXFAEtdungnwHfXhRB454V43FQ+IInhI/JxXTp4nY+1v8AY\nO4dj3pHR37DdyTOM4TgrPiz+IDpzj3oUwFfMcKuABYTGhPPcEKkPJC36z4Yz\nomLSq/clEAYmK1wvY3qNCGOV/S5EVp9HUJMYcSNlqN/UZw2Ytay18l5wmor0\nXEjXOqKWt2HvGPAUzMASKaHAWJ/fzQxTBwOeL62+f54uKQn1SrLAJ0+oj8si\nn6pl\r\n=ueH3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICEVoHRFxb4LoXq3c/7l7s6x0WBkYsXIq1az4bPeBz/5AiEAuRXhx4YaCzE/CN3h34rKeTCvRpkTmGTfQfzJyFvyA3I="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1_1598186458623_0.15363035911369605"},"_hasShrinkwrap":false},"3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069":{"name":"valid-directory","version":"3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","@typescript-eslint/eslint-plugin":"^3.9.1","@typescript-eslint/parser":"^3.9.1","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","make-deno-edition":"^1.0.0","prettier":"^2.0.5","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"0c9c173c2a9133959deb77a43b68550946db4069","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-CBVxvxkaV8RNjt9K3N7cm0I7sGG2y6XlMtS8xWWwWg3KYKzmCpEQB0CxRXeYcNgVxfpaK7A621iTuIgrbk6Yrw==","shasum":"f39ff002ca7d1d000d2a95295cb62e1daf2fb42f","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069.tgz","fileCount":23,"unpackedSize":33257,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfS3UnCRA9TVsSAnZWagAAgGEQAIMBZ4myNTseEQrigJ7i\nbAOa/SqFc4N9PHD4qyWoQzYz9UdtVTYH267vVBDJtzPKLVpnn1kE8do0Xozu\nUoMO1bpyfcVB1PoUh/toB6OGACUD5X6XUJVQgPD9VSkKwmjelW3pLCvKWPw/\nKbhggjAOmUc6KjohTM8QWBWwVfb7qRpaP1Em/gj46nG1M9Lq+CFev/znHa6x\nmFVwIx5+4pQDRaZO/hCjH2BJm79G131B3ciawFDzcsYeTHpAcTAAdsCO23PE\nanCnswe7V2khgCvMx9kvbYi6K6LGI8xjSeyKqze97F6bG79mpC54PJrvYz57\n71zoRFN5/f6D0hmFdSS+NuTsvsb+n3UPRiSiFMSqn6zCef7CtJB2PBPvbBJc\n0hGwjv7KeOiS9+7d5J8sHnso7tomApUa5xaQEcEAECKbCZ2YBCKObs69yzyD\niBS6F4g8wrgNCFNrUJh01zRBFEWO3djgaQBReW3zdt410zIo7AAS3Uul0fn+\n1UwxKb/jAeGZ0DW0Zzc7A0Gyu8f8fnriIT2PpNZN2B0YFtTjCp/vIr5TJjmC\nUM9G9aIV8OuEqBSPDrlHv/eKdjjAtAI3uXhqap7QBnajOm0nqzyZDpBbk4jS\n9QrFEQfxurSnGC5Z7r142/ByfcdOecSlsmYs8P4ogIRAuWx29tqeqAELiQei\n7GQJ\r\n=EUDS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyHQMna6cH8JfpwyHXTNPdE/l7bIpBwCQ4RAXXSO+N+AiEAjtd/ThlEKJQoJDFdYVoxScwJrxHi9HR81WHuRXqZ0x8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069_1598780710613_0.7256281644551739"},"_hasShrinkwrap":false},"3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa":{"name":"valid-directory","version":"3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","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","make-deno-edition":"^1.0.3","prettier":"^2.1.1","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"f8976431003383d1e83db9b7f4ad682b078f6efa","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-LloGByve672Ras5IZF/o5Ju9KzdvMTnkZR6R2rPtufeK4G9Ff40mi6iVtWV9jetKZHz9x/uTRpumNn/YQ7qbBg==","shasum":"792350342e1ae99d1394ac3a62022142e0e5f9e5","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa.tgz","fileCount":23,"unpackedSize":33390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTGpkCRA9TVsSAnZWagAAlrgP/1c+MLciqpVBU+BzduZq\n69ivWbVNIKEgQzCjTnj9P1qZAbQZMVQEoap2Sc5Sm+GwtQrscLPQjNd2T9Se\nGcCursrGFNLEozeNv0egb3IiiVDVhsQ51P1PLms6Kd1dJ6zflgKW89idrXzN\nMy2dhilGS0GqHH5Trayh8nzJLVqPZIeY6IkxRav/i1E4ZB9+DrOcEYkVCRU8\nvutSvXPE53fJNuGCbRgzPcWVMBZxrYMq98J9ugUizWvJr8/Od02Jxhf3LISk\n2VYnr4u/nHGlYAx0fr9JeCjEKplRa1Z2nmmpcchsC2gFsVEdbV3Cvla++5Cf\nBLQZ+3osZeQarYq2bgH6nzJiYHav7vZV+vlzcqRklO+yZ2KP44GFo0GY976u\n6g7YYjZyPTZKDsvNaLqexFuW/xuWmTCq20i140yXDtayBgHW0GygzAq21/pu\n+HcoqKPmZnPlkXoUXCQgjLPAqp2MVw7wyrFbUYpuThfNh/bM0gsp1rdRX1jw\n/eKPpD2Igsw/IXCF9HocLAqxuXxOu7SOV4HKlANSeRxRGUM4BbMvrG5xW3eF\nclicEv4RUvStaDHhgYHLf8OFaivzf6aI4nVFQnUmtD3PNHw2baKNirLNl+pD\nt1fcr3SSfH2wz6Sf6cD5SrxRxDjmFPgGPXluKtLi45vh4+/IfugHMPHjKjFU\n8WlK\r\n=LalW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGXJPMvKzxmApROefO9mrYV0eEqWsuxl35pkR9sXXHqPAiEA6JZS8cHZn0GWMwlgzDJj+slXgI5DI5V9RFl1o+vh1UQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa_1598843491705_0.36400077549560383"},"_hasShrinkwrap":false},"3.2.0":{"name":"valid-directory","version":"3.2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","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","make-deno-edition":"^1.0.3","prettier":"^2.1.1","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"f8976431003383d1e83db9b7f4ad682b078f6efa","_id":"valid-directory@3.2.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-PYRUDdcPXe/2aoTxhWXVYCjSZdqUZFT80/p/xRPQg/EWb3S/MQH4YgSd3jsNmetUR/zH9Gg+VFQF68rU7eOXmQ==","shasum":"2d5e262c9d46886867ae883b3c22bbfb992c2ec1","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.2.0.tgz","fileCount":23,"unpackedSize":33333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTGq4CRA9TVsSAnZWagAAmocP/Rd67IZgNNPLYjy3qXZL\ncuwRHMLykShFTyK7FCS2+vr2B5ml+n3QKlu2OYisZ/290vx6V2rmNVEIKinm\nldgpXGza4rqNG5vRlNU653wOxGgT7AwZafXhqoCBQQaJF73iM7ESNFKZyN5p\njDzoG9OQHgY9JYGjXB3aKuoUlqG+frZ5B4SXKH2DeEh9HEr7bVV5h08K+hQ7\nvucDXRZq3DCmWp4qCWOcm/yaDm5tFDC4432ARbBFp92hggq0Ky8IRd5FkD0e\nUY1GHBqnmNwKzs4vceUOqyELG6vNfpnHupjZ3sDGaYE9vjWTLaX3dtuMwSOY\nmP5cdIcUQdFOB4l+/XCS/fethOMK+GBx+fG/k7+fAPzZUUdlvLb8zj5aI9K7\n/pTQHZKZfRrbu5Y9zVKa6VrL7++AFw5DOkKMKzPKAh3rCh86FN202w0L0ch3\nW7XAsTwSvQNg3jIlwoHCPUNf2Gbm3edOik0FgaDCUHy6++UUCmSGUxQRtXXQ\ngbLJGAtu19gejvRqUs8tsdmJOI7cgTjWadrDdL+QNfCpqPhtfCCQKSPSJGER\nvKsVLJ6uxkfLeUHj98U9Lb0Rf9JeV1f74ThruAG1/uHH2g/yEZdZOi7ysHa7\ntfyKLkxxbnNOJS9z7Nmp9ngCXusMXJeldIy0YwG8cwHrhUBX57WK89qnFWow\nuccc\r\n=/6l4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZp3HnPg4yDR2SA+sBliCW91Tn1txMHd3HOwiMzhvoJQIgWuo+hqdzGrXHY5tDio5ZbE/7K0bUiONsV+36MwCuy5w="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.2.0_1598843576470_0.2845508101644698"},"_hasShrinkwrap":false},"3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7":{"name":"valid-directory","version":"3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14"}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14"}},{"description":"TypeScript compiled against ESNext for Node.js with Import for modules","directory":"edition-node-esm","entry":"index.js","tags":["javascript","import"],"engines":{"node":true,"browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-node-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^3.10.1","@typescript-eslint/parser":"^3.10.1","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","make-deno-edition":"^1.0.3","prettier":"^2.1.1","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-esnext && npm run our:compile:edition-node-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:edition-node-esm":"tsc --module ESNext --target ESNext --outDir ./edition-node-esm --project tsconfig.json && ( test ! -d edition-node-esm/source || ( mv edition-node-esm/source edition-temp && rm -Rf edition-node-esm && mv edition-temp edition-node-esm ) ) && echo '{\"type\": \"module\"}' > edition-node-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"0be9b976d5f8c36b8c965c09140eed1d70dd29b7","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-node-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-bLYmJ72Lf/Yh2lewzUYK0HadbLCk0F+iAJDvpTkEExP9LYG1JF2sNB2ZnLnTpNJTFlx/AwVKLINzJ6CMAkKnNQ==","shasum":"91194d7e72c2b869505188a97775bc1ddbce85c4","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7.tgz","fileCount":23,"unpackedSize":33390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfT/quCRA9TVsSAnZWagAA/+EP/jyrLC3hWmOxKo2hbfWx\nzzqICEClGaphntiVv5CigdswbghDgA2Mm+5KO6iJVNSZ7iDgcEEAhmX4rHds\nT5rOVehOJwy7NcTF74cSA1W39yuaQVekAEDr6bYAEKjq73XqS2ouUtPX80A4\nldrs0beVdEJxsPJekZmD6q777G7EaD3EC7fep7o8aKp0BJ/6GN8IGx9NplzU\nN9E1hHJA6yBgHpa5W5xuEPMEjWxLYbOFLdNT+fjWXwjeVi0dxQju4EgbL/JS\nt5VFkMLOjMsS2zAFEcwRRzY+m+Wh0cvBqba4V7QbN0BFZqObcT/yJGOCSF56\n2fLBYwOa4EzvSsMzjdgiE2QgNshXlwKl/N3jj421c+ENDDQXuxpgCN4/KQxr\nKPL9RKYkgUttC4+g+rqNUfjJ6MucagtLvnUbmKw+dB5DLK+1D/Pv+MIwUU0Y\n6ALCioNNpPfCJpZYHAG2z36Bg/7Dae/noNUEh8H/zUMIiWCoY9hgEAWns15r\n0dJAQtrBQJ7P+MZNeYWNLCDnwnyt6EZe5o4ZwPyEL7yt5T9StR/PX2FA02TA\n6B9+/69qfOV7/vLCXevg84Ysf5cL/qAvvf9u2xdo/4cuDGm9KI34Kt86jiDH\n4r+QNz9nOhPlawsIEXNlxihCtSfeoYAXLv9jdhjOVaIPmiYZbx5y8T72ok1G\nKP2Q\r\n=IpI5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAl3VfBEqHAjz+GcCWfkq+E7ERs9Mg2r2EhvalHFgzGdAiAkk/5TOthB48j8dg9FYhjJHZL3zqXF1M5wJu6fVkrL0Q=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7_1599077038398_0.11158928072099972"},"_hasShrinkwrap":false},"3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001":{"name":"valid-directory","version":"3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","assert-helpers":"^7.1.0","eslint":"^7.8.1","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","filedirname":"^2.2.0","kava":"^5.11.0","make-deno-edition":"^1.1.0","prettier":"^2.1.1","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"4324b05a5dbcbbd9c7e2a06d08387d5f49083001","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-1yl+Zr3iW/EnmJNgKr32NUp8kXV2bJ5Qfl85VBZ2QLAIOoTxREcAmwd/BSYNaP++T9NTECM3jkUxp98cOYHSIw==","shasum":"8e3f58910c3b54d2c9997702685ffa0aa861bb74","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001.tgz","fileCount":23,"unpackedSize":33813,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUbd1CRA9TVsSAnZWagAAB64P/RuegzwrmPJ/rXUWRwK7\nrtpFucVA0w7xASIhson+Pd1bmuBDSd/uIF0x0sKjg62X9TYG6rFAT6e/XcJc\nQZxMQFHFay14kizdBk5Fap1t+6FYAWP6ZyIUk/sk17krgmWSQ9gshDZ+cyUN\nLPe0exYptSdiNvtlYhfcQ115juEhNWjg8be+ZSUP/cuPBtfZMWLtuT3aKt0P\nFtpum/2XExcXCWLdJegbDiGItwtdOcEGSQ50Iw9NiqnEObAa14QbRrznqmOg\nRa9yrADFMAB7bTAs8Vm5jg1yaEYCiwg7k8mQMtQb3duNqiRop4bA6C/UiO08\n26g2tyeQ62ANh1e0cxX9sIXhJ0MKOKDsJgiAZZ/Vs3C+yHiq+EeJ/cv3AngT\n4L5bZ5QWdXgcZdhU7VV2+LdrPOcR0T5XqSkBndir0pPtduY4E6wBEY5lCLJp\nD7F1QaYa75hEhPeUgXyYFahyG7lldO8phaZTLME20OqDM3H7iRZwRxYNGeLU\nsMj6c5IqLJv7dSwxWGhO03hnXpoNRQfx/gHaFWUqj3AygJMeMhu93DqAXQB1\n930OH4tPNk5kmGrj9qMMYyzUW8JQrF1hd8GV/oMb/waniM3i64lw7Y0xcl1c\nJxDZwcFCo66V9Q0zXXJPjvi2fDEwfoA6lq14Y9x/gxt6Er6+G7GqVI1FS7BU\n0zZT\r\n=ejln\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdIeIikFsHqBwx4k9Kqi8PGFS/aJiqH3X1HQSqJIcTkAiASF0AjQh2P2qw5otrq89jjeAdLsVuX6T0HxOuqRnMBfw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001_1599190900423_0.07248448044620526"},"_hasShrinkwrap":false},"3.3.0":{"name":"valid-directory","version":"3.3.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.1.0","readdir-cluster":"^3.12.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","assert-helpers":"^7.1.0","eslint":"^7.8.1","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","filedirname":"^2.2.0","kava":"^5.11.0","make-deno-edition":"^1.1.0","prettier":"^2.1.1","projectz":"^2.15.0","surge":"^0.21.6","typedoc":"^0.19.0","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"4324b05a5dbcbbd9c7e2a06d08387d5f49083001","_id":"valid-directory@3.3.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UtiySlp1QwqrHfNw8an+d6/pDfSgSy4EbZmgFJYE5nGwuzd/GHRWAXBetAyreVXT9IJbVWb8B8BtKd+XIJYueQ==","shasum":"91d3a47cf6c52036032bef42062e51dc850011bb","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.3.0.tgz","fileCount":23,"unpackedSize":33756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUbfSCRA9TVsSAnZWagAA3b4P/3vV82EB3Zka6mrjq+HA\npk3DMP45KZVBVYw855EK2tZMAaeTA6YRTrNhMJO6mMnkwc1elajZ+NHsInf4\n4vKtoSaqgd/oTAKtqiYOSO/dQXh7vSp9ov5VzeWODp72Qc3qxN0SUV+l00wb\nulv/lv1GCTzlzC0GPutk6Mce9tkaRiMl+CB7L6fOa4O7Ghs/LHL1mSD1dVH9\nR7cwWE9uUKtZqxzAqM0QPIp1R4UeSVApOvyI3ErfOt9Vs632MnrdZqL1qIFf\n40qtqyoZFE1CLxpvRJCxozLhBO0jhgGybnWHH72hWiZNtheqzujnd+++8IQP\nUkhwXwCK6k6sVrPPhXO5OtPvjFacT7mWsElGzz7Lc9Y3LtunNB2/PdO1AFlP\n/Ipbv/sYUHZqfrNNnJ4WLR9D6vabrsJNlMB1tTaeSGBO+cZhfFd/RUGrg6nk\nROqdtiip+JlfQWUZqKrqzYkSWtHqMfryFBrNFQswIgmXCcGKohK1sAZgQUTO\n3Dc4fv9zi8S8zQQlc53Bz9N6zsUd/GKgx5pXi0TWiJw0Uy9G49dSXDBcx36I\nVnEuQF6m5uCeLKmxLntMzO79hk4tih+OZ0DGa37EW9LHYMRaFn7Jinldk2K4\nXde4ZLDckcpjVrbUJdLPqASGrZTzdmuzPmgVpOTN5igj6yn1/D5TUmtMOhzX\nh+JC\r\n=5t4u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMS8JjKtLZmEyKmc1KCGY0FWG6+lyla1oadBTqDo7ZAQIgV8pHuwHE5KdTC6cceobzKpAZmUNJRSqS3USRiZe2MGM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.3.0_1599190993837_0.052925262598660705"},"_hasShrinkwrap":false},"3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c":{"name":"valid-directory","version":"3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"65d75fdf9d082132b07ba73a32e0a40258a3999c","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-XVVQuWHoKjzQKnmLn3Pxo9kDjCH1757ZfZ++QnoJ3/hGl5zQDPanzfPgickDmspawPce473oF/Pw9igVLuidnA==","shasum":"4926d02c52321b4d058dff97fbada00c5db9e217","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUx8zCRA9TVsSAnZWagAArX8P/3vr1B4AHWcZ5NTioCOO\ndXvBfV3mSDwiqD6tc7APfC+68N0b0xvwpsrjKenisDc9R+dytXMPnFipeiwm\nLim86g8Irf7dFEzr17/LiuZP3nqoMjP3wv3k63FraYmD2MZISYcJs7GydliH\ncjXdC2KmdGvnx+vHc/Fcu+76AwcaaaRWEptMwLwwgUMf10CFXbsZKY1tMKPh\nl+ogCjtC0aYL2fnxiZS+FSCPWcWiHn/Dp/kI5IEydZxzBZsTr8vKo5kG4wv7\nhYsRtJzFLHt69CNrliYSiiRF0KvT7d+Y2ydwIQJc3w0L7HH6Zy8yBYCsJsU0\n2dBYOGiVltrnHv33K1TuE/uLtvmR+dzcBdI2elhjXr4JxzsA8+tBUz5o54jR\n5ahDCQwJXCmKb+YgytimlDXfkffxt+8ClcROsgNRdBQ8HNe+LpYq+L+PQKgm\nSRDWcVLF9Rs+lo2LD4gdJJkALpf3RKJJ/wHhbrhL23aIjDaL9oCQXXyVlowk\n/nsUTdrVrhTckfvpMVyPc10H9FsGWnj5oSw5tz/iYVQI63au0lr067os4yiY\nXXsxiyxaRcykLo3XWuFbOAPezNPOaI2QQ0kbT3uBFmnukfYlTIpp9Lwyrh2e\nmr15Wx+B+hgV4w+JetaSEhzT8EDi0PmztotzMM42gDoZi6Dr1Z5Gl3lsPY0Y\n3hZY\r\n=T/5b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1pohBFm6bkYr6OckMQ0T5JwsZ9dxQTboxzs05MFGSawIhAL7V4Hst8xdwtlh8HpHIdFwvP83rSIcB1V9MGhIAz1v2"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c_1599282994919_0.9168835344462043"},"_hasShrinkwrap":false},"3.4.0":{"name":"valid-directory","version":"3.4.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"65d75fdf9d082132b07ba73a32e0a40258a3999c","_id":"valid-directory@3.4.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-7PaBwAEwo1LNGvHoSEn8H5ek6o4agAUFsixkBnjzrZ0Z5OC5PnVVHjebun381sD+EWlKtq1EYYWAcEcCArswTg==","shasum":"252489bfa36ac74f179402bb0919e0efc0797850","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0.tgz","fileCount":23,"unpackedSize":34032,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUx87CRA9TVsSAnZWagAAqVoP/ivNUQHUPwiq9KV38ZNo\nBVigsYn69CBCSfMJgF4WppMzUBwQvMVOwzMHoNGMOJXeu42LrpLR3/eujuJf\naNbJ2MCQllmMs/X5zgIfvyD2SVGcV/62m53qjloQI9S4jUUTH2S5brSNjrcI\ncHdKvb7sehx+9J3P0L9ohPBsy81oDWlAyUgSJQfnbMGuoywvekh4XYoN9I0Y\neAFGeFzaynAO34qithU5E5v8L+k6i9IFVmmQfgmJILYCLG9Mn8ULfOfxcwhy\n9EBOEkw6dK611Mla8DpYuVoDQZ3u85tYHgMY0EEJDEya7il2TQ5OiZVLam6R\nF2uvAFDpUkkZEcYshfjauwAG85UacBz4OmR+/XIzfxIUiokK+HErxgkUctcv\netgZIWdld7x89Fz7CRkKuZguFTdoOLuJbLOAdGzdtCCu4vk2fojigSl/zcH2\n4zMcz5tLED61P1E93VS6bqosLdhSD3uyStztvU+ZKE//CmNUPud0uUnL9ZlD\ny3mrD6pPeGcwlrRM1hvF7W150BXCml1szSuaTxW0c//h9hAcpHHouboKub4G\nurwuDsN9KLfeRyZEy9nu3nxxFRKhqguyuFgSAK0/07fkjx/dgZUu3FgtUVqm\n7O1TMp5OL4hKbvDvQCroYd9oyhlMbC3FudfYoNfkSvVgCLkXJnLmOAA1EO4h\nbV+9\r\n=iK1x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNuD4LUP/QiPoflP64x9JXINIleb7Iim2lURgPRvaCEgIhAOHGTjzfSMwljhZ9Xxlo5jW0du94pFPaeo39vkYdvoVg"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0_1599283002969_0.5166387110149322"},"_hasShrinkwrap":false},"3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5":{"name":"valid-directory","version":"3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-emICQKpLrRWQDokciplSki4NYsBseHHvZxnXhx/H45NaS7z3/xln/Q6IRd1IrD7fgpukvL7DoyGEYkPUmV5WAg==","shasum":"4fa7b58f6736c97e28882e3081f2ae48f834e70d","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXe4lCRA9TVsSAnZWagAA2PUP/0NIn+EfhB6DZvCBSlNH\nnu+aTIOWu/5zbdL0dRdjuhRxv1qC1ZhTMaY0oDTYBQ/rTSuCd3cQxtER76J3\n2iF+3exEAUfvtUfb7xPSidbj463OMVhaAzYNYGbjRz+YoNVmkfu66C47hEB0\nNfphPxVW4BXKAlHOrwxNEmPFUhJOaSbXPQunvdshkKke8n36nCvVDM35Eq+K\nLLbk18zG1sR83QyTB1uN5LNkf5+2l4UQmVNyOZllYPT5BXXsq80jje8gvTDa\nkzPNpFsxjtQiQ5aRLOTqN2tjppPccmBdeNT6gl0/JPLHP4eqRoEp55y6L47b\n/aCpcAMgirik6ez6EUEevfZvaU97idwmIzslabWOXLfRKhQN2012HMpvhtFg\nonSoGW2WDOD40xz+vRl+hWUfmHPX0CrEv0aiMEgvorvLsln47H4lzEYxxAm3\ncgkyY2YG7ccUtjvDqxIge2LZPeYY/PWnCSQeg3tN9/Wh3xB6Y71mR4YiNkUe\nIVnH7HzBTJc0bD0ItlyQJzcFcRhmesUvNW/jDFhDwiLdC/kBZkFssI3b9TIw\n0f0c1ZccwNfREKe8aGWYQACtGP+jZW+IQPc9VbtSQijNhsWGQhbUPCrreBc3\naiFXo81nBo5Ngt6aiojX3ykx+2Cx3BqYW6YfikEbK5W8xP0kjU7bykFSc92r\nzcSn\r\n=C0yl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYt5ZNqTvTq/nrcErF5+1Exo5UyOEGyWQbpqlE7gR1UgIgOw5VR1WxXq+CzOyunAMtFw5fmLevr0iiykYowZSiNJ4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5_1599991332853_0.5955533735268959"},"_hasShrinkwrap":false},"3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6":{"name":"valid-directory","version":"3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"62f3c4b9c9ff24133c8449fc29982424f72ac0d6","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Br9ss3RxZRJq97ewUqAMf38VMLRKxFMkzFeZCs59JUZ47QHSZo8teTVYPNrwqY+w3ROSjiFdzQSEtI4Uzx942g==","shasum":"f3b0fb8c52fd1b4c93858018033ac98664010b32","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXgghCRA9TVsSAnZWagAAxzQP/jwx+cbj3FCQhdJoqoPH\nY/WsCV6ZPy9S6AzRd6BMKvFHY4K79fILZzdi4EspS0NZPGam6AJ7pwjsqQuJ\nPlEeLoZSNbYjdD8qG5vF1GAkJhuS5r8mavj0DumCTgTTLOt+DVD6529xK1zz\nVgkxjxU++SAyg5pTLREpEbHzShPKbyI9BBVKJfvTiJUqGPDtjZ3a9WZ5sUYN\nUw3Ll/OxprsZydtw3+65cZQTJOeS+Qhp/v12/nMYS4VNLI/nzD5vQzUcc9bv\noobinThv0sjMdGDxpsa6h9TR4oyzHO8TUXh/2qmgCvdCMGJKPuHV4h1XNeqk\nRXhAmGAX39076Y+6kW+vL76OMvWmoXzR2/3+TAgl/E76gie8BQNRmiJadI/v\nHI1PiYCXBFZYBAIEZlyOovL/5EG4RWEJEl49utjuAjVIUU+9UB5g/Qr3I/5A\nC4f1XO8LEwmxUUudpHgyoA+Qm70qW0qLJ0k/uFbUGb9HbwvQujXIBuOTspqU\ngZgEkgzShHpqKStGxpXijH9F027IXYpAkDTSOZC5Pgjg6whpjz/ZqBVonn/P\nCYJMPDiIA/ssgkQX84Y63Hq8xZzLNXPC5pquwiW8JoJ/rp6o4ZR713qtfT1W\nb+7nBF8tKPbM6lQ6+XYmo2dGId62Cdg6GIEA/PUb3nAXSIaWq3fB0962Xqnw\nf05B\r\n=XYgl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUhCcqYZofyBVZg/Fl1dYLo0ohGp6oml2Kakdtb8pu1QIhAIloHDo0QcmhiZaiqp98O/4LmS9DPCjxAuVEjeVSPQ+y"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6_1599997985357_0.8880326103295986"},"_hasShrinkwrap":false},"3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8":{"name":"valid-directory","version":"3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"9bc855460153dbfc0ef3f50f4f91c4b66b648ef8","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KKV55BBvdH/1Z2jY8KAdGeDJ1fgdK9XX3fY+Wnvji95yhpehqQlRAqrwzl4EiyAn+eqEDET5Ke8tRBYMFYwW4g==","shasum":"201ecb3e81bdfaf5b678d7ab9c0a8afa9b92eab6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZzgxCRA9TVsSAnZWagAA7t4P/RIDS3LbcevpLjEe0aEO\nbDhx+I5/HDnIO/9JzT/SnXoMApPKWB1pBTrOTh1HDREUhOuD6jcd83FgbKGg\nhXtNkdh3EqhTMAu2L0Wt9QreuNL9WvkvfAn+47g82XAB06l9MihAni0YC55O\n486+sDkJJ2WrzTbU5MWbfxhus84sc0+CFoFpUxmZXxf4p/x+4+RHYa04/gux\n/lD8rwS9LVDaZgrvrbllVpktYVIyPM+eK37EwJWW8fYlzfkFrlBh4Xcj13dl\naoBoK5Aq11rcFaF3Iynt5rMS4PBM9VNvvPbjxVVQkGAA8LtKh39H05KulbG3\nR0Kg1XwwIzl2cSesGfBpDzbUkKIhFbMkGtpBVfGOoQm3kRKllyVQ7FYycM12\n9bjD9SCKfkdhrOdB738VO+/7ycNrGnesYxa8mYzwg2pLRI3yjQZVLXlDgIL+\ndS5OFKvwTUtdTDuR/GP5QCGRoor6KUAqdpDqt1Lxlw1yW6P1612sruO4cnRA\nSX+Knp304mvy0+cSrcYzyxTJ1b/AY4XpEQWG+EW1SLUjqONY41NGIo+n4DFT\nhNEZfx/VebgxFdzQ0bRu+1RHDjlzAJudDTMIcFHVIaH+TXUJdv9yDJi3qYI9\nD5nRzLbIDgbNsfOZZG+sp+GM9XmHm+dKKFQ+PGAu0v7bkESn7yNBYVg7eGR3\ntOSU\r\n=UmDL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT7nCyxGjcE3ZK5JFRVOmRDNogrnodrmFvVoMb7JbyhQIgelboIrnA6gwFBjvKJeUe/I4FKe9IU9tAO6/wFY7Pfx8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8_1600600113239_0.6985909180531928"},"_hasShrinkwrap":false},"3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa":{"name":"valid-directory","version":"3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"61bd427695c4f3516d89f49a811313072487fbfa","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-sDrs0vfzKgwJ69qF0YRG/WK5rcrIfJRxRoBFHOOrA0SZzzdnN+sDXQo2AZTePhGmHNDz2TCRPQkx6ifl3CaOiw==","shasum":"098c9725acc1f4ac4cc1c279d76cb104bfbc9243","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZ1ARCRA9TVsSAnZWagAAjSQQAJWDgOdqVC6UJBM39iI0\nOuhyFLn0Cc+MtIyTAKx2Ozivf7yfr3Xe1rJOy5v6LHBRo8BJ7mfaaCqSWaA8\nuNLmqDzuDil1KlTNykmyGEGmaG3yfMAr1O/EhNQnNPSuytpXpgV/PDfuVryQ\ngJO8/yYdWksP3GC279BwjY0P6Qj1xhaEMVuA4XTpJ2Hou5ul3h3kyAxMmOxF\n4frnHXkq4qDs+R+JN1VZfcC9jmWC6YhvwxKHQZr2XPwgVm51blK0F18qcdhl\n2l0BIp8oAFz5JBXzosS3patQP8OqWvPOLPjBP3gm6/6f6RVHBd9XdnUDVa8N\nk04jrxnAboRzIunOyy92cJ+PpuiAzzLZUXBkJW3tlxCFNt+2wDyyP9QngxMF\nsphyxRw9RD1VmD1FPyqBGiXgKvlH0LWnxLP0suHBlgUqocvKJQBe+xYAIgJ0\nSxeNd+9qO3yd+spHjeGRAWKsNzSknHREU/j9RfVOgYCyGhG94b4sz9qsNw8X\nIIy/v0/6jWJUoUBciKfAgBjazWT4e+2nOjmn7GnSFhTcLh62vD1vyo2q/g5W\nhNUMLCnOMLsJpJXo+OGegYjRsHpMlU1X3K3fM7ZgbiSTWx6MCUptMCxr0MJH\nb87DDnraJo9aQOPhpfRc8mc9eTC34Sh8sHb+dOJCJbuU6J38f50+S2yKnrJw\n4UqT\r\n=fWBR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAsVxVoQ49USbs5cD7vGr5toBWlineXgzFrAVOKXr7wJAiB5a0bycpjyykENgiun+xlMERKpTkeKdjsSNXSLKVrVxQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa_1600606224754_0.5899376467512698"},"_hasShrinkwrap":false},"3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e":{"name":"valid-directory","version":"3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-qDBs1tp/dsdqZpcmKxFdRaT38j537SA8mzDrVymbL0nqIbw6oLwsqRfNYBNPp6J9e9KxKolnmfGstCpsPcHdEA==","shasum":"7c278ad75aa99c98debac2654ae6c58ecbb70dff","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcHSUCRA9TVsSAnZWagAASdUP/2BPisbKDQsneKuaU94z\nzeC0NQnzqkxYYZ782ky7ZiObIetQcYhCa8PgaRsu1lq8oH4TKjrYxuNyM2yw\n0ciRJi8I8Bq7xw4uhdD3uQhXURPTZkahRb7JcnAMA8E5Hr7rhy1wNiD0YSTB\nXDyTvzt+0qKior/qpesBwfO5h/9lO7cGTuuP8cPIodu0f8OzZPwt6meH/7BP\ngUcTlU/Z4+cV5VtBQusDfrQMj+DOVGPU4QN43OW81a1pcuQEfh9d+47ztH0P\nqddlG1Ta8C58DC09fwkSdTKZZJoQTcv2eWsUavDFh+B6V2sy0OmkvB7x9yYu\nx5glU2fvWC0bS8/KRC/NrlA6ZdUiZ+JdBJneT63QqT3nk38JmR0qXCLfKQdo\nx428AHiGW8qeGuZDNAuU1uppkakZL1Srl0gx16vrRjsp0IN90EYiWC26PfjB\noDoxrWu7DzemY0UgJ9+8/Sh9wuC1gEdat3SgCdS2pRTcBULHKgJ9+m8EtGg6\nWA3LFWt9FOCzzOUErha1PtADaCldwEI4/kh7/i6GL6YdxkNOD6GXJJEq+Ol2\nAAWdc/NmDS1uk5wZ2Nj/1gwsg3IzQ490WwapswGqEXB5m/4ZGj3Rq92bYA+7\npT1j9RF9VNHloS+KaNCIGhOvHPiu5nj4m90ag2Pvx4lYTBYRpOuiYeLlzZxq\ngbTm\r\n=AMis\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUH3mxhlg7zqgazp0uiIN4VeE0CcU8r398jM8wSg9MoAIhAO32PpV+Ff+iYvFueNq8C2YZlUGJfr09qQfmqAFbZPjR"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e_1601205396455_0.3075221877736021"},"_hasShrinkwrap":false},"3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a":{"name":"valid-directory","version":"3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YgFkPKqaatloC2pXobUovE8dl9GnNOCWVEQGQQ0Dvw10kHZ8GjGiW6LAx47lFzBEBCwFl5ZPeAUHRLIhUhA49A==","shasum":"7eb045d8b49e0013d04a0f9b3e8f8ea2485d9cb3","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcJYJCRA9TVsSAnZWagAA4PoP/22E+Nx0Cw3yWtM5AxIv\nNdIAZuZafVE+KAujVJ+4VTh7ZEFiX/LtzXIolF2pTjxp9DZgWEJaCLSlczL/\nzC7r3x47Zl5u5zA0u1e6+wmCCG1pRdPNecBkaM15PZv+iGWNgeb8e9gGAcmt\nuOy+tJJWC9Ch6a/aFrDtgFaqnBEND6fnnsmBxXNfjFo3/NSwxZ78iw2r7swT\npVH4MUAUe2C2a1MVGZfSDqhd+jRDyU5iIkGhai80ZJObbsn4OLDeRhfa9+MT\nRUClJVXUrS98Za4IW3Bs+oZxQqZd2CoZ4tmcUhAX0MXahGECDj6bK+pgq36G\n/pkpn5XLgpnvt32s2xDKfF+Cbos1MEf5n2K+uAuUazKfSiUjSnLGzL/CknmO\nz6GSAbmegTxJf73wjmuDKxZL0rKUGwBEsJRRqD//q4QGRWRkejPocvgC++Xj\nf3fXlAft5o/U5x2p7VrGI0muTHsizkFWbnzekr8EsimbSGYSQ9IJ6iBdg9Iu\nqdCURY8RrccA/9tPF3p6a4toeFaJUWLhkN2aboGqUJtksL2nVt8Fs9ZsT4Iq\ni0z0oc8HZxwdxxj03nZWTaft2P/7HtXefQrc1I0vjDKSBi/jkJsPsV3c+vnU\nF9FGwNvHnmI8t1iJBn9hPH8O+IivmRHF8J6kvLVEidsoXY+mPUDbeQKobN47\n1uy0\r\n=wXTm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpMInxk3JeP6WS5bIUVj4AypvGFaS9MionBo3Oj2Q/GwIgfzugn6VLONYx1k9SOBVb9SHxQJtU3BSo6aMmu+5wZP0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a_1601213961408_0.2202611814696518"},"_hasShrinkwrap":false},"3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea":{"name":"valid-directory","version":"3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"a6087808bb15049ab2c24332c0c33eefd74958ea","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HENd3bgv+QxBNAtXtOWmfAUQLvYBK9iveoe+6liN3qyG8QEksjppxXXdpAS7rwQyVwPBfdsMVbV5Wi6YEoq4TQ==","shasum":"0a2e2c817002a5a8b1a6fbaec414461c173e2481","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeXykCRA9TVsSAnZWagAAuSMP/jQdJNP23Ei7wL4OM5xh\n2hFMnqwY6tK1b4TA48ZydChPrN+gLMODR1UNebP5cwtVv9hIh0XiKHRyDt1j\nDGMyh6lSymXqzBiNqo84/8wcr6CQ/iuXRaokMuCcflh/UA+YPutBNYMzqRHL\nH0HdPgHO5ajbZySto1zZJmbqp3GA8SdhRmxuHL8DiiDBP3MCQ7tyShVIJnrI\n/hmj9q0AqEaoprrogs9cjQAjfHrqB5uXy+MoJaLrvg0QG+FmkLklFsbqLHQ0\na6s8OSQfCtXOK89D/1Rwm/sXoBbYJP2Tf+oLbUBvlhCC2ban+aXIHTc12eEL\nInVgaFx2J+QWa+zyhwbQZ0ETY7SZZ0y9GuoVjVsiumKxbzFk5WssPupPUHpR\nVJBTIXijs+1OiH1+ovZlr4gfx9pOpRnONdoW3vlNP3yoja2VRfZKpiQ378k/\nAVJXPTXv6tFHgZ4KNjNptVSw8fLes9jrsqghj2Ko2xnWrCllAGCnq1Q1qQDJ\nlHm1YKfUC76Pf3gVHzvvbd0a73TphLC7KaHd0yJ1/AF861IVKva8LjAQoxqD\nyU/7X/MQF4Gl9uedFvmhoBQbvJ9FSxKWoxQ2UyMYJwsdNfrVvpgXVCzywQsB\nDVXOYPbf7rj2T4vjubCdWVjR8wraDpyTUksj8TiND1fJPhIqAiiR4rLVQws7\nmrvT\r\n=eObq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB35+Rlbukub3tQEgKppxueUmB9Oz0NC2VSUeqaopntLAiAwzlSgz9wANh8/WDimqB+R9A7RPGM5Qjk6lfFXehAvZA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea_1601797283769_0.5794316183901853"},"_hasShrinkwrap":false},"3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df":{"name":"valid-directory","version":"3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"b18681d96feb66c9b7fc579f49d63d8f4fafb0df","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-vOe+xJslt8mux2INBDNwFADpviiTfrMKe+jUNUEd7ENFfgYLwF24Xl1Ii+RcFYZDPP4VrUaMLn7oN6OS4AN/GQ==","shasum":"a10b7ae016472935aaa0cb1acbfedfa9adf6c6f0","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgtFXCRA9TVsSAnZWagAAI5UP/1dhn5RyINFnrYXqAKhF\nfNmt7xQMedXPurt3a+nhLIJ7m7P0lAhSeXdbUf2Q+VSOJDkIRS37/YmXhN86\nOkmtY927HCwg/JeW+jYAeNLxIwdCcVtkV9zMMkYPlSDUvzYaCBYw6Qf9qzjR\nWotGkFMgFxS2iPCLcVCgsNW61m7lChYtwPhOEsO0USIDwSkvJmObeHq32YsP\nYwrkeydcKs85DI+sGEXJDGpTf9fThOUgLQ2jKox00Vi50GWspKBARdUusGhN\nuFREPFM9FfR+uuT62UzuKAuxaX1hgaDZi+MvMDM1FowLSVJuj285zRWiAyL3\nx3frrMUoFJUV5g7/2Yb4Sq+hzXhfwOnBjC5GsUTZsbPCaMvvjgzUgZLwFLL8\nr8MV7tyXqFK13jeoEpP74VORoyGSJcZhthBSShXrPPvK+g9Av3N5YZHQPftr\nNNLdN0P0QZypoFq9yta/qjjNOX2uUrsOecDoyUPiQicb0DNdv+VMFV17InNX\nCvZQvVWasdfdPWuxdoNx5NF+HAmFbgKmP1yBWJjahDm2y8GcZOUQ+v7HIkEu\nrLjRDD6FxilmAX2ER+tlQwOIBFbvlBWPLiUIv+qkgU/01WFUeldvubyVwfxB\nZtfD6DCihv8tk5FXrsxBmgT1i2Ems5GQ+qSTXUHKVH6dAveHh/DL9z2AgxSS\n8OLH\r\n=fdcK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG2Sq4ZULfDrqv6tsfUFrnoJazu/KNrgj7KZ4tC1Rav5AiEA7MnPPV2HEcQw0huT42dMaYYURaFHWAiO8acUnqpHoxM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df_1602408790522_0.857028952710527"},"_hasShrinkwrap":false},"3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff":{"name":"valid-directory","version":"3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"051ea89cbaa36442f59eddc353c9e80d63643cff","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-7jdnPWVzqd73MtWsDVsG0dpGmEOPpTUwu6LXg+JZQz/13KZWgTB7WgnlTOp2f64T+mlqO+zWZ1NJZV0tipp0cA==","shasum":"e481f54bd1bbef26b1da190cf233782a4128d0dd","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfguI4CRA9TVsSAnZWagAArrkP+QHZ1RT2oIWrSh9QeQMc\niOpmHbqZhq8Q++xDdBcHyOtC/i3hKaID3hJS6tRgXslfub2eOdYXIrs3rwyp\nnqtAqZfSUv8WFrXykV7EMAerNFJZ15oKkXjbuN8jqfHx7IBmyZeiTyPm/zX3\nQl2tYWsX7K+9nspOTA+pA5ncyx5Du+Kp2tgvgSB5sqSWIpTTgIRv0OiAzxZt\n7pg2AniJg9wwzqispsO0U912X83Ou3yJVsfGY59ZqI8fl9xaqObw+4h1zK62\nQAEWM+NOmQ5Lw7zSd+z7digLmqOPvvfTypaGY/ITWgihgwd7YFq+2JE0P1p9\nhAh4GsMwJBGfQQjXfVGIP7QG4y5IZKwJvJ0MeHsE2doYp20sa6znowvgjb8E\n0hAdjJHyRi5V7U/Rj1Cn1x7seJoQSToN25fn1Nw0mliYJgb1uQD33GBKxdkX\nl9ff76uIHcTYtmdxP637ws3/9SAbE6FRfYecXaPJmjGbpbVSA/y8Y/xM86QE\nBat8B+J8c7CMvgqs4ABTV+aU5Alujp8MfMEZBRzgicxuEABZxLPTzqr7XayG\nqHz8pjFHU87PMEdj5SxpHXnbFXnMpHiOnJ6wi6xPrIQmB4drwIuFe/iBQoyn\nij3B6EsxRWhqiL4rokhUWdicau7IzTa4b7qyUzGtom81skwXKg1gAzwiHWKn\n/vEu\r\n=OMk2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICKhr/TUlef06hTwzLNP6EtCTzdn6bkAjHH1wwaQkbbvAiEAuh6q2Vh2Uy91qWM1L4+O7krbJmRMYnD3cLPYkKNlpgo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff_1602413111917_0.9968011988410144"},"_hasShrinkwrap":false},"3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21":{"name":"valid-directory","version":"3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"21411d4c275237a4b64b415bc3dd6e2d670d0d21","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-wWHx/I4aLC2MmR2aILVE1BoFDqJxVBqJ81TVNXG+PtcnkOBBJjj2rkgFWr0Qre4Ocdrzs7dRbIbl3RXTv747+A==","shasum":"5bf19871585aa2bf83732cf75cc3fc861555e628","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjBXQCRA9TVsSAnZWagAAbtwP/j1EyNqhc2E2jiyEFcm4\nkwFwbHI0kqYKivOBmdLHCPEYawvh2En9mrlc5hYlP4iYzCZ01hhp9LzsG3A3\nhvxVH57IYruC1YFjDdVtZot/cE/dX5EKH9v5rSfQDzj2m8zcCriZVxn1vjpK\nZE0Fg3wQwRKdBHVvD3j61Hl0+QpIj1ybh/Jy/DU0tqExPCCmVFP3B71geYps\nQ+YU84ugBUPSEbvzbkWCxHIZsM4L6/snWh/OaFe3H6G16jUe4TjE9eUCkQyN\nC5Da5PEbnNqF40I4cbbE3h4SNMgHn5zZrN9fawD0G2nEnCcWWfB3/JTfQwpU\ntQ88RaIB3Tigos1qyK89GIxWEPmyzROmW1bVes53JSLt+0p35yCpTb2ygPZp\nkYbRLIxd2Y+lr/iaCu48CI0wNvXPlitPmBzAVoKdnIn74hinwf1gwCS3ACHO\nXb6WXaLuklUaa6ZwFvS3yt+XQQoSbb7BCTZnfW8F2+0kxKxW7sB8voj+TJ0O\ndKt04aHrS9VmUMOHN3uBVtPiURNYnm4wTHF9kQT8onp4st8qvsCYoSuaFTuz\n7MCQGakA0FAhRW5ajyy7dMnwbY05Yq2FeG/Ym6sPr15xQhypBnsq8V9df7V6\nhmHz3EvGbdXGIX2pws4bSW3k3a9olk4nFpL5UrNi+qITVIxX9WtDoETvlW5+\nAevb\r\n=J6Tf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICtLPPBDJXUJdO3d8yuV4er1qfCsofAzrjd+GSvxpM1SAiEAjax+H5sAORCqumlq/Dl/jWQ1XsWfUpmTnWhFgyF7iDE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21_1603016144161_0.3676409687441049"},"_hasShrinkwrap":false},"3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9":{"name":"valid-directory","version":"3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"345eecba6fb3c81c51eb5a016dba01dfdcb50ab9","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-MGVpMiYKM8yknKeqgPJTAW1ImWYT7CT3b8U6sCOHYj3J6vQW5/KEixB4XKIyQ/XVFtAl1393PqyslBzKf3H/EQ==","shasum":"f5b69fd268e90c609d2a7ee01f532dd3e446b30c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflVpxCRA9TVsSAnZWagAA5z4P/jq5V9pk5jvoHTLevjyT\nWzpD8uSpvTgyKdfPLyYHT9mI+QrWqD/9e7wV147FnsYcEBnS23gxLmO5iZyW\nLEmCsM1UWNfKc4/ySOOzj5PqqOh0Hn2REoLtqwlhJ7z/wPm0CyIanqu5dKdL\nfw9LqWgeaSW1yMK3qvnQ6jbOLQxQ8/5OYsF2zHLO9TUvwK6jRWQyknJbDyPN\nu0K1xW28MtZJCEHKLIbBI+yoCxSzevdz2a8WrrDCM5aMQANB5btk/gxsPypg\nMafHRVMNdqepqQlxTtOu5Fcje7AuQtH0ybKhtgiTjW0bjrFIPfY3aPEhhLVa\nJg+/lwH3lPqa61FiIAYctz4PSAMF8EKGVB1H0O8qXrpiFKo7QMOOwm4z5DaO\nOA0KjJqntCONGCNKGrF8nd9NmdpknN5ABwykz3uAfTQtpNtJDUX0xMhMKcnX\n4iDSpddjou+OBsVKv+Fyr+8LDbaAtOB2qm2rIxx2IhAzGq62jmSVtIq/r2ao\nvB/Zia+tMikic08ooeZP1Iy02OaJqKIaIuVSbQb4HgWc/VGK0lJM2fj3fwnu\nKeIfJR4Z1PNim4J2YcUsef29SGhrHXc3fN2zbs+Nz5/ytq/+8x52hfj6Hd0m\nsC5HsIpKYidj9psGbET3PBxsW71fMJjv09UQ5vgCsXlDFSjV9Nq3xpWaQzdJ\nsuFI\r\n=/x9W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDy5iZnewLsEI4o+Fg2rnU7ubXAVHFJVlEJzwa57QaPwIgW4I4M3wRt4OfxcyFMhgTR9OBm0lmu6/pTPPa1mcbe2A="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9_1603623536600_0.10937276297372667"},"_hasShrinkwrap":false},"3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a":{"name":"valid-directory","version":"3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 13 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 13 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^4.2.0","readdir-cluster":"^3.13.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","@typescript-eslint/eslint-plugin":"^4.0.1","@typescript-eslint/parser":"^4.0.1","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","filedirname":"^2.3.0","kava":"^5.12.0","make-deno-edition":"^1.1.1","prettier":"^2.1.1","projectz":"^2.16.0","surge":"^0.21.6","typedoc":"^0.19.1","typescript":"^4.0.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"47282752c93aa7802af6761b7640c9b62c0b421a","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 13 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-8CpYSM8sEuXO+jzwzbqKq5s5tUoNGVYZe9x2l+qZAZ4UBhNwrdrIJcgHi+vSOY43A8NuBjGd2HxllHeePkZzLA==","shasum":"8311a772b58bded3829ec7b5b5f03c59342258d6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a.tgz","fileCount":23,"unpackedSize":34089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflXWGCRA9TVsSAnZWagAAHPsQAJ9Lv4NhPd5Fr56wZJ/V\ndVRqEX7P9IbT2j48c1a1XCTsfwf6xNs10RNppBBsodBSy08x3YfuXIuWT5mG\n5Px6S4PP2sJVySEdcf1ohX7qm6Q+wRWNR4zyDfnelZi19dWuNo9pDMS2H2e4\nfjpnuXYEH46PVz20/PxzhJjrAIilP+SD5biPUMDPhDK6iIyFKvAY1cGpr9rc\nK/jUU6ualbox3e1uK4ZzEtxfN+bWL9qeLOSTKv8x1Z2Y0kn29Yl6g40SqDFn\n/gLE3HfbyyphDfwHfSfKRikie3HAGRdLvVf0plX5GVQlq8lvA0McFQBlmbov\nw2jBx9sPvpaePBVxGS+I4cwBNZAj2ShHFruj5wg33xqGAu4ykPABvcFcM1ji\nRAKyK0Sz68Z8g4wnwTqlpppD30hjB1UZdpomYLQn5D3gjmu9zgukoHW01grH\nALhVM8zyb4vdf54sW0CTTCJaBtJwfZw/LobBNfPsQD+mefO9pOsVJMsRZGMI\nqeLm6uzDkTJG+dK7JsZL1YNLJOsxJ+6EklVUcOnBGn4ubumFMpgn0TMNy8nA\nSNr++gz5CHXCVuscRcJfM7QY2g5jl6QyWvyAAHxEzE7EfRz63Ps43Sl9JyPG\n7l/+srOP5mkfUnipF9O2cMyzNp983ACw7DMppc5m3ZnneZMd11hPNvWWVKkq\nf1iw\r\n=k4Xb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcIllTYBwe1fjAVu6HlaRWVCPK5nCD5QpLO9lEf1YmQQIhAI4PK9+UYY3wK4QyPnMpkWjcvt6X9PgHtCol92zFtIDh"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a_1603630469588_0.42244880462490486"},"_hasShrinkwrap":false},"3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979":{"name":"valid-directory","version":"3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 || 15 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 || 15 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14 || 15","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^6.1.0","readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.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","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.2.0","prettier":"^2.1.2","projectz":"^2.17.0","surge":"^0.21.6","typedoc":"^0.19.2","typescript":"^4.0.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"d02208f407f17b798b26b6013458dff13affa979","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>\n<li><code>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 || 15 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-77k54y7rxEz6hLn+BJ+8wDLq9xgMNNwwy6Zbb5Wmwrzjl8NxatcDpzHMyelxO8qEqE7bQdefZiXKRjltfTVLwg==","shasum":"731a6f500fa2a5c4631191d7ddc305e0afa1adac","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979.tgz","fileCount":23,"unpackedSize":34305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmj8lCRA9TVsSAnZWagAAVr0P/jW7k1JEzxzrCIrd27r5\nc6I6trRBJr04zRBWk/PbvPXZu/s+cZFhImiH0WcNVpLBS8jdjrfPm/EUh4oE\nP66amgA7nmcYt36dQJJWMX7OZqck2lc2TL28cXM4YXsJ7RN6zVg5OXvVg3mO\nNeLVvfLduWo0OtuWLZuJxo+yGLony77HUdUjMNnjxiKz4JG3z7TBQStOEmkn\nJlBWcoot0tU+g3Kb4FYi1iB4BQajiOSZierOfrwZ64JAtXxvwkM3aOMz45e7\nd1JOvd5OmU2yi9m5yjkh5PPbsx5u03MlTlPVaq9gHfxHdV0TLufa//pgNtQ6\n0ggHwEeXLrbHCveCX4T6qAftuNJxasCJsdtDS0l6Y5AvrOIqkAiVSOMl3ZWP\nweakHnkKTr3kIhc9ir9Ev/DmZoz8gtVU+12QOgwWehFS3iHPGSkRDB3MqUAp\n+8qK/1aRFMIXWvS0hwAESlnojVdvz9cJY2ChE1aEQqgyAnVZn+I0EV/u5TfP\np+s+oplP42NhJwBk5CSSWoWc2oIHoxPGogFdHnl2JJimIHCZaoFjG5pT0V2m\nLKaPlmo+L0/PoUM7i8Q1uAYIj9dYHJ1EgPx+syKLLxi/pLbEqt6ABga/2OLa\nMcCwFNNKpypEApAW+qNKx+6/xIWeSGlphjcX47hb229FcgA05D9Qolrhjc9j\ngWxN\r\n=Q+BF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDO8pdthk/LTWl5uIYLR04usy+/K8SLFQJdJIuraVvzjgIgAICGHrcmUyZO9SJ1e85XEyj5jU6b/s8ODbnYCTvVwKg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979_1603944229149_0.05417763732146952"},"_hasShrinkwrap":false},"3.5.0":{"name":"valid-directory","version":"3.5.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 || 15 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 || 15 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14 || 15","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^6.1.0","readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.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","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.2.0","prettier":"^2.1.2","projectz":"^2.17.0","surge":"^0.21.6","typedoc":"^0.19.2","typescript":"^4.0.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"d02208f407f17b798b26b6013458dff13affa979","_id":"valid-directory@3.5.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-UqfMc1/zfKRFqNKwmDSuexzDsxPJGRIEDjTZ9r52IYfZBYbrKjIb3KAj6RW9J3VhOAUt//+aNf3DTqYaLY60Dg==","shasum":"e44d45642f29ce42e7530730044acfe65096b459","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.5.0.tgz","fileCount":23,"unpackedSize":34248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmj9cCRA9TVsSAnZWagAAgdwP/1Df7n4n0528Rk9ZjP52\nZI6lmU/k3YZDsXjkWzuZMeumnprF3oMRQpskuuP/hSXvFdm+UI68jH797H71\nR49bTid8ZZ10WPgQ8vn3gNkDFHc1Z6UW0I6spQzj1d5RQjx2YHQhC9GmE8E0\nNqcugwhFi7FhRlyVxYdz7bOwNtZ9fU8ncbwMkwa2ipL2OxbUrYbpxGDvdrIC\neEncGCRN4lCEm2eeCkBJw3P5c4jLVJNNsceH7HQYzEu5LD7s89iW1Esgvzri\noQJYGSTNfhgn5vkc27LWdS8Z7IaDFvFAjHQXMrtbYIrnCiQ2avNHJ/MyDU19\n/bPUpPEUD5G0DhF78C4WnSF8RC0hgjNsbooiPqdHwDL0O6UfP2D8i2vIf9cC\nBI7gz71Si4o/Y/E6bAqo6gU2RZ8i7ksOi/jrh3LNQWYHq2JMZsle9Tss3Py/\nRLTrbEniBVGbNfwr4U3zTOj8Kum9klSPoMj3YNzuTaCCtCWBfO2bpI8DakcC\nwUBMq80SXKHLI+fSIQRgULBnxF1n058Ng3VgfNcOPbWaaC7WnTwnOw8o1RVB\nRkE0irG2Ei8UVFeGkAqBAplhXeNQAgATEAMr2nfAW2ildfS9HBkWF9Kx7/im\nC+F9M4jGo7DfBVI7+4r//2nU+vOvb4+Uf3NZYqVqyQZkR/JcHNHj4MOVHoFK\n7EEM\r\n=65y1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeSIZCyq9GHDHUf9XqYwsBI3b0fkPbRMqesHGAXBtYPgIhAPFmLb04XI0p4z2paC/t9gKFOMxtgn9hL6JcVWmH8PLQ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.5.0_1603944283911_0.32536485731122267"},"_hasShrinkwrap":false},"3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6":{"name":"valid-directory","version":"3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","esnext","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ESNext for Node.js 14 || 15 with Require for modules","directory":"edition-esnext","entry":"index.js","tags":["compiled","javascript","esnext","require"],"engines":{"node":"14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 || 15 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14 || 15","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-esnext/index.js"}},"dependencies":{"editions":"^6.1.0","readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.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","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.2.0","prettier":"^2.1.2","projectz":"^2.17.0","surge":"^0.21.6","typedoc":"^0.19.2","typescript":"^4.0.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-esnext && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-esnext":"tsc --module commonjs --target ESNext --outDir ./edition-esnext --project tsconfig.json && ( test ! -d edition-esnext/source || ( mv edition-esnext/source edition-temp && rm -Rf edition-esnext && mv edition-temp edition-esnext ) ) && echo '{\"type\": \"commonjs\"}' > edition-esnext/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -Rf ./docs && typedoc --mode file --exclude '**/+(*test*|node_modules)' --excludeExternals --name \"$npm_package_name\" --readme ./README.md --out ./docs ./source","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: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},"gitHead":"db8c062a2365d4b82ad60c3e9b5f2155ff130ea6","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/valid-directory\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/valid-directory/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-esnext/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>\n<li><code>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 || 15 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"valid-directory@3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-R0PirsNsnlHTYZXP+L+j8BINcLIS0st1+Kp5LWSqsR6hNJB7Ik0MppWnDur9YuanLVo8Ay9HnkYrQVgIy7eUXg==","shasum":"a32f942fcbf166cf896901559ca0bada8d05c7a6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6.tgz","fileCount":23,"unpackedSize":34305,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmkWBCRA9TVsSAnZWagAAjtAP/3cAAMbPZ38aiDxrDFq3\n6DDWIr+uwllSz7/O0LunZ55ApRqErdY28px1SQ2RfzeYxDHFSAoPSCKp4QTu\nFnFq1ySlFLDbmXRi6CzRPlSrKUpk0PKQ9/jmRDcOumsahLNjTjMKPcWkCQz8\n3KUqNhpGGJ20btbADvlAiR6LIeIz6mZWQAVu4entvr9eU3iH2hZcOdLTLl0n\nHghZLJbaDlXqDxj2FAuiI9ruZTD9lPgPsE5Odgw1B6ReyRlqYQ+a+0ACfCfj\nlrY9sQXTThH6ayeqq+AI/USgLdxQj3fG9Z5sfadV9oIgqNYxV/XkAV+JJbBn\nQhhgdEFkpEnBmLlCIxpSNvDX0n5WpTGhG422ee83Vg7KQV8OiyIbZgqscDI6\nCUtNgexiS9LpjFJD30/x7yhCfJhQr+KkvCyw5scv4EOnoVOZ2J+U6liEGV5z\nf0dvQ7ybEc801VpEHY2OYzh4HITGqk4CUbs+AEPYv2nsdayn8L2LZCMR4ReS\ncBn6uWia85+r8d2h/HehXp+ve+AOd69LCNBL6U1PmcNSTD6uqzae7HR8WIWd\nORUqhycFhNpHdKadr9xFoLjRmiukgqMf/t7rePuyzZM20xyINtOQSjoII7Ac\nXqKNnu5E5Sjd30XV77d7U6tUq83a0Jrv5y/5EqYWY4AN9IvilqhjIYAqjvjS\n2hWt\r\n=yNos\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuXe6uAkmHORmqacTfyRjekjaIcjEtpi33Y5CjicuSsgIhAPPJjDvtGTBF0HAPnHTxWFb0cpBMkN0Nu0ob6hx2JEPx"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6_1603945856752_0.6548566648497158"},"_hasShrinkwrap":false},"3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298":{"name":"valid-directory","version":"3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","es2020","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2020 for Node.js 14 with Require for modules","directory":"edition-es2020","entry":"index.js","tags":["compiled","javascript","es2020","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-es2020/index.js"}},"dependencies":{"editions":"^6.1.0","readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","@typescript-eslint/eslint-plugin":"^4.26.1","@typescript-eslint/parser":"^4.26.1","assert-helpers":"^8.1.0","eslint":"^7.28.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.2.0","prettier":"^2.3.1","projectz":"^2.18.0","surge":"^0.23.0","typedoc":"^0.20.36","typescript":"^4.3.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-es2020 && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-es2020":"tsc --module commonjs --target ES2020 --outDir ./edition-es2020 --project tsconfig.json && ( test ! -d edition-es2020/source || ( mv edition-es2020/source edition-temp && rm -Rf edition-es2020 && mv edition-temp edition-es2020 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2020/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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},"readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory</code> aliases <code>valid-directory/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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-es2020/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#11th_Edition_–_ECMAScript_2020\" title=\"ECMAScript ES2020\">ES2020</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 14 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>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"797e8fd694c43462215cb49db480e6a38d387298","_id":"valid-directory@3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-fsfdaB60avl9V4FZyn/dnk099j1i7qaMVZgJ4Y5zZ+Yyf3HUuWGhY7UIMCFv3PgLMCiWvmbxb7FP8dAZk5FPNA==","shasum":"5c11a538e52ef4c8b062c43ce151eb21c728eda0","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298.tgz","fileCount":22,"unpackedSize":34714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxutVCRA9TVsSAnZWagAAHZcP/0B1ATn8QrVjeqe9dNrQ\nq8FKvp0xGSCPyLzxnhNbFh6smkD3ZOJYwMosZgU11qNIB6vCOIZzP74eGyUk\nNlBzdbPYXlvgtUSNX4uEQurpkj7xqGu56WvLxrNim8V2iueuyHZysKqmBScd\nFp3BeY/eVD0BLcivIu/RAFC+HEpV3A0d4o6BRB2qPSmGpdW2lae5piNWyg+D\nQGgdp+/8BU0WiWaafq1cZeAX9zrTkFhjq8/50Vb5pippBmbPIoZGAoPbzbB6\ndsOPsPhRREuzWWqHSfepgopz4u3fpeMfJswdcKkzNpIuEFgPBsjbzubrcVn+\nbfjugKmiTVbxCf2nIhkRHpSXmxSkvI+SSKWMIGcXBUtpBOZPdfQ7sHgB0Ijd\nko2GrOq5qiaBwM5ktFvlMHQ5DQj+8DzHWs/jOcJnsNgM2rb1HkKvfjCyU6Tq\nlCuGCx9JLXN52GnkGeZRhzKSPqaUwmqKkwYlhH/lbvNhrxXxfGlxqNc0CYmO\na783u6C3/TSCUll2vldFpHkgSslf98lwOt6SnjN2dbK9Tsu6r+1DWTfy5ZKN\nkeFfwAuuh/Q4F9e3sFS9cguiSS8rKrTZbxvAM31zC8TyrMFmaMeCqn+rlGaO\nJj8F2wBjv0qbf0RX2rQF5XSnFZxD5OsHfox1YGaJOf3SkKcQBbbWfajC9P0L\nkLg2\r\n=proY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRGMaPmMXWW8oiAnYmHd4kpHk+BA3Hh1vKrOn0d85G0wIgFFf3EkD8PMxUAu3EQSVVqJgzFmos2sLxxxAGT8Z/v00="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298_1623649108895_0.5249269104423535"},"_hasShrinkwrap":false},"3.6.0":{"name":"valid-directory","version":"3.6.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","es2020","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2020 for Node.js 14 with Require for modules","directory":"edition-es2020","entry":"index.js","tags":["compiled","javascript","es2020","require"],"engines":{"node":"14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"index.cjs","exports":{"node":{"import":"./edition-es2019-esm/index.js","default":"./index.cjs","require":"./edition-es2020/index.js"}},"dependencies":{"editions":"^6.1.0","readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","@typescript-eslint/eslint-plugin":"^4.26.1","@typescript-eslint/parser":"^4.26.1","assert-helpers":"^8.1.0","eslint":"^7.28.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.2.0","prettier":"^2.3.1","projectz":"^2.18.0","surge":"^0.23.0","typedoc":"^0.20.36","typescript":"^4.3.2"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:edition-es2020 && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:edition-es2020":"tsc --module commonjs --target ES2020 --outDir ./edition-es2020 --project tsconfig.json && ( test ! -d edition-es2020/source || ( mv edition-es2020/source edition-temp && rm -Rf edition-es2020 && mv edition-temp edition-es2020 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2020/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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},"gitHead":"797e8fd694c43462215cb49db480e6a38d387298","_id":"valid-directory@3.6.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","dist":{"integrity":"sha512-ePSDLIYDXrgsixIuammTDikdiu1E1FrUFQptR3JzB1Hp8C+SsGkTpf2sr/C4av0GtXkTST0Ie6kPrnreEW4EuQ==","shasum":"a4afeaae5235d4ed596e4a440040b18ca6375ae8","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.6.0.tgz","fileCount":22,"unpackedSize":34657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxuujCRA9TVsSAnZWagAA8+YQAKHw9ObV9FkiSMqItOg0\nFCSq3kY31vHywKzV4z5d+Q0iXA7VAaaa3C2eIBHs/0wkQogtM7IAJgw/zyyf\nv2k5GvYN1ywVLrW4eWEgzHto61tDIJdEIAcEYfxAKZqeFesk77JgUnJp2Cck\nsQgIqc4rMJZQfJEyWSbhsrT7tQVnZZD5hk/JgRs3UWA7uUHMpEbRyIalP7hD\nsd3EzX/3Oct26vCq4QaQCzlIxR+OoSChItggbQ9tyWSq6mvJ8PW6i18ZOahT\nDDvAfdFXu9NshxDcaCpXNvmDFxS0wG7Dyu0d0nKRYEqm4falKhwfpYdtvWe6\nSSPAi/wfCGeSAYgD0EcjgQNGnOp2+KLGoxLtWFMhliKgN/U7CKRHe9HMpHZe\nmWdNSuczcdkfbwG1KFn3BXVKdcSQZ9DDZ/oarwHqjZ6U0d5PLg6Xv4zl9mes\nqZn23BWZlDNEnrzn7s250gh9krsRZFW5cu8fSHTieGlUVbDE3pqpciNBaw+k\nb2lcBgqxxK+K3ugD1vQnD2qPt0XDeHs8HrYtZ7KaDePwkYnMh/BtwBDUZZoB\n4mZTvtxsbaCAUyv35nB9huUOlajTVoNCuaBv/If7q7Nlx81dygSs2xa2dMf0\nNYEwydLaXbdvylEbChBX2RXDZxGcBRjexSJKr9+YW78kdRCMzUlX72wQfdWL\na4p0\r\n=mjEt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh/SbObl2FUjE2I64scQLh6phP3iSUh+icPv7ppwqVRgIhAKumDbRvVSn2yn+LpyoM6FIt5L9C5bJsxZ1dtyXQtSB2"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.6.0_1623649187813_0.33518234949247105"},"_hasShrinkwrap":false},"3.7.0":{"name":"valid-directory","version":"3.7.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2019/index.js","exports":{"node":{"import":"./edition-es2019-esm/index.js","require":"./edition-es2019/index.js"}},"dependencies":{"readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","@typescript-eslint/eslint-plugin":"^4.28.5","@typescript-eslint/parser":"^4.28.5","assert-helpers":"^8.1.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.3.0","prettier":"^2.3.2","projectz":"^2.18.0","surge":"^0.23.0","typedoc":"^0.21.4","typescript":"4.3.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2019/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83","_id":"valid-directory@3.7.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-+njZw2IadhlEoCefECGBFxsuRH9g1k3NF9bh8kk1+fIF28qL+xFS9MiWUedtJdP6KoKSKMyCcdyIEGC06U1eyg==","shasum":"731de575417439483116f87306fbad79fa374cd0","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.7.0.tgz","fileCount":18,"unpackedSize":30927,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAF8lCRA9TVsSAnZWagAATSgP/3VQ/HKAc75oPVBxr7zC\nK3HYkC1yjJ/gafFLKfp+xHe/ZGtnRihtIcuPjibjj/Lw2iltD2u9vMJbsTvC\nFo8mvCjl427WR6ZpBdWXD17eLsaU+K4RotrKm2e8vFzhiVkfQ0XflP76pVk3\nW/Gj7wH9zAbPG7OEsMowG6hbep01pF5IZP+r+/Y2/G8rTACcPF0QK0AGIbyR\npnY6/T6tqGE/NiOWctCnGG1dCiCTRC6wdb5cDC++R4XvY26yocfGFMEF673D\nrAy27ew1qWLEQJDU7JmonlOJhoo+Fdq70fPE4TULXM8MLAfxQzSrqO+jQxLz\n7Pr7zGMrDIlX5Zclpq6mWFvjTAnY/cVT9FTVoI0FoX6xPEGTUk0LflNUs/23\n9L2wdcgS5Cui/zRgXJpySCn4nqLLp8j7Nu5JWbOr+jjA9h+/0vTsd2yXAzbd\nVWXglui80a5CU2fUeoXLDZ1Wic9JIGMPhoGd5y0CS3GvDgcM/t3bNucm075q\nTv6A+35ic5zd7+ieyDea3aL4OaskdbQ7fnnOX6A1F0aqJ6ACP/47DbGbz3bx\nazHR9OCdn8T2ztdy2LuFuoNm6fJ2U/hTW55tV4Pion/yfnpGmS9wE14hBfA4\nxAW5eKaeAt81MR2TwTjk3YAf2xjnp4KxyAWAcnEkS9PphEZu24/bQsuon47J\n4j+n\r\n=iO+W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICUYE2YyCStWK5rYvDswA/4GIkRCUapmaLA4x4RVp5z2AiAQW7lPZULxK76f1Wxx75PBZA5gXjiNfdbyQbpq1ikBCA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.7.0_1627414308918_0.31157998303447476"},"_hasShrinkwrap":false},"3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83":{"name":"valid-directory","version":"3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2019/index.js","exports":{"node":{"import":"./edition-es2019-esm/index.js","require":"./edition-es2019/index.js"}},"dependencies":{"readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","@typescript-eslint/eslint-plugin":"^4.28.5","@typescript-eslint/parser":"^4.28.5","assert-helpers":"^8.1.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","filedirname":"^2.4.0","kava":"^5.13.0","make-deno-edition":"^1.3.0","prettier":"^2.3.2","projectz":"^2.18.0","surge":"^0.23.0","typedoc":"^0.21.4","typescript":"4.3.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2019/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2019/index.js</code></li>\n<li><code>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83","_id":"valid-directory@3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-bqEou+jQz70lx1tKvHF/As++ALANmN7t+vHdc0S+82wE9tQd+ppp1GkzwvW1PjZlobslyVawjtebi9KV70eHTQ==","shasum":"b01915cbab53f5f9c2f9e5cfee874dd32d37087f","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83.tgz","fileCount":18,"unpackedSize":30984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAF9dCRA9TVsSAnZWagAAQT4P/jEWzVBN8hhlYSzV8LKQ\ndqiZi1lTtYXxLHJBbHB3yhxg6bA+KKFGfcC2+XPkyzgwLCAAzrTG5TZBmfHE\n/zTVwRGSYtodSzyhWyY802rZYPXr51EZD/6Y3wK8B71cgOUg4hK3iYnrmkrE\n8/JHi+OEmwwEtDOtl/R71WWe1ddjBDh+lWqTJR+6KzNlXcG08+NI6wGOjGHz\nPrFoMSvck0++J9OOZIlbCmpjlN+xPsKRzN0QG95cvB9CclDoSkHEbOs8bv+O\nlsbaEM++XPcrc3eWo4YmrWazbAnwrKxrezllU+B7noHch8OnquToJK+Z748J\n3zdCdHtWFVLjZRA9NMNeONF+M9opQJu9gkF2bEsHJfuMgKr2Bh58/qIEsHD5\nrkfj4Kea1YAmCDAGObfqajbCJlt1zfgceTybXug4f8Y2Li4ruXkAH3jRkfyV\nsxUvAm9X3Md8Y3273Qd8iwqt7dHRVzXW/Oz5KTGBD6H4TlmvGEzPWlo1o5WV\nyy6+ufRIkXefVsylwIBm77aqcOUr/RgAcDU2W2sS6tz3iCzKIUH/jr9UNH1j\nbg1ofswhiq3lL6DQL0tXOVKuEnbv5Yrjro+sJXT9dcRz7t0rs99O9RLVIJWQ\nCGKHiVhqR2gL8cL66ulW4MgmLmEaxBfFEpELmEfSjwJvRVnXRAZoeV94A31A\n+/nz\r\n=gLeN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBV60wYOhFW0kRqmnx3DJcwlDlUI+DkIHDHGBY8FdrCPAiEAschU2Dtt9/hyV8l+uyeM1+bKKVRIqjX7t96OgWqTJu8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83_1627414365543_0.0011291181987542753"},"_hasShrinkwrap":false},"3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c":{"name":"valid-directory","version":"3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2019/index.js","exports":{"node":{"import":"./edition-es2019-esm/index.js","require":"./edition-es2019/index.js"}},"dependencies":{"readdir-cluster":"^3.14.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","@typescript-eslint/eslint-plugin":"^4.28.5","@typescript-eslint/parser":"^4.28.5","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","filedirname":"^2.5.0","kava":"^5.14.0","make-deno-edition":"^1.3.0","prettier":"^2.3.2","projectz":"^2.18.0","surge":"^0.23.0","typedoc":"^0.21.4","typescript":"4.3.5"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2019/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/globals.html)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2019/index.js</code></li>\n<li><code>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"75e5ba792cb25163210b765e8f9421f2914ef32c","_id":"valid-directory@3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-okS5G0O9E7btI9+BnAJlvJIzh9R81KkXLxXgzXHJPebq1CjDWGQGG0P3x8/i1GWXAJgQdahO/uBAkUze9L/UhQ==","shasum":"166152ae44eb1a3aa5b836a607b35933b80bcd85","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c.tgz","fileCount":18,"unpackedSize":31178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAoHhCRA9TVsSAnZWagAA8GAP/RZdyK8YTXibZBQYTTed\n6kDYeTc2ESmLB/pxRbuaA2V7rF1NORKy4c0mjDkqwbfyyq2Bzw44A9rKyL9M\nwvquw3gK+Dy2Fp7pdWTYv+u56Cbl4XieCdiq3gFzfJB9fZkbALknoMgT1HdO\nSmdb4xQJNOxmu6AeIBtuuMeASKvXik2puRXZ4svZYl2oAp23I8dPkm5Wfd6P\nX5b6URX25Da/02UimjKCAPPYWJGpDnVpMPOdBfizlECICOtNqtMIgyO9SZ3P\nriUDmr3MIyXY4ALAXiIGWI0zgW9C0ENPRMIHOYcWifh+HBq6w7AbhvlKF+/1\n3pqeDAwGT/1gbCqvBGb55Y+nULxOu2c9GoGT6QX+SkJM7O7xaVmoYE4RejXV\nYMp9+5lq42/cLte7roUOXlPZAjSgR9OJnKHDT3PkrRvPYBGXFDI7TTMgc8TA\n2uqZL3GtFwj6l6sHNm53EgK6tT/N4fWU62ITCVqFFjCWpU+BP35vqOPsyM4F\nkGCdclSwEpEXm72JlpPNfvD86DcuPALxrIri3EsfauMhxuv82vEtdUBqHGhK\nOGJ5+RaeQaN9s+MZIcfLDYKtXEAjMmAczo34o/m3cdWbAY/kPtw5PEJp+Ae+\nJu5orCpEhvj5zaJpqgpkCPIgA+Er3gBVwQnm0qJw6vGpxwnIv0kzZDY0JuNt\nHP/G\r\n=jH5B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnvjWc7pBlTNpk3tddxaOabBxyqMgfGr7q2NIGrcYc5AiEAqCkn8Vm9xn2j3xttLFjruzmllOp0fUFBzeRYd1oyQEs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c_1627554273000_0.34636992500216746"},"_hasShrinkwrap":false},"3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e":{"name":"valid-directory","version":"3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14 || 16","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 || 16 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14 || 16","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2019/index.js","exports":{"node":{"import":"./edition-es2019-esm/index.js","require":"./edition-es2019/index.js"}},"dependencies":{"readdir-cluster":"^3.17.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.19.0","@typescript-eslint/eslint-plugin":"^4.28.5","@typescript-eslint/parser":"^4.28.5","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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^2.3.2","projectz":"^2.22.0","surge":"^0.23.0","typedoc":"^0.21.4","typescript":"4.3.5"},"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-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2019/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/valid-directory\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/valid-directory.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/valid-directory#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`valid-filename` package](https://github.com/sindresorhus/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2019/index.js</code></li>\n<li><code>valid-directory/edition-es2019/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> 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>\n<li><code>valid-directory/edition-es2019-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#10th_Edition_-_ECMAScript_2019\" title=\"ECMAScript ES2019\">ES2019</a> for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 || 16 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e","_id":"valid-directory@3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-rpyZboCiqIZ8TK/zXbEkukOqe9EiG1tED2KZckGsqOXfVp0pwjY245SQACDIGPkntUPQ3O1qFeCBJJd4qdkArg==","shasum":"dabfba83d18b3bc5988acc86159d15c1a07ae7e6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e.tgz","fileCount":18,"unpackedSize":31429,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFP8CRA9TVsSAnZWagAAIyEP/A1H2g/gOA+MOatDHHaY\nBkvozGfLA4UkFnVdYlcquzgMCEUtz05cC1dD4au9a4qH0YsWZpW083sQVUGy\nW9khyQHoEhPH9eSO5WAgla97Rniw8NvB6jS2GEJuYVkyDJHnCuxGn0iM7U8J\nJHD9ZpKJ8HD0snRALFavvRIKjBAIdUz7JdCpldkZFqFUfXJp85flCjOdof2a\ngOi0+t4PxZLU7LhuU9GEUEIlrIlmeUFxa5NqX0I+9ufxrhFeg+RlekHIb1g1\nNMiefOluPVzHmzE+Q5Jl21eCod3HRWj54DRKvkK1iupOPEo1UNKfYMqY2EJG\nSf0j5Y44J5IxUkNxNvuVN8+itRIc4guD+g3lJ4jBbExSL1AnmsOmxX7xyd18\njSY9shMDglTJPtysNeq7l53ckT8NDfHIybgr8OS4nIs3kdQZVp8jLof92tfj\nqateQzD9DB4915lAdi3p15vbPDLyT1hsfkEEhjIPTt6WK2gTd4Ez0LHxfu9m\nzLrKTjPvqZ+VX9SDVrA2pJcgcKbIaiS3v/mYn5/l5iMzRotF0LfQOLKob5gZ\nyJb0KjZev7Q68lRfZFoKYMYDUCPWpo78O5kY+S9IzG7Y26g48wKT1Cn2/5h3\nvKTBO0GRabvzdwH+b65rMoClzgXLKcT/Jr4UeNKHE7kr+CqY2PBlwW2JVGLu\n6I5C\r\n=ETuv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICrNYBNc85mGdYW/NucGBGQgv762D9JXrOR7+Fj+z6heAiAc7h31lKitkDMRyyaHSCNqJiu+O01y73GKNTa4tJFsgA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e_1627673596376_0.03207058566719101"},"_hasShrinkwrap":false},"3.9.0":{"name":"valid-directory","version":"3.9.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"MIT","keywords":["check","detect","es2019","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2019 for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"edition-es2019","entry":"index.js","tags":["compiled","javascript","es2019","require"],"engines":{"node":"10 || 12 || 14 || 16","browsers":false}},{"description":"TypeScript compiled against ES2019 for Node.js 12 || 14 || 16 with Import for modules","directory":"edition-es2019-esm","entry":"index.js","tags":["compiled","javascript","es2019","import"],"engines":{"node":"12 || 14 || 16","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2019/index.js","exports":{"node":{"import":"./edition-es2019-esm/index.js","require":"./edition-es2019/index.js"}},"dependencies":{"readdir-cluster":"^3.17.0","valid-filename":"^3.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.19.0","@typescript-eslint/eslint-plugin":"^4.28.5","@typescript-eslint/parser":"^4.28.5","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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^2.3.2","projectz":"^2.22.0","surge":"^0.23.0","typedoc":"^0.21.4","typescript":"4.3.5"},"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-es2019 && npm run our:compile:edition-es2019-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-es2019":"tsc --module commonjs --target ES2019 --outDir ./edition-es2019 --project tsconfig.json && ( test ! -d edition-es2019/source || ( mv edition-es2019/source edition-temp && rm -Rf edition-es2019 && mv edition-temp edition-es2019 ) ) && echo '{\"type\": \"commonjs\"}' > edition-es2019/package.json","our:compile:edition-es2019-esm":"tsc --module ESNext --target ES2019 --outDir ./edition-es2019-esm --project tsconfig.json && ( test ! -d edition-es2019-esm/source || ( mv edition-es2019-esm/source edition-temp && rm -Rf edition-es2019-esm && mv edition-temp edition-es2019-esm ) ) && echo '{\"type\": \"module\"}' > edition-es2019-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2019/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e","_id":"valid-directory@3.9.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-/O+xAMU3AAQBwEvxKNOKNzMAm6M5hWHJgWoA6M/aghZxg+Z+aq0tGlXMhHy88AEJEPc/winj7HqwHVOVtW9n9w==","shasum":"396a33d937be3af4104aab1e1eb3124be73f30b1","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.9.0.tgz","fileCount":18,"unpackedSize":31371,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFSuCRA9TVsSAnZWagAAuGsP/AnD8Rkg53PWtKrdkNU+\nsy/orRouczya8DmXaBo7QiCha4vD2B+l7uYDA/xuott6S2/5MXABJRcVyi4a\n5ftSVwjt49BSR8E8UKrarYs7pgJDBRjyMrsh4PeulRmV3czHWlLDw01WxYaP\nrLum+luact5SslTxRSXQCimCkL3vEX+x+Bmypn0jDXOXve36CL6ckHHYQw2g\n8N6sgd+JJZe+te0vnb00ux/XoeyDjCPXhzyHJvbh2H6G7XIUiHvSvcFZrpLu\nrXXPsfA5J6lNLXQLCtgETq4z+MGSkxadzl2TO1Mqd4HDt3IWXYM78MegL77h\n0gK5E1fdwpp4UTNvhXMWHo5ox7Zqk5tTaKM31Y6/yl5l7aXAnvoCm9p2QemR\nn6Rch4pC/bmwMy0xq6BTm2YkkXapnBz7TEJjRXegzd79zBLGxmEqWx5buwFD\nH2E9CW9U2SCJq7K0xmOpdyJDy5t7hfsAtPcPyCLpJjexpLD+FIPT7FrUcHfe\nazuSY9erzqWkWJ69yy1V414wtPHc7FJIjjtjmKZRcKWvt4k5EOPns7KSpBK5\nkgteIt4soBiyK7wFhEwUzXUdsoybASbbVf43pOwKF8pi/5xhgWf/D+Pnf2+k\n1+GOe/OZFVA30fLajcjgjNStHVe3CbvMR+8l5W8yFLIKzki1iCg9+Pn8UtDs\nLmYn\r\n=P1/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpZaRrX1KTrA7hzqi/MO3QzBskmS3Wd6SltssFeEFsRAiEAg2M9LAd/p7pH1tHbHC2qLn4kP6nQcUm+oPmmy45n4Uc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.9.0_1627673774221_0.7202353004386519"},"_hasShrinkwrap":false},"3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c":{"name":"valid-directory","version":"3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 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}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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 ) ) && echo '{\"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 ) ) && echo '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"96ebf0da58c2ad82db10007866253b71e2d9ba5c","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-/h0aCV5Hz9KYzvbAxV2iau+ptJrdhbdjvRiSTlD2rHAx2YwmkSrwezLoHyMc1nnIUSCWfzf7LxnrjLqULprGWg==","shasum":"1ed93144186900ce0b53f7d4133b4b0c6d698a27","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c.tgz","fileCount":18,"unpackedSize":34607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp9PkEvM0q3GKYygWkIbbuCWbvO/nM3ajGiUFv+Pni5AIhAO4aEEArOD9X4uP5xKgSrDKz+qGRVb40OpD6jmMssDQs"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c_1698659456943_0.6271593857483937"},"_hasShrinkwrap":false},"3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df":{"name":"valid-directory","version":"3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 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}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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 ) ) && echo '{\"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 ) ) && echo '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if validation failed to execute, `2` if validation failed, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"e3243fe13035af79e79832dd9f4b44442bcf44df","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-gI5D9RTcgsMZv4LyFf40h1Bm/E2SFyeE6/WwKtZtTU+n+Wu5Zjye2X9DgsP0pOILuS6Qgydre1mmVTKMszff+Q==","shasum":"d86eb37a801d2761f5a506d9a5db708b14ff53d2","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df.tgz","fileCount":18,"unpackedSize":34607,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDHlSTfkZKzoJryrRNWQWjavLnEQr6rn7Y1vMn7HvGKAiBBcZqn/0sC0LBfQDHi/L+kTeZ55VrkmBDJSls6MSc1ng=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df_1698659593167_0.47006017968183755"},"_hasShrinkwrap":false},"3.10.0":{"name":"valid-directory","version":"3.10.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=10"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js 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}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","readdir-cluster":"^3.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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 ) ) && echo '{\"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 ) ) && echo '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@3.10.0","gitHead":"e3243fe13035af79e79832dd9f4b44442bcf44df","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-W+fhYoNxy3H7u1xLWcfshw9D+HgxmtuXXhlxcNshkpKCmxOJtKYLg+RCvE/cDyCOfY93kJQtx9K7WZoi5AcVUg==","shasum":"390e4dbc2f0fc4a8cd45bd8cad3b7a498905ecf7","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-3.10.0.tgz","fileCount":18,"unpackedSize":34549,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDv03ZGSOMU1Obhehx5CxDZ1nghtx0V5KVzBwCdyNOzNAIgcZqR/jnt9VXBZ2LoXgwx8wWPGq0dqfvmHo+5Pj+ThmM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_3.10.0_1698659659021_0.9710532725168439"},"_hasShrinkwrap":false},"4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf":{"name":"valid-directory","version":"4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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 ) ) && echo '{\"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 ) ) && echo '{\"type\": \"module\"}' > edition-es2017-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"c4b68c4c56e58c24211028e71d672a2f1b930adf","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-xDRhD870hB7p3rYzlV/FTETeS2f1bt29s6lqEFH0TxlfYjw8A/7r5rZbjfS0ag7nMI59WiNTHKJXqh1oYL9vbw==","shasum":"b6610df298dbb6182f20890e33ddb78386588670","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf.tgz","fileCount":18,"unpackedSize":33945,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdvFOxArKrfPxjqpyjwG78ZJld4KQ08r2f/p3Rsck7HAIhAKqQAbhoZy8U2lYsOMII3RvBcmTqp32wPcj1xALKM8JH"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf_1698669141368_0.2360817962408459"},"_hasShrinkwrap":false},"4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851":{"name":"valid-directory","version":"4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"f96a87b7a2e4503c31cb53c519f7a2a40b66a851","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-c137mf+BsErXe8gamR1xwTEhfWyte8LCv9/zQlgmxPDEwp180u6KWwHeqm7dL6z3VfBi6hl9vbW6pq9ooUm4Vw==","shasum":"677662c5cd0575fdae73f40568758288abb77604","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851.tgz","fileCount":18,"unpackedSize":33988,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHL7yvavC7PVHres4tbE3F4tNy/sr8arZyeTquhGM1bHAiEAtLvslvvfavUNOvgtbh1GN5QVs2xZxmF7T6daBUQfqBY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851_1698669599939_0.06448299667941582"},"_hasShrinkwrap":false},"4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379":{"name":"valid-directory","version":"4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"25d5ed57c2c5c4ffe767bbac652115a603639379","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-07tPjKks/w/yZDvZjbJ6WGLmYpuiZlJhIlH0MTgFCxzQgOdWDVItmo2Dhb5Lql1V/m4coPw9Fv32YhahcztHpg==","shasum":"44d6fbc886fbafb06ecde7dc885ba6aa3a60f89e","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCrV/BH3pTEMnV7GxD+SFa3k9abB9RaFoM2B2Rh4g7sQIgTV0xsT7uK7YYiCsCbuIL0SMYNtW65ymmGxlhqafHj/A="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379_1698669819336_0.8225099193935943"},"_hasShrinkwrap":false},"4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f":{"name":"valid-directory","version":"4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-eIE/JDe2ergCsYGvOQqq6fMp/ppO5+PA2PjVuVkJbUrGF7wgC/XJvyN7i6rttFprvTJA8rGYuESrhvdAhuQj7g==","shasum":"f1771762ad25a1a51fed49e8346d7deb1ad8d5b6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5UhOu722eSu4UjOBISsb17i20x+Z2VGZC6/+U7umRZQIgPw7FVXV6gubQ6X58H98rN7rWkF9RrEASggrcQYUshv4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f_1698669957849_0.8819425530366227"},"_hasShrinkwrap":false},"4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c":{"name":"valid-directory","version":"4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"281bd2362cee44d338ee17bcc6b4039f104e590c","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-h/HYIoDoCDfX2jy7GSqWdm3YxB4RWoU7O5aKZ9MZlvnJ6D0K2ApQLOjhp7sq2Mumy4h8PKepNtCNs9G8+BOZqA==","shasum":"65c1b3c5b68e79c617830c6d439300c1acc55fad","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERrAOFUPWKMdv0pn/E6eyGRpMDol2UO0Q3p1eT1rH2zAiB7N9G58DLziXHGBKsIf52LqYOMinjtvmH5PXobA3dwNA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c_1698670402945_0.6034938164039765"},"_hasShrinkwrap":false},"4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec":{"name":"valid-directory","version":"4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"b0368fdf6c80581f6470cc13845add2aa56d6fec","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-3Cd5D1NCMGI/DnwFn53vOc2Pg/6KZwYmwLJ/bmHuR6DqnduToPsxUlCAMwu0o08Um5hG2QqUVQ8zEnzX0Wk0EQ==","shasum":"5794933c7b5115d5c707c0b58c1d6406a2458813","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFZxvPl/kRfCTkmoYaD6cXT/JETISXzuGJyrW047kvnmAiEAlafNfTHLzSidCmG81xDNJQXJoIHbKAQpOkPyLVcE3gE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec_1698670678750_0.7959428381000071"},"_hasShrinkwrap":false},"4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f":{"name":"valid-directory","version":"4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"a91fcb0699341f106192c86015257a3371aad67f","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-aLVGg3Hd95iif8G4hqg6JRXd7tk1UHSZmx4V2OdrtVGgvEWEqtdXPLnhKAFYp7NCDGi7RpbINBjHWrrTjziQsA==","shasum":"48ea78f228f0bb791ce7251adca10ebc5c3aee4d","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAfBgZhp0jvA0O6myKAMk8Z/G6D7pLcZ0omtghla1GaQIhAKs6Q2x/soc1+JcpyjjwNjg3fe+043HEB4gIj/SMpg9w"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f_1698670838287_0.23106085521191755"},"_hasShrinkwrap":false},"4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72":{"name":"valid-directory","version":"4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2017/index.js</code></li>\n<li><code>valid-directory/edition-es2017/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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>\n<li><code>valid-directory/edition-es2017-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against <a href=\"https://en.wikipedia.org/wiki/ECMAScript#8th_Edition_-_ECMAScript_2017\" title=\"ECMAScript ES2017\">ES2017</a> 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://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"fe2c5c0f218c527472a7dfeb3f77dd774dd5be72","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-DeAnw9Vc9iotN5/xcvuoU6cUu4fDAKIgJ5bLjOsynBhuYhhXu3VMRiqoatX/8IaG6FBHrfsA9Eh6NWR9867TWA==","shasum":"a7156749e971421c996216e5375fa6ede8096fa8","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72.tgz","fileCount":18,"unpackedSize":34013,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBL5Dtla6929dkUsdkFODjD9COejTYa5ScuBTE/3jYRUAiAN5pk2zqhRUJ7ub3L6W0CWQGXfvy/PljwsFsGWBf/1YQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72_1698671111270_0.5401380855457494"},"_hasShrinkwrap":false},"4.0.0":{"name":"valid-directory","version":"4.0.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2017","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2017 for Node.js with Require for modules","directory":"edition-es2017","entry":"index.js","tags":["compiled","javascript","es2017","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2017 for Node.js with Import for modules","directory":"edition-es2017-esm","entry":"index.js","tags":["compiled","javascript","es2017","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2017/index.js","exports":{"node":{"import":"./edition-es2017-esm/index.js","require":"./edition-es2017/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.9","@typescript-eslint/eslint-plugin":"^6.9.0","@typescript-eslint/parser":"^6.9.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","filedirname":"^2.7.0","kava":"^5.15.0","make-deno-edition":"^1.3.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2017 && npm run our:compile:edition-es2017-esm && npm run our:compile:types","our:compile:deno":"make-deno-edition --attempt","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:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2017/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.0.0","gitHead":"fe2c5c0f218c527472a7dfeb3f77dd774dd5be72","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-tHJOm8Q2N1H4t57Dkt70K0C51goU+1U60RiEvW/uvp6XzmVhjEahX/ONFyP044+nB3BKyGmuSRotHUnZXPHufg==","shasum":"9e41f24c2f43d1897e220b79581cb57b3485fa71","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.0.0.tgz","fileCount":18,"unpackedSize":33955,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAk/G+H6G97mjj+atZn/G/Fcph09/dEDdiCGD5fWm8I1AiEAhI+AelJJZKnDZ27mF1L5HxxxunxFhMtWr2DlY1sMLms="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.0.0_1698671291159_0.31583055699531504"},"_hasShrinkwrap":false},"4.1.0":{"name":"valid-directory","version":"4.1.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.10","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","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","filedirname":"^2.8.0","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -Rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.1.0","gitHead":"d6745db78f610849203fe1deba3fba9ab13aec83","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-1bFS6NK2eYInrjLA3Qclw0HK8JjMMkIbUIHbYahZoDz3GfITOt9V77MMogUvtSVtSHLLpgl6KnzADdKbJ35How==","shasum":"2fda28f29810f848e0e48cf78d313c5039151065","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.1.0.tgz","fileCount":18,"unpackedSize":33686,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDixkyRcU237AKiW6YMSlSnqLxrPlhb/xX5zfC9XDPfUAIfIbWGZui/GZG3DxaO7Q96VzkyD5AbPXB8hOtNDpwkSQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.1.0_1698930183427_0.8061506693918503"},"_hasShrinkwrap":false},"4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83":{"name":"valid-directory","version":"4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^1.0.0","fdir":"^6.1.0"},"devDependencies":{"@bevry/update-contributors":"^1.22.0","@types/node":"^20.8.10","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","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","filedirname":"^2.8.0","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -Rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -Rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"_id":"valid-directory@4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"d6745db78f610849203fe1deba3fba9ab13aec83","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-YJyOciLZvh0s6Td/eHWdlVdQFIglzCjZayo9Eu3Zt2xNONrNCqqM22EHQoj0+aIB2wiTldjL/M36oMgTkfPiqQ==","shasum":"887cff0f1284a27732ad0639e10629daadb0dd31","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83.tgz","fileCount":18,"unpackedSize":33744,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbRt4i+QVKSe+UZUcjkwy1St1cQMn+SIRacvK/mtbFsgIgHBvo+se75mO+rnOB2juOlnNgBmZB+8aPFG7sHJkb1iE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83_1698930190223_0.25712955784526703"},"_hasShrinkwrap":false},"4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a":{"name":"valid-directory","version":"4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.0.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.11.0","@typescript-eslint/parser":"^6.11.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","filedirname":"^2.9.0","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"31a0d85ff5fdcb7610663f21c732f605ad88842a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-EGFYMnBmoTiXmQ7joxhzXmcGkvwDMYmxO5n3XIQgqVG57l1hHxZtn6ZUasJrybp0Z+mgZFuvJDJ/8VWxa6n4cQ==","shasum":"f0811e421f8c1c280d0d8ce8da7c48935511dd21","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a.tgz","fileCount":19,"unpackedSize":35523,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDm/tIxYsc/TpGV8GdnzRwBkkyI4+QH4R2C1rm97jCoXAiEAim6jtN+oLX64RKaTSBUl0KBpAXHOjjwpfFlFt4CG4V4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a_1699962464911_0.9713100010763251"},"_hasShrinkwrap":false},"4.2.0":{"name":"valid-directory","version":"4.2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.0.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.11.0","@typescript-eslint/parser":"^6.11.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","filedirname":"^2.9.0","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.2.0","gitHead":"31a0d85ff5fdcb7610663f21c732f605ad88842a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-H48H7Jbw2zLZl4DA8QLkT9HsfgGHg+MJi1mOfj+eybe2VhElHsD/0WBaKMBDJAVFq+Pi8w1leiYITYAKZtg/FA==","shasum":"24b2752d7756acb8b9966df31cb443b5d2cbaa08","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.2.0.tgz","fileCount":19,"unpackedSize":35465,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPGi8ONDrakxbeqe8xlSSX6uv7iv6P1dwRVrDn3rG17AiEA2NEZ6YkZTwKhbxyRl3yp/Y4UKWTFUBI4+2DmTYFBjD8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.2.0_1699962472867_0.890967793549134"},"_hasShrinkwrap":false},"4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6":{"name":"valid-directory","version":"4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.0.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.11.0","@typescript-eslint/parser":"^6.11.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","filedirname":"^2.9.0","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"0eec651bbfcd9561bd93fc90db9eeba1b85aefe6","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-IUyo1SYc295lN5RePV0cho/QeJxiJ0tfHOE5PBWgE9H9GPV5KjkKgOukXLJ0ZPrFrbqnBMshyH5DoPw9+HmvyQ==","shasum":"11a0d7ad59edab681ce9287bba5fe60cd312b6e3","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6.tgz","fileCount":19,"unpackedSize":35523,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFO85dOOFSnx8TWddFVFA6NuDgfiZffPWFTKMfI3MMp6AiEAhVoCAB8uTgKHzAoBptdn5YIFJ627+qSB/gT65ikMCEI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6_1699963997514_0.5957528352158084"},"_hasShrinkwrap":false},"4.4.0":{"name":"valid-directory","version":"4.4.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.1.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.11.0","@typescript-eslint/parser":"^6.11.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","filedirname":"^2.10.0","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.1.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.4.0","gitHead":"2f1ae560aab57923e5397f64403dc2344b571bdb","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-RdV/rBBN6MZrksSUc2Eg6lorVJRaS0aN1JM7iXQj8jVRdWQizrb10l4okxDtBdzudB2EFaDUic75W09SLrFl6w==","shasum":"b1d35f4ecc7a353d93d208ea3c97939d2d3dc2a7","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.4.0.tgz","fileCount":19,"unpackedSize":35459,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC9sF5KI1gVlNAgvs1uOHSReuCDi2kHJhVH3vAXnzPThAiAKvUDBe7JAnYZoIzSjZ91viGV0gM9WmLvAVX1fxbmkJg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.4.0_1700035637426_0.7292307458465186"},"_hasShrinkwrap":false},"4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb":{"name":"valid-directory","version":"4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"18 || 20 || 21","browsers":false}}],"bin":{"valid-directory":"bin.cjs"},"types":"./compiled-types/","type":"module","main":"edition-es2022/index.js","exports":{"node":{"import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.1.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.11.0","@typescript-eslint/parser":"^6.11.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","filedirname":"^2.10.0","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.1.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:types":"tsc --project tsconfig.json --emitDeclarationOnly --declaration --declarationMap --declarationDir ./compiled-types && ( test ! -d compiled-types/source || ( mv compiled-types/source edition-temp && rm -rf compiled-types && mv edition-temp compiled-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"2f1ae560aab57923e5397f64403dc2344b571bdb","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-ca6fwC93R2oBLHDkiXurLoHTkSm2pIJ26f5iBScx6+R54Yzdk9ypYMt931mPIv/kK1BPwKhItw7W1wErM0TX+Q==","shasum":"d5a608c2c7f3770e58fd8c0a16cce907c44fa416","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb.tgz","fileCount":19,"unpackedSize":35517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEvxBJR/W8nFLANQmyeSQPrOlZDtz7eWhYuTXtDtxbQ4AiAjh0JH3oJ5emPwW6Yu1YBfHBBqofQgr000zC6s8AUkRQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb_1700035641555_0.7118290674778376"},"_hasShrinkwrap":false},"4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228":{"name":"valid-directory","version":"4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.2.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.3","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.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","filedirname":"^2.11.0","kava":"^7.3.0","prettier":"^3.1.0","projectz":"^3.3.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-types/index.d.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled Types with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</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/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"662a2f7f0ba89f21ba8924e559dd774c33f20228","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-loAjHrtDusxwBCQcHMsbC9H9fRhRhTLbgj70HcqJgzE8n4oOFmUUuWbqa2sP1rg/VwPGL2Lkkfn4s/Q1szZpfA==","shasum":"4191013269383c192c3dade1485f7765029dc87c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228.tgz","fileCount":19,"unpackedSize":35962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBfsAhkaQQxPMWG/LsXxIeVk4NIw7AvxOFFe4d3jmc48AiAb78AV9EOvuVaOBxti/bB7pq7vYo0oLr6EXQpEFK0Ayg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228_1700575122105_0.08408247790295054"},"_hasShrinkwrap":false},"4.5.0":{"name":"valid-directory","version":"4.5.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"dependencies":{"@bevry/valid-filename":"^2.2.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.9.3","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.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","filedirname":"^2.11.0","kava":"^7.3.0","prettier":"^3.1.0","projectz":"^3.3.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"scripts":{"our:bin":"node ./bin.cjs","our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.5.0","gitHead":"662a2f7f0ba89f21ba8924e559dd774c33f20228","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-yeutk9gFbc233bLVOKx3evS0K7+ty11MybTHsqtjAKvrj/+v8z4Fd7ewTtT4OTPfP4WF/Ve+XDqHNxrta5dlpw==","shasum":"a87efb8b1dd228a74548c0c533af3de90f6961b6","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.5.0.tgz","fileCount":19,"unpackedSize":35904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF6qOIQvAbSKVWdlCqRQIfme1I1Ii5KYo736h8zu0n/RAiEAg240S+ecCdkMgVeGfb0+atBynLHKVLhdEgQrkesTFIU="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.5.0_1700575133623_0.5291085695942839"},"_hasShrinkwrap":false},"4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31":{"name":"valid-directory","version":"4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.2.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.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","filedirname":"^3.1.0","kava":"^7.4.0","make-deno-edition":"^2.0.0","prettier":"^3.1.0","projectz":"^3.4.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</code></li>\n</ul>\n\n<a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\"><h3>Deno</h3></a>\n\n``` typescript\nimport pkg from 'https://unpkg.com/valid-directory@^4.6.0/edition-deno/index.ts'\n```\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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-types/index.d.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled Types with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-deno/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code made to be compatible with <a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\">Deno</a></li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"172364478ebe39b9f4781c8b3b101358b4f25d31","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-nPI2Pl/f7GLw94h5PytEN/22Di4XZd2tUWUYC06FDjB1vkQ0FeYhkt5If/A2DSSnuFdL8XzepIfstbIRzAt91A==","shasum":"9aa4ad0b15ce94c014d456ccce582c5a0b7230fd","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31.tgz","fileCount":21,"unpackedSize":38601,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqKBduQo4cZSty3ZOuxGDdBg9pwtGTftcyms8RJ67oJQIgP6wO4pDgvwIdZylyr+3mJzj2Y5qyOQNKkZgQuFzwXNo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31_1700865780761_0.4132573798814285"},"_hasShrinkwrap":false},"4.6.0":{"name":"valid-directory","version":"4.6.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.2.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.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","filedirname":"^3.1.0","kava":"^7.4.0","make-deno-edition":"^2.0.0","prettier":"^3.1.0","projectz":"^3.4.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"valid-directory@4.6.0","gitHead":"172364478ebe39b9f4781c8b3b101358b4f25d31","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-RmyZBz+X2IkJ1TP6VRYQm6CHQTTydLWv3h1PSdJ4l/MJc/5m9LGK7NdkJCfDaI/I3fHCMcRPiPVBD5HYOlsKYg==","shasum":"841b504c6e95e288edda67b4118e5bd456c9242c","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.6.0.tgz","fileCount":21,"unpackedSize":38543,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxEoeOeWnkE1MAJGPOYW4hrqqbSxyUTyyL81sWB/J1sQIhAKnuLHokEBNEhLSAQPp0PmyqlA33mFDyXrCjhuVftmTf"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.6.0_1700865788631_0.6373014485023547"},"_hasShrinkwrap":false},"4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13":{"name":"valid-directory","version":"4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.4.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.3","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.13.2","assert-helpers":"^11.9.0","eslint":"^8.55.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.0.1","filedirname":"^3.2.0","kava":"^7.5.0","make-deno-edition":"^2.1.0","prettier":"^3.1.0","projectz":"^3.4.0","typedoc":"^0.25.4","typescript":"5.3.2"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13","readme":"<!-- TITLE/ -->\n\n<h1>valid-directory</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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<h4>Install Globally</h4>\n<ul>\n<li>Install: <code>npm install --global valid-directory</code></li>\n<li>Executable: <code>valid-directory</code></li>\n</ul>\n<h4>Install Locally</h4>\n<ul>\n<li>Install: <code>npm install --save valid-directory</code></li>\n<li>Executable: <code>npx valid-directory</code></li>\n<li>Import: <code>import pkg from ('valid-directory')</code></li>\n<li>Require: <code>const pkg = require('valid-directory').default</code></li>\n</ul>\n\n<a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\"><h3>Deno</h3></a>\n\n``` typescript\nimport pkg from 'https://unpkg.com/valid-directory@^4.7.0/edition-deno/index.ts'\n```\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>valid-directory/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory</code> aliases <code>valid-directory/edition-es2022/index.js</code></li>\n<li><code>valid-directory/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 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>valid-directory/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-types/index.d.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled Types with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>valid-directory/edition-deno/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code made to be compatible with <a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\">Deno</a></li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/valid-directory/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<!-- 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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">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/valid-directory/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\">view contributions</a></li>\n<li><a href=\"https://github.com/sumitrai\">Sumit Rai</a> — <a href=\"https://github.com/bevry/valid-directory/commits?author=sumitrai\" title=\"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/valid-directory/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; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</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":"6d5b2304e631e33edbfd900f35b48b9428db2d13","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-d42yiG+vEAajvwUXWdeRUpqmOa7NAhVgYy/hJS1BfxZJM9vZNB73+9SLQGztjlbOseEdWRC0iN7qtJpk/XLyFA==","shasum":"9b35361c989ea9dc1868cc12431a2658f54da556","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13.tgz","fileCount":21,"unpackedSize":38575,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWP+txJaNGlwnH+JDo7T9iG2zYYu0A6IqUXkfc/25CggIhAIjyZ12hENNnInqTevG0Rh2cbmKRjB6R1ggNKQR5iVn5"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13_1701828477915_0.45997287181497915"},"_hasShrinkwrap":false},"4.7.0":{"name":"valid-directory","version":"4.7.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","license":"Artistic-2.0","keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ 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":"Sumit Rai","url":"https://github.com/sumitrai"}],"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.4.0","fdir":"^6.1.1"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.3","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.13.2","assert-helpers":"^11.9.0","eslint":"^8.55.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.0.1","filedirname":"^3.2.0","kava":"^7.5.0","make-deno-edition":"^2.1.0","prettier":"^3.1.0","projectz":"^3.4.0","typedoc":"^0.25.4","typescript":"5.3.2"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","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 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: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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.7.0","gitHead":"6d5b2304e631e33edbfd900f35b48b9428db2d13","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-DGxoViQM+cV9mZf2mGrMfcTcZNd5uJ2dOOitdgt1OmRjk3dkvLRilUoEFpeVtSgPga2xHtQzB9rcgZvSeIDh8A==","shasum":"a1b55b00d1ac5213ad7e6a20e5eb1e9a50646092","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.7.0.tgz","fileCount":21,"unpackedSize":38517,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+T3Xbky7plHEKFMtpyHq1Chf1R04tBs0nmxeLnLgn3AiBrB+HiB6+ARL/HVHrPJYhP/tnnLb/w98c9E2mIeYZ6OQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.7.0_1701828602743_0.8328825284091186"},"_hasShrinkwrap":false},"4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a":{"name":"valid-directory","version":"4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a","license":"Artistic-2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"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":"Sumit Rai","url":"https://github.com/sumitrai"}],"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)","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)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://bevry.me) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","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)","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)"],"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.5.0","fdir":"^6.1.1"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.11.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.3.0","kava":"^7.6.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.0","typedoc":"^0.25.4","typescript":"5.3.3"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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","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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a","readme":"<!-- TITLE/ -->\n\n# valid-directory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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 valid-directory`\n-   Executable: `valid-directory`\n\n#### Install Locally\n\n-   Install: `npm install --save valid-directory`\n-   Executable: `npx valid-directory`\n-   Import: `import pkg from ('valid-directory')`\n-   Require: `const pkg = require('valid-directory').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/valid-directory@^4.8.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-   `valid-directory/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-   `valid-directory` aliases `valid-directory/edition-es2022/index.js`\n-   `valid-directory/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\") 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `valid-directory/edition-es2022-esm/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\") 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `valid-directory/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-   `valid-directory/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/valid-directory/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/valid-directory/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://github.com/balupton) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/valid-directory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\")\n-   [Sumit Rai](https://github.com/sumitrai) — [view contributions](https://github.com/bevry/valid-directory/commits?author=sumitrai \"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\")\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-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io/)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://bevry.me)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\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":"fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-FPNcfL38rE8SNWc7PonlEgdlIOpzrjjGDnNsagcsXCaLWPxp7UDtjMqFWilXa1BRUlas7oB/L7rfe0RFUlM8Vw==","shasum":"c2538ca1f379c844ab3cab24600d8aac3e402139","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a.tgz","fileCount":21,"unpackedSize":40702,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC++eaNkG0nZVEZkb8xnNmT1JKIe5JL8VsEvd5IP+NaMgIhAOCdpDmgLJbvqTOZc20oV/E1MKqozEub90B1Gx0MC+Vi"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a_1703706007705_0.3212727292389894"},"_hasShrinkwrap":false},"4.8.0":{"name":"valid-directory","version":"4.8.0","license":"Artistic-2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"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":"Sumit Rai","url":"https://github.com/sumitrai"}],"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)","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)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://bevry.me) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","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)","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)"],"engines":{"node":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.5.0","fdir":"^6.1.1"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.11.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.3.0","kava":"^7.6.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.0","typedoc":"^0.25.4","typescript":"5.3.3"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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","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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.8.0","gitHead":"fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-71SQWCDI/hk+gTQ2/u531ldpa5Qecl9U2oODwU5ubTGj+BE3GqdFdkLM8/OZa0QCsPYChZWl+62h9TZoZ4j3Wg==","shasum":"bc62bcd3b9d0eee1db6af9bcbf5946d582f8bbb5","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.8.0.tgz","fileCount":21,"unpackedSize":40645,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHhLOgd2ECTIDk9qLT25t3U5Iq1jQhsAl+tg5A5ym9ZzAiEAv3DTr+Wus7aCz2CCHKRJ9WsgFf00BJgacBNYzs5NDD0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.8.0_1703706030341_0.9266718686351283"},"_hasShrinkwrap":false},"4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a":{"name":"valid-directory","version":"4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a","license":"Artistic-2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"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":"Sumit Rai","url":"https://github.com/sumitrai"}],"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":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.6.0","fdir":"^6.1.1"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.8.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.4","typescript":"5.3.3"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a","readme":"<!-- TITLE/ -->\n\n# valid-directory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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 valid-directory`\n-   Executable: `valid-directory`\n\n#### Install Locally\n\n-   Install: `npm install --save valid-directory`\n-   Executable: `npx valid-directory`\n-   Import: `import pkg from ('valid-directory')`\n-   Require: `const pkg = require('valid-directory').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/valid-directory@^4.9.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-   `valid-directory/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-   `valid-directory` aliases `valid-directory/edition-es2022/index.js`\n-   `valid-directory/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\") 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `valid-directory/edition-es2022-esm/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\") 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `valid-directory/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-   `valid-directory/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/valid-directory/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/valid-directory/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/valid-directory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\")\n-   [Sumit Rai](https://github.com/sumitrai) — [view contributions](https://github.com/bevry/valid-directory/commits?author=sumitrai \"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\")\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":"6b61742e64e317bf65a5dc4e694994bc1596869a","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-hX6B4eLEWHs5+eLeX8MxWlszTypShDWlXEJBytY+0GCLyRBw1GkUejnztAKqVp8B5W0l+JzKNY32vSYWl4TL/A==","shasum":"3c784f4c7889ca550557fbdba75fc09a4fc2eac5","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a.tgz","fileCount":21,"unpackedSize":42075,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEkLJ0ZbA1r9+f2X83aPntm0udIwPaoHmEC0m/wgZWD4AiEAlqiCWnhu+OcIT3ACjaCHdSO7q5q31SPsVjiyYE1onSE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a_1703880422929_0.02530694939383782"},"_hasShrinkwrap":false},"4.9.0":{"name":"valid-directory","version":"4.9.0","license":"Artistic-2.0","description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"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":"valid-directory","githubSlug":"bevry/valid-directory","npmPackageName":"valid-directory"}},"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":"Sumit Rai","url":"https://github.com/sumitrai"}],"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":">=18"},"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 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"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":{"valid-directory":"bin.cjs"},"types":"edition-types/index.d.ts","type":"module","main":"edition-es2022/index.js","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","require":"./edition-es2022/index.js"}},"deno":"edition-deno/index.ts","dependencies":{"@bevry/valid-filename":"^2.6.0","fdir":"^6.1.1"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","filedirname":"^3.4.0","kava":"^7.8.0","make-deno-edition":"^2.3.0","prettier":"^3.1.1","projectz":"^4.2.0","typedoc":"^0.25.4","typescript":"5.3.3"},"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-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","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-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/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 ./edition-es2022/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"all","endOfLine":"lf"},"_id":"valid-directory@4.9.0","gitHead":"6b61742e64e317bf65a5dc4e694994bc1596869a","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-IV2E9N+GkbLZ00Y8eY9mrj5tblQhu63IOPZJquguIy17NkDOn1+4S8Cz24hQ8fvhfbCFVDPd50JQFs4tCy4wKg==","shasum":"f2a22688c6c158cbc7c383c27877fa289715b8e1","tarball":"https://registry.npmjs.org/valid-directory/-/valid-directory-4.9.0.tgz","fileCount":21,"unpackedSize":42018,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdKsYwBG2D/oUa6FP7Lopb2siw6QEcbUWv6t9x4FDaQgIhAPyyvygVWhn0ABFyiihRjuIyrB5AlcpmfMUfLkPSkLIj"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/valid-directory_4.9.0_1703880451634_0.9624232094569602"},"_hasShrinkwrap":false}},"time":{"created":"2018-09-03T09:10:36.706Z","1.0.0":"2018-09-03T09:10:36.931Z","modified":"2023-12-29T20:07:32.175Z","1.1.0-next.1573629532.f419ad6703a8dd2663a7cc10f8cd0d60c860f698":"2019-11-13T07:18:54.284Z","1.1.0":"2019-11-13T07:20:10.074Z","1.1.1-next.1573685883.2003a7c7e6f66500d1190ce6d0612279b8745b5d":"2019-11-13T22:58:05.645Z","1.1.1":"2019-11-13T22:59:10.244Z","1.2.0-next.1574062401.5a3b52a158e5186f50137eff423fdafabe73daa7":"2019-11-18T07:33:23.139Z","1.2.0":"2019-11-18T07:34:28.651Z","1.3.0-next.1574063979.da2325d6a1dcacf51e36a570e0240e1268bac0d2":"2019-11-18T07:59:41.407Z","1.3.0":"2019-11-18T08:01:05.833Z","1.4.0-next.1575156878.1db7a02d1744030ae2b95c3c2b681a184c4f0fc7":"2019-11-30T23:34:40.304Z","1.4.0":"2019-11-30T23:35:49.258Z","1.5.0-next.1575220068.7e2de2d3d4d490a299efddca1dd94c6308708713":"2019-12-01T17:07:49.749Z","1.5.0":"2019-12-01T17:08:40.734Z","1.6.0-next.1575922914.54661c1ff9d8702bca3e1b14cad3cd75db5c33dc":"2019-12-09T20:21:56.350Z","1.6.0":"2019-12-09T20:23:03.315Z","2.0.0-next.1590026260.50473e9e0bd1895b7107259baee824476d8d0f43":"2020-05-21T01:57:41.761Z","2.0.0":"2020-05-21T01:58:46.266Z","2.1.0-next.1590066352.60c545049e6be9a14645bf14e731221f082947eb":"2020-05-21T13:05:54.307Z","2.1.0":"2020-05-21T13:06:56.909Z","2.2.0-next.1590083626.1bef93020f90b100a8af3bfb80e832d8a546369d":"2020-05-21T17:53:47.800Z","2.2.0":"2020-05-21T17:54:45.752Z","2.3.0-next.1591788171.a60d7f742588d10eeb9e29454a248c6a7bfa7615":"2020-06-10T11:22:53.561Z","2.3.0":"2020-06-10T11:24:02.564Z","2.4.0-next.1591804077.fab6e249e8aba5718efb3d770addf5bf3bdfb44b":"2020-06-10T15:47:58.854Z","2.4.0":"2020-06-10T15:49:00.902Z","2.5.0-next.1592730933.010b61b24f32a0073f9421626be386cbc45a92ec":"2020-06-21T09:15:34.572Z","2.5.0":"2020-06-21T09:16:34.137Z","2.6.0-next.1593062030.00bb8ebe1dbd425cb9cd36290ed4a65494ae4591":"2020-06-25T05:13:52.136Z","2.6.0":"2020-06-25T05:14:56.273Z","2.6.0-next.1593742277.0fb732390c266567e6c010c72d964d444fcfb955":"2020-07-03T02:11:18.892Z","2.7.0-next.1595453573.40b50c8f531fe3623fd2740ac4664e5823ac4f46":"2020-07-22T21:32:54.668Z","2.7.0":"2020-07-22T21:33:59.429Z","2.8.0-next.1596524945.acbbc48aeb55baa1fd1335d8039e928200cb9829":"2020-08-04T07:09:06.871Z","2.8.0":"2020-08-04T07:10:02.431Z","3.0.0-next.1597120241.e1caf706f20205427284472a003897adef4b7634":"2020-08-11T04:30:43.377Z","3.0.0":"2020-08-11T04:31:47.834Z","3.0.0-next.1597658604.976a95d1097bd4b9e5c21387b9a3128c87c716ce":"2020-08-17T10:03:25.453Z","3.1.0-next.1597703502.cab72be59c06bc77159a14cfc6aa02478af0da5e":"2020-08-17T22:31:43.791Z","3.1.0":"2020-08-17T22:33:05.676Z","3.1.0-next.1597703604.82a300a7b9c3eaae02853ec684b71e0536b5050d":"2020-08-17T22:33:26.315Z","3.1.0-next.1597703876.67127a2cb79e14bd8da8d1614322732eccc80201":"2020-08-17T22:37:57.967Z","3.1.0-next.1598186457.cb328e70a69a001ddde05329213ea558abf9d3c1":"2020-08-23T12:40:58.831Z","3.1.0-next.1598780709.0c9c173c2a9133959deb77a43b68550946db4069":"2020-08-30T09:45:10.763Z","3.2.0-next.1598843490.f8976431003383d1e83db9b7f4ad682b078f6efa":"2020-08-31T03:11:31.814Z","3.2.0":"2020-08-31T03:12:56.568Z","3.2.0-next.1599077037.0be9b976d5f8c36b8c965c09140eed1d70dd29b7":"2020-09-02T20:03:58.540Z","3.3.0-next.1599190898.4324b05a5dbcbbd9c7e2a06d08387d5f49083001":"2020-09-04T03:41:40.548Z","3.3.0":"2020-09-04T03:43:13.969Z","3.4.0-next.1599282993.65d75fdf9d082132b07ba73a32e0a40258a3999c":"2020-09-05T05:16:35.039Z","3.4.0":"2020-09-05T05:16:43.144Z","3.4.0-next.1599991331.d3aaf5e0007b6e37cfac542e06f0fe048d3ad8e5":"2020-09-13T10:02:12.970Z","3.4.0-next.1599997983.62f3c4b9c9ff24133c8449fc29982424f72ac0d6":"2020-09-13T11:53:05.542Z","3.4.0-next.1600600111.9bc855460153dbfc0ef3f50f4f91c4b66b648ef8":"2020-09-20T11:08:33.339Z","3.4.0-next.1600606223.61bd427695c4f3516d89f49a811313072487fbfa":"2020-09-20T12:50:24.900Z","3.4.0-next.1601205395.129d2b0bc317bfd7d5c22a547ad849e2dbfdd79e":"2020-09-27T11:16:36.602Z","3.4.0-next.1601213960.ffbc35db5148a9f5329fc9c6a5d18810e7ff6f2a":"2020-09-27T13:39:21.548Z","3.4.0-next.1601797282.a6087808bb15049ab2c24332c0c33eefd74958ea":"2020-10-04T07:41:23.930Z","3.4.0-next.1602408789.b18681d96feb66c9b7fc579f49d63d8f4fafb0df":"2020-10-11T09:33:10.705Z","3.4.0-next.1602413110.051ea89cbaa36442f59eddc353c9e80d63643cff":"2020-10-11T10:45:12.051Z","3.4.0-next.1603016142.21411d4c275237a4b64b415bc3dd6e2d670d0d21":"2020-10-18T10:15:44.315Z","3.4.0-next.1603623535.345eecba6fb3c81c51eb5a016dba01dfdcb50ab9":"2020-10-25T10:58:56.716Z","3.4.0-next.1603630468.47282752c93aa7802af6761b7640c9b62c0b421a":"2020-10-25T12:54:29.734Z","3.5.0-next.1603944227.d02208f407f17b798b26b6013458dff13affa979":"2020-10-29T04:03:49.327Z","3.5.0":"2020-10-29T04:04:44.014Z","3.5.0-next.1603945855.db8c062a2365d4b82ad60c3e9b5f2155ff130ea6":"2020-10-29T04:30:56.937Z","3.6.0-next.1623649107.797e8fd694c43462215cb49db480e6a38d387298":"2021-06-14T05:38:29.051Z","3.6.0":"2021-06-14T05:39:47.984Z","3.7.0":"2021-07-27T19:31:49.072Z","3.7.0-next.1627414363.ecf1f8a34292ee85cb9684f8cb4ddd0ccba95a83":"2021-07-27T19:32:45.725Z","3.8.0-next.1627554271.75e5ba792cb25163210b765e8f9421f2914ef32c":"2021-07-29T10:24:33.195Z","3.9.0-next.1627673594.979f42c2f3b647f04a9c0f2149cf6fae1c1f2e6e":"2021-07-30T19:33:16.752Z","3.9.0":"2021-07-30T19:36:14.416Z","3.10.0-next.1698659455.96ebf0da58c2ad82db10007866253b71e2d9ba5c":"2023-10-30T09:50:57.211Z","3.10.0-next.1698659590.e3243fe13035af79e79832dd9f4b44442bcf44df":"2023-10-30T09:53:13.406Z","3.10.0":"2023-10-30T09:54:19.239Z","4.0.0-next.1698669139.c4b68c4c56e58c24211028e71d672a2f1b930adf":"2023-10-30T12:32:21.554Z","4.0.0-next.1698669594.f96a87b7a2e4503c31cb53c519f7a2a40b66a851":"2023-10-30T12:40:00.144Z","4.0.0-next.1698669817.25d5ed57c2c5c4ffe767bbac652115a603639379":"2023-10-30T12:43:39.543Z","4.0.0-next.1698669955.363e359adb2fc35140fc9c6cb7ca5bd3a85fce5f":"2023-10-30T12:45:58.228Z","4.0.0-next.1698670401.281bd2362cee44d338ee17bcc6b4039f104e590c":"2023-10-30T12:53:23.335Z","4.0.0-next.1698670675.b0368fdf6c80581f6470cc13845add2aa56d6fec":"2023-10-30T12:57:58.943Z","4.0.0-next.1698670836.a91fcb0699341f106192c86015257a3371aad67f":"2023-10-30T13:00:38.455Z","4.0.0-next.1698671109.fe2c5c0f218c527472a7dfeb3f77dd774dd5be72":"2023-10-30T13:05:11.590Z","4.0.0":"2023-10-30T13:08:11.550Z","4.1.0":"2023-11-02T13:03:03.645Z","4.1.0-next.1698930188.d6745db78f610849203fe1deba3fba9ab13aec83":"2023-11-02T13:03:10.453Z","4.2.0-next.1699962463.31a0d85ff5fdcb7610663f21c732f605ad88842a":"2023-11-14T11:47:45.144Z","4.2.0":"2023-11-14T11:47:53.124Z","4.3.0-next.1699963996.0eec651bbfcd9561bd93fc90db9eeba1b85aefe6":"2023-11-14T12:13:17.839Z","4.4.0":"2023-11-15T08:07:17.640Z","4.4.0-next.1700035640.2f1ae560aab57923e5397f64403dc2344b571bdb":"2023-11-15T08:07:21.811Z","4.5.0-next.1700575120.662a2f7f0ba89f21ba8924e559dd774c33f20228":"2023-11-21T13:58:42.265Z","4.5.0":"2023-11-21T13:58:53.873Z","4.6.0-next.1700865779.172364478ebe39b9f4781c8b3b101358b4f25d31":"2023-11-24T22:43:00.924Z","4.6.0":"2023-11-24T22:43:08.870Z","4.7.0-next.1701828476.6d5b2304e631e33edbfd900f35b48b9428db2d13":"2023-12-06T02:07:58.158Z","4.7.0":"2023-12-06T02:10:02.960Z","4.8.0-next.1703706006.fe4bc731ceb5f68aa31c3f8dfd06d4b72caa5c1a":"2023-12-27T19:40:07.879Z","4.8.0":"2023-12-27T19:40:30.568Z","4.9.0-next.1703880382.6b61742e64e317bf65a5dc4e694994bc1596869a":"2023-12-29T20:07:03.167Z","4.9.0":"2023-12-29T20:07:31.961Z"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"description":"Check whether or not a directory and its descendants are valid","homepage":"https://github.com/bevry/valid-directory","keywords":["check","deno","deno-edition","deno-entry","denoland","detect","es2022","export-default","fs","is","node","test","typed","types","typescript","valid","validate","windows"],"repository":{"type":"git","url":"git+https://github.com/bevry/valid-directory.git"},"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},{"name":"Sumit Rai","url":"https://github.com/sumitrai"}],"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"bugs":{"url":"https://github.com/bevry/valid-directory/issues"},"license":"Artistic-2.0","readme":"<!-- TITLE/ -->\n\n# valid-directory\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/valid-directory/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/valid-directory/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/valid-directory.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/valid-directory\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/valid-directory.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\nCheck whether or not a directory and its descendants are valid\n\n<!-- /DESCRIPTION -->\n\n\nValidity determined via the [`@bevry/valid-filename` package](https://github.com/bevry/valid-filename).\n\nRequires Node.js version >= 18 for recursive directory support.\n\n## Usage\n\n[Complete API Documentation.](http://master.valid-directory.bevry.surge.sh/docs/)\n\n### API\n\n```javascript\nimport validate from 'valid-directory'\nconst path = process.cwd()\nvalidate(path)\n    .then(([valid, invalidPaths]) => {\n        if (valid) {\n            console.log(path, 'is a valid directory')\n        } else {\n            console.log(\n                path,\n                'is an INVALID directory due to these:',\n                invalidPaths,\n            )\n            process.exit(1)\n        }\n    })\n    .catch((err) => throw err)\n```\n\n### Executable\n\nRun `npm install -g valid-directory` then run against the current working directory with `valid-directory` or a specified directory via `valid-directory <path>`.\n\nExit code will be `1` if a path is invalid, `2` if something went wrong, and `0` if validation passed.\n\n### Packages\n\nTo validate your packages before you publish them, you can do the following:\n\n1. Inside your package directory, run: `npm install --save-dev valid-directory`\n2. Then append `&& npx valid-directory` to your `test` script inside your `package.json` file\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 valid-directory`\n-   Executable: `valid-directory`\n\n#### Install Locally\n\n-   Install: `npm install --save valid-directory`\n-   Executable: `npx valid-directory`\n-   Import: `import pkg from ('valid-directory')`\n-   Require: `const pkg = require('valid-directory').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/valid-directory@^4.9.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-   `valid-directory/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-   `valid-directory` aliases `valid-directory/edition-es2022/index.js`\n-   `valid-directory/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\") 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `valid-directory/edition-es2022-esm/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\") 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `valid-directory/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-   `valid-directory/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/valid-directory/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/valid-directory/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/valid-directory/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/valid-directory\")\n-   [Sumit Rai](https://github.com/sumitrai) — [view contributions](https://github.com/bevry/valid-directory/commits?author=sumitrai \"View the GitHub contributions of Sumit Rai on repository bevry/valid-directory\")\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"}